Z0UjAQEAAAAAAAAAAAAAAE0AAAAoAAAAAQAAAAAAAAAcAAAAAAAAAB0AAAAAAAAABAAAAAAAAAAFAAAAAAAAABkAAAAAAAAABgAAAAAAAAAlAAAAAAAAAAcAAAAAAAAAHwAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAAAEAAAAAAAABAQAAAAAAAAwBAAAAAAAAEQEAAAAAAAACAQAAAAAAAAMBAAAAAAAADQEAAAAAAAAOAQAAAAAAAAoAAAAAAAAACwAAAAAAAAAMAAAAAAAAAA0AAAAAAAAADgAAAAAAAAAQAAAAAAAAABMAAAAAAAAAFAAAAAAAAAAVAAAAAAAAABYAAAAAAAAABAEAAAAAAAAFAQAAAAAAAAcBAAAAAAAAGgAAAAAAAAAbAAAAAAAAAA8BAAAAAAAAJgAAAAAAAAAnAAAAAAAAAN8CAAAAAACAKAAAAAAAAABUBwAAAAAAAAAAAAAAAAAAHAAAAAAAAABsAAAAAAAAAHAAAAAAAAAAdAAAAAAAAAB8AAAAAAAAAP//////////hAAAAAAAAADYAgAAAAAAAIwDAAAAAAAA5AYAAAAAAAAEBwAAAAAAAGAHAAAAAAAAZAcAAAAAAABoBwAAAAAAAMgHAAAAAAAAzAcAAAAAAADQBwAAAAAAANQHAAAAAAAAMA8AAAAAAAB4PAAAAAAAAEA+AAAAAAAAIMYSAAAAAACI1BIAAAAAAJjxEgAAAAAAYAYTAAAAAAAIDhMAAAAAAHgaEwAAAAAASCATAAAAAAD4JRMAAAAAALBAEwAAAAAAKFgTAAAAAADgYxMAAAAAAFhnEwAAAAAA///////////4ahMAAAAAAABvEwAAAAAAiHITAAAAAAD4mxMAAAAAANgHAAAAAAAAHAAAAAAAAABQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAABUAgAAAAAAALQAAAAAAAAAWAMAAAAAAAAgAAAAAAAAAFwAAAAAAAAABAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABILQAAAAAAAMQBAAAAAAAA3IcSAAAAAABkDgAAAAAAABAdAAAAAAAAxBQAAAAAAACoBwAAAAAAAHAMAAAAAAAA0AUAAAAAAACwBQAAAAAAALgaAAAAAAAAeBcAAAAAAAC4CwAAAAAAAHgDAAAAAAAAoAMAAAAAAAAAAAAAAAAAAAgEAAAAAAAAiAMAAAAAAABwKQAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAMjIuMDQuMDAxIG9yIGFib3ZlAAAAAAAAAAAEAAQAywAdADIyLjQxLjAyNAAAAAAAAAAyMi40MS4wMjkAAAAAAAAAbGludXhfcmhlbDQwX2djYzQ0eF8zMiBnY2NfNC40LjMAAAAAAAAAAAAAADBXmwAARlHYWQAAAAD1yOJZAAAAABMAAAAxAAAADAAAAAAAAAANAAAAAAAAAA4AAAAAAAAADwAAAAAAAAAQAAAAAAAAABEAAAAAAAAAEgAAAAAAAAATAAAAAAAAABQAAAAAAAAAFQAAAAAAAAAWAAAAAAAAABgAAAAAAAAABAEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAIAQAAAAAAAAkBAAAAAAAACgEAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAA3wIAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAACQAAAAAAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAD//////v////////8CAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAP//////////AAAAAA4AAAAAAAAAGgAAAAAAAAAbAAAAAAAAAAsBAAAAAAAADwEAAAAAAAAQAQAAAAAAACAAAAAAAAAAIQAAAAAAAAAjAAAAAAAAACYAAAAAAAAAJwAAAAAAAAAUAQAAAAAAABUBAAAAAAAAFgEAAAAAAAAXAQAAAAAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAABAAAAAAAAABsAgAAAAAAABkAAAANAAAAAAIAAAAAAAAAAQAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAgEAAAAAAAACAgAAAAAAANkpAAAAAACA7ikAAAAAAIBfKgAAAAAAgLgrAAAAAACA0ywAAAAAAIBsAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAoAAAAAAAAADgAAAAAAAAASAAAAAAAAABYAAAAAAAAAHwAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAANkpAAABAAAA/////woAAAABAAAAAAAAAO4pAAABAAAA/////woAAAABAAAAAAAAAF8qAAABAAAA/////woAAAABAAAAAAAAALgrAAABAAAA/////wAAAAABAAAAAAAAANMsAAABAAAA/////wAAAAABAAAAAAAAAAEAAAAIAAAAAAAAAAAAAAD/////AAAAgAAAAIABAADAAAAAAAEAAAAAAAAAAQAAwAAAAAABAAAAAAAAAAEAAMAAAAAAAQAAAAAAAAABAADAAQAAAAQAAAAdeQMAAQAAwAEAAAACAAAAWJsAAAYAAAACAAAAAAAAAAAAAAAAAOACAQAAAAAAAAAAIwAABQAAAG1hc2tMYXlvdXQAAAAAAADoAwAAAAAAAHNjaGVtYXRpYwAAAAAAAACgAAAABQAAAHNjaGVtYXRpY1N5bWJvbACgAAAABQAAAG5ldGxpc3QAoAAAAAUAAAAFAAAAAAAAAAAAAAACAAAAbWFza0xheW91dAAAAAAAAAAAAAAAAAAAc2NoZW1hdGljAAAAAAAAAAAAAAAAAAAAc2NoZW1hdGljU3ltYm9sAAAAAAAAAAAAbmV0bGlzdAAAAAAAAAAAAAEAAAAAAAAAWkoAAFxSAAAAAAAAAEAAADQtAAAAAAAAAAAAAAAAAABkcmF3aW5nAGZpbGwAc2xvdABPUENTZXJpZgBPUENBbnRpU2VyaWYAYW5ub3RhdGlvbgBnYXBGaWxsAHJlZHVuZGFudABvYUFueQBvYU5vAG9hRmlsbE9QQwBVbnJvdXRlZABsYXllckFiYnJldmlhdGlvbgAAVW5yb3V0ZQBDYW5wbGFjZQBDYW5wbGFjAENhbm5vdG9jY3VweQBub09jdXB5AEdyb3VwAFJvdwBtYXJrZXIAY2hhbmdlZExheWVyAGNobmdMeXIAZGVzaWduRmxvdwBkc25GbG93AHVuc2V0AHVua25vd24Ac3VwcGx5AHNwaWtlAHJlc2lzdABoaXoAZHJpdmUAc2VsZWN0AGhpbGl0ZQB5OQB5OAB5NwB5NgB5NQB5NAB5MwB5MgB5MQB5MABzdHJldGNoAHNuYXAAZWRnZUxheWVyAGVkZ2VMeXIAYXhpcwBwaW4Ad2lyZQBkZXZpY2UAYm9yZGVyAHRleHQAc29mdEZlbmNlAHNvZnRGbmMAaGFyZEZlbmNlAGhhcmRGbmMAYWxpZ24AcHJCb3VuZGFyeQBwckJuZHJ5AGluc3RhbmNlAGluc3RuY2UAYW5ub3RhdGUAYW5vdGF0ZQBncmlkAGJhY2tncm91bmQAYmtncm91bmQAcHVycG9zZUFiYnJldmlhdGlvbgB3YXJuaW5nAHduZwB0b29sMQB0bDEAdG9vbDAAdGwwAGxhYmVsAGxibABmbGlnaHQAZmx0AGVycm9yAGVycgBhbnQAZHJhd2luZzEAZHIxAGRyYXdpbmcyAGRyMgBkcmF3aW5nMwBkcjMAZHJhd2luZzQAZHI0AGRyYXdpbmc1AGRyNQBkcmF3aW5nNgBkcjYAZHJhd2luZzcAZHI3AGRyYXdpbmc4AGRyOABkcmF3aW5nOQBkcjkAYm91bmRhcnkAYm5kAGZpbABkcncAbmV0AGNlbGwAY2VsAGFsbAB0ZWNoTFBQAGxwcFBhY2tldE5hbWUAcHJiZGcAbHBwUHJpb3JpdHkAbHBwTGF5ZXIAbHBwUHVycG9zZQBscHBGbGFncwBodm52dG0AbXZpAGNodm52dG0AbWFzawBjbndidG1tYXNrAHB3ZWxsAHJwb2x5UGluAHJwb2x5TGFiZWwAcmVzAHJwb2x5UmVzAGN1dABycG9seUN1dABwd2VsbGlzbwBwd2VsbGlzAGVsbQBud2VsbABoaWxpdGUxAG53ZWxsUGluAG53ZWxsTGFiZWwAZG53ZWxsAHZodmkAVmh2aUlkAGRpZmYAZGlmZlJlcwBkaWZmQ3V0AGRpZmZQaW4AZGlmZkxhYmVsAGRpZmZOZXQAZGlmZkJuZABodgBkaWZmSHYAdGFwAHRhcFBpbgB0YXBOZXQAdGFwQm5kAHRhcExhYmVsAHBzZG0AbnNkbQBwb2x5AHBvbHlQaW4AcG9seVJlcwBwb2x5Q3V0AGdhdGUAcG9seUdhdGUAcG9seUxhYmVsAHBvbHlCbmQAcHJvYmUAcG9seVByb2JlAHNob3J0AHBvbHlTaG9ydABwb2x5TmV0AG1vZGVsAHBvbHlNb2RlbABsZG50bQBtZXQ4AGx2dG4AaHZ0cAB0dW5tAGxpY29uMQBsaWNvbjFCbmQAbGljb24xUGluAGxpY29uMU5ldABucGMAc2lsbQBsaTEAbGkxUGluAGxpMVJlcwBsaTFDdXQAbGkxTGFiZWwAbGkxTmV0AGxpMUJuZABibG9ja2FnZQBsaTFCbGtnAGxpMVNob3J0AGxpMVByb2JlAG1jb24AbWNvbkJuZABtY29uUGluAG1jb25OZXQAbWV0MQBtZXQxUmVzAG1ldDFDdXQAbWV0MVBpbgBtZXQxTGFiZWwAbWV0MU5ldABtZXQxQm5kAG1ldDFCbGtnAG1ldDFTaG9ydABtZXQxUHJvYmUAb3B0aW9uMQBtZXQxTWV0b3AxAG9wdGlvbjIAbWV0MU1ldG9wMgBvcHRpb24zAG1ldDFNZXRvcDMAb3B0aW9uNABtZXQxTWV0b3A0AG9wdGlvbjUAbWV0MU1ldG9wNQBvcHRpb242AG1ldDFNZXRvcDYAb3B0aW9uNwBtZXQxTWV0b3A3AG9wdGlvbjgAbWV0MU1ldG9wOAB2aWEAdmlhQm5kAHZpYU5ldAB2aWFQaW4AbWV0MgBtZXQyUmVzAG1ldDJDdXQAbWV0MlBpbgBtZXQyTGFiZWwAbWV0Mk5ldABtZXQyQm5kAG1ldDJCbGtnAG1ldDJTaG9ydABtZXQyUHJvYmUAbWV0Mk1ldG9wMQBtZXQyTWV0b3AyAG1ldDJNZXRvcDMAbWV0Mk1ldG9wNABtZXQyTWV0b3A1AG1ldDJNZXRvcDYAbWV0Mk1ldG9wNwBtZXQyTWV0b3A4AHZpYTIAdmlhMkJuZAB2aWEyUGluAHZpYTJOZXQAbWV0MwBtZXQzUmVzAG1ldDNDdXQAbWV0M1BpbgBtZXQzTGFiZWwAbWV0M05ldABtZXQzQm5kAG1ldDNCbGtnAG1ldDNTaG9ydABmdXNlAG1ldDNGdXNlAG1ldDNQcm9iZQBtZXQzTWV0b3AxAG1ldDNNZXRvcDIAbWV0M01ldG9wMwBtZXQzTWV0b3A0AG1ldDNNZXRvcDUAbWV0M01ldG9wNgBtZXQzTWV0b3A3AG1ldDNNZXRvcDgAdmlhMwB2aWEzQm5kAHZpYTNQaW4AdmlhM05ldABtZXQ0AG1ldDRSZXMAbWV0NEN1dABtZXQ0UGluAG1ldDRMYWJlbABtZXQ0TmV0AG1ldDRCbmQAbWV0NEJsa2cAbWV0NFNob3J0AG1ldDRGdXNlAG1ldDRQcm9iZQBtZXQ0TWV0b3AxAG1ldDRNZXRvcDIAbWV0NE1ldG9wMwBtZXQ0TWV0b3A0AG1ldDRNZXRvcDUAbWV0NE1ldG9wNgBtZXQ0TWV0b3A3AG1ldDRNZXRvcDgAdmlhNAB2aWE0Qm5kAHZpYTRQaW4AdmlhNE5ldABtZXQ1AG1ldDVSZXMAbWV0NUN1dABtZXQ1UGluAG1ldDVMYWJlbABtZXQ1TmV0AG1ldDVCbmQAbWV0NUJsa2cAbWV0NVNob3J0AG1ldDVGdXNlAG1ldDVQcm9iZQBtZXQ1TWV0b3AxAG1ldDVNZXRvcDIAbWV0NU1ldG9wMwBtZXQ1TWV0b3A0AG1ldDVNZXRvcDUAbWV0NU1ldG9wNgBtZXQ1TWV0b3A3AG1ldDVNZXRvcDgAbnNtAHBhZABwYWRMYWJlbABwYWRQaW4AcG5wAHBucGxhYmVsAG5wbgBucG5sYWJlbABodmkAY2FwYWNpdG9yAGNhcGFjaXQAbmNtAGNuY20AY25jbW1hc2sAcG1tAHBvc3QyAGNmb20AY2ZvbW1hc2sAbWFza0FkZABjZm9tbWFza0FkZABtYXNrRHJvcABjZm9tbWFza0Ryb3AAd2FmZmxlRHJvcABjZm9td2FmZmxlRHJvcABmb20AZHVtbXkAY253bQBjbndtbWFzawBjbndtbWFza0FkZABjbndtbWFza0Ryb3AAY2RubQBjZG5tbWFzawBjZG5tbWFza0FkZABjZG5tbWFza0Ryb3AAY2x2dG5tAGNsdnRubW1hc2sAY2x2dG5tbWFza0FkZABjbHZ0bm1tYXNrRHJvcABjaHZ0cG0AY2h2dHBtbWFzawBjaHZ0cG1tYXNrQWRkAGNodnRwbW1hc2tEcm9wAGN0dW5tAGN0dW5tbWFzawBjdHVubW1hc2tBZGQAY3R1bm1tYXNrRHJvcABjb25vbQBjb25vbW1hc2sAY29ub21tYXNrQWRkAGNvbm9tbWFza0Ryb3AAY25zZG0AY25zZG1tYXNrAGNuc2RtbWFza0FkZABjbnNkbW1hc2tEcm9wAGNwc2RtAGNwc2RtbWFzawBjcHNkbW1hc2tBZGQAY3BzZG1tYXNrRHJvcABjbnRtAGNudG1tYXNrAGNudG1tYXNrQWRkAGNudG1tYXNrRHJvcABodm50bQBjaHZudG0AY2h2bnRtbWFzawBjaHZudG1tYXNrQWRkAGNodm50bW1hc2tEcm9wAGNsZG50bQBjbW04AGNtbThtYXNrAGNsdm9tAGNsdm9tbWFzawBjbHZvbW1hc2tBZGQAY2x2b21tYXNrRHJvcABjcDFtAGNwMW1tYXNrAGNwMW1tYXNrQWRkAGNwMW13YWZmbGVEcm9wAGNwMW1tYXNrRHJvcABjbGkxbQBjbGkxbW1hc2sAY2xpMW1tYXNrQWRkAGNsaTFtbWFza0Ryb3AAY2xpY20xAGNsaWNtMW1hc2sAY2xpY20xbWFza0FkZABjbGljbTFtYXNrRHJvcABjbW0xAGNtbTFtYXNrAGNtbTFtYXNrQWRkAGNtbTFtYXNrRHJvcABjbW0xd2FmZmxlRHJvcABjdmlhbQBjdmlhbW1hc2sAY3ZpYW1tYXNrQWRkAGN2aWFtbWFza0Ryb3AAY21tMgBjbW0ybWFzawBjbW0ybWFza0FkZABjbW0ybWFza0Ryb3AAY21tMndhZmZsZURyb3AAY3ZpYW0yAGN2aWFtMm1hc2sAY3ZpYW0ybWFza0FkZABjdmlhbTJtYXNrRHJvcABjbW0zAGNtbTNtYXNrAGNtbTNtYXNrQWRkAGNtbTNtYXNrRHJvcABjbW0zd2FmZmxlRHJvcABjbnBjAGNzaWxtAGNzaWxtbWFzawBjc2lsbW1hc2tBZGQAY3NpbG1tYXNrRHJvcABjdmlhbTMAY3ZpYW0zbWFzawBjdmlhbTNtYXNrQWRkAGN2aWFtM21hc2tEcm9wAGNuc20AY3BkbQBjcGRtbWFzawBjcGRtbWFza0FkZABjcGRtbWFza0Ryb3AAY3BtbQBjY2ltAGNjaW1tYXNrAGNwbW1tYXNrRHJvcABjbW00AGNtbTRtYXNrAGNtbTRtYXNrQWRkAGNtbTRtYXNrRHJvcABjbW00d2FmZmxlRHJvcABjdmlhbTQAY3ZpYW00bWFzawBjdmlhbTRtYXNrQWRkAGN2aWFtNG1hc2tEcm9wAGNtbTUAY21tNW1hc2sAdGFyZ2V0AGNjdG0xAGNjdG0xbWFzawBjY3RtMW1hc2tBZGQAY2N0bTFtYXNrRHJvcABvdmVybGFwAG92ZXJsYXBCbmQAYXJlYWlkAGxvd1RhcERlbnNpdHkAYXJlYWlkRHVhbE1lbW9yeQBub3RDcml0U2lkZQBhcmVhaWRUY2FtTWVtb3J5AGluamVjdGlvbgBwZXIAcmZkaW9kZQBmaXgAc2VhbABhcmVhaWRzZWFsAGNvcmUAYXJlYWlkY29yZQBmcmFtZQBhcmVhaWRmcmFtZQBlc2QAYXJlYWlkZXNkAGRpZUN1dABhcmVhaWRkaWVDdXQAbW9kdWxlQ3V0AGFyZWFpZG1vZHVsZUN1dABmcmFtZVJlY3QAYXJlYWlkZnJhbWVSZWN0AHN1YnN0cmF0ZUN1dABhcmVhaWRzdWJzdHJhdGVDdXQyAGRpb2RlAGFyZWFpZGRlAHN0YW5kYXJkYwBhcmVhaWRTdGFuZGFyZGMAZGVhZFpvbgBhcmVhaWRkbgBjcml0Q29ybmVyAGFyZWFpZGNyAGNyaXRTaWQAYXJlYWlkY2QAb3BjRHJvcABhcmVhaWRvcGNEcm9wAHdhZmZsZVdpbmRvdwBhcmVhaWRXYWZmbGVXaW5kb3cAZXh0ZW5kZWREcmFpbgBhcmVhaWRleHRlbmRlZERyYWluAGx2ZG53AGFyZWFpZGx2ZG53AGx2TmF0aXZlAHBob3RvAGFyZWFpZHByb2JlAGV0ZXN0AGNtc20AaHZud2VsbABtc20AcHJ1bmUAcHJ1bmVkZwBwYWRDZW50ZXIAcGFkQ2VudABwc2ExAG1ldDFQc2ExAG1ldDJQc2ExAG1ldDNQc2ExAG1ldDRQc2ExAG1ldDVQc2ExAHBzYTIAbWV0MVBzYTIAbWV0MlBzYTIAbWV0M1BzYTIAbWV0NFBzYTIAbWV0NVBzYTIAcHNhMwBtZXQxUHNhMwBtZXQyUHNhMwBtZXQzUHNhMwBtZXQ0UHNhMwBtZXQ1UHNhMwBwc2E0AG1ldDFQc2E0AG1ldDJQc2E0AG1ldDNQc2E0AG1ldDRQc2E0AG1ldDVQc2E0AHBzYTUAbWV0MVBzYTUAbWV0MlBzYTUAbWV0M1BzYTUAbWV0NFBzYTUAbWV0NVBzYTUAcHNhNgBtZXQxUHNhNgBtZXQyUHNhNgBtZXQzUHNhNgBtZXQ0UHNhNgBtZXQ1UHNhNgBibGFua2luZwBibGFua2luAGN2aXBkbQBjaW5kbQBjZWxtAGdyaWQxAGFubm90YXRlMQBhbm5vdGF0ZTIAYW5ub3RhdGUzAGFubm90YXRlNABhbm5vdGF0ZTUAYW5ub3RhdGU2AGFubm90YXRlNwBhbm5vdGF0ZTgAYW5ub3RhdGU5AGluc3RhbmNlTGJsAHByQm91bmRhcnlMYmwAZGVmYXVsdFBhY2tldAB0ZXh0MQB0ZXh0MgBkZXZpY2VMYmwAZGV2aWNlMQBkZXZpY2UyAGRldmljZUFudAB3aXJlTGJsAHdpcmVGbHQAcGluTGJsAHBpbkFudABlZGdlTGF5ZXJQaW4AaGlsaXRlMgBoaWxpdGUzAGhpbGl0ZTQAaGlsaXRlNQBoaWxpdGU2AGhpbGl0ZTcAaGlsaXRlOABoaWxpdGU5AGRlc2lnbkZsb3cxAGRlc2lnbkZsb3cyAGRlc2lnbkZsb3czAGRlc2lnbkZsb3c0AGRlc2lnbkZsb3c1AGRlc2lnbkZsb3c2AGRlc2lnbkZsb3c3AGRlc2lnbkZsb3c4AGRlc2lnbkZsb3c5AGNoYW5nZWRMYXllclRsMABjaGFuZ2VkTGF5ZXJUbDEAbWFya2VyV2FybgBtYXJrZXJFcnIAUm93TGJsAEdyb3VwTGJsAENhbm5vdG9jY3VweUJuZABVbnJvdXRlZDEAVW5yb3V0ZWQyAFVucm91dGVkMwBVbnJvdXRlZDQAVW5yb3V0ZWQ1AFVucm91dGVkNgBVbnJvdXRlZDcAVW5yb3V0ZWQ4AFVucm91dGVkOQB0bXBkZ24AdG1wZGdwAHRtcG1heGRnbgB0bXBtYXhkZ3AAdG1wYmFzZQB0bXBjb2wAdG1wcG5wAGV4dEZhYgBwcmVjcmVzAHNpbGljb24AdmxjAG5vZG53AGFydGlzYW4AdGVjaENkAHRlcm0xAHRlcm0yAHRlcm0zAHNjcgBwb3J0AHBvcnQxAHJlZ2lvbgBwcGF0aABwcGF0aDEAbWFjcm8AbndlbGxJc29sYXRpb24AYmxvY2sAd2FmZmxlQWRkMQB3YWZmbGVBZGQyAGR1YWxNZW1vcnkAdGNhbU1lbW9yeQBzdWJja3REZXZpY2UAcGl4ZWwAYW50aWYAcm90YXRpb24AaXBFeGVtcHQAcGl0Y2gASGlnaFZ0AGhvbGUAbXNsaXRzAG9wYwBub2R1bW15AGRyYwB2c3MAZmMAbWltAG5taW0AY3ZzAGV4dABpcABsb3dfdnQAY2lzX2FycmF5AGltYWdlcnMAdDMAbG9naWMAZGlvAGNhcAByZXMxAGJqdABlZnVzZU1hcmsAc2xvdEJsb2NrAGZ1c2VNYXJrAHVtY0lQAHRlY2hEZXZpY2UAdGNpQ29udGFjdERldmljZQBJTExpc3QAdGNpQ2hlY2tpbkRldmljZQB0Y2lTYXZlRGV2aWNlAGxheW91dAB0Y0hFQURFUgBjZHNNb3MAdGNQcm9wAGZ1bmN0aW9uAHRyYW5zaXN0b3IAdGNJTENvZGUAdGNMb2NhbFZhcgB0Y0Zvcm1hbFBhcmFtAHRjQ2xhc3NQYXJhbQBjZHNWaWEAY29udGFjdABzeW1ib2xpYwB0Y0NBVEVHT1JZAGlzb1B3ZWxsUkVTAHJvZElzb1Jlc0NsYXNzAGFuY2hvcgBhbmNob3JDbGFzcwBwYWRQTHdsYmkAcGFkUExzdGcAcGFkUExmcABwYWRQTGhwAHBsdWdnZWRQYWRDbGFzcwBhZHZhbmNlZFNlYWwAYWR2U2VhbF82dW0AZGllU2VhbFJpbmdDbGFzc0FkdgBuaWtvbgBuaWtvbkNyb3NzQ2xhc3MATTNmdXNlAGZ1c2VTaGllbGRDbGFzcwBNM21ldG9wAG1ldG9wQ2xhc3MATTNNNF9UAFBZX1QATDFfVABNMV9UAE0yX1QATTFNMl9UAE0zX1QATTJNM19UAE00X1QAc3lQaW4AcnVsZVZpYTMAcnVsZVZpYQBydWxlVmlhMQBydWxlVmlhMgBydWxlQ29udGFjdABkaXNjcmV0ZUNvbnRhY3RSaW5nAGRpc2NyZXRlQ29udGFjdFJpbmdDbGFzcwBNMU0yX0MATTJNM19DAE0zTTRfQwBUUEwxX0MAUFlMMV9DAEwxTTFfQwBzeUNvbnRhY3QAcEVzZENhc2NvZGVGZXQAZXNkQ2FzY29kZUZldENsYXNzAHBFc2RGZXQAZXNkRmV0Q2xhc3MAdmFyYWN0b3IyAHZhcmFjdG9yAHZhcmFjdG9yQ2xhc3MAUFlNMmJ1dHRfdmFyYWN0b3IAVFBNMXNkX3ZhcmFjdG9yAFRQTTJzZF92YXJhY3RvcgBQWU0xX3ZhcmFjdG9yAFBZTTJfdmFyYWN0b3IAUFlNMWJ1dHRfdmFyYWN0b3IAc2ltcGxlQ29udGFjdENsYXNzAGFudGVubmFfZGlvZGUAYW50ZW5uYURpb2RlQ2xhc3MAZ2VuUml2ZXRNaXJyb3JETHJpbmcAcml2ZXRSaW5nTWlycm9yQ2xhc3MAZ2VuUml2ZXRETHJpbmcAcml2ZXRSaW5nQ2xhc3MAZ2VuSW50RExyaW5nAGludFJpbmdDbGFzcwBnZW5ETHJpbmcAcmluZ0NsYXNzAE00c2hvcnQAcGx5c2hvcnQAbGkxc2hvcnQATTFzaG9ydABNMnNob3J0AE0zc2hvcnQAc2hvcnRDbGFzcwBwREZiZW50UmVzAFBZYmVudFJlcwBuREZiZW50UmVzAGJlbnRSZXNJbXBDbGFzcwBMSXJlcwBuREZyZXMAcERGcmVzAFBZcmVzAHdsUmVzSW1wQ2xhc3MAZXh0RG5UcmFuAGV4dERwVHJhbgBtRXh0RHJhaW5UcmFuQ2xhc3MAcGZldABuZmV0AG1Nb2RlbEZldENsYXNzAGh2cFRyYW4AblRyYW4AcFRyYW4AaHZuVHJhbgBtTm9ybVRyYW5JbXBDbGFzcwBwRHJhaW5Pbmx5AG5EcmFpbk9ubHkAZHJhaW5Pbmx5Q2xhc3MAaHZERk0xc2QyAGh2REZNMXNkAFRQTTFzAERGTTFzZABERk0xc2QyAGRyYWluQ29udGFjdDNQb2xJbXBDbGFzcwBodkRGTDFzZDIAREZMMXNkAERGTDFzZGYAREZMMXNkMgBUUEwxcwBodkRGTDFzZABkcmFpbkNvbnRhY3RQb2xJbXBDbGFzcwBodkRGVFBNMXMyAERGVFBMMXMyAERGVFBNMXMyAGh2REZUUEwxczIAZW5Ec3RyYXAzUG9sSW1wQ2xhc3MAREZUUE0xczJlbmgAaHZERlRQTTFzMmVuaABlbmhTdHJhcDNQb2xJbXBDbGFzcwBodkRGVFBMMXMAREZUUEwxcwBERlRQTDFzdwBERlRQTTFzAERGVFBNMXN3AGh2REZUUE0xcwBlblNzdHJhcDNQb2xJbXBDbGFzcwBNMU0yX1BSAE0yTTNfUFIATTNNNF9QUgBQWUwxX1BSAG5UUEwxX1BSAHBUUEwxX1BSAG5ERkwxX1BSAHBERkwxX1BSAEwxTTFfUFIAc3lFbmhDb250YWN0AEwxTTIAcmMzSW50ZXJDb25DbGFzcwBQWU0xAHJjM0ludGVyQ29uSW1wQ2xhc3MAZ3VhcmRSaW5nRW5oAHJvZFRyaXBsZUd1YXJkUmluZwBUUE0xAERGTTEAcmNJbnRlckNvbkVuaENsYXNzAE0xTTJzcQBNMk0zAE0zTTQATTJNM3NxAE0zTTRzcQBGVVNFX00yTTMATDFNMQBMMU0xc3EATTFNMgByY0ludGVyQ29uQ2xhc3MAVFBMMWEAcmNJbnRlckNvblNQb2xJbXBDbGFzcwBUUEwxY2VuAHJjM0ludGVyQ29uQ2VuUG9sSW1wQ2xhc3MAREZMMXNxAFRQTDEAVFBMMXNxAFRQTDFfZmVuY2UAREZMMQByY0ludGVyQ29uUG9sSW1wQ2xhc3MAUFlMMXNxAFBZTDEAcmNJbnRlckNvbkltcENsYXNzAHBhcnRudW0AcGFydE51bUNsYXNzAHBhcnRudW05AHBhcnRudW1BAHBhcnRudW1CAHBhcnRudW1DAHBhcnRudW1EAHBhcnRudW1FAHBhcnRudW1GAHBhcnRudW1HAHBhcnRudW1IAHBhcnRudW1JAHBhcnRudW1KAHBhcnRudW1LAHBhcnRudW1MAHBhcnRudW1NAHBhcnRudW1OAHBhcnRudW1PAHBhcnRudW1QAHBhcnRudW1RAHBhcnRudW1SAHBhcnRudW1TAHBhcnRudW1UAHBhcnRudW1VAHBhcnRudW1WAHBhcnRudW1XAHBhcnRudW1YAHBhcnRudW1ZAHBhcnRudW1aAHBhcnRudW0wAHBhcnRudW0xAHBhcnRudW0yAHBhcnRudW0zAHBhcnRudW00AHBhcnRudW01AHBhcnRudW02AHBhcnRudW03AHBhcnRudW04AHBhcnROdW1DaGFyQ2xhc3MAbGFzZXJUYXJnZXRDbGFzcwBlbmhSaXZldFJpbmdNaXJyb3JDbGFzcwBlbmhSaW5nQ2xhc3MAc3lNR0VuaGFuY2VtZW50AHJpdmV0Q2xhc3MAcmMzSW50ZXJDb25Qb2xJbXBDbGFzcwBwRXNkVHJhbkltcENhc2NvZGVDbGFzcwBuRXNkVHJhbkltcENhc2NvZGVDbGFzcwBwbHVnZ2VkUGFkQ2xhc3NTbG90AHBFc2RUcmFuSW1wQ2xhc3MAbkVzZFRyYW5JbXBDbGFzcwBtTm9ybVRyYW5DbGFzcwBmbGFyZWRHYXRlQ2FzY29kZUNsYXNzAGZsYXJlZEdhdGVDbGFzcwBkaWVTZWFsUmluZ0NsYXNzAHN5UmVjdFBpbgBzeURlcGxldGlvbgBzdHJldGNoRGlyAHN5RW5oYW5jZW1lbnQAbW9kaWZpZWRCdXROb3RTYXZlZABwclN0YWNrVmlhAG9hVW5yZXN0cmljdGVkAHRlY2hHcm91cEZsYWdzAG1wcFN1YlJlY3QAbXBwV2lkdGgAbXBwQmVnaW5PZmZzZXQAbXBwU3BhY2luZwBjZW50ZXIAbXBwU2VwYXJhdGlvbgBtcHBDaG9wcGFibGUAbXBwTGVuZ3RoAG1wcEVuZE9mZnNldABtcHBHYXAAbXBwRW5kU2VnT2Zmc2V0AG1wcEJlZ2luU2VnT2Zmc2V0AG1wcEp1c3RpZmljYXRpb24AbWluaW11bQBwYXJhbGxlbENhcABzYW1lTmV0AG1pbkVuY2xvc3VyZQB2aWFMYXllcgBjb250cm9scwB0ZWNoUGFyYW1zAGljY0tlZXBvdXRzAGljY0JvdW5kYXJ5TGF5ZXJzAGljY0VxdWl2YWxlbnRMYXllcnMAaWNjVmlhcwBpY2NMYXllcnMAVEVDSGNvbXBpbGVUaW1lVVRDAFRFQ0hjb21waWxlVGltZQBURUNIbWlzY1RkclNwZWNSZXYAVEVDSG1pc2NUZHJTcGVjTnVtAFRFQ0hib25kUGFkU3RyZXNzU3BlY1JldgBURUNIYm9uZFBhZFN0cmVzc1NwZWNOdW0AVEVDSHRkclNwZWNSZXYAVEVDSHRkclNwZWNOdW0AVEVDSHRlY2hub2xvZ3kAcHJPdmVybGFwTGF5ZXIAcHJSb3V0aW5nUGl0Y2gAcHJQaXRjaABwck5vbkRlZmF1bHRTdGFja1ZpYXMAcHJOb25EZWZhdWx0VmlhcwBwck5vbkRlZmF1bHRMYXllcnMAcHJFZGdlQ2FwYWNpdGFuY2UAcHJSZXNpc3RhbmNlAHByQ2FwYWNpdGFuY2UAcHJXaXJlRXh0ZW5zaW9uAHByTm90Y2gAcHJTcGFjaW5nAHByV2lkdGgAcHJOb25EZWZhdWx0UnVsZQBwck5vbkRlZmF1bHRSdWxlcwBwck5vbkRlZmF1bHRSdWxlTmFtZQBORFJfMV81AE5EUl8yAE5EUl8yXzUATkRSXzMAcHJHZW5WaWFSdWxlAHByRGlyZWN0aW9uAHZlcnRpY2FsAGhvcml6b250YWwAcHJZUGl0Y2gAcHJYUGl0Y2gAcHJVcHBlclB0AHByTG93ZXJQdABwck1ldGFsT3ZlcmhhbmcAcHJPdmVyaGFuZwBwcldNYXgAcHJXTWluAHByR2VuVmlhUnVsZXMAcHJHZW5WaWFSdWxlTmFtZQB2aWFHZW5WaWEAdmlhR2VuVmlhMgB2aWFHZW5WaWEzAG1ldDF0dXJuAG1ldDJ0dXJuAG1ldDN0dXJuAG1ldDR0dXJuAHByTWFzdGVyc2xpY2VMYXllcnMAcHJTdGFja1ZpYXMAcHJWaWFUeXBlcwBORFJfZHVtbXkAZGVmYXVsdABwclZpYURldmljZQBwclJ1bGVzAHByUm91dGluZ0xheWVycwBoYWxmUm91dGUAbXBwRW5jUGF0aABtcHBFbmNsb3N1cmUAbXBwRW5jUGF0aHMAbXBwU3ViUmVjdHMAbXBwVGVtcGxhdGUAbXBwRW5kVHlwZQBmbHVzaABtcHBPZmZzZXQAbXBwRW5kRXh0AG1wcEJlZ2luRXh0AGRsZVJ1bGVzAGx4TVBQVGVtcGxhdGVzAG1wcE5hbWUAUFlMMV9NUFAAUFlNMV9NUFAATDFNMV9NUFAATDFNMl9NUFAATTFNMl9NUFAATTJNM19NUFAAUFRQTDFfTVBQAFBUUE0xX01QUABOVFBMMV9NUFAATlRQTTFfTVBQAHRmY0RlZmluZVN5bURlcGxldGlvbkRldmljZQBzeW1QaW5EZXZpY2UAcnVsZUNvbnRhY3REZXZpY2UAY2RzTW9zRGV2aWNlAGNkc1ZpYURldmljZQBzeW1Db250YWN0RGV2aWNlAHN5bUVuaGFuY2VtZW50RGV2aWNlAGRldmljZXMAdGNDcmVhdGVDRFNEZXZpY2VDbGFzcwBvcmRlcmVkRWxlY3RyaWNhbFJ1bGVzAGVsZWN0cmljYWxSdWxlcwBvbmVMYXllckVsZWN0cmljYWxSdWxlcwBhcmVhQ2FwAGVkZ2VDYXBhY2l0YW5jZQBlZGdlQ2FwAHNoZWV0UmVzAHRoaWNrbmVzcwBjdXJyZW50ZGVuAGRlZmF1bHRBbnRlbm5hUnVsZQBtZmdHcmlkUmVzb2x1dGlvbgBtaW5TcGFjaW5nAHR3b0xheWVyU3BhY2luZ1J1bGVzAG9uZUxheWVyU3BhY2luZ1J1bGVzAG1pbldpZHRoAG9mZnNldABtaW5TcGFjaW5nUmFuZ2UAcGh5c2ljYWxSdWxlcwBvcmRlcmVkU3BhY2luZ1J1bGVzAGxheWVyUnVsZXMAdmlhTGF5ZXJzAHN0cmVhbUxheWVycwB0ZWNoRGlzcGxheXMAdGVjaExheWVyUHVycG9zZVByaW9yaXRpZXMAdGVjaExheWVycwBzdXBlckNsYXNzZXMAbGF5ZXJEZWZpbml0aW9ucwB0ZWNoUHVycG9zZXMAc2NzOG1zX2R2AG5ERkwxX1BSX3ZpYQBuVFBMMV9QUl92aWEAUFlMMV9QUl92aWEATDFNMV9QUl92aWEATTFNMl9QUl92aWEATTJNM19QUl92aWEATTNNNF9QUl92aWEAcnVsZVZpYV92aWEAcnVsZVZpYTFfdmlhAHJ1bGVWaWEyX3ZpYQBydWxlVmlhM192aWEAbHBwTGF5ZXJOdW0AbHBwUHVycG9zZU51bQBmb3VuZHJ5AG9hRm91bmRyeQBuZWVkVmFsaWRhdGUAdGVjaENvbnN0cmFpbnRHcm91cEdyb3VwAHRlY2hMYXllcklkVG9BcHBPYmpEZWYAb2FJbXBsaWNpdABvYURlZmF1bHQAb2FVc2VyRGVmaW5lZAB0ZWNoaU9sZERhdGFNb2RlbE51bQB1c2VyRGVmUmVzTGF5ZXJOdW0AdGVjaEhhc1Vuc3R1ZmZlZAB0ZWNoRGlzYWJsZUNvbmZDaGVjawB0ZWNoRGlzYWJsZUdyYXBoTW9kVHJpZwBzdWJzdHJhdGUAZmF0YWwAY3JpdGljYWwAc29Dcml0aWNhbABzb0Vycm9yAGFja1dhcm4AaW5mbwB0cmFjawBjZHNEZWZUZWNoTGliAGhhc0NvbmZsaWN0AHRlY2hJbXBsaWNpdFJlZgB0ZWNoVGltZVN0YW1wAGxheWVyRnVuY3Rpb25zAGxheWVyTWZnUmVzb2x1dGlvbnMAbWluU2FtZU5ldFNwYWNpbmcAbWluRXh0ZW5zaW9uRGlzdGFuY2UAQ0FQQUNJVEFOQ0UARURHRUNBUEFDSVRBTkNFAHNoZWV0UmVzaXN0YW5jZQBUSElDS05FU1MAaG9yaXpvbnRhbFJvdXRlR3JpZE9mZnNldAB2ZXJ0aWNhbFJvdXRlR3JpZE9mZnNldABjdW1EaW9kZQBjdW11bGF0aXZlVmlhQW50ZW5uYQBhbnRlbm5hAGN1bXVsYXRpdmVNZXRhbEFudGVubmEAbHBwQXR0ckZsYWcAUkVTSVNUQU5DRQB3aWR0aABkaXN0YW5jZQBtaW5Qcm90cnVkZWRQcm94aW1pdHlTcGFjaW5nAHRydW5jYXRlAHRlY2hSZXZpc2lvbgB0ZWNoSGFzVXBSZXZDaGFuZ2VzAFJvd0JuZABVbnJvdXRlZFRyawBtYXJrZXJBbm8AbWFya2VySW5mAG1hcmtlckFjawBtYXJrZXJTZXIAbWFya2VyU2NyAG1hcmtlckNydABtYXJrZXJGYXQAR3JvdXBCbmQAeTBGbHQAeTFGbHQAeTJGbHQAeTNGbHQAeTRGbHQAeTVGbHQAeTZGbHQAeTdGbHQAeThGbHQAeTlGbHQAYXJlYQBtaW5DbGVhcmFuY2UAbWluU2FtZU5ldENsZWFyYW5jZQBtaW5FeHRlbnNpb24AUHVycG9zZSBBd2FyZSBDb25zdHJhaW50AEluY3JlbWVudGFsVGVjaABfdGVjaExhc3RTYXZlZENvdW50ZXIAYmxrAGZhdABjcnQAc2VyAGFjawBpbmYAdHJrAGdyZABmaW8Ac2F2ZUdlblZpYURlZgB1c2VyRGVmUmVzTGF5ZXJCYWNrdXBOdW0ABAAAAAAAAADUAAAAAAAAAAgAAAAHAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAADUAAAAAAAAANgAAAAAAAAA3AAAAAAAAADgAAAAAAAAAOQAAAAAAAAALAEAAAAAAAC8AQAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAASAAAAAAAAACQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEQAAAAAAAAA/////wAAAMABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAMACAAAABFFWOXAu3jnMObo5qDmWOYY5djlmOaYw2jDIMLgwWDemN5o3ijd6N2w31jYWNwg3/DbqNug3IjgQOP43wDgYOQY59jjkONQ4Yjh6OOA6Sjs8OzI7HjsQOwI7+DruOmQ8cjzyOy48GDwKPAA8dDuuOwg6NDqmOrA6dDIQM/Qy2DK4MpgymAyMVAAAAAAAAAAABAAAAAAAAADMAgAAAAAAAB0AAAAUAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAAAAEAAAAAAAADAQAAAAAAAAYDAAAAAAAACAMAAAAAAAAMAwAAAAAAABIDAAAAAAAACgMAAAAAAAAPAwAAAAAAAA0DAAAAAAAABAMAAAAAAAATAwAAAAAAAMwCAAAAAAAA0AIAAAAAAADUAgAAAAAAANgCAAAAAAAA3AIAAAAAAAAIDAAAAAAAADQVAAAAAAAAYB4AAAAAAAD8IgAAAAAAACgsAAAAAAAALCwAAAAAAABcNgAAAAAAAEA3AAAAAAAAfDgAAAAAAABcOgAAAAAAAAR2EgAAAAAAqIISAAAAAAB4gxIAAAAAANSHEgAAAAAA//////////8EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAACwJAAAAAAAALAkAAAAAAAAsCQAAAAAAAJwEAAAAAAAALAkAAAAAAAAEAAAAAAAAADAKAAAAAAAA5AAAAAAAAAA8AQAAAAAAAOABAAAAAAAAqDsSAAAAAACkDAAAAAAAANAAAAAAAAAAXAQAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgQAAJIEAACFAAAAkQQAAAAAAMACAAAAAAABAAIAGAAAAAAAAAAAAAEABAAFAAYABwAAAAAAAgAIAAkACgALAAAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwAAAAAAAwADQAOAA8AAAAAAAMAEAARABIAEwAAABQAFQAWABcAAAAYABkAGgAAABsAHAAdAB4AAAAfACAAIQAAAAAABAAiACMAJAAlAAAAAAAFACYAJwAoACkAAAAqACsALAAtAAAAAAAGAC4ALwAwADEAAAAAAAcAMgAzADQANQAAAAAACAA2ADcAOAA5AAAAAAAJADoAOwA8AD0AAAAAAAoAPgA/AEAAQQAAAAAACwBCAEMARABFAAAAAAAMAEYARwBIAEkAAABKAEsATABNAAAATgBPAFAAAABRAFIAUwBUAAAAVQBWAFcAAAAAAA0AWABZAFoAWwAAAAAADgBcAF0AXgBfAAAAAAAPAGAAYQBiAGMAAAAAABAAZABlAGYAZwAAAAAAEQBoAGkAagBrAAAAAAASAGwAbQBuAG8AAAAAABMAcABxAHIAcwAAAAAAFAB0AHUAdgB3AAAAAAAVAHgAeQB6AHsAAAAAABYAfAB9AH4AfwAAAIAAgQCCAIMAAACEAIUAhgCHAAAAiACJAIoAiwAAAIwAjQCOAI8AAACQAJEAkgCTAAAAlACVAJYAAACXAJgAmQCaAAAAAAAXAJsAnACdAJ4AAAAAABgAnwCgAKEAogAAAAAAGQCjAKQApQCmAAAApwCoAKkAqgAAAKsArACtAAAAAAAaAK4ArwCwALEAAACyALMAtAAAALUAtgC3AAAAAAAbALgAuQC6ALsAAAAAABwAvAC9AL4AvwAAAAAAHQDAAMEAwgDDAAAAxADFAMYAxwAAAAAAHgDIAMkAygDLAAAAAAAfAMwAzQDOAM8AAADQANEA0gDTAAAA1ADVANYA1wAAANgA2QDaANsAAADcAN0A3gAAAN8A4ADhAOIAAAAAACAA4wDkAOUAAAAAACEA5gDnAOgA6QAAAAAAIgDqAOsA7ADtAAAAAAAjAO4A7wDwAPEAAAAAAPIAJADzAPQA9QD2AAAAAAD3ACUA+AD5APoA+wABAAIAAwAmAAEABAAFAAIAAwAEAAUAJwAGAAcAKAAGAAgACQAHAAgACQAKACkACgALACoACwAMAA0ADAANAA4ADwArAA4ADwAsABAAEAARABEAEgATABQALQASAC4AFQATABQAFQAWABcAGAAZAC8AFgAwABoAFwAYABkAGwAcAB0AHgAxABoAGwAyAB8AHAAdACAAIQAiACMAMwAeADQAJAAfACAAIQAlACYAJwAoADUAIgAjADYAKQAkACUAKgArACwALQA3APwA/QD+AP8AAAEBAQIBAwEEAQUBBgEHAQgBCQEuAC8AMAAxADgAOQA6AAoBCwEMAQ0BDgEyADMADwEQAREBEgETATQANQAUARUBFgEXARgBNgA3ABkBGgEbARwBHQE4ADkAOwA8AD0AHgEfASABIQEiAToAOwAjASQBJQEmAScBPAA9ACgBKQEqASsBLAE+AD8ALQEuAS8BMAExAUAAQQA+AD8AQAAyATMBNAE1ATYBQgBDADcBOAE5AToBOwFEAEUAPAE9AT4BPwFAAUYARwBBAUIBQwFEAUUBSABJAEEAQgBDAEYBRwFIAUkBSgFKAEsASwFMAU0BTgFPAUwATQBQAVEBUgFTAVQBTgBPAFUBVgFXAVgBWQFQAFEARABFAEYARwBIAEkASgBLAEwATQBOAE8AWgFSAFMAWwFcAVQAVQBdAV4BUABWAFcAXwFgAVEAYQFYAFkAYgFjAVoAWwBkAWUBUgBcAF0AZgFnAVMAaAFeAF8AaQFqAWAAYQBrAWwBVABiAGMAbQFuAVUAVgBXAFgAWQBaAFsAXABdAF4AXwBvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AWAAYQBiAGMAZABlAGYAZwBoACYAJwBkAGUAZgBnACgAaABpACkAagBrAGwAbQAqAG4AKwAsAGkAbwAtAC4AcABxAHIAcwBqAC8AdABrAHUAbAB2AHcAMAAxAHgAeQB6AHsAMgB8AH0AMwB+AH8ANACAAG0AgQBuAIIAgwA1ADYAhACFAIYAhwA3AIgAiQA4AIoAiwA5AG8AjAA6ADsAPACNAI4AjwCQAHAAPQCRAHEAkgByAJMAlAA+AD8AlQCWAJcAmABAAJkAQQCaAHMAmwB0AJwAnQCeAEIAnwCgAEMAoQB1AKIAdgCjAKQARABFAKUApgBGAKcAdwCoAHgAqQCqAEcASACrAKwArQCuAEkASgBLAK8AsAB5ALEAsgBMAHoAswBNAE4ATwC0AHsAtQB8ALYAtwBQAFEAuAC5AFIAugB9ALsAfgC8AL0AvgBTAL8AwADBAMIAVADDAMQAVQDFAMYAVgB/AMcAVwBYAFkAyADJAMoAywCAAFoAzACBAM0AggDOAM8A0ABbANEA0gDTANQAXADVAF0AXgCDANYAXwBgANcA2ADZANoAhABhANsAhQDcAIYA3QDeAIcAiACJAIoAiwCMAI0AjgCPAJAA3wDgAOEA4gDjAOQA5QACAAMABAAFAAYABwAIAAkACgALAAwADQAOAPMA9AD1APYA9wD4APkADwAgAB8AHgAdABwAGQAbABoABAAFAAYABwAIAAkACgAHAQgBCQEKAQsBDAENAQ4BDwEQAREBfAF9AX4BfwGAAYEBggGDAYQBhQGGAQEAEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagGHAYgBiQGKAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BAAAAwAIAAACGFpEWqRZ5K8gWzxbYFt8W5hb6FgMXDhccFykX3xbmFvoWAxcOFxwXOBdBF1gXbhedF8YX4Bf3Fw8YIQB2GJYYAADyGA0ZLBmaGbsZ4hkGGiIaORp1GqAayhrsGgkbNBtcG5Mb3BscHEsclhz3HAkdHx1AHV0dqh3AHd8dHB4+Hlkeqh/PFrsf+hYDFw4XHBdYF98W5hb6FgMXDhccF8wf+hYDFw4XHBfkH/oWAxcOF8YX+hYDFw4XHBeWGPoWAxcOF/IY3xbmFvoWAxcOFxwXDRnfFuYW+hYDFw4XHBe7GfoWAxcOFxwXCRvfFuYW+hYDFw4XHBfsGt8W5hb6FgMXDhccF5oZ3xbmFvoWAxcOFxwXLBnfFuYW+hYDFw4XHBfxH98W5hb6FgMXDhccF/cc3xbmFvoWAxcOFxwXdRrfFuYW+hYDFw4XHBfiGfoWAxcOFxwXBhr6FgMXDhcBIPoWAxcOFxwXORr6FgMXDhddHd8W5hb6FgMXDhccFwwg3xbmFvoWAxcOFxwXHx3fFuYW+hYDFw4XHBcJHd8W5hb6FgMXDhccF98d3xbmFvoWAxcOFxwXwB3fFuYW+hYDFw4XHBccHt8W5hb6FgMXDhccFz4e3xbmFvoWAxcOFxwXqh3fFuYW+hYDFw4XHBfKGt8W5hb6FgMXDhccFyMg+hYDFw4XHBc7IPoWAxcOFxwXUyD6FgMXDhccF50XAxf6Fg4XHBdnIPoWAxcOFxwX4Bf6FgMXHBd4IPoWAxcOFxwXNBvfFuYW+hYDFw4XHBdAHd8W5hb6FgMXDhccF4kg3xbmFvoWAxcOFxwXDxj6FgMXDhccFyIa+hYDFw4X9xffFuYW+hYDFw4XHBeYIPoWAxcOF68g+hYDFw4XSxzfFuYW+hYDFw4XHBeWHN8W5hb6FgMXDhccFxwc3xbmFvoWAxcOFxwXXBv6FgMXDhccF5Mb3xbmFvoWAxcOFxwX3BvfFuYW+hYDFw4XHBe/IPoWAxcOFxwXoBr6FgMXDhccF24X+hYDFw4XHBdZHvoWAxcOF6of+hYDFw4XHBd2GN8W5hb6FgMXDhfQIN8W5hb6FgMXDhccF00Y3xbmFvoWAxcOFxwX2RjfFuYW+hYDFw4XHBfaIN8W5iDmFvoWAxcOFxwX8SDfFuYg5hb6FgMXDhccF/8gRyFQIV8hcSF/IYwhliGjIaohuiHMIUchUCFfIXEhfyGMIZYhoyGqIbohzCFHIVAhXyFxIX8hjCGWIaMhqiG6IcwhRyFQIV8hcSF/IYwhliGjIaohuiHMIVAhXyFxIX8hjCFHIZYhoyGqIbohzCFQIV8hcSF/IYwhRyGWIaMhqiG6IcwhRyFQIV8hcSF/IYwhliGjIaohuiHMIVAhXyFxIX8hjCFHIZYhoyGqIbohzCFHIVAhXyFxIX8hjCGWIaMhqiG6IcwhIyIvIkEiVSJdImcieiKKIp0isCLJIuIi8SIAIy0jLSMtIy0jUxhtGGQYbyOBI44jnCOsI7QjviNvI4EjjiOcI6wjtCO+I28jgSOOI5wjrCO0I74jbyOBI44jnCOsI7QjviNTGG0YZBhvI4EjjiOcI6wjtCO+I28jgSOOI5wjrCO0I74jbyOBI44jnCOsI7QjviNvI4EjjiOcI6wjtCO+I1MYbRhkGG8jgSOOI5wjrCO0I74jbyOBI44jnCOsI7QjviNvI4EjjiOcI6wjtCO+I28jgSOOI5wjrCO0I74jUxhtGGQYbyOBI44jnCOsI7QjviNvI4EjjiOcI6wjtCO+I28jgSOOI5wjrCO0I74jbyOBI44jnCOsI7QjviPpI+kj6SPpIyckJyQnJCckJyQnJCckJySBI0ckUCRZJGMkbSR9JIgkjyQnJG0kfSSIJI8kJySBI0ckUCRZJGMkbSR9JIgkjyQnJG0kfSSIJI8kJySBI0ckUCRZJGMkbSR9JIgkjyQnJG0kfSSIJI8kJySkJKQkpCSkJKQkpCSkJP4jJCUuJTYlNiU2JTYlNiU2JTYlNiU2JTYlNiU2JTYlJyQnJCckJyQnJCckJyQnJCckbyV/IZYhUCGWIVAhfyFvJW8lfyGWIVAhliFQIX8hbyVHIVAhXyFxIX8hjCGWIaMhqiG6IcwhfyFHIaAlsSXMIbslxSVvJX8hliFQIZYhUCF/IW8lbyV/IZYhUCF/IUchoCWxJcwhuyXFJW8lfyGWIVAhliFQIX8hbyVvJX8hliFQIVAhXyFxIX8hjCFHIZYhoyGqIbohzCF/IUchoCWxJcwhuyXFJW8lfyGWIVAhliFQIX8hbyV/IUchoCWxJcwhuyXFJW8lfyGWIVAhfyFHIaAlsSXMIbslxSVvJX8hliFQIX8hRyGgJbElzCG7JcUlbyV/IZYhUCGWIVAhfyFvJUchqiG6IcwhoyGWIVAhXyFxIX8hjCF/IUchoCWxJcwhuyXFJW8lfyGWIVAhfyFHIaAlsSXMIbslxSVvJX8hliFQIZYhUCF/IW8lbyV/IZYhUCFQIV8hcSF/IYwhRyGWIaMhqiG6IcwhfyFHIaAlsSXMIbslxSVvJX8hliFQIZYhUCF/IW8lRyFQIV8hcSF/IYwhliGjIaohuiHMIX8hRyGgJbElzCG7JcUl6SXpJekl6SXpJekl6SXpJekl6SXlIeUh5SHlIeUh5SHlIcgqyCrIKsgqyCrIKtQq1CrUKtQq1CrUKtQqHgD2A/cD+AP5A/oD+wMiBHkreSt5K3kreSt5K3kreSv0KvQq9Cr0KvQq9Cr0KvwDWydbJ1snWydbJ1snWydbJ1snWyd7BBgEGQQaBBsEHAQdBB4EHwQgBCEEyCp2BCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvBDAEMQQyBDMENAQ1BDYENwQ4BDkEOgQ7BHwEPQQ+BD8EQARBBEIEQwREBEUERgRHBEgESQRKBEsETARNBE4ETwRQBFEEUgRTBFQEVQRWBFcEWARZBFoEWwRcBF0EXgRfBGAEYQRiBGMEZARlBGYEZwRoBGkEagRrBGwEbQRuBG8EcARxBHIEcwR0BHUEDQR3BHgEeQR6BH0EfgR/BP0DPASABIEEggSDBIQEhQSGBIcEiASJBIoEiwSMBI0EjgSPBJAEkQQAAADAAgAAAAEAAQABADEAAQAFAAYABwAIAAcABwAHAAcABgAOAA8ADgAOAA4ADgABABUAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABUAQwBEAEQARABEAEMASQBKAEkASQBJAEkAQwBQAFAAUABQAEMAVQBVAFUAQwBZAFkAWQBZAEMAXgBeAF4AQwBiAGMAYgBiAGIAYgBDAGkAagBpAGkAaQBpAEMAcABwAHAAcABDAHUAdgB1AHUAdQB1AEMAfAB9AHwAfAB8AHwAQwCDAIQAgwCDAIMAgwBDAIoAiwCKAIoAigCKAEMAkQCSAJEAkQCRAJEAQwCYAJkAmACYAJgAmABDAJ8AoACfAJ8AnwCfAEMApgCmAKYApgBDAKsAqwCrAEMArwCvAK8ArwBDALQAtAC0AEMAuAC5ALgAuAC4ALgAQwC/AMAAvwC/AL8AvwBDAMYAxwDGAMYAxgDGAEMAzQDOAM0AzQDNAM0AQwDUANUA1ADUANQA1ABDANsA3ADbANsA2wDbAEMA4gDjAOIA4gDiAOIAQwDpAOoA6QDpAOkA6QBDAPAA8QDwAPAA8ADwAEMA9wD4APcA9wD3APcAQwD+AP4A/gD+AEMAAwEDAQMBAwFDAAgBCAEIAQgBQwANAQ0BDQENAUMAEgESARIBEgFDABcBFwEXAUMAGwEbARsBGwFDACABIQEgASABIAEgAUMAJwEoAScBJwEnAScBQwAuAS8BLgEuAS4BLgFDADUBNQE1ATUBQwA6AToBOgFDAD4BPwE+AT4BPgE+AUMARQFFAUUBQwBJAUkBSQFDAE0BTgFNAU0BTQFNAUMAVAFVAVQBVAFUAVQBQwBbAVwBWwFbAVsBWwFDAGIBYgFiAWIBQwBnAWgBZwFnAWcBZwFDAG4BbwFuAW4BbgFuAUMAdQF1AXUBdQFDAHoBegF6AXoBQwB/AX8BfwF/AUMAhAGEAYQBQwCIAYgBiAGIAUMAjQGOAY0BjQGNAUMAkwGUAZMBkwGTAZMBQwCaAZsBmgGaAZoBmgFDAKEBogGhAaEBoQGhAUMAqAGpAakBqAGoAagBqAFDALABsQGxAbABsAGwAbABAQALAAsACwALAAsACwALAAsACwALAAsADQANAA0ADQANAA0ADQANAA0ADQANAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwARABEAEQARABEAEQARABEAEQARABEAEwATABMAEwATABMAEwATABMAEwATABUAFQAVABUAFQAVABUAFQAVABUAFQAXABcAFwAXABcAFwAXABcAFwAXABcAGQAZABkAGQAZABkAGQAZABkAGQAZABsAGwAbABsAGwAbABsAGwAbABsAGwAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAOgA7ADwAPQAaABoAGgBBAEEAQQBBAEEAQQBBAEIAQgBCAEIAQgBCAEIAQwBDAEMAQwBDAEMAQwBEAEQARABEAEQARABEAB4AHgAeAEsASwBLAEsASwBLAEsATABMAEwATABMAEwATABNAE0ATQBNAE0ATQBNAE4ATgBOAE4ATgBOAE4AIgAiACIAVQBVAFUAVQBVAFUAVQBWAFYAVgBWAFYAVgBWAFcAVwBXAFcAVwBXAFcAWABYAFgAWABYAFgAWAAmACYAJgBfAF8AXwBfAF8AXwBfAGAAYABgAGAAYABgAGAAYQBhAGEAYQBhAGEAYQBiAGIAYgBiAGIAYgBiAGYAZwBoAGkAawBsAG4AbwBxAHIAdAB1AHYAdgB2AHYAdgB3AHcAdwB3AHcAeAB4AHgAeAB4AHkAeQB5AHkAeQB6AHoAegB6AHoAewB7AHsAewB7AHwAfAB8AHwAfAB9AH0AfQB9AH0AfgB+AH4AfgB+AH8AgACBAIIAgwCEAIUAPgA+AD4ArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQC7ALwAvQC+AL8AwADBAMIAwwDLAMsAywDLAM0AzQDNAM0A0gDSANIA0gDVANUA1QDVANgA2ADYANgA2ADYANgA2ADYANgA2ADbANsA2wDbANsA2wDbAN8A3wDfAN8A4wDjAOMA4wDmAOYA5gDmAOkA6QDpAOkA6QDpAOkA7QDtAO0A7QDvAO8A7wDvAPQA9AD0APQA9wD3APcA9wD3APcA9wD3APcA9wD3APoA+gD6APoA+gD6APoA/gD+AP4A/gACAQIBAgECAQUBBQEFAQUBBQEFAQUBCQEJAQkBCQENAQ0BDQENAQ0BDQENAREBEQERAREBFQEVARUBFQEVARUBFQEZARkBGQEZARsBGwEbARsBIAEgASABIAEgASABIAEgASABIAEgASMBIwEjASMBIwEjASMBJwEnAScBJwErASsBKwErASsBKwErAS8BLwEvAS8BMQExATEBMQE2ATYBNgE2ATkBOQE5ATkBOQE5ATkBOQE5ATkBOQE8ATwBPAE8ATwBPAE8AUABQAFAAUABRAFEAUQBRAFHAUcBRwFHAUcBRwFHAUcBRwFHAUcBSQFJAUkBSQFJAUkBSQFOAU8BUAFRAVIBUwFUAVUBVgFXAWwBbQFuAW8BcAFxAXIBRwBFAEMAQQA/ADgASQBHAEUAQwBBAD8AOACBAYIBgwGEAYUBhgGHAUkASQBHAEUAQwBBADQAPwA4AEkARwBFAEMAQQA/ADgAmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQFJAN4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8BAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAgAAAMABAAAAAAEBDQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAgICAgICAgICAgICAgMDAwMCAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwICAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwICAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw0NDQ0NDQ0NDQ0NDQ0DAwMDAwMDDQ0NDQ0NDQ0NDQ0NDQ0NDQMDAwMDAwMDAwMDAwMDAwMDAwMDAwMNAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAADAAgAAALgBFQAAAAAAAwAAAA4ADQAAAAAACgALAAwAAAAUAAAAAAARABIAEwAFAEMAQgAAABgAGQAaABsAHAAdAB0AHwAgACAAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAAAAsAFIAAAARgBHAAAATwAAAAAATABNAE4ASQBUAAAAUgBTAFAAWAAAAFcAVQBdAAAAWwBcAFkAYQAAAGAAXgBoAAAAAABlAGYAZwBiAG8AAAAAAGwAbQBuAGkAdAAAAHIAcwBwAHsAAAAAAHgAeQB6AHUAggAAAAAAfwCAAIEAfACJAAAAAACGAIcAiACDAJAAAAAAAI0AjgCPAIoAlwAAAAAAlACVAJYAkQCeAAAAAACbAJwAnQCYAKUAAAAAAKIAowCkAJ8AqgAAAKgAqQCmAK4AAACtAKsAswAAALEAsgCvALcAAAC2ALQAvgAAAAAAuwC8AL0AuADFAAAAAADCAMMAxAC/AMwAAAAAAMkAygDLAMYA0wAAAAAA0ADRANIAzQDaAAAAAADXANgA2QDUAOEAAAAAAN4A3wDgANsA6AAAAAAA5QDmAOcA4gDvAAAAAADsAO0A7gDpAPYAAAAAAPMA9AD1APAA/QAAAAAA+gD7APwA9wACAQAAAAEBAf4ABwEAAAUBBgEDAQwBAAAKAQsBCAERAQAADwEQAQ0BFgEAABQBFQESARoBAAAZARcBHwEAAB0BHgEbASYBAAAAACMBJAElASABLQEAAAAAKgErASwBJwE0AQAAAAAxATIBMwEuATkBAAA3ATgBNQE9AQAAPAE6AUQBAAAAAEEBQgFDAT4BSAEAAEcBRQFMAQAASwFJAVMBAAAAAFABUQFSAU0BWgEAAAAAVwFYAVkBVAFhAQAAAABeAV8BYAFbAWYBAABkAWUBYgFtAQAAAABqAWsBbAFnAXQBAAAAAHEBcgFzAW4BeQEAAHcBeAF1AX4BAAB8AX0BegGDAQAAgQGCAX8BhwEAAIYBhAGMAQAAigGLAYgBkgEAAAAAkAGRAY0BmQEAAAAAlgGXAZgBkwGgAQAAAACdAZ4BnwGaAacBAAAAAKQBpQGmAaEBrwGrAQAAAACsAa0BrgGoAbcBswEAAAAAtAG1AbYBAADDAQAAugG7AbwBvQG+Ab8BwAHBAcIBzgEAAMUBxgHHAcgByQHKAcsBzAHNAdkBAADQAdEB0gHTAdQB1QHWAdcB2AHkAQAA2wHcAd0B3gHfAeAB4QHiAeMB7wEAAOYB5wHoAekB6gHrAewB7QHuAfoBAADxAfIB8wH0AfUB9gH3AfgB+QEFAgAA/AH9Af4B/wEAAgECAgIDAgQCEAIAAAcCCAIJAgoCCwIMAg0CDgIPAhsCAAASAhMCFAIVAhYCFwIYAhkCGgIpAgAAHQIeAh8CIAIhAiICIwIkAiUCJgInAigCAAAAAAAAAAAwAgAALwI3AgAAMgIzAjQCNQI2Aj4CAAA5AjoCOwI8Aj0CRQIAAEACQQJCAkMCRAJMAgAARwJIAkkCSgJLAk8CAABOAlYCAABRAlICUwJUAlUCXQIAAFgCWQJaAlsCXAJkAgAAXwJgAmECYgJjAmsCAABmAmcCaAJpAmoCbgIAAG0CdQIAAHACcQJyAnMCdAJ8AgAAdwJ4AnkCegJ7AoMCAAB+An8CgAKBAoICigIAAIUChgKHAogCiQKNAgAAjAKUAgAAjwKQApECkgKTApsCAACWApcCmAKZApoCogIAAJ0CngKfAqACoQKpAgAApAKlAqYCpwKoAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALoCAAC3ArgCuQK/AgAAvAK9Ar4CxAIAAMECwgLDAskCAADGAscCyALOAgAAywLMAs0C0wIAANAC0QLSAtgCAADVAtYC1wLdAgAA2gLbAtwC4gIAAN8C4ALhAgAAAAAAAAAAAAAAAAAA7AIAAOsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAwAABAMFAwoDAAAIAwkDDgMAAAwDDQMSAwAAEAMRAx0DAAAUAxUDFgMXAxgDGQMaAxsDHAMkAwAAHwMgAyEDIgMjAygDAAAmAycDLAMAACoDKwMwAwAALgMvAzcDAAAyAzMDNAM1AzYDOwMAADkDOgM/AwAAPQM+A0MDAABBA0IDTgMAAEUDRgNHA0gDSQNKA0sDTANNA1UDAABQA1EDUgNTA1QDWQMAAFcDWANdAwAAWwNcA2QDAABfA2ADYQNiA2MDaAMAAGYDZwNvAwAAagNrA2wDbQNuA3MDAABxA3IDegMAAHUDdgN3A3gDeQN+AwAAfAN9A4IDAACAA4EDjQMAAIQDhQOGA4cDiAOJA4oDiwOMA5QDAACPA5ADkQOSA5MDmAMAAJYDlwOfAwAAmgObA5wDnQOeA6MDAAChA6IDpwMAAKUDpgOrAwAAqQOqA7YDAACtA64DrwOwA7EDsgOzA7QDtQO9AwAAuAO5A7oDuwO8A8EDAAC/A8ADxQMAAMMDxAPQAwAAxwPIA8kDygPLA8wDzQPOA88D1wMAANID0wPUA9UD1gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wMABAEEAgQEBAUEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8DBgQHBAgECQQKBAAACwQMBO8D8APxA/ID8wP0A/UDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWbAAAwCQAAAQAAAAIAAAAZQBUABQASAAlAGUAZQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBwADAAMAAwADAAMAAwAAIAMAAwAAIAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAJQBlAFQAFAAUABQAJQBlAFAAFAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAlAFQAFAAUABQAJQBUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBUABQAFAAUACUAVAAUABQAJQBUABQAFAAUACUAVAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAUACUAVAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAUACUAVAAUABQAJQBUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAVAAUABQAFAAlAFQAFAAUACUAZQBQABQAFAAUABQAJQBUABQAFAAlAFQAFAAUACUAZQBQABQAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAVAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBUABQAFAAUACUAVAAUABQAFAAlAFQAFAAUABQAJQBUABQAFAAlAFQAFAAUABQAJQBlAFAAFAAUABQAJQBlAFAAFAAUABQAFAAlAGUAUAAUABQAFAAUACUAZQBQABQAFAAUABQAJQBlAFQAEAAUABQAFAAUACUAZQBUABAAFAAUABQAFAAgAGAAIAAQABgAIAAgABgAGAAYABgAEABgACAAEAAYACAAIAAYABgAGAAYABAAYAAgABAAGAAgACAAGAAYABgAGAAQAGAAIAAQABgAIAAgABgAGAAYABgAEABgABAAGAAgACAAIAAYABgAGAAYABAAYAAQABgAIAAgACAAGAAYABgAGAAQAGAAIAAQABgAIAAgABgAGAAYABgAEABgABAAGAAgACAAIAAYABgAGAAYABAAYAAgABAAGAAgACAAGAAYABgAGAAQAFSAFIAUgBSAFIAUgBSAFIAUgBSAFIAUgBSAFIBYAFgAWABYAFCAEIAQgFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAUIAQgBCAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABQgBCAEIBUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFCAEIAQgFQAFAAUABQAFAAYABgAVAAUABQAFAAUABgAGABUABQAFAAUABQAGAAYAFQAFAAUABQAFAAYABgAUABQAFAAUABQAFAAUABQAFAAUABQAFAAVAAYABgAFAAUAFgAGAAUABQAEABYABgAFAAUABAAVAAYABgAFAAUAFgAGAAUABQAEABYABgAFAAUABAAVAAYABgAFAAUAFgAGAAUABQAEABYABgAFAAUABAAUABQAFAAUABQAFAAUABQgBCAEIBUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAUABQAFAAUABQAFAAUABQAGAAIAAYABgAWAAYACAAGABYACAAGAAYAFgAGAAgABgAYAAgABAAGAAgACAAGAAYABgAGAAQAGAAGAAQABgAEAAYABgAYAAgABgAGABYABgAIAAYAFgAIAAYABgAYAAYABAAGAAQABgAGABgACAAGAAYAFgAGAAgABgAWAAgABgAGABgABAAGAAgACAAIAAYABgAGAAYABAAYAAYABAAGAAQABgAGABgACAAGAAYAFgAGAAgABgAYAAYABAAGAAQABgAGABYACAAGAAYAGAAGAAQABgAEAAYABgAYAAgABgAGABgABgAEAAYABAAGAAYAGAAIAAYABgAWAAYACAAIABgABgAGAAQABgAGAAgABAAGAAgACAAYAAYABAAGAAQABgAGABgACAAGAAYAGAAGAAQABgAEAAYABgAWAAgABgAGABYABgAIAAYAFgAIAAYABgAYAAQABgAIAAgACAAGAAYABgAGAAQAGAAGAAQABgAEAAYABgAWAAgABgAGABYABgAIAAYAGAAIAAQABgAIAAgABgAGAAYABgAEABgABgAEAAYABAAGAAYAFAAUABQAFAAUABQAFAAUABQAFAAWABYAFgAWABYAFgAWABIAEgASABIAEgASAAIAAgACAAIAAgACAAIAAIAAgACAAIAAgACAAIAAgAIAAgACAAIAAgASAAIAAgAAAAAAAAAAAAAAAAAAAACAFgAWABYAFgAWABYAFgAWABYAFgAAgACAAIAAgACAAIAAgACAAIAAgACAEgAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAABAAAAAKAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAACkAAAAAAAAAAYAAAAFAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAKQAAAAAAAAAqAAAAAAAAACsAAAAAAAAALAAAAAAAAAAtAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAoAAAADAAAA/////wAAAMAIBwAAeAAAAAIAAADQBwAAIAMAACADAABeAQAAXgEAAGQAAAC0AAAABAAAAKQAAAAAAAAABgAAAAUAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAApAAAAAAAAACoAAAAAAAAAKwAAAAAAAAAsAAAAAAAAAC0AAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAJAAAA/////wAAAMDHbtk2XnURN5dkUzf3zJI3FG3YNxPFGjhRTN44qyArNnfMqzXr9fY14b6jNe8/8DVgxlo2Ks4sN0JgZTwxCCw9MQgsPQAAAD4AAAA+MzNDQQAA4UTNzEBCAADwQgAA4UQAAPBCzcxAQjMzQ0EAAAA+AAAAPjEILD0xCCw9QmBlPAQAAAAAAAAApAAAAAAAAAAGAAAABQAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAACkAAAAAAAAAKgAAAAAAAAArAAAAAAAAACwAAAAAAAAALQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAoAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACQAAAAAAAAAP////8AAADAAgAAAO8WMBfvFu8W7xbvFu8WMBfvFu8WMBfvFjAXMBcwFzAXMBcwFzAXMBcwF+8W7xbvFu8W7xYwFzAXMBcwFzAXMBdaAVoBMBfvFu8WaiHdIWoh3SFqId0haiHdIWoh3SFqId0haiHdIWoh3SFqId0hUxhtGGQYUxhtGGQYUxhtGGQYUxhtGGQY/iMGJAwkFCQzJDwkMyQ8JDMkPCQzJDwkMyQ8JDMkPCQ8JDMktSS/JMok1STeJOck8CT+IyQlLiVaJVolWiVaJTwkMyQ8JDMkPCRqId0hsCtqIbAraiFqId0hsCtqIbAraiGwK2ohsCtqId0haiGwK2ohsCtqIWoh3SGwK2ohaiHdIbAraiHxJfolAyYMJhUmHiYnJjEmOyZFJgQAAAAAAAAAvAAAAAAAAAAHAAAABgAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAAABAwAAAAAAALwAAAAAAAAAwAAAAAAAAADEAAAAAAAAAMgAAAAAAAAAzAAAAAAAAADoAwAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAHAMAAAAAAAC8NxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoBAACKAQAAEAAAAIYBAAAAAADAAgAAAKIWohaGAaIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWohaiFqIWAAB8AX0BfgF/AYABgQGCAYMBhAGFAYgBiQGKAQMAAAAAwAQAAAABAAAAhwAAAAAAAAB3HgAA6yEAAEclAABlJwAA9ikAAN4qAAClKwAAriwAAOgsAAB3MQAA2jEAAO4xAAAQMgAAfF0AALhfAADjXwAANWIAAI15AABlfAAAZH4AAHh+AAB+twAAFboAALO7AAD0BAEAdgkBAOMJAQAXDAEA8SMBAAQnAQC1KAEAb84BAC3iAQCt4wEAAQACAOynAgDwugIAirwCAATAAgCd4gIAVucCAN/nAgABAAQAiSwFAPk4BQBHOwUAZj0FAL2UBQAemQUAb5kFAIGdBQDdtAUA4rYFABW3BQAptwUA3fkFAOH9BQBT/gUAAQAGAJAGBgAXBwYANwcGAOcHBgDjHgYA1yEGACgiBgDPJAYADCgGAGYoBgB4KAYA3SgGAFM+BgDfQAYAg0IGAJdCBgAVigYAZ40GAPyOBgCa9gYAgfsGADT8BgCu/QYAViwHAFAuBwCELwcAoX4HANqFBwAAhwcAV4wHAFmnBwCyqQcA6qkHAI2sBwC4wAcAy8IHAPLCBwAHxQcApNQHAJXWBwCq1gcAAQAIACIpCAA8LQgAES4IABIxCAAYRQgAGkcIAF5HCABVSQgAtF4IAKFgCAALYQgAt2IIANxzCACbdQgA+nUIACx3CACWiAgATYoIAKCKCADSiwgAXKwIAPeuCABRrwgA/7AIAOKNCQBsmQkAUJoJAAEACgDUrAoACrcKAAC4CgC3vQoA4d0KAALhCgAo4QoACuMKAM3nCgDmEQsAmBILAAEADACaWw0A3W0NAN9uDQA2dg0Ad5UNAAGXDQABAA4AyKAOAOGqDgDXqw4AZbEOAG4pDwA8Mw8A0TQPAD83DwAdYg8A8WQPAIZlDwBQZw8Ag44PAIOQDwAkkQ8AAJIPAOqUDwBElQ8AZpUPAFCWDwAExA8A0cUPANbGDwCz1Q8AYdcPANnXDwDJ2A8AWOQPABDlDwDV5Q8ABu0PAKDtDwABABAAd0wQAD9TEAAYVBAAY1gQAJqdEACgpBAAR6UQAOypEADZ9xAALP4QAN7+EAArAxEAhBURAP4WEQBxFxEAPxgRADowEQD+MhEAKzMRAD82EQBQShEAxEwRAANNEQBlTxEAH34RAI+BEQDlgREA7oMRAMe6EQD6vhEAfb8RAJPAEQA88hEA5/URAJ/2EQCX9xEAIPsRAIf7EQDf+xEAPvwRAFj8EQCA/BEAjvwRAP79EQABABIAfQESANABEgACAhIAFAISAF0CEgDRAhIAKAMSADwDEgC6AxIAbQQSAP8EEgBgBRIADgYSADQGEgC3BhIAFwcSACkHEgDKBxIA8AcSAE8IEgCJCBIAmwgSAP8IEgCSGRIAghwSAO0dEgDTHhIANyISAEIiEgBZIhIAXiISAGoiEgBvIhIAeiISAH8iEgCLIhIAlCISAJgiEgCcIhIAoCISAKQiEgCoIhIArCISALAiEgC0IhIAuCISALwiEgDAIhIAxCISAMgiEgDMIhIA0CISANQiEgDYIhIA3CISAOAiEgDkIhIA6CISAOwiEgDwIhIA9CISAPgiEgD8IhIAACMSAAQjEgAIIxIADCMSABAjEgAUIxIAGCMSABwjEgAgIxIAJCMSACgjEgAsIxIAMCMSADQjEgA4IxIAPCMSAEAjEgBEIxIASCMSAEwjEgBQIxIAVCMSAFgjEgBcIxIAYCMSAGQjEgBoIxIAbCMSAHAjEgB0IxIAeCMSAHwjEgCAIxIAhCMSAIgjEgCMIxIAkCMSAJQjEgCYIxIAnCMSAKAjEgCkIxIAqCMSAKwjEgCwIxIAtCMSALgjEgC8IxIAwCMSAMQjEgDIIxIAzCMSANAjEgDUIxIA6yMSAPUjEgABJBIABSQSAAkkEgANJBIAESQSACgkEgAyJBIAPiQSAEIkEgBGJBIASiQSAE4kEgBkJBIAciQSAIIkEgCGJBIAiiQSAI4kEgCSJBIAqiQSAMIkEgDZJBIA8CQSAAclEgAeJRIANSUSAEwlEgBjJRIAeyUSAJMlEgCrJRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAIcAAAD5DgAAAAAAAHUDAABdAwAAHwIAAJICAADpAAAAyAAAAAoBAAA7AAAAkAQAAGQAAAAVAAAAIwAAAG0rAAA9AgAALAAAAFMCAABZFwAA2QIAAAACAAAVAAAABzkAAJgCAACfAQAAQkkAAIMEAABuAAAANQIAANsXAAAUAwAAsgEAALulAAC/EwAAgQEAAGYDAADspwAABRMAAJsBAAB7AwAAmiIAALoEAACKAAAAOgMAAIksAQBxDAAATwIAACACAABYVwAAYgQAAFIAAAATBAAAXRcAAAYCAAA0AAAAFQAAALVCAAAFBAAAcwAAAJsBAACQBgAAiAAAACEAAACxAAAA/RYAAPUCAABSAAAAqAIAAD4DAABbAAAAEwAAAGYAAAB3FQAAjQIAAKUBAAAVAAAAf0cAAFMDAACWAQAAn2cAAOgEAAC0AAAAewEAAKkuAAD7AQAANQEAAB5PAAA6BwAAJwEAAFgFAAADGwAAWgIAADkAAACkAgAALBQAABQCAAAoAAAAFgIAAJ4PAADyAQAAFgAAAFsBAAAiKQAAGwQAANYAAAACAwAABxQAAAMCAABFAAAA+AEAAGAVAADuAQAAawAAAK0BAAAmEQAAwAEAAGAAAAAzAQAAaxEAALgBAABUAAAAMwEAAIsgAACcAgAAWwAAAK8BAADk3AAAiwsAAOUAAAB+BQAA1KwAADcKAAD3AAAAuAUAACsgAAAiAwAAJwAAAOMBAADEBAAAGioAALMAAABgAwAAmlsBAEQSAAADAQAAWAcAAEIfAACLAQAA5gAAAMigAAAaCgAA9wAAAI8FAAAKeAAAzwkAAJYBAABvAgAA3yoAANUCAACWAAAAywEAADQnAAABAgAAogAAAN0AAADrAgAAWwAAACMAAADrAAAAtS0AAM4BAAAGAQAA3g4AAK8BAAB5AAAA8QAAAJALAAC5AAAAxgAAADIHAACbAAAArAAAAHdMAADJBgAA2gAAAEwEAAA4RQAABwcAAKgAAACmBAAA7k0AAFQGAACzAAAATgQAAFoSAAB7AQAAdAAAAM8AAAD8FwAAxQIAAC4AAAAVAwAAEhQAAHUCAABAAAAAYwIAALsuAABxAwAAVwAAAAoCAADaNgAANAQAAIQAAAAXAQAAqjEAAKwDAAC5AAAA+QAAAIoDAABoAAAAWQAAAGAAAAAbAAAAKQAAAA8AAABxAQAA4QAAAH0BAABUAAAAMwAAABMAAABKAAAAdQAAAFgAAAAVAAAAfwAAALQAAACTAAAAYgAAAK8AAAAnAAAAhAAAAGEAAAATAAAAogAAACcAAABgAAAAOwAAABMAAABlAAAAlBAAAPECAABsAQAA5wAAAGUDAAAMAAAAGAAAAAYAAAANAAAABgAAAAwAAAAGAAAADQAAAAoAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAABgAAAALAAAADQAAAAUAAAAFAAAABQAAAAUAAAAYAAAACwAAAA0AAAAFAAAABQAAAAUAAAAFAAAAFwAAAA8AAAARAAAABQAAAAUAAAAFAAAABQAAABkAAAAZAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABkAAAAZAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBIAGysSAFEUAADvGAAA6RQBABQAAAD9JwAANGAAAArqAAAbaAAAthEAACMBAAAAAAAAAAAAAAAAAAAAAAAAKCgiTTNNNF9DIiAic3ltYm9saWMiKSAoIk0yTTNfQyIgInN5bWJvbGljIikgKCJNMU0yX0MiICJzeW1ib2xpYyIpICgiTDFNMV9DIiAic3ltYm9saWMiKSAoIlBZTDFfQyIgInN5bWJvbGljIikgKCJUUEwxX0MiICJzeW1ib2xpYyIpKQAoKCJ2YXJhY3RvcjIiICJzeW1ib2xpYyIpICgiaXNvUHdlbGxSRVMiICJzeW1ib2xpYyIpICgiaHZERlRQTTFzMmVuaCIgInN5bWJvbGljIikgKCJhbmNob3IiICJzeW1ib2xpYyIpICgicGFkUEx3bGJpIiAic3ltYm9saWMiKSAoInBhZFBMaHAiICJzeW1ib2xpYyIpICgicGFkUExmcCIgInN5bWJvbGljIikgKCJwYWRQTHN0ZyIgInN5bWJvbGljIikgKCJhZHZhbmNlZFNlYWwiICJzeW1ib2xpYyIpICgiYWR2U2VhbF82dW0iICJzeW1ib2xpYyIpICgibmlrb24iICJzeW1ib2xpYyIpICgiTTNmdXNlIiAic3ltYm9saWMiKSAoIkZVU0VfTTJNMyIgInN5bWJvbGljIikgKCJNM21ldG9wIiAic3ltYm9saWMiKSAoIk0zTTRfVCIgInN5bWJvbGljIikgKCJNNF9UIiAic3ltYm9saWMiKSAoIk0yTTNfVCIgInN5bWJvbGljIikgKCJNM19UIiAic3ltYm9saWMiKSAoIk0xTTJfVCIgInN5bWJvbGljIikgKCJNMl9UIiAic3ltYm9saWMiKSAoIk0xX1QiICJzeW1ib2xpYyIpICgiTDFfVCIgInN5bWJvbGljIikgKCJQWV9UIiAic3ltYm9saWMiKSAoInJ1bGVWaWEzIiAic3ltYm9saWMiKSAoInJ1bGVWaWEyIiAic3ltYm9saWMiKSAoInJ1bGVWaWExIiAic3ltYm9saWMiKSAoInJ1bGVWaWEiICJzeW1ib2xpYyIpICgiTTNNNF9DIiAic3ltYm9saWMiKSAoIk0yTTNfQyIgInN5bWJvbGljIikgKCJNM000X1BSIiAic3ltYm9saWMiKSAoIk0yTTNfUFIiICJzeW1ib2xpYyIpICgiTTNNNHNxIiAic3ltYm9saWMiKSAoIk0yTTNzcSIgInN5bWJvbGljIikgKCJNM000IiAic3ltYm9saWMiKSAoIk0yTTMiICJzeW1ib2xpYyIpICgiTTRzaG9ydCIgInN5bWJvbGljIikgKCJkaXNjcmV0ZUNvbnRhY3RSaW5nIiAic3ltYm9saWMiKSAoIk0xTTJfQyIgInN5bWJvbGljIikgKCJMMU0xX0MiICJzeW1ib2xpYyIpICgiUFlMMV9DIiAic3ltYm9saWMiKSAoIlRQTDFfQyIgInN5bWJvbGljIikgKCJwRXNkQ2FzY29kZUZldCIgInN5bWJvbGljIikgKCJwRXNkRmV0IiAic3ltYm9saWMiKSAoInZhcmFjdG9yIiAic3ltYm9saWMiKSAoIlBZTTJidXR0X3ZhcmFjdG9yIiAic3ltYm9saWMiKSAoIlBZTTFidXR0X3ZhcmFjdG9yIiAic3ltYm9saWMiKSAoIlBZTTJfdmFyYWN0b3IiICJzeW1ib2xpYyIpICgiUFlNMV92YXJhY3RvciIgInN5bWJvbGljIikgKCJUUE0yc2RfdmFyYWN0b3IiICJzeW1ib2xpYyIpICgiVFBNMXNkX3ZhcmFjdG9yIiAic3ltYm9saWMiKSAoImFudGVubmFfZGlvZGUiICJzeW1ib2xpYyIpICgiZ2VuUml2ZXRNaXJyb3JETHJpbmciICJzeW1ib2xpYyIpICgiZ2VuUml2ZXRETHJpbmciICJzeW1ib2xpYyIpICgiZ2VuSW50RExyaW5nIiAic3ltYm9saWMiKSAoImdlbkRMcmluZyIgInN5bWJvbGljIikgKCJNM3Nob3J0IiAic3ltYm9saWMiKSAoIk0yc2hvcnQiICJzeW1ib2xpYyIpICgiTTFzaG9ydCIgInN5bWJvbGljIikgKCJsaTFzaG9ydCIgInN5bWJvbGljIikgKCJwbHlzaG9ydCIgInN5bWJvbGljIikgKCJwREZiZW50UmVzIiAic3ltYm9saWMiKSAoIm5ERmJlbnRSZXMiICJzeW1ib2xpYyIpICgiUFliZW50UmVzIiAic3ltYm9saWMiKSAoIkxJcmVzIiAic3ltYm9saWMiKSAoIlBZcmVzIiAic3ltYm9saWMiKSAoInBERnJlcyIgInN5bWJvbGljIikgKCJuREZyZXMiICJzeW1ib2xpYyIpICgiZXh0RG5UcmFuIiAic3ltYm9saWMiKSAoImV4dERwVHJhbiIgInN5bWJvbGljIikgKCJwZmV0IiAic3ltYm9saWMiKSAoIm5mZXQiICJzeW1ib2xpYyIpICgiaHZwVHJhbiIgInN5bWJvbGljIikgKCJodm5UcmFuIiAic3ltYm9saWMiKSAoInBUcmFuIiAic3ltYm9saWMiKSAoIm5UcmFuIiAic3ltYm9saWMiKSAoInBEcmFpbk9ubHkiICJzeW1ib2xpYyIpICgibkRyYWluT25seSIgInN5bWJvbGljIikgKCJodkRGVFBMMXMiICJzeW1ib2xpYyIpICgiaHZERkwxc2QyIiAic3ltYm9saWMiKSAoImh2REZMMXNkIiAic3ltYm9saWMiKSAoImh2REZUUE0xcyIgInN5bWJvbGljIikgKCJodkRGVFBNMXMyIiAic3ltYm9saWMiKSAoImh2REZUUEwxczIiICJzeW1ib2xpYyIpICgiaHZERk0xc2QyIiAic3ltYm9saWMiKSAoIkRGTTFzZDIiICJzeW1ib2xpYyIpICgiREZNMXNkIiAic3ltYm9saWMiKSAoIlRQTTFzIiAic3ltYm9saWMiKSAoIlRQTDFzIiAic3ltYm9saWMiKSAoIkRGTDFzZDIiICJzeW1ib2xpYyIpICgiREZMMXNkZiIgInN5bWJvbGljIikgKCJodkRGTTFzZCIgInN5bWJvbGljIikgKCJERkwxc2QiICJzeW1ib2xpYyIpICgiREZUUE0xczIiICJzeW1ib2xpYyIpICgiREZUUEwxczIiICJzeW1ib2xpYyIpICgiREZUUE0xczJlbmgiICJzeW1ib2xpYyIpICgiREZUUE0xc3ciICJzeW1ib2xpYyIpICgiREZUUE0xcyIgInN5bWJvbGljIikgKCJERlRQTDFzdyIgInN5bWJvbGljIikgKCJERlRQTDFzIiAic3ltYm9saWMiKSAoIk0xTTJfUFIiICJzeW1ib2xpYyIpICgiTDFNMV9QUiIgInN5bWJvbGljIikgKCJwREZMMV9QUiIgInN5bWJvbGljIikgKCJuREZMMV9QUiIgInN5bWJvbGljIikgKCJwVFBMMV9QUiIgInN5bWJvbGljIikgKCJuVFBMMV9QUiIgInN5bWJvbGljIikgKCJQWUwxX1BSIiAic3ltYm9saWMiKSAoIkwxTTIiICJzeW1ib2xpYyIpICgiUFlNMSIgInN5bWJvbGljIikgKCJUUE0xIiAic3ltYm9saWMiKSAoImd1YXJkUmluZ0VuaCIgInN5bWJvbGljIikgKCJERk0xIiAic3ltYm9saWMiKSAoIk0xTTJzcSIgInN5bWJvbGljIikgKCJNMU0yIiAic3ltYm9saWMiKSAoIkwxTTFzcSIgInN5bWJvbGljIikgKCJMMU0xIiAic3ltYm9saWMiKSAoIkRGTDFzcSIgInN5bWJvbGljIikgKCJERkwxIiAic3ltYm9saWMiKSAoIlRQTDFhIiAic3ltYm9saWMiKSAoIlRQTDFjZW4iICJzeW1ib2xpYyIpICgiVFBMMV9mZW5jZSIgInN5bWJvbGljIikgKCJUUEwxc3EiICJzeW1ib2xpYyIpICgiVFBMMSIgInN5bWJvbGljIikgKCJQWUwxc3EiICJzeW1ib2xpYyIpICgiUFlMMSIgInN5bWJvbGljIikgKCJwYXJ0bnVtIiAic3ltYm9saWMiKSAoInBhcnRudW05IiAic3ltYm9saWMiKSAoInBhcnRudW04IiAic3ltYm9saWMiKSAoInBhcnRudW03IiAic3ltYm9saWMiKSAoInBhcnRudW02IiAic3ltYm9saWMiKSAoInBhcnRudW01IiAic3ltYm9saWMiKSAoInBhcnRudW00IiAic3ltYm9saWMiKSAoInBhcnRudW0zIiAic3ltYm9saWMiKSAoInBhcnRudW0yIiAic3ltYm9saWMiKSAoInBhcnRudW0xIiAic3ltYm9saWMiKSAoInBhcnRudW0wIiAic3ltYm9saWMiKSAoInBhcnRudW1aIiAic3ltYm9saWMiKSAoInBhcnRudW1ZIiAic3ltYm9saWMiKSAoInBhcnRudW1YIiAic3ltYm9saWMiKSAoInBhcnRudW1XIiAic3ltYm9saWMiKSAoInBhcnRudW1WIiAic3ltYm9saWMiKSAoInBhcnRudW1VIiAic3ltYm9saWMiKSAoInBhcnRudW1UIiAic3ltYm9saWMiKSAoInBhcnRudW1TIiAic3ltYm9saWMiKSAoInBhcnRudW1SIiAic3ltYm9saWMiKSAoInBhcnRudW1RIiAic3ltYm9saWMiKSAoInBhcnRudW1QIiAic3ltYm9saWMiKSAoInBhcnRudW1PIiAic3ltYm9saWMiKSAoInBhcnRudW1OIiAic3ltYm9saWMiKSAoInBhcnRudW1NIiAic3ltYm9saWMiKSAoInBhcnRudW1MIiAic3ltYm9saWMiKSAoInBhcnRudW1LIiAic3ltYm9saWMiKSAoInBhcnRudW1KIiAic3ltYm9saWMiKSAoInBhcnRudW1JIiAic3ltYm9saWMiKSAoInBhcnRudW1IIiAic3ltYm9saWMiKSAoInBhcnRudW1HIiAic3ltYm9saWMiKSAoInBhcnRudW1GIiAic3ltYm9saWMiKSAoInBhcnRudW1FIiAic3ltYm9saWMiKSAoInBhcnRudW1EIiAic3ltYm9saWMiKSAoInBhcnRudW1DIiAic3ltYm9saWMiKSAoInBhcnRudW1CIiAic3ltYm9saWMiKSAoInBhcnRudW1BIiAic3ltYm9saWMiKSkAKCgidmFyYWN0b3IyIiAic3ltYm9saWMiKSAoImlzb1B3ZWxsUkVTIiAic3ltYm9saWMiKSAoImh2REZUUE0xczJlbmgiICJzeW1ib2xpYyIpICgiYW5jaG9yIiAic3ltYm9saWMiKSAoInBhZFBMd2xiaSIgInN5bWJvbGljIikgKCJwYWRQTGhwIiAic3ltYm9saWMiKSAoInBhZFBMZnAiICJzeW1ib2xpYyIpICgicGFkUExzdGciICJzeW1ib2xpYyIpICgiYWR2YW5jZWRTZWFsIiAic3ltYm9saWMiKSAoImFkdlNlYWxfNnVtIiAic3ltYm9saWMiKSAoIm5pa29uIiAic3ltYm9saWMiKSAoIk0zZnVzZSIgInN5bWJvbGljIikgKCJGVVNFX00yTTMiICJzeW1ib2xpYyIpICgiTTNtZXRvcCIgInN5bWJvbGljIikgKCJNM000X1QiICJzeW1ib2xpYyIpICgiTTRfVCIgInN5bWJvbGljIikgKCJNMk0zX1QiICJzeW1ib2xpYyIpICgiTTNfVCIgInN5bWJvbGljIikgKCJNMU0yX1QiICJzeW1ib2xpYyIpICgiTTJfVCIgInN5bWJvbGljIikgKCJNMV9UIiAic3ltYm9saWMiKSAoIkwxX1QiICJzeW1ib2xpYyIpICgiUFlfVCIgInN5bWJvbGljIikgKCJydWxlVmlhMyIgInN5bWJvbGljIikgKCJydWxlVmlhMiIgInN5bWJvbGljIikgKCJydWxlVmlhMSIgInN5bWJvbGljIikgKCJydWxlVmlhIiAic3ltYm9saWMiKSAoIk0zTTRfQyIgInN5bWJvbGljIikgKCJNMk0zX0MiICJzeW1ib2xpYyIpICgiTTNNNF9QUiIgInN5bWJvbGljIikgKCJNMk0zX1BSIiAic3ltYm9saWMiKSAoIk0zTTRzcSIgInN5bWJvbGljIikgKCJNMk0zc3EiICJzeW1ib2xpYyIpICgiTTNNNCIgInN5bWJvbGljIikgKCJNMk0zIiAic3ltYm9saWMiKSAoIk00c2hvcnQiICJzeW1ib2xpYyIpICgiZGlzY3JldGVDb250YWN0UmluZyIgInN5bWJvbGljIikgKCJNMU0yX0MiICJzeW1ib2xpYyIpICgiTDFNMV9DIiAic3ltYm9saWMiKSAoIlBZTDFfQyIgInN5bWJvbGljIikgKCJUUEwxX0MiICJzeW1ib2xpYyIpICgicEVzZENhc2NvZGVGZXQiICJzeW1ib2xpYyIpICgicEVzZEZldCIgInN5bWJvbGljIikgKCJ2YXJhY3RvciIgInN5bWJvbGljIikgKCJQWU0yYnV0dF92YXJhY3RvciIgInN5bWJvbGljIikgKCJQWU0xYnV0dF92YXJhY3RvciIgInN5bWJvbGljIikgKCJQWU0yX3ZhcmFjdG9yIiAic3ltYm9saWMiKSAoIlBZTTFfdmFyYWN0b3IiICJzeW1ib2xpYyIpICgiVFBNMnNkX3ZhcmFjdG9yIiAic3ltYm9saWMiKSAoIlRQTTFzZF92YXJhY3RvciIgInN5bWJvbGljIikgKCJhbnRlbm5hX2Rpb2RlIiAic3ltYm9saWMiKSAoImdlblJpdmV0TWlycm9yRExyaW5nIiAic3ltYm9saWMiKSAoImdlblJpdmV0RExyaW5nIiAic3ltYm9saWMiKSAoImdlbkludERMcmluZyIgInN5bWJvbGljIikgKCJnZW5ETHJpbmciICJzeW1ib2xpYyIpICgiTTNzaG9ydCIgInN5bWJvbGljIikgKCJNMnNob3J0IiAic3ltYm9saWMiKSAoIk0xc2hvcnQiICJzeW1ib2xpYyIpICgibGkxc2hvcnQiICJzeW1ib2xpYyIpICgicGx5c2hvcnQiICJzeW1ib2xpYyIpICgicERGYmVudFJlcyIgInN5bWJvbGljIikgKCJuREZiZW50UmVzIiAic3ltYm9saWMiKSAoIlBZYmVudFJlcyIgInN5bWJvbGljIikgKCJMSXJlcyIgInN5bWJvbGljIikgKCJQWXJlcyIgInN5bWJvbGljIikgKCJwREZyZXMiICJzeW1ib2xpYyIpICgibkRGcmVzIiAic3ltYm9saWMiKSAoImV4dERuVHJhbiIgInN5bWJvbGljIikgKCJleHREcFRyYW4iICJzeW1ib2xpYyIpICgicGZldCIgInN5bWJvbGljIikgKCJuZmV0IiAic3ltYm9saWMiKSAoImh2cFRyYW4iICJzeW1ib2xpYyIpICgiaHZuVHJhbiIgInN5bWJvbGljIikgKCJwVHJhbiIgInN5bWJvbGljIikgKCJuVHJhbiIgInN5bWJvbGljIikgKCJwRHJhaW5Pbmx5IiAic3ltYm9saWMiKSAoIm5EcmFpbk9ubHkiICJzeW1ib2xpYyIpICgiaHZERlRQTDFzIiAic3ltYm9saWMiKSAoImh2REZMMXNkMiIgInN5bWJvbGljIikgKCJodkRGTDFzZCIgInN5bWJvbGljIikgKCJodkRGVFBNMXMiICJzeW1ib2xpYyIpICgiaHZERlRQTTFzMiIgInN5bWJvbGljIikgKCJodkRGVFBMMXMyIiAic3ltYm9saWMiKSAoImh2REZNMXNkMiIgInN5bWJvbGljIikgKCJERk0xc2QyIiAic3ltYm9saWMiKSAoIkRGTTFzZCIgInN5bWJvbGljIikgKCJUUE0xcyIgInN5bWJvbGljIikgKCJUUEwxcyIgInN5bWJvbGljIikgKCJERkwxc2QyIiAic3ltYm9saWMiKSAoIkRGTDFzZGYiICJzeW1ib2xpYyIpICgiaHZERk0xc2QiICJzeW1ib2xpYyIpICgiREZMMXNkIiAic3ltYm9saWMiKSAoIkRGVFBNMXMyIiAic3ltYm9saWMiKSAoIkRGVFBMMXMyIiAic3ltYm9saWMiKSAoIkRGVFBNMXMyZW5oIiAic3ltYm9saWMiKSAoIkRGVFBNMXN3IiAic3ltYm9saWMiKSAoIkRGVFBNMXMiICJzeW1ib2xpYyIpICgiREZUUEwxc3ciICJzeW1ib2xpYyIpICgiREZUUEwxcyIgInN5bWJvbGljIikgKCJNMU0yX1BSIiAic3ltYm9saWMiKSAoIkwxTTFfUFIiICJzeW1ib2xpYyIpICgicERGTDFfUFIiICJzeW1ib2xpYyIpICgibkRGTDFfUFIiICJzeW1ib2xpYyIpICgicFRQTDFfUFIiICJzeW1ib2xpYyIpICgiblRQTDFfUFIiICJzeW1ib2xpYyIpICgiUFlMMV9QUiIgInN5bWJvbGljIikgKCJMMU0yIiAic3ltYm9saWMiKSAoIlBZTTEiICJzeW1ib2xpYyIpICgiVFBNMSIgInN5bWJvbGljIikgKCJndWFyZFJpbmdFbmgiICJzeW1ib2xpYyIpICgiREZNMSIgInN5bWJvbGljIikgKCJNMU0yc3EiICJzeW1ib2xpYyIpICgiTTFNMiIgInN5bWJvbGljIikgKCJMMU0xc3EiICJzeW1ib2xpYyIpICgiTDFNMSIgInN5bWJvbGljIikgKCJERkwxc3EiICJzeW1ib2xpYyIpICgiREZMMSIgInN5bWJvbGljIikgKCJUUEwxYSIgInN5bWJvbGljIikgKCJUUEwxY2VuIiAic3ltYm9saWMiKSAoIlRQTDFfZmVuY2UiICJzeW1ib2xpYyIpICgiVFBMMXNxIiAic3ltYm9saWMiKSAoIlRQTDEiICJzeW1ib2xpYyIpICgiUFlMMXNxIiAic3ltYm9saWMiKSAoIlBZTDEiICJzeW1ib2xpYyIpICgicGFydG51bSIgInN5bWJvbGljIikgKCJwYXJ0bnVtOSIgInN5bWJvbGljIikgKCJwYXJ0bnVtOCIgInN5bWJvbGljIikgKCJwYXJ0bnVtNyIgInN5bWJvbGljIikgKCJwYXJ0bnVtNiIgInN5bWJvbGljIikgKCJwYXJ0bnVtNSIgInN5bWJvbGljIikgKCJwYXJ0bnVtNCIgInN5bWJvbGljIikgKCJwYXJ0bnVtMyIgInN5bWJvbGljIikgKCJwYXJ0bnVtMiIgInN5bWJvbGljIikgKCJwYXJ0bnVtMSIgInN5bWJvbGljIikgKCJwYXJ0bnVtMCIgInN5bWJvbGljIikgKCJwYXJ0bnVtWiIgInN5bWJvbGljIikgKCJwYXJ0bnVtWSIgInN5bWJvbGljIikgKCJwYXJ0bnVtWCIgInN5bWJvbGljIikgKCJwYXJ0bnVtVyIgInN5bWJvbGljIikgKCJwYXJ0bnVtViIgInN5bWJvbGljIikgKCJwYXJ0bnVtVSIgInN5bWJvbGljIikgKCJwYXJ0bnVtVCIgInN5bWJvbGljIikgKCJwYXJ0bnVtUyIgInN5bWJvbGljIikgKCJwYXJ0bnVtUiIgInN5bWJvbGljIikgKCJwYXJ0bnVtUSIgInN5bWJvbGljIikgKCJwYXJ0bnVtUCIgInN5bWJvbGljIikgKCJwYXJ0bnVtTyIgInN5bWJvbGljIikgKCJwYXJ0bnVtTiIgInN5bWJvbGljIikgKCJwYXJ0bnVtTSIgInN5bWJvbGljIikgKCJwYXJ0bnVtTCIgInN5bWJvbGljIikgKCJwYXJ0bnVtSyIgInN5bWJvbGljIikgKCJwYXJ0bnVtSiIgInN5bWJvbGljIikgKCJwYXJ0bnVtSSIgInN5bWJvbGljIikgKCJwYXJ0bnVtSCIgInN5bWJvbGljIikgKCJwYXJ0bnVtRyIgInN5bWJvbGljIikgKCJwYXJ0bnVtRiIgInN5bWJvbGljIikgKCJwYXJ0bnVtRSIgInN5bWJvbGljIikgKCJwYXJ0bnVtRCIgInN5bWJvbGljIikgKCJwYXJ0bnVtQyIgInN5bWJvbGljIikgKCJwYXJ0bnVtQiIgInN5bWJvbGljIikgKCJwYXJ0bnVtQSIgInN5bWJvbGljIikpACgoX2RiaVBERENyZWF0ZUNkc01vcyB0Y0NlbGxWaWV3IGdhdGVQb2x5TGF5ZXIgbWV0YWxMYXllciBjb250YWN0TGF5ZXIgZGlmZnVzaW9uTGF5ZXIgaW1wbGFudExheWVycyBnYXRlVGVybWluYWxOYW1lIHNvdXJjZVRlcm1pbmFsTmFtZSBkcmFpblRlcm1pbmFsTmFtZSBzdHJldGNoSGFuZGxlcyBjb250YWN0U3BhY2luZ01ldGhvZCBwb2x5RGlmZnVzaW9uRXh0ZW5zaW9uIHBvbHlDb250YWN0U3BhY2luZyBwb2x5RGlmZnVzaW9uU3BhY2luZyBwb2x5UG9seVNwYWNpbmcgcG9seVdpZHRoIG1ldGFsQ29udGFjdEVuY2xvc3VyZSB4Q29udGFjdFNwYWNpbmcgeUNvbnRhY3RTcGFjaW5nIHhDb250YWN0TGF5ZXJXIHlDb250YWN0TGF5ZXJMIGRpZmZ1c2lvbkNvbnRhY3RFbmNsb3N1cmUgZGlmZnVzaW9uUG9seUVuY2xvc3VyZSBkaWZmdXNpb25TcGFjaW5nIGRpZmZ1c2lvbldpZHRoIGFidXRDbGFzcyB1c2VyRnVuYyBjbGFzc1ZlcnNpb24gZmluZ2VyV2lkdGggZmluZ2VyTGVuZ3RoIG51bUZpbmdlciBsZWZ0QWJ1dG1lbnRTdGF0ZSByaWdodEFidXRtZW50U3RhdGUgY29udGFjdExpc3QgbWV0YWxMaXN0IGdhdGVFeHRTdHJldGNoIGRpZmZTdHJldGNoTEggZGlmZlN0cmV0Y2hSSCBkaWZmU3RyZXRjaExUViBkaWZmU3RyZXRjaExCViBkaWZmU3RyZXRjaFJUViBkaWZmU3RyZXRjaFJCViBzb3VyY2VGaXJzdCBtZXRhbENvbnRhY3RFbmNUb3AgbWV0YWxDb250YWN0RW5jQm90dG9tIG1ldGFsQ29udGFjdEVuY0lubmVyIG1ldGFsQ29udGFjdEVuY091dGVyIG1ldGFsQ29udGFjdEVuY092ZXJyaWRlIHVzZXJBcmdzIGZvcm1hbFZlcnNpb24gbm90Y2hFeHRTdHJldGNoIGdhdGVQb3NpdGlvbiBkZm1Db25zdHJHcnAgaW5zdERGTVZhbCBzaW5nbGVDb250YWN0KSkAKGdhdGVQb2x5TGF5ZXIgbWV0YWxMYXllciBjb250YWN0TGF5ZXIgZGlmZnVzaW9uTGF5ZXIgaW1wbGFudExheWVycyBnYXRlVGVybWluYWxOYW1lIHNvdXJjZVRlcm1pbmFsTmFtZSBkcmFpblRlcm1pbmFsTmFtZSBzdHJldGNoSGFuZGxlcyBjb250YWN0U3BhY2luZ01ldGhvZCBwb2x5RGlmZnVzaW9uRXh0ZW5zaW9uIHBvbHlDb250YWN0U3BhY2luZyBwb2x5RGlmZnVzaW9uU3BhY2luZyBwb2x5UG9seVNwYWNpbmcgcG9seVdpZHRoIG1ldGFsQ29udGFjdEVuY2xvc3VyZSB4Q29udGFjdFNwYWNpbmcgeUNvbnRhY3RTcGFjaW5nIHhDb250YWN0TGF5ZXJXIHlDb250YWN0TGF5ZXJMIGRpZmZ1c2lvbkNvbnRhY3RFbmNsb3N1cmUgZGlmZnVzaW9uUG9seUVuY2xvc3VyZSBkaWZmdXNpb25TcGFjaW5nIGRpZmZ1c2lvbldpZHRoIGFidXRDbGFzcyB1c2VyRnVuYyB1c2VyQXJncyBjbGFzc1ZlcnNpb24gZGZtQ29uc3RyR3JwIGZpbmdlcldpZHRoIGZpbmdlckxlbmd0aCBudW1GaW5nZXIgbGVmdEFidXRtZW50U3RhdGUgcmlnaHRBYnV0bWVudFN0YXRlIGNvbnRhY3RMaXN0IG1ldGFsTGlzdCBnYXRlRXh0U3RyZXRjaCBkaWZmU3RyZXRjaExIIGRpZmZTdHJldGNoUkggZGlmZlN0cmV0Y2hMVFYgZGlmZlN0cmV0Y2hMQlYgZGlmZlN0cmV0Y2hSVFYgZGlmZlN0cmV0Y2hSQlYgc291cmNlRmlyc3QgbWV0YWxDb250YWN0RW5jVG9wIG1ldGFsQ29udGFjdEVuY0JvdHRvbSBtZXRhbENvbnRhY3RFbmNJbm5lciBtZXRhbENvbnRhY3RFbmNPdXRlciBtZXRhbENvbnRhY3RFbmNPdmVycmlkZSB1c2VyQXJncyBmb3JtYWxWZXJzaW9uIG5vdGNoRXh0U3RyZXRjaCBnYXRlUG9zaXRpb24gaW5zdERGTVZhbCBzaW5nbGVDb250YWN0KQAoKGZpbmdlcldpZHRoIDIuMCkgKGZpbmdlckxlbmd0aCAxLjApIChudW1GaW5nZXIgMSkgKGxlZnRBYnV0bWVudFN0YXRlIDEpIChyaWdodEFidXRtZW50U3RhdGUgMSkgKGNvbnRhY3RMaXN0IG5pbCkgKG1ldGFsTGlzdCBuaWwpIChnYXRlRXh0U3RyZXRjaCBuaWwpIChkaWZmU3RyZXRjaExIIDAuMCkgKGRpZmZTdHJldGNoUkggMC4wKSAoZGlmZlN0cmV0Y2hMVFYgMC4wKSAoZGlmZlN0cmV0Y2hMQlYgMC4wKSAoZGlmZlN0cmV0Y2hSVFYgMC4wKSAoZGlmZlN0cmV0Y2hSQlYgMC4wKSAoc291cmNlRmlyc3QgIlRSVUUiKSAobWV0YWxDb250YWN0RW5jVG9wIDAuMCkgKG1ldGFsQ29udGFjdEVuY0JvdHRvbSAwLjApIChtZXRhbENvbnRhY3RFbmNJbm5lciAwLjApIChtZXRhbENvbnRhY3RFbmNPdXRlciAwLjApIChtZXRhbENvbnRhY3RFbmNPdmVycmlkZSAiIikgKHVzZXJBcmdzICIiKSAoZm9ybWFsVmVyc2lvbiAwKSAobm90Y2hFeHRTdHJldGNoIG5pbCkgKGdhdGVQb3NpdGlvbiBuaWwpIChpbnN0REZNVmFsIG5pbCkgKHNpbmdsZUNvbnRhY3QgMCkpACgoZ2F0ZVBvbHlMYXllciAiaGlsaXRlIikgKG1ldGFsTGF5ZXIgImhpbGl0ZSIpIChjb250YWN0TGF5ZXIgImhpbGl0ZSIpIChkaWZmdXNpb25MYXllciAiaGlsaXRlIikgKGltcGxhbnRMYXllcnMgbmlsKSAoZ2F0ZVRlcm1pbmFsTmFtZSAiRyIpIChzb3VyY2VUZXJtaW5hbE5hbWUgIlMiKSAoZHJhaW5UZXJtaW5hbE5hbWUgIkQiKSAoc3RyZXRjaEhhbmRsZXMgbmlsKSAoY29udGFjdFNwYWNpbmdNZXRob2QgMSkgKHBvbHlEaWZmdXNpb25FeHRlbnNpb24gMC4wKSAocG9seUNvbnRhY3RTcGFjaW5nIDAuMCkgKHBvbHlEaWZmdXNpb25TcGFjaW5nIDAuMCkgKHBvbHlQb2x5U3BhY2luZyAwLjApIChwb2x5V2lkdGggMC4wKSAobWV0YWxDb250YWN0RW5jbG9zdXJlIDAuMCkgKHhDb250YWN0U3BhY2luZyAwLjApICh5Q29udGFjdFNwYWNpbmcgMC4wKSAoeENvbnRhY3RMYXllclcgMC4wKSAoeUNvbnRhY3RMYXllckwgMC4wKSAoZGlmZnVzaW9uQ29udGFjdEVuY2xvc3VyZSAwLjApIChkaWZmdXNpb25Qb2x5RW5jbG9zdXJlIDAuMCkgKGRpZmZ1c2lvblNwYWNpbmcgMC4wKSAoZGlmZnVzaW9uV2lkdGggMC4wKSAoYWJ1dENsYXNzICJtb3MiKSAodXNlckZ1bmMgIiIpICh1c2VyQXJncyAiIikgKGNsYXNzVmVyc2lvbiAxKSAoZGZtQ29uc3RyR3JwIG5pbCkpACgoX2RiaVBERENyZWF0ZUNkc1ZpYSB0Y0NlbGxWaWV3IGN1dExheWVyIGxheWVyMSBsYXllcjIgcm93IGNvbHVtbiBvcmlnaW4gc3RhY2tlZFZpYXMgY3V0TGF5ZXJXIGN1dExheWVyTCB4Q3V0U3BhY2luZyB5Q3V0U3BhY2luZyBsYXllcjFYRW5jbG9zdXJlIGxheWVyMVlFbmNsb3N1cmUgbGF5ZXIyWEVuY2xvc3VyZSBsYXllcjJZRW5jbG9zdXJlIGxheWVyMURpcmVjdGlvbiBsYXllcjJEaXJlY3Rpb24pKQAoY3V0TGF5ZXIgbGF5ZXIxIGxheWVyMiByb3cgY29sdW1uIG9yaWdpbiBzdGFja2VkVmlhcyBjdXRMYXllclcgY3V0TGF5ZXJMIHhDdXRTcGFjaW5nIHlDdXRTcGFjaW5nIGxheWVyMVhFbmNsb3N1cmUgbGF5ZXIxWUVuY2xvc3VyZSBsYXllcjJYRW5jbG9zdXJlIGxheWVyMllFbmNsb3N1cmUgbGF5ZXIxRGlyZWN0aW9uIGxheWVyMkRpcmVjdGlvbikAKChyb3cgMSkgKGNvbHVtbiAxKSAob3JpZ2luICJjZW50ZXJDZW50ZXIiKSAoc3RhY2tlZFZpYXMgbmlsKSAoY3V0TGF5ZXJXIG5pbCkgKGN1dExheWVyTCBuaWwpICh4Q3V0U3BhY2luZyBuaWwpICh5Q3V0U3BhY2luZyBuaWwpIChsYXllcjFYRW5jbG9zdXJlIG5pbCkgKGxheWVyMVlFbmNsb3N1cmUgbmlsKSAobGF5ZXIyWEVuY2xvc3VyZSBuaWwpIChsYXllcjJZRW5jbG9zdXJlIG5pbCkgKGxheWVyMURpcmVjdGlvbiAiIikgKGxheWVyMkRpcmVjdGlvbiAiIikpACgoY3V0TGF5ZXIgImhpbGl0ZSIpIChsYXllcjEgImhpbGl0ZSIpIChsYXllcjIgImhpbGl0ZSIpKQAoKHRvcE1ldE1pblNwYWNlID0gbnRoKDAgbGFzdChtZXRTcGFjaW5ncykpKSAobGVuZ3RoID0gKCh0b3BNZXRNaW5TcGFjZSAqIDIpICsgNDguMCkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KCJhcmVhaWQiICJtb2R1bGVDdXQiKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCgiYXJlYWlkIiAiZnJhbWUiKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCgiY3BkbSIgIm1hc2siKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCgiY3AxbSIgIndhZmZsZURyb3AiKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCgicGFkIiAiZHJhd2luZyIpIGxpc3QoKDAuMDowLjApIChsZW5ndGg6bGVuZ3RoKSkpIChpID0gMCkgZm9yZWFjaChtZXRMYXllciBtZXRMaXN0IChtaW5FbmNsID0gbnRoKGkgbWV0U3BhY2luZ3MpKSAobWV0TGF5ZXJOdW0gPSBhdG9pKG50aCgwIHBhcnNlU3RyaW5nKG1ldExheWVyICJtZXQiKSkpKSAoY21tTGF5ZXJOdW0gPSAobWV0TGF5ZXJOdW0gLSAxKSkgc3ByaW50ZihjbW1MYXllck51bSAiJWQiIGNtbUxheWVyTnVtKSBpZigoYXRvaShjbW1MYXllck51bSkgPiAwKSB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KHN0cmNhdCgiY21tIiBjbW1MYXllck51bSkgIndhZmZsZURyb3AiKSBsaXN0KCgwLjA6MC4wKSAobGVuZ3RoOmxlbmd0aCkpKSkgaWYoKG9yaWVudGF0aW9uID09ICJ4IikgdGhlbiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChtZXRMYXllciAiZHJhd2luZyIpIGxpc3QobGlzdCgoKGxlbmd0aCAvIDIpIC0gNSkgbWluRW5jbCkgbGlzdCgoKGxlbmd0aCAvIDIpICsgNSkgKGxlbmd0aCAtIG1pbkVuY2wpKSkpKSBpZigob3JpZW50YXRpb24gPT0gInkiKSB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KG1ldExheWVyICJkcmF3aW5nIikgbGlzdChsaXN0KG1pbkVuY2wgKChsZW5ndGggLyAyKSAtIDUpKSBsaXN0KChsZW5ndGggLSBtaW5FbmNsKSAoKGxlbmd0aCAvIDIpICsgNSkpKSkpIChpID0gKGkgKyAxKSkpKQAobWV0TGlzdCBtZXRTcGFjaW5ncyBvcmllbnRhdGlvbiB0b3BNZXRNaW5TcGFjZSBsZW5ndGggaSBtZXRMYXllciBtaW5FbmNsIG1ldExheWVyTnVtIGNtbUxheWVyTnVtKQAoKG9yaWVudGF0aW9uIG5pbCkpACgobWV0TGlzdCBuaWwpIChtZXRTcGFjaW5ncyBuaWwpKQAoKG53ZWxsV2lkdGggPSAobndlbGxXaWR0aCArIGRud1dlbGxFbmMpKSAocmVzID0gKHJvZENyZWF0ZVJlY3QgP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgcmVzSWRMYXllciA/d2lkdGggbWF4KG1pbihyZXNMZW5ndGggbWF4UmVzTCkgbWluUmVzTCkgP2xlbmd0aCByZXNXaWR0aCkpIChjdXQgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciByZXNDdXRMYXllciA/d2lkdGggcmVzQ3V0V2lkdGggP2xlbmd0aCByZXNXaWR0aCkpICh0YXBfVyA9ICgodGFwQ29uRW5jWCAqIDIpICsgY29uU3BhY2luZyArIChjb25XaWR0aCAqIDIpKSkgKHRhcF9MID0gKCh0YXBDb25FbmNZICogMikgKyAoY29uU3BhY2luZyAqIDUpICsgKGNvbkxlbmd0aCAqIDYpKSkgKHRhcExIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHRhcExheWVyID93aWR0aCB0YXBfVyA/bGVuZ3RoIHRhcF9MID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2xvd2VyTGVmdE9mZnNldFggdGFwQ29uRW5jWCA/bG93ZXJMZWZ0T2Zmc2V0WSB0YXBDb25FbmNZID91cHBlclJpZ2h0T2Zmc2V0WCAoLSB0YXBDb25FbmNYKSA/dXBwZXJSaWdodE9mZnNldFkgKC0gdGFwQ29uRW5jWSkgP3NwYWNlWCBjb25TcGFjaW5nID9zcGFjZVkgY29uU3BhY2luZykpKSkgKGltcExIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHJlc0NvbnRhY3RJbXBsYW50ID93aWR0aCAodGFwX1cgKyAodGFwSW1wRW5jICogMikpID9sZW5ndGggKHRhcF9MICsgKHRhcEltcEVuYyAqIDIpKSkpICh0YXBSSFMgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1cgP2xlbmd0aCB0YXBfTCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9sb3dlckxlZnRPZmZzZXRYIHRhcENvbkVuY1ggP2xvd2VyTGVmdE9mZnNldFkgdGFwQ29uRW5jWSA/dXBwZXJSaWdodE9mZnNldFggKC0gdGFwQ29uRW5jWCkgP3VwcGVyUmlnaHRPZmZzZXRZICgtIHRhcENvbkVuY1kpID9zcGFjZVggY29uU3BhY2luZyA/c3BhY2VZIGNvblNwYWNpbmcpKSkpIChpbXBSSFMgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciByZXNDb250YWN0SW1wbGFudCA/d2lkdGggKHRhcF9XICsgKHRhcEltcEVuYyAqIDIpKSA/bGVuZ3RoICh0YXBfTCArICh0YXBJbXBFbmMgKiAyKSkpKSBpZigoY29udGFjdFRvTWV0YWwgPT0gbmlsKSB0aGVuIChNMExIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE0wTGF5ZXIgP3dpZHRoIHRhcF9XID9sZW5ndGggdGFwX0wgP3Rlcm1OYW1lICJyMCIgP3BpbiB0KSkgKE0wUkhTID0gKHJvZENyZWF0ZVJlY3QgP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgTTBMYXllciA/d2lkdGggdGFwX1cgP2xlbmd0aCB0YXBfTCA/dGVybU5hbWUgInIxIiA/cGluIHQpKSBlbHNlIChNMExheWVyV2l0aE0xX1cgPSAoKCgyICogdmlhV2lkdGgpICsgdmlhU3BhY2luZykgKyAoMiAqIE0wdmlhRW5jWCkpKSAoTTBMSFMgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBNMExheWVyID93aWR0aCBNMExheWVyV2l0aE0xX1cgP2xlbmd0aCB0YXBfTCkpIChNMFJIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE0wTGF5ZXIgP3dpZHRoIE0wTGF5ZXJXaXRoTTFfVyA/bGVuZ3RoIHRhcF9MKSkpIChETlcgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBkbndlbGxMYXllciA/d2lkdGggKG1heChtaW4ocmVzTGVuZ3RoIG1heFJlc0wpIG1pblJlc0wpICsgKHRhcFdlbGxTcGMgKiAyKSArICh0YXBfVyAqIDIpICsgKChud2VsbFdpZHRoIC0gZG53V2VsbEVuYykgKiAyKSkgP2xlbmd0aCAocmVzV2lkdGggKyAoKG53ZWxsV2lkdGggLSBkbndXZWxsRW5jKSAqIDIpKSkpIChOV1JpbmdMID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgd2VsbExheWVyID93aWR0aCBud2VsbFdpZHRoID9wdHMgbGlzdCgoKC0gKHRhcF9XICsgdGFwV2VsbFNwYyArIChud2VsbFdpZHRoIC8gMikpKTowKSAoKC0gKHRhcF9XICsgdGFwV2VsbFNwYyArIChud2VsbFdpZHRoIC8gMikpKTpyZXNXaWR0aCkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSA/YmVnaW5PZmZzZXQgKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgP2VuZE9mZnNldCAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkgbGlzdCg/bGF5ZXIgaW5uZXJSaW5nSW1wbGFudCA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpID9iZWdpbk9mZnNldCAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBJbXBFbmMpKSA/ZW5kT2Zmc2V0ICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSkpKSAoTldSaW5nVCA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggbndlbGxXaWR0aCA/cHRzIGxpc3QoKCgtICh0YXBfVyArIHRhcFdlbGxTcGMgKyBud2VsbFdpZHRoKSk6KHJlc1dpZHRoICsgKG53ZWxsV2lkdGggLyAyKSkpICgobWF4KG1pbihyZXNMZW5ndGggbWF4UmVzTCkgbWluUmVzTCkgKyB0YXBXZWxsU3BjICsgdGFwX1cgKyBud2VsbFdpZHRoKToocmVzV2lkdGggKyAobndlbGxXaWR0aCAvIDIpKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSA/YmVnaW5PZmZzZXQgKC0gKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkpID9lbmRPZmZzZXQgKC0gKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkpKSBsaXN0KD9sYXllciBpbm5lclJpbmdJbXBsYW50ID9lbmNsb3N1cmUgKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwSW1wRW5jKSkgP2JlZ2luT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSA/ZW5kT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSkgbGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpID9iZWdpbk9mZnNldCAoLSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkgP2VuZE9mZnNldCAoLSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkpIGxpc3QoP2xheWVyIE0xTGF5ZXIgP3Rlcm1OYW1lICJiIiA/cGluIHQgP3Rlcm1JT1R5cGUgImlucHV0IiA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgTTF2aWFFbmNYKSkgP2JlZ2luT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpKSA/ZW5kT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpKSkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgKyB0YXBDb25FbmNZKSkgP2VuZE9mZnNldCAoLSAoKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgKyB0YXBDb25FbmNZKSkgP3NwYWNlIGNvblNwYWNpbmcpIGxpc3QoP2xheWVyIHZpYUxheWVyID93aWR0aCB2aWFXaWR0aCA/bGVuZ3RoIHZpYUxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKCgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpICsgdGFwQ29uRW5jWSkpID9lbmRPZmZzZXQgKC0gKCgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpICsgdGFwQ29uRW5jWSkpID9zcGFjZSB2aWFTcGFjaW5nKSkpKSAoTldSaW5nUiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggbndlbGxXaWR0aCA/cHRzIGxpc3QoKChtYXgobWluKHJlc0xlbmd0aCBtYXhSZXNMKSBtaW5SZXNMKSArIHRhcFdlbGxTcGMgKyB0YXBfVyArIChud2VsbFdpZHRoIC8gMikpOnJlc1dpZHRoKSAoKG1heChtaW4ocmVzTGVuZ3RoIG1heFJlc0wpIG1pblJlc0wpICsgdGFwV2VsbFNwYyArIHRhcF9XICsgKG53ZWxsV2lkdGggLyAyKSk6MCkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSA/YmVnaW5PZmZzZXQgKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgP2VuZE9mZnNldCAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkgbGlzdCg/bGF5ZXIgaW5uZXJSaW5nSW1wbGFudCA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpID9iZWdpbk9mZnNldCAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBJbXBFbmMpKSA/ZW5kT2Zmc2V0ICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSkpKSAoTldSaW5nQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggbndlbGxXaWR0aCA/cHRzIGxpc3QoKChtYXgobWluKHJlc0xlbmd0aCBtYXhSZXNMKSBtaW5SZXNMKSArIHRhcFdlbGxTcGMgKyB0YXBfVyArIG53ZWxsV2lkdGgpOigoLSBud2VsbFdpZHRoKSAvIDIpKSAoKC0gKHRhcF9XICsgdGFwV2VsbFNwYyArIG53ZWxsV2lkdGgpKTooKC0gbndlbGxXaWR0aCkgLyAyKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSA/YmVnaW5PZmZzZXQgKC0gKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkpID9lbmRPZmZzZXQgKC0gKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkpKSBsaXN0KD9sYXllciBpbm5lclJpbmdJbXBsYW50ID9lbmNsb3N1cmUgKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwSW1wRW5jKSkgP2JlZ2luT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSA/ZW5kT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcEltcEVuYykpKSkgbGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpID9iZWdpbk9mZnNldCAoLSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkgP2VuZE9mZnNldCAoLSAoKG53ZWxsV2lkdGggLyAyKSAtICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1gpKSkpIGxpc3QoP2xheWVyIE0xTGF5ZXIgP3Rlcm1OYW1lICJiIiA/cGluIHQgP3Rlcm1JT1R5cGUgImlucHV0IiA/ZW5jbG9zdXJlICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgTTF2aWFFbmNYKSkgP2JlZ2luT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpKSA/ZW5kT2Zmc2V0ICgtICgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpKSkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgKyB0YXBDb25FbmNZKSkgP2VuZE9mZnNldCAoLSAoKChud2VsbFdpZHRoIC8gMikgLSAoKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYKSkgKyB0YXBDb25FbmNZKSkgP3NwYWNlIGNvblNwYWNpbmcpIGxpc3QoP2xheWVyIHZpYUxheWVyID93aWR0aCB2aWFXaWR0aCA/bGVuZ3RoIHZpYUxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKCgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpICsgdGFwQ29uRW5jWSkpID9lbmRPZmZzZXQgKC0gKCgobndlbGxXaWR0aCAvIDIpIC0gKCh2aWFXaWR0aCAvIDIpICsgdGFwQ29uRW5jWCkpICsgdGFwQ29uRW5jWSkpID9zcGFjZSB2aWFTcGFjaW5nKSkpKSAoSW1wV2J5MiA9ICgoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBJbXBFbmMpKSAoVEFQUmluZ0wgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBSaW5nSW1wbGFudCA/d2lkdGggKEltcFdieTIgKiAyKSA/cHRzIGxpc3QoKCgtICh0YXBfVyArICh0YXBXZWxsU3BjICogMikgKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyBud2VsbFdpZHRoKSk6KC0gKG53ZWxsV2lkdGggKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBXZWxsU3BjKSkpICgoLSAodGFwX1cgKyAodGFwV2VsbFNwYyAqIDIpICsgKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgbndlbGxXaWR0aCkpOihyZXNXaWR0aCArIG53ZWxsV2lkdGggKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBXZWxsU3BjKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgdGFwTGF5ZXIgP2VuY2xvc3VyZSB0YXBJbXBFbmMgP2JlZ2luT2Zmc2V0IDAuMCA/ZW5kT2Zmc2V0IDAuMCkpKSkgKFRBUFJpbmdUID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgdGFwUmluZ0ltcGxhbnQgP3dpZHRoIChJbXBXYnkyICogMikgP3B0cyBsaXN0KCgoLSAodGFwX1cgKyAodGFwV2VsbFNwYyAqIDIpICsgSW1wV2J5MiArIChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIG53ZWxsV2lkdGgpKToocmVzV2lkdGggKyBud2VsbFdpZHRoICsgKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwV2VsbFNwYykpICgobWF4KG1pbihyZXNMZW5ndGggbWF4UmVzTCkgbWluUmVzTCkgKyB0YXBfVyArIG53ZWxsV2lkdGggKyAodGFwV2VsbFNwYyAqIDIpICsgKEltcFdieTIgKiAyKSk6KHJlc1dpZHRoICsgbndlbGxXaWR0aCArIChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIHRhcFdlbGxTcGMpKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciB0YXBMYXllciA/ZW5jbG9zdXJlIHRhcEltcEVuYyA/YmVnaW5PZmZzZXQgKC0gdGFwSW1wRW5jKSA/ZW5kT2Zmc2V0ICgtIHRhcEltcEVuYykpIGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBJbXBFbmMgP2JlZ2luT2Zmc2V0ICgtIHRhcEltcEVuYykgP2VuZE9mZnNldCAoLSB0YXBJbXBFbmMpKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtICh0YXBDb25FbmNZICsgdGFwSW1wRW5jKSkgP2VuZE9mZnNldCAoLSAodGFwQ29uRW5jWSArIHRhcEltcEVuYykpID9zcGFjZSBjb25TcGFjaW5nKSkpKSAoVEFQUmluZ1IgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBSaW5nSW1wbGFudCA/d2lkdGggKEltcFdieTIgKiAyKSA/cHRzIGxpc3QoKChtYXgobWluKHJlc0xlbmd0aCBtYXhSZXNMKSBtaW5SZXNMKSArIHRhcF9XICsgbndlbGxXaWR0aCArICh0YXBXZWxsU3BjICogMikgKyBJbXBXYnkyKToocmVzV2lkdGggKyBud2VsbFdpZHRoICsgKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwV2VsbFNwYykpICgobWF4KG1pbihyZXNMZW5ndGggbWF4UmVzTCkgbWluUmVzTCkgKyB0YXBfVyArIG53ZWxsV2lkdGggKyAodGFwV2VsbFNwYyAqIDIpICsgSW1wV2J5Mik6KC0gKG53ZWxsV2lkdGggKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBXZWxsU3BjKSkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIHRhcExheWVyID9lbmNsb3N1cmUgdGFwSW1wRW5jID9iZWdpbk9mZnNldCAwLjAgP2VuZE9mZnNldCAwLjApKSkpIChUQVBSaW5nQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHRhcFJpbmdJbXBsYW50ID93aWR0aCAoSW1wV2J5MiAqIDIpID9wdHMgbGlzdCgoKG1heChtaW4ocmVzTGVuZ3RoIG1heFJlc0wpIG1pblJlc0wpICsgdGFwX1cgKyBud2VsbFdpZHRoICsgKHRhcFdlbGxTcGMgKiAyKSArIChJbXBXYnkyICogMikpOigtIChud2VsbFdpZHRoICsgKGNvbldpZHRoIC8gMikgKyB0YXBDb25FbmNYICsgdGFwV2VsbFNwYykpKSAoKC0gKHRhcF9XICsgKHRhcFdlbGxTcGMgKiAyKSArIChjb25XaWR0aCAvIDIpICsgdGFwQ29uRW5jWCArIG53ZWxsV2lkdGggKyBJbXBXYnkyKSk6KC0gKG53ZWxsV2lkdGggKyAoY29uV2lkdGggLyAyKSArIHRhcENvbkVuY1ggKyB0YXBXZWxsU3BjKSkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIHRhcExheWVyID9lbmNsb3N1cmUgdGFwSW1wRW5jID9iZWdpbk9mZnNldCAoLSB0YXBJbXBFbmMpID9lbmRPZmZzZXQgKC0gdGFwSW1wRW5jKSkgbGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlIHRhcEltcEVuYyA/YmVnaW5PZmZzZXQgKC0gdGFwSW1wRW5jKSA/ZW5kT2Zmc2V0ICgtIHRhcEltcEVuYykpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKHRhcENvbkVuY1kgKyB0YXBJbXBFbmMpKSA/ZW5kT2Zmc2V0ICgtICh0YXBDb25FbmNZICsgdGFwSW1wRW5jKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogY3V0ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmVzID9yZWZIYW5kbGUgImNDIikgKHJvZEFsaWduID9hbGlnbk9iaiBpbXBMSFMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiB0YXBMSFMgP3JlZkhhbmRsZSAiY0MiKSAocm9kQWxpZ24gP2FsaWduT2JqIGltcFJIUyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHRhcFJIUyA/cmVmSGFuZGxlICJjQyIpIChyb2RBbGlnbiA/YWxpZ25PYmogdGFwTEhTID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogcmVzID9yZWZIYW5kbGUgImNMIikgKHJvZEFsaWduID9hbGlnbk9iaiB0YXBSSFMgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiByZXMgP3JlZkhhbmRsZSAiY1IiKSAocm9kQWxpZ24gP2FsaWduT2JqIE0wTEhTID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdGFwTEhTID9yZWZIYW5kbGUgImNDIikgKHJvZEFsaWduID9hbGlnbk9iaiBNMFJIUyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHRhcFJIUyA/cmVmSGFuZGxlICJjQyIpIChyb2RBbGlnbiA/YWxpZ25PYmogRE5XID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmVzID9yZWZIYW5kbGUgImNDIikgKE0xX1cgPSAoKDIgKiAoTTF2aWFFbmNYICsgdmlhV2lkdGgpKSArIHZpYVNwYWNpbmcpKSBpZigoY29udGFjdFRvTWV0YWwgIT0gbmlsKSB0aGVuIChNMUxIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE0xTGF5ZXIgP3dpZHRoIE0xX1cgP2xlbmd0aCAoKDUgKiB2aWFTcGFjaW5nKSArICg2ICogdmlhV2lkdGgpICsgKDIgKiBNMXZpYUVuY1kpKSA/dGVybU5hbWUgInIwIiA/cGluIHQgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYUxheWVyID93aWR0aCB2aWFXaWR0aCA/bGVuZ3RoIHZpYUxlbmd0aCA/bG93ZXJMZWZ0T2Zmc2V0WCBNMXZpYUVuY1ggP2xvd2VyTGVmdE9mZnNldFkgTTF2aWFFbmNZID91cHBlclJpZ2h0T2Zmc2V0WCAoLSBNMXZpYUVuY1gpID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBNMXZpYUVuY1kpID9zcGFjZVggdmlhU3BhY2luZyA/c3BhY2VZIHZpYVNwYWNpbmcpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogTTFMSFMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBNMExIUyA/cmVmSGFuZGxlICJjQyIpIChNMVJIUyA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE0xTGF5ZXIgP3dpZHRoIE0xX1cgP2xlbmd0aCAoKDUgKiB2aWFTcGFjaW5nKSArICg2ICogdmlhV2lkdGgpICsgKDIgKiBNMXZpYUVuY1kpKSA/dGVybU5hbWUgInIxIiA/cGluIHQgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYUxheWVyID93aWR0aCB2aWFXaWR0aCA/bGVuZ3RoIHZpYUxlbmd0aCA/bG93ZXJMZWZ0T2Zmc2V0WCBNMXZpYUVuY1ggP2xvd2VyTGVmdE9mZnNldFkgTTF2aWFFbmNZID91cHBlclJpZ2h0T2Zmc2V0WCAoLSBNMXZpYUVuY1gpID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBNMXZpYUVuY1kpID9zcGFjZVggdmlhU3BhY2luZyA/c3BhY2VZIHZpYVNwYWNpbmcpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogTTFSSFMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBNMFJIUyA/cmVmSGFuZGxlICJjQyIpKSkAKHRhcExheWVyIHRhcFdpZHRoIHRhcEltcEVuYyB0YXBSaW5nSW1wbGFudCByZXNDb250YWN0SW1wbGFudCBpbm5lclJpbmdJbXBsYW50IGltcGxhbnRTcGMgcmVzSWRMYXllciByZXNDdXRMYXllciByZXNDdXRXaWR0aCByZXNXaWR0aCBtaW5SZXNMIG1heFJlc0wgd2VsbExheWVyIG53ZWxsV2lkdGggdGFwV2VsbFNwYyBkbndlbGxMYXllciBkbndlbGxXaWR0aCBkbndXZWxsRW5jIGNvbkxheWVyIGNvbldpZHRoIGNvbkxlbmd0aCBjb25TcGFjaW5nIHRhcENvbkVuY1ggdGFwQ29uRW5jWSBNMExheWVyIE0wY29uRW5jWSB2aWFMYXllciB2aWFXaWR0aCB2aWFMZW5ndGggdmlhU3BhY2luZyBNMHZpYUVuY1ggTTFMYXllciBNMXZpYUVuY1ggTTF2aWFFbmNZIHJlc0xlbmd0aCBjb250YWN0VG9NZXRhbCByZXMgY3V0IHRhcF9XIHRhcF9MIHRhcExIUyBpbXBMSFMgdGFwUkhTIGltcFJIUyBNMExIUyBNMFJIUyBNMExheWVyV2l0aE0xX1cgRE5XIE5XUmluZ0wgTldSaW5nVCBOV1JpbmdSIE5XUmluZ0IgSW1wV2J5MiBUQVBSaW5nTCBUQVBSaW5nVCBUQVBSaW5nUiBUQVBSaW5nQiBNMV9XIE0xTEhTIE0xUkhTKQAoKHJlc0xlbmd0aCAwLjApIChjb250YWN0VG9NZXRhbCAiRkFMU0UiKSkAKCh0YXBMYXllciBuaWwpICh0YXBXaWR0aCAwLjApICh0YXBJbXBFbmMgMC4wKSAodGFwUmluZ0ltcGxhbnQgbmlsKSAocmVzQ29udGFjdEltcGxhbnQgbmlsKSAoaW5uZXJSaW5nSW1wbGFudCBuaWwpIChpbXBsYW50U3BjIDAuMCkgKHJlc0lkTGF5ZXIgImhpbGl0ZSIpIChyZXNDdXRMYXllciAibWFya2VyIikgKHJlc0N1dFdpZHRoIDAuMCkgKHJlc1dpZHRoIDAuMCkgKG1pblJlc0wgMC4wKSAobWF4UmVzTCAwLjApICh3ZWxsTGF5ZXIgbmlsKSAobndlbGxXaWR0aCAwLjApICh0YXBXZWxsU3BjIG5pbCkgKGRud2VsbExheWVyIG5pbCkgKGRud2VsbFdpZHRoIDAuMCkgKGRud1dlbGxFbmMgMC4wKSAoY29uTGF5ZXIgbmlsKSAoY29uV2lkdGggMC4wKSAoY29uTGVuZ3RoIDAuMCkgKGNvblNwYWNpbmcgMC4wKSAodGFwQ29uRW5jWCAwLjApICh0YXBDb25FbmNZIDAuMCkgKE0wTGF5ZXIgbmlsKSAoTTBjb25FbmNZIDAuMCkgKHZpYUxheWVyIG5pbCkgKHZpYVdpZHRoIDAuMCkgKHZpYUxlbmd0aCAwLjApICh2aWFTcGFjaW5nIDAuMCkgKE0wdmlhRW5jWCAwLjApIChNMUxheWVyIG5pbCkgKE0xdmlhRW5jWCAwLjApIChNMXZpYUVuY1kgMC4wKSkAKGlmKCgoc2tpcFRvcCA9PSAiRkFMU0UiKSB8fCAhc2tpcFRvcCkgdGhlbiAoZHJhd1RvcCA9IHQpIGVsc2UgKGRyYXdUb3AgPSBuaWwpKSBpZigoKHNraXBCb3R0b20gPT0gIkZBTFNFIikgfHwgIXNraXBCb3R0b20pIHRoZW4gKGRyYXdCb3R0b20gPSB0KSBlbHNlIChkcmF3Qm90dG9tID0gbmlsKSkgaWYoKChza2lwTGVmdCA9PSAiRkFMU0UiKSB8fCAhc2tpcExlZnQpIHRoZW4gKGRyYXdMZWZ0ID0gdCkgZWxzZSAoZHJhd0xlZnQgPSBuaWwpKSBpZigoKHNraXBSaWdodCA9PSAiRkFMU0UiKSB8fCAhc2tpcFJpZ2h0KSB0aGVuIChkcmF3UmlnaHQgPSB0KSBlbHNlIChkcmF3UmlnaHQgPSBuaWwpKSB3aGVuKHdpZHRoRXFMZW5ndGggKHJpdmV0TGVuZ3RoID0gcml2ZXRXaWR0aCkpIChjb3JuZXJFeGNsdWRlV2lkdGggPSBtYXgoMC4wIGxsQmV2ZWxMZW5ndGggdWxCZXZlbExlbmd0aCBsckJldmVsTGVuZ3RoIHVyQmV2ZWxMZW5ndGgpKSAocml2ZXRQaXRjaFkgPSAocml2ZXRXaWR0aCArIHJpdmV0U3BhY2UpKSAocml2ZXRQaXRjaFggPSAocml2ZXRMZW5ndGggKyByaXZldFNwYWNlKSkgd2hlbihyaXZldDJMYXllciAocml2ZXQyUGl0Y2hMID0gKHJpdmV0Mkxlbmd0aCArIHJpdmV0MlNwYWNlKSkgKHJpdmV0MkFjdGl2ZUwgPSAocml2ZXRMZW5ndGggLSAoMiAqIHJpdmV0MkVuY0J5Uml2ZXQxTCkpKSAobnVtQ29sMiA9IGZpeCgoKChyaXZldDJBY3RpdmVMICsgcml2ZXQyU3BhY2UpIC8gcml2ZXQyUGl0Y2hMKSArIDFlLTA2KSkpIChyaXZldDFSZWFsTCA9ICgobnVtQ29sMiAqIHJpdmV0MlBpdGNoTCkgLSByaXZldDJTcGFjZSkpIChyaXZldDJPZmZzZXRMID0gKChyaXZldDJBY3RpdmVMIC0gcml2ZXQxUmVhbEwpIC8gMikpIChyaXZldDJPZmZzZXRMID0gKGZpeCgoKHJpdmV0Mk9mZnNldEwgLyBncmlkKSArIDFlLTA2KSkgKiBncmlkKSkpIChudW1Db2xzID0gZml4KCgoKHJpbmdXaWR0aCArIHJpdmV0U3BhY2UpIC8gcml2ZXRQaXRjaFkpICsgMWUtMDUpKSkgKHJpdmV0V2lkdGhHcmlkcyA9IGZpeCgoMC45OTkgKyAocml2ZXRXaWR0aCAvIGdyaWQpKSkpIChyaXZldFNwYWNlR3JpZHMgPSBmaXgoKDAuOTk5ICsgKHJpdmV0U3BhY2UgLyBncmlkKSkpKSBjb25kKCgoY29ybmVyRXhjbHVkZVdpZHRoIDwgKHJpdmV0U3BhY2UgLyAyLjApKSAoeFdvcmtpbmdXaWR0aCA9IChsIC0gcml2ZXRTcGFjZSkpIHdoZW4ob2RkcChyaXZldFNwYWNlR3JpZHMpICh4V29ya2luZ1dpZHRoID0gKHhXb3JraW5nV2lkdGggLSBncmlkKSkpKSAodCAoeFdvcmtpbmdXaWR0aCA9IChsIC0gKDIgKiBjb3JuZXJFeGNsdWRlV2lkdGgpKSkpKSAoeFdvcmtpbmdHcmlkcyA9IGZpeCgoMC45OTkgKyAoeFdvcmtpbmdXaWR0aCAvIGdyaWQpKSkpIChudW1SaXZldHMgPSBmaXgoKDFlLTA1ICsgKCh4V29ya2luZ1dpZHRoICsgcml2ZXRTcGFjZSkgLyAocml2ZXRMZW5ndGggKyByaXZldFNwYWNlKSkpKSkgKGRlbHRhV2lkdGggPSAoeFdvcmtpbmdXaWR0aCAtICgobnVtUml2ZXRzICogcml2ZXRMZW5ndGgpICsgKChudW1SaXZldHMgLSAxKSAqIHJpdmV0U3BhY2UpKSkpIChjZW50ZXJTcGFjZSA9IHJpdmV0U3BhY2UpIHdoZW4oZXZlbnAobnVtUml2ZXRzKSBjb25kKChldmVucCh4V29ya2luZ0dyaWRzKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSBjb25kKCgoZGVsdGFXaWR0aCA+PSBncmlkKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpICh0IChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpKSkpKSAodCB3aGVuKGV2ZW5wKHJpdmV0U3BhY2VHcmlkcykgY29uZCgoKGRlbHRhV2lkdGggPj0gZ3JpZCkgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSAodCAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSkpKSkpKSB3aGVuKG9kZHAobnVtUml2ZXRzKSBjb25kKChldmVucCh4V29ya2luZ0dyaWRzKSB3aGVuKG9kZHAocml2ZXRXaWR0aEdyaWRzKSAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpKSkgKHQgd2hlbihldmVucChyaXZldFdpZHRoR3JpZHMpIChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpIHdoZW4oZXZlbnAocml2ZXRTcGFjZUdyaWRzKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpKSkpKSAoeE9yaWdpbiA9ICgoeE9mZnNldCArIChsIC8gMi4wKSkgLSAoKChudW1SaXZldHMgKiByaXZldExlbmd0aCkgKyAoKG51bVJpdmV0cyAtIDIpICogcml2ZXRTcGFjZSkgKyBjZW50ZXJTcGFjZSkgLyAyLjApKSkgd2hlbigoKG51bVJpdmV0cyA9PSAwKSB8fCAobnVtQ29scyA9PSAwKSkgZXJyb3Ioc3ByaW50ZihuaWwgInJpdmVyUmluZ01pcnJvckNsYXNzOiBudW1iZXIgb2YgdmlhQ29ucyBsZXNzIHRoYW4gemVybyIpKSkgd2hlbigocml2ZXQyTGF5ZXIgJiYgKG51bUNvbDIgPT0gMCkpIGVycm9yKHNwcmludGYobmlsICJyaXZlclJpbmdNaXJyb3JDbGFzczogbnVtYmVyIG9mIHZpYUNvbnMgbGVzcyB0aGFuIHplcm8iKSkpIGZvcihyb3cgMSBudW1SaXZldHMgKHlPcmlnaW5Cb3QgPSB5T2Zmc2V0KSAoeU9yaWdpblRvcCA9ICh5T2Zmc2V0ICsgdykpIGZvcihjb2wgMSBudW1Db2xzIHdoZW4oZHJhd0JvdHRvbSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXRMYXllciBsaXN0KCh4T3JpZ2luOnlPcmlnaW5Cb3QpICgoeE9yaWdpbiArIHJpdmV0TGVuZ3RoKTooeU9yaWdpbkJvdCArIHJpdmV0V2lkdGgpKSkpKSB3aGVuKGRyYXdUb3AgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0TGF5ZXIgbGlzdCgoeE9yaWdpbjp5T3JpZ2luVG9wKSAoKHhPcmlnaW4gKyByaXZldExlbmd0aCk6KHlPcmlnaW5Ub3AgLSByaXZldFdpZHRoKSkpKSkgd2hlbihyaXZldDJMYXllciAoeU9yaWdpbkJvdDIgPSAoeU9yaWdpbkJvdCArIHJpdmV0MkVuY0J5Uml2ZXQxVykpICh5T3JpZ2luVG9wMiA9ICh5T3JpZ2luVG9wIC0gcml2ZXQyRW5jQnlSaXZldDFXKSkgKHhPcmlnaW4yID0gKHhPcmlnaW4gKyByaXZldDJFbmNCeVJpdmV0MUwgKyByaXZldDJPZmZzZXRMKSkgZm9yKGNvbDIgMSBudW1Db2wyIHdoZW4oZHJhd0JvdHRvbSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXQyTGF5ZXIgbGlzdCgoeE9yaWdpbjI6eU9yaWdpbkJvdDIpICgoeE9yaWdpbjIgKyByaXZldDJMZW5ndGgpOih5T3JpZ2luQm90MiArIHJpdmV0MldpZHRoKSkpKSkgd2hlbihkcmF3VG9wIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldDJMYXllciBsaXN0KCh4T3JpZ2luMjp5T3JpZ2luVG9wMikgKCh4T3JpZ2luMiArIHJpdmV0Mkxlbmd0aCk6KHlPcmlnaW5Ub3AyIC0gcml2ZXQyV2lkdGgpKSkpKSAoeE9yaWdpbjIgPSAoeE9yaWdpbjIgKyByaXZldDJQaXRjaEwpKSkpICh5T3JpZ2luQm90ID0gKHlPcmlnaW5Cb3QgKyByaXZldFBpdGNoWSkpICh5T3JpZ2luVG9wID0gKHlPcmlnaW5Ub3AgLSByaXZldFBpdGNoWSkpKSBjb25kKCgoZXZlbnAobnVtUml2ZXRzKSAmJiAoYWJzKChyb3cgLSAobnVtUml2ZXRzIC8gMi4wKSkpIDwgMWUtMDUpKSAoeE9yaWdpbiA9ICh4T3JpZ2luICsgcml2ZXRMZW5ndGggKyBjZW50ZXJTcGFjZSkpKSAodCAoeE9yaWdpbiA9ICh4T3JpZ2luICsgcml2ZXRQaXRjaFgpKSkpKSBjb25kKCgoY29ybmVyRXhjbHVkZVdpZHRoIDwgKG51bUNvbHMgKiByaXZldFBpdGNoWSkpICh5V29ya2luZ1dpZHRoID0gKHcgLSAoMiAqIG51bUNvbHMgKiByaXZldFBpdGNoWSkpKSkgKHQgKHlXb3JraW5nV2lkdGggPSAodyAtICgyICogY29ybmVyRXhjbHVkZVdpZHRoKSkpKSkgKHlXb3JraW5nR3JpZHMgPSBmaXgoKDAuOTk5ICsgKHlXb3JraW5nV2lkdGggLyBncmlkKSkpKSAobnVtUml2ZXRzID0gZml4KCgxZS0wNSArICgoeVdvcmtpbmdXaWR0aCArIHJpdmV0U3BhY2UpIC8gKHJpdmV0TGVuZ3RoICsgcml2ZXRTcGFjZSkpKSkpIChkZWx0YVdpZHRoID0gKHlXb3JraW5nV2lkdGggLSAoKG51bVJpdmV0cyAqIHJpdmV0TGVuZ3RoKSArICgobnVtUml2ZXRzIC0gMSkgKiByaXZldFNwYWNlKSkpKSAoY2VudGVyU3BhY2UgPSByaXZldFNwYWNlKSB3aGVuKGV2ZW5wKG51bVJpdmV0cykgY29uZCgoZXZlbnAoeVdvcmtpbmdHcmlkcykgd2hlbihvZGRwKHJpdmV0U3BhY2VHcmlkcykgY29uZCgoKGRlbHRhV2lkdGggPj0gZ3JpZCkgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSAodCAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSkpKSkgKHQgd2hlbihldmVucChyaXZldFNwYWNlR3JpZHMpIGNvbmQoKChkZWx0YVdpZHRoID49IGdyaWQpIChjZW50ZXJTcGFjZSA9IChjZW50ZXJTcGFjZSArIGdyaWQpKSkgKHQgKG51bVJpdmV0cyA9IChudW1SaXZldHMgLSAxKSkpKSkpKSkgd2hlbihvZGRwKG51bVJpdmV0cykgY29uZCgoZXZlbnAoeVdvcmtpbmdHcmlkcykgd2hlbihvZGRwKHJpdmV0V2lkdGhHcmlkcykgKG51bVJpdmV0cyA9IChudW1SaXZldHMgLSAxKSkgd2hlbihvZGRwKHJpdmV0U3BhY2VHcmlkcykgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSkpICh0IHdoZW4oZXZlbnAocml2ZXRXaWR0aEdyaWRzKSAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSB3aGVuKGV2ZW5wKHJpdmV0U3BhY2VHcmlkcykgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSkpKSkgKHlPcmlnaW4gPSAoKHlPZmZzZXQgKyAodyAvIDIuMCkpIC0gKCgobnVtUml2ZXRzICogcml2ZXRMZW5ndGgpICsgKChudW1SaXZldHMgLSAyKSAqIHJpdmV0U3BhY2UpICsgY2VudGVyU3BhY2UpIC8gMi4wKSkpIGZvcihyb3cgMSBudW1SaXZldHMgKHhPcmlnaW5MZWZ0ID0geE9mZnNldCkgKHhPcmlnaW5SaWdodCA9ICh4T2Zmc2V0ICsgbCkpIGZvcihjb2wgMSBudW1Db2xzIHdoZW4oZHJhd0xlZnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0TGF5ZXIgbGlzdCgoeE9yaWdpbkxlZnQ6eU9yaWdpbikgKCh4T3JpZ2luTGVmdCArIHJpdmV0V2lkdGgpOih5T3JpZ2luICsgcml2ZXRMZW5ndGgpKSkpKSB3aGVuKGRyYXdSaWdodCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXRMYXllciBsaXN0KCh4T3JpZ2luUmlnaHQ6eU9yaWdpbikgKCh4T3JpZ2luUmlnaHQgLSByaXZldFdpZHRoKTooeU9yaWdpbiArIHJpdmV0TGVuZ3RoKSkpKSkgd2hlbihyaXZldDJMYXllciAoeE9yaWdpbkxlZnQyID0gKHhPcmlnaW5MZWZ0ICsgcml2ZXQyRW5jQnlSaXZldDFXKSkgKHhPcmlnaW5SaWdodDIgPSAoeE9yaWdpblJpZ2h0IC0gcml2ZXQyRW5jQnlSaXZldDFXKSkgKHlPcmlnaW4yID0gKHlPcmlnaW4gKyByaXZldDJFbmNCeVJpdmV0MUwgKyByaXZldDJPZmZzZXRMKSkgZm9yKGNvbDIgMSBudW1Db2wyIHdoZW4oZHJhd0xlZnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0MkxheWVyIGxpc3QoKHhPcmlnaW5MZWZ0Mjp5T3JpZ2luMikgKCh4T3JpZ2luTGVmdDIgKyByaXZldDJXaWR0aCk6KHlPcmlnaW4yICsgcml2ZXQyTGVuZ3RoKSkpKSkgd2hlbihkcmF3UmlnaHQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0MkxheWVyIGxpc3QoKHhPcmlnaW5SaWdodDI6eU9yaWdpbjIpICgoeE9yaWdpblJpZ2h0MiAtIHJpdmV0MldpZHRoKTooeU9yaWdpbjIgKyByaXZldDJMZW5ndGgpKSkpKSAoeU9yaWdpbjIgPSAoeU9yaWdpbjIgKyByaXZldDJQaXRjaEwpKSkpICh4T3JpZ2luTGVmdCA9ICh4T3JpZ2luTGVmdCArIHJpdmV0UGl0Y2hZKSkgKHhPcmlnaW5SaWdodCA9ICh4T3JpZ2luUmlnaHQgLSByaXZldFBpdGNoWSkpKSBjb25kKCgoZXZlbnAobnVtUml2ZXRzKSAmJiAoYWJzKChyb3cgLSAobnVtUml2ZXRzIC8gMi4wKSkpIDwgMWUtMDUpKSAoeU9yaWdpbiA9ICh5T3JpZ2luICsgcml2ZXRMZW5ndGggKyBjZW50ZXJTcGFjZSkpKSAodCAoeU9yaWdpbiA9ICh5T3JpZ2luICsgcml2ZXRQaXRjaFgpKSkpKSkAKHdpZHRoRXFMZW5ndGggdyBsIHhPZmZzZXQgeU9mZnNldCByaXZldExheWVyIHJpdmV0MkxheWVyIHJpdmV0TGF5ZXIyIHJpbmdXaWR0aCByaXZldFdpZHRoIHJpdmV0TGVuZ3RoIHJpdmV0U3BhY2Ugcml2ZXQyV2lkdGggcml2ZXQyTGVuZ3RoIHJpdmV0MlNwYWNlIHJpdmV0MkVuY0J5Uml2ZXQxTCByaXZldDJFbmNCeVJpdmV0MVcgbGxCZXZlbExlbmd0aCB1bEJldmVsTGVuZ3RoIGxyQmV2ZWxMZW5ndGggdXJCZXZlbExlbmd0aCBhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIHNraXBUb3Agc2tpcEJvdHRvbSBza2lwTGVmdCBza2lwUmlnaHQgZ3JpZCBkcmF3VG9wIGRyYXdCb3R0b20gZHJhd0xlZnQgZHJhd1JpZ2h0IGNvcm5lckV4Y2x1ZGVXaWR0aCByaXZldFBpdGNoWSByaXZldFBpdGNoWCByaXZldDJQaXRjaEwgcml2ZXQyQWN0aXZlTCBudW1Db2wyIHJpdmV0MVJlYWxMIHJpdmV0Mk9mZnNldEwgbnVtQ29scyByaXZldFdpZHRoR3JpZHMgcml2ZXRTcGFjZUdyaWRzIHhXb3JraW5nV2lkdGggeFdvcmtpbmdHcmlkcyBudW1SaXZldHMgZGVsdGFXaWR0aCBjZW50ZXJTcGFjZSB4T3JpZ2luIHJvdyB5T3JpZ2luQm90IHlPcmlnaW5Ub3AgY29sIHlPcmlnaW5Cb3QyIHlPcmlnaW5Ub3AyIHhPcmlnaW4yIGNvbDIgeVdvcmtpbmdXaWR0aCB5V29ya2luZ0dyaWRzIHlPcmlnaW4geE9yaWdpbkxlZnQgeE9yaWdpblJpZ2h0IHhPcmlnaW5MZWZ0MiB4T3JpZ2luUmlnaHQyIHlPcmlnaW4yKQAoKHcgNS4wKSAobCA1LjApICh4T2Zmc2V0IDAuMCkgKHlPZmZzZXQgMC4wKSAocml2ZXRMYXllciBsaXN0KCJ5MyIgImRyYXdpbmciKSkgKHJpdmV0MkxheWVyIG5pbCkgKHJpdmV0TGF5ZXIyIG5pbCkgKHJpbmdXaWR0aCAxLjApIChyaXZldFdpZHRoIDEuMCkgKHJpdmV0TGVuZ3RoIDAuMjUpIChyaXZldFNwYWNlIDAuNSkgKHJpdmV0MldpZHRoIDAuMCkgKHJpdmV0Mkxlbmd0aCAwLjApIChyaXZldDJTcGFjZSAwLjApIChyaXZldDJFbmNCeVJpdmV0MUwgMC4wKSAocml2ZXQyRW5jQnlSaXZldDFXIDAuMCkgKGxsQmV2ZWxMZW5ndGggMS4wKSAodWxCZXZlbExlbmd0aCAxLjApIChsckJldmVsTGVuZ3RoIDEuMCkgKHVyQmV2ZWxMZW5ndGggMS4wKSAoYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCAiRkFMU0UiKSAoc2tpcFRvcCAiRkFMU0UiKSAoc2tpcEJvdHRvbSAiRkFMU0UiKSAoc2tpcExlZnQgIkZBTFNFIikgKHNraXBSaWdodCAiRkFMU0UiKSAoZ3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSkAKCh3aWR0aEVxTGVuZ3RoIHQpKQAod2hlbigoYmV2ZWxUaGVPdXRzaWRlID09ICJGQUxTRSIpIChiZXZlbFRoZU91dHNpZGUgPSBuaWwpKSBpZigoKHNraXBMZWZ0U2lkZSA9PSAiRkFMU0UiKSB8fCAhc2tpcExlZnRTaWRlKSB0aGVuIChkcmF3TGVmdFNpZGUgPSB0KSBlbHNlIChkcmF3TGVmdFNpZGUgPSBuaWwpKSBpZigoKHNraXBSaWdodFNpZGUgPT0gIkZBTFNFIikgfHwgIXNraXBSaWdodFNpZGUpIHRoZW4gKGRyYXdSaWdodFNpZGUgPSB0KSBlbHNlIChkcmF3UmlnaHRTaWRlID0gbmlsKSkgaWYoKChza2lwVG9wU2lkZSA9PSAiRkFMU0UiKSB8fCAhc2tpcFRvcFNpZGUpIHRoZW4gKGRyYXdUb3BTaWRlID0gdCkgZWxzZSAoZHJhd1RvcFNpZGUgPSBuaWwpKSBpZigoKHNraXBCb3R0b21TaWRlID09ICJGQUxTRSIpIHx8ICFza2lwQm90dG9tU2lkZSkgdGhlbiAoZHJhd0JvdHRvbVNpZGUgPSB0KSBlbHNlIChkcmF3Qm90dG9tU2lkZSA9IG5pbCkpIGlmKCgoc2tpcExlZnRTaWRlID09ICJUUlVFIikgfHwgKHNraXBSaWdodFNpZGUgPT0gIlRSVUUiKSB8fCAoc2tpcFRvcFNpZGUgPT0gIlRSVUUiKSB8fCAoc2tpcEJvdHRvbVNpZGUgPT0gIlRSVUUiKSkgdGhlbiAoc2VsZWN0aXZlRHJhd2luZyA9IHQpIGVsc2UgKHNlbGVjdGl2ZURyYXdpbmcgPSBuaWwpKSB3aGVuKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSA9PSAiRkFMU0UiKSAoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgPSBuaWwpKSBpZigoKGJyZWFrdXBQb2x5Z29ucyA9PSAiRkFMU0UiKSB8fCAhYnJlYWt1cFBvbHlnb25zKSB0aGVuIChicmVha3VwUG9seWdvbnMgPSBuaWwpIGVsc2UgKGJyZWFrdXBQb2x5Z29ucyA9IHQpKSAoczIgPSBzcXJ0KDIuMCkpIChiZXZlbEluc2lkZU9mZnNldCA9ICgoKHJpbmdXaWR0aCAqIChzMiAtIDEuMCkpICsgKHMyICogYWRkaXRpb25hbFdpZHRoSW5CZXZlbCkpIC8gZ3JpZCkpIChmaXhlZEJldiA9IGZpeCgoMWUtMDYgKyBiZXZlbEluc2lkZU9mZnNldCkpKSBjb25kKCgoKGJldmVsSW5zaWRlT2Zmc2V0IC0gZml4ZWRCZXYpIDwgMWUtMDYpIChiZXZlbEluc2lkZU9mZnNldCA9IChncmlkICogZml4ZWRCZXYpKSkgKHQgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKGdyaWQgKiAoMS4wICsgZml4ZWRCZXYpKSkpKSAoY2Fubm90QmV2ZWxMZW5ndGggPSAocmluZ1dpZHRoIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSBjb25kKCgobGxCZXZlbCA9IChsbEJldmVsTGVuZ3RoID4gY2Fubm90QmV2ZWxMZW5ndGgpKSAoYXJyYXlTaXplID0gNCkpICh0IChhcnJheVNpemUgPSAyKSkpIGNvbmQoKChsckJldmVsID0gKGxyQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgNCkpKSAodCAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDIpKSkpIGNvbmQoKCh1ckJldmVsID0gKHVyQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgNCkpKSAodCAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDIpKSkpIGNvbmQoKCh1bEJldmVsID0gKHVsQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgNCkpKSAodCAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDIpKSkpIChpbnNpZGVJbmRleCA9IChhcnJheVNpemUgLyAyKSkgKG91dHNpZGVJbmRleCA9IChpbnNpZGVJbmRleCArIDEpKSAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDMpKSBkZWNsYXJlKHRoZVJpbmdQb2ludHNbYXJyYXlTaXplXSkgKHRoZU91dHNpZGVYID0geE9mZnNldCkgKHRoZU91dHNpZGVZID0geU9mZnNldCkgY29uZCgoIWxsQmV2ZWwgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyByaW5nV2lkdGgpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSArIHJpbmdXaWR0aCkpIChiZWdpbm5pbmdJbnNpZGVQb2ludCA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAoYmVnaW5uaW5nT3V0c2lkZVBvaW50ID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gYmVnaW5uaW5nSW5zaWRlUG9pbnQpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSBiZWdpbm5pbmdPdXRzaWRlUG9pbnQpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVZID0gKHRoZU91dHNpZGVZICsgbGxCZXZlbExlbmd0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZICsgYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpIChiZWdpbm5pbmdJbnNpZGVQb2ludCA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAoYmVnaW5uaW5nT3V0c2lkZVBvaW50ID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZUluc2lkZVkxID0gKHlPZmZzZXQgKyByaW5nV2lkdGgpKSAoYmVnaW5uaW5nSW5zaWRlUG9pbnQxID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWTEpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludDEpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgd2hlbihiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9ICh0aGVPdXRzaWRlWCArIGxsQmV2ZWxMZW5ndGgpKSAodGhlT3V0c2lkZVkgPSB5T2Zmc2V0KSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyByaW5nV2lkdGgpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludDEpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSkgKHQgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh4T2Zmc2V0OnRoZU91dHNpZGVZKSkgKGJlZ2lubmluZ091dHNpZGVQb2ludCA9IHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKCFsckJldmVsICh0aGVPdXRzaWRlWCA9ICh4T2Zmc2V0ICsgbCkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gcmluZ1dpZHRoKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0ICh0aGVPdXRzaWRlWCA9ICh4T2Zmc2V0ICsgbCArICgtIGxyQmV2ZWxMZW5ndGgpKSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSBiZXZlbEluc2lkZU9mZnNldCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVJbnNpZGVYMSA9ICh4T2Zmc2V0ICsgbCArICgtIHJpbmdXaWR0aCkpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDE6dGhlSW5zaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgd2hlbihiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodGhlT3V0c2lkZVggPSAodGhlT3V0c2lkZVggKyBsckJldmVsTGVuZ3RoKSkgKHRoZU91dHNpZGVZID0gKHRoZU91dHNpZGVZICsgbHJCZXZlbExlbmd0aCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYMTp0aGVJbnNpZGVZKSkpICh0ICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gcmluZ1dpZHRoKSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnlPZmZzZXQpKSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgoIXVyQmV2ZWwgKHRoZU91dHNpZGVZID0gKHlPZmZzZXQgKyB3KSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgLSByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVZID0gKHlPZmZzZXQgKyB3ICsgKC0gdXJCZXZlbExlbmd0aCkpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZUluc2lkZVkxID0gKHlPZmZzZXQgKyB3ICsgKC0gcmluZ1dpZHRoKSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYMTp0aGVJbnNpZGVZMSkpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgd2hlbihiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodGhlT3V0c2lkZVkgPSAoeU9mZnNldCArIHcpKSAodGhlT3V0c2lkZVggPSAodGhlT3V0c2lkZVggLSB1ckJldmVsTGVuZ3RoKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVgxOnRoZUluc2lkZVkxKSkpICh0ICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKCh4T2Zmc2V0ICsgbCk6dGhlT3V0c2lkZVkpKSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgoIXVsQmV2ZWwgKHRoZU91dHNpZGVYID0geE9mZnNldCkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVYID0gKHhPZmZzZXQgKyB1bEJldmVsTGVuZ3RoKSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyBiZXZlbEluc2lkZU9mZnNldCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVJbnNpZGVYMSA9ICh4T2Zmc2V0ICsgcmluZ1dpZHRoKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVgxOnRoZUluc2lkZVkxKSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9IHhPZmZzZXQpICh0aGVPdXRzaWRlWSA9ICh0aGVPdXRzaWRlWSAtIHVsQmV2ZWxMZW5ndGgpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDE6dGhlSW5zaWRlWTEpKSkgKHQgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyByaW5nV2lkdGgpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6KHlPZmZzZXQgKyB3KSkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludDEpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSBiZWdpbm5pbmdPdXRzaWRlUG9pbnQpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludDEpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSkpIGNvbmQoKGJyZWFrdXBQb2x5Z29ucyAoaW5zaWRlSW5kZXggPSAoKGFycmF5U2l6ZSAtIDMpIC8gMikpIChvdXRzaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggKyAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlIGNvbmQoKGxsQmV2ZWwgKHJpbmdMaXN0MSA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDEgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKChsckJldmVsIChyaW5nTGlzdDIgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMikpKSAodCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodXJCZXZlbCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDIpKSkgKHQgKHJpbmdMaXN0MyA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKHVsQmV2ZWwgKHJpbmdMaXN0NCA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDQgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSkgKHQgY29uZCgobGxCZXZlbCAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCBpZihzZWxlY3RpdmVEcmF3aW5nIHRoZW4gKHVyWCA9IChjYXIodGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0pICsgcmluZ1dpZHRoKSkgKHVyWSA9IGNhZHIodGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0pKSAodXJQb2ludCA9IGxpc3QodXJYIHVyWSkpIChsbFggPSBjYXIodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGxsWSA9IGNhZHIodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGxsUG9pbnQgPSBsaXN0KGxsWCBsbFkpKSAocmluZ0xpc3QxID0gbGlzdChsbFBvaW50IHVyUG9pbnQpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkgZWxzZSAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkpIGNvbmQoKGxyQmV2ZWwgKHJpbmdMaXN0MiA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgaWYoc2VsZWN0aXZlRHJhd2luZyB0aGVuICh1clggPSBjYXIodGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldKSkgKHVyWSA9IGNhZHIodGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldKSkgKHVyUG9pbnQgPSBsaXN0KHVyWCB1clkpKSAobGxYID0gY2FyKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdKSkgKGxsWSA9IChjYWRyKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdKSAtIHJpbmdXaWR0aCkpIChsbFBvaW50ID0gbGlzdChsbFggbGxZKSkgKHJpbmdMaXN0MiA9IGxpc3QobGxQb2ludCB1clBvaW50KSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpIGVsc2UgKHJpbmdMaXN0MiA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpKSBjb25kKCh1ckJldmVsIChyaW5nTGlzdDMgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0IGlmKHNlbGVjdGl2ZURyYXdpbmcgdGhlbiAodXJYID0gY2FyKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpICh1clkgPSBjYWRyKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpICh1clBvaW50ID0gbGlzdCh1clggdXJZKSkgKGxsWCA9IChjYXIodGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0pIC0gcmluZ1dpZHRoKSkgKGxsWSA9IGNhZHIodGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0pKSAobGxQb2ludCA9IGxpc3QobGxYIGxsWSkpIChyaW5nTGlzdDMgPSBsaXN0KGxsUG9pbnQgdXJQb2ludCkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSBlbHNlIChyaW5nTGlzdDMgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSkgY29uZCgodWxCZXZlbCAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCBpZihzZWxlY3RpdmVEcmF3aW5nIHRoZW4gKHVyWCA9IGNhcih0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSkpICh1clkgPSAoY2Fkcih0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSkgKyByaW5nV2lkdGgpKSAodXJQb2ludCA9IGxpc3QodXJYIHVyWSkpIChsbFggPSBjYXIodGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldKSkgKGxsWSA9IGNhZHIodGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldKSkgKGxsUG9pbnQgPSBsaXN0KGxsWCBsbFkpKSAocmluZ0xpc3Q0ID0gbGlzdChsbFBvaW50IHVyUG9pbnQpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkgZWxzZSAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkpKSkgd2hlbihyaW5nTGF5ZXIgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICIiICJpbnB1dE91dHB1dCIpIGlmKHNlbGVjdGl2ZURyYXdpbmcgdGhlbiB3aGVuKGRyYXdCb3R0b21TaWRlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDEpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIHdoZW4oZHJhd1JpZ2h0U2lkZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QyKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSB3aGVuKGRyYXdUb3BTaWRlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDMpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIHdoZW4oZHJhd0xlZnRTaWRlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDQpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIGVsc2Ugd2hlbihkcmF3Qm90dG9tU2lkZSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QxKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSB3aGVuKGRyYXdSaWdodFNpZGUgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0MikpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgd2hlbihkcmF3VG9wU2lkZSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QzKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSB3aGVuKGRyYXdMZWZ0U2lkZSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3Q0KSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50czEiICJsaXN0IiByaW5nTGlzdDEpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50czIiICJsaXN0IiByaW5nTGlzdDIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50czMiICJsaXN0IiByaW5nTGlzdDMpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50czQiICJsaXN0IiByaW5nTGlzdDQpKSAodCAocmluZ0xpc3QgPSBuaWwpIGZvcihpIDEgb3V0c2lkZUluZGV4IChyaW5nTGlzdCA9IGNvbnModGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4IC0gaSldIHJpbmdMaXN0KSkpIHdoZW4ocmluZ0xheWVyIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSAoZGJDcmVhdGVUZXJtIG5ldCAiIiAiaW5wdXRPdXRwdXQiKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50cyIgImxpc3QiIHJpbmdMaXN0KSkpKQAodyBsIHhPZmZzZXQgeU9mZnNldCByaW5nTGF5ZXIgcmluZ1dpZHRoIGFkZGl0aW9uYWxXaWR0aEluQmV2ZWwgbGxCZXZlbExlbmd0aCB1bEJldmVsTGVuZ3RoIGxyQmV2ZWxMZW5ndGggdXJCZXZlbExlbmd0aCBiZXZlbFRoZU91dHNpZGUgYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgc2tpcExlZnRTaWRlIHNraXBSaWdodFNpZGUgc2tpcFRvcFNpZGUgc2tpcEJvdHRvbVNpZGUgZ3JpZCBicmVha3VwUG9seWdvbnMgZHJhd0xlZnRTaWRlIGRyYXdSaWdodFNpZGUgZHJhd1RvcFNpZGUgZHJhd0JvdHRvbVNpZGUgc2VsZWN0aXZlRHJhd2luZyBzMiBiZXZlbEluc2lkZU9mZnNldCBmaXhlZEJldiBjYW5ub3RCZXZlbExlbmd0aCBsbEJldmVsIGFycmF5U2l6ZSBsckJldmVsIHVyQmV2ZWwgdWxCZXZlbCBpbnNpZGVJbmRleCBvdXRzaWRlSW5kZXggdGhlUmluZ1BvaW50cyB0aGVPdXRzaWRlWCB0aGVPdXRzaWRlWSB0aGVJbnNpZGVYIHRoZUluc2lkZVkgYmVnaW5uaW5nSW5zaWRlUG9pbnQgYmVnaW5uaW5nT3V0c2lkZVBvaW50IHRoZUluc2lkZVkxIGJlZ2lubmluZ0luc2lkZVBvaW50MSB0aGVJbnNpZGVYMSByaW5nTGlzdDEgcmluZ0xpc3QyIHJpbmdMaXN0MyByaW5nTGlzdDQgdXJYIHVyWSB1clBvaW50IGxsWCBsbFkgbGxQb2ludCBuZXQgZGJpZCByaW5nTGlzdCBpKQAoKHcgNS4wKSAobCA1LjApICh4T2Zmc2V0IDAuMCkgKHlPZmZzZXQgMC4wKSAocmluZ0xheWVyIGxpc3QoInkzIiAiZHJhd2luZyIpKSAocmluZ1dpZHRoIDEuMCkgKGFkZGl0aW9uYWxXaWR0aEluQmV2ZWwgMC4wKSAobGxCZXZlbExlbmd0aCAwLjApICh1bEJldmVsTGVuZ3RoIDAuMCkgKGxyQmV2ZWxMZW5ndGggMC4wKSAodXJCZXZlbExlbmd0aCAwLjApIChiZXZlbFRoZU91dHNpZGUgIkZBTFNFIikgKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICJGQUxTRSIpIChza2lwTGVmdFNpZGUgIkZBTFNFIikgKHNraXBSaWdodFNpZGUgIkZBTFNFIikgKHNraXBUb3BTaWRlICJGQUxTRSIpIChza2lwQm90dG9tU2lkZSAiRkFMU0UiKSAoZ3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAoYnJlYWt1cFBvbHlnb25zICJGQUxTRSIpKQAoKGV4dHJhQ29ybmVyQ3V0X29yaWcgPSBleHRyYUNvcm5lckN1dCkgKHRnMjJfNSA9IDAuNDE0MikgKGRidXBlcnV1ID0gKHRjQ2VsbFZpZXd+PkRCVVBlclVVKSkgKGdyaWQgPSBmaXgoKGRidXBlcnV1ICogc2VhbHJpbmdHcmlkKSkpIChzMiA9IHNxcnQoMi4wKSkgZm9yZWFjaChwYXJhbSAnKHNlYWxyaW5nSWRXaWR0aCBwYWRFbmNOaWtvbiBwYWRFbmNOaWtvbkluc2lkZSB3IGwgZXh0cmFDb3JuZXJDdXQgcGFkR3JpZCkgc2V0KHBhcmFtIGZpeCgoZGJ1cGVydXUgKiBldmFsKHBhcmFtKSkpKSB1bmxlc3MoemVyb3AobW9kKGV2YWwocGFyYW0pIGdyaWQpKSBzZXQocGFyYW0gKCgoZXZhbChwYXJhbSkgKyBncmlkKSAvIGdyaWQpICogZ3JpZCkpKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChtaW5TZWFsUmluZ0lkV2lkdGggPSAwKSAocmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGdlbmVyaWNSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpbmdJZCBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogIENhbm5vdCBmaW5kL29wZW4gZ2VuZXJpYyByaW5nICVzXG4iIGdlbmVyaWNSaW5nTmFtZSkpIHVubGVzcygocmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3NBZHY6ICBSaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaW5nTmFtZSkpIHdoZW4oKGRpc2NyZXRlQ29udGFjdFJpbmdOYW1lICE9ICIiKSAoY29udGFjdFJpbmdJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBkaXNjcmV0ZUNvbnRhY3RSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGNvbnRhY3RSaW5nSWQgZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3NBZHY6ICBDYW5ub3QgZmluZC9vcGVuIGdlbmVyaWMgY29udGFjdCByaW5nICVzXG4iIGRpc2NyZXRlQ29udGFjdFJpbmdOYW1lKSkgdW5sZXNzKChjb250YWN0UmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3NBZHY6ICBSaXZldCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGRpc2NyZXRlQ29udGFjdFJpbmdOYW1lKSkpIHdoZW4oKGRpc2NyZXRlQ29udGFjdFJpbmcgJiYgIWNvbnRhY3RSaW5nSWQpIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzQWR2OiAgUml2ZXQgcmluZyBjbGFzcyBub3QgZGVmaW5lZFxuIikpIChuaWtvbklkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIG5pa29uQ3Jvc3NOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Mobmlrb25JZCBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogIENhbm5vdCBmaW5kL29wZW4gbmlrb24gY3Jvc3MgJXNcbiIgbmlrb25Dcm9zc05hbWUpKSB1bmxlc3MoKG5pa29uSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogIE5pa29uIGNyb3NzICVzIGlzIG5vdCBhIHBjZWxsXG4iIG5pa29uQ3Jvc3NOYW1lKSkgZm9yZWFjaChsYXllciBzb2xpZExheWVyUmluZyAodGhpc0xwcCA9IGNhcihsYXllcikpIChyaW5nV2lkdGggPSBmaXgoKGRidXBlcnV1ICogY2FkZHIobGF5ZXIpKSkpIChtYWtlUGluID0gbnRoKDMgbGF5ZXIpKSAobGF5R3JpZCA9IGZpeCgoZGJ1cGVydXUgKiBudGgoNCBsYXllcikpKSkgKHNwYWNpbmdMaXN0ID0gY2FkcihsYXllcikpIHdoZW4oIWxpc3RwKHNwYWNpbmdMaXN0KSAoc3BhY2luZ0xpc3QgPSBsaXN0KHNwYWNpbmdMaXN0KSkpIGZvcmVhY2goU1Agc3BhY2luZ0xpc3QgKHNwYWNpbmcgPSBmaXgoKGRidXBlcnV1ICogU1ApKSkgKGludFJpbmdMYXllcnMgPSBjb25zKGxpc3QodGhpc0xwcCBzcGFjaW5nIHJpbmdXaWR0aCBtYWtlUGluIGxheUdyaWQpIGludFJpbmdMYXllcnMpKSB3aGVuKChtaW5TZWFsUmluZ0lkV2lkdGggPCAoc3BhY2luZyArIHJpbmdXaWR0aCkpIChtaW5TZWFsUmluZ0lkV2lkdGggPSAoc3BhY2luZyArIHJpbmdXaWR0aCkpKSkpIChzZWFscmluZ0lkV2lkdGggPSBtYXgoc2VhbHJpbmdJZFdpZHRoIG1pblNlYWxSaW5nSWRXaWR0aCkpICh3ID0gKHcgKyAoMiAqIHNlYWxyaW5nSWRXaWR0aCkpKSAobCA9IChsICsgKDIgKiBzZWFscmluZ0lkV2lkdGgpKSkgKGxlbiA9IChsIC8gZGJ1cGVydXUpKSAod2lkID0gKHcgLyBkYnVwZXJ1dSkpIChzbWFsbGRpZSA9IG5pbCkgaWYoKGwgPiB3KSB0aGVuIChhciA9IChsZW4gLyB3aWQpKSBpZigobGVuIDwgKGNyaXRpY2FsTCAvIHNjYWxlRikpIHRoZW4gKHNtYWxsZGllID0gdCkpIGVsc2UgKGFyID0gKHdpZCAvIGxlbikpIGlmKCh3aWQgPCAoY3JpdGljYWxMIC8gc2NhbGVGKSkgdGhlbiAoc21hbGxkaWUgPSB0KSkpIGlmKHNtYWxsZGllIHRoZW4gKHJkID0gKGRlZlJkIC8gc2NhbGVGKSkgKHJjID0gKGRlZlJjIC8gc2NhbGVGKSkgKGQgPSAoZGVmRCAvIHNjYWxlRikpIGVsc2UgKHJkID0gKCgoKDYuNDMgLSAoMS4yOCAqIGFyKSkgKyAoMC42OSAqIGFyICogYXIpKSAqIDI1LjQpIC8gc2NhbGVGKSkgKHJjID0gKCgoMTEuMjUgKyAoMy40NyAqIGFyKSkgKiAyNS40KSAvIHNjYWxlRikpIChkID0gKCgoLTEuMzEgKyAoMy44NyAqIGFyKSkgKiAyNS40KSAvIHNjYWxlRikpKSBpZigocmRMYXllciAmJiAocmQgPiAwKSkgdGhlbiAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmRMYXllciBsaXN0KCgoLSByZCk6KC0gcmQpKSAocmQ6cmQpKSkgKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJkTGF5ZXIgbGlzdCgoKC0gcmQpOih3aWQgLSByZCkpIChyZDood2lkICsgcmQpKSkpIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByZExheWVyIGxpc3QoKChsZW4gLSByZCk6KC0gcmQpKSAoKGxlbiArIHJkKTpyZCkpKSAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmRMYXllciBsaXN0KCgobGVuIC0gcmQpOih3aWQgLSByZCkpICgobGVuICsgcmQpOih3aWQgKyByZCkpKSkpIGlmKHJjTGF5ZXIgdGhlbiAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmNMYXllciBsaXN0KCgoLSByYyk6KC0gcmMpKSAocmM6cmMpKSkgKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJjTGF5ZXIgbGlzdCgoKC0gcmMpOih3aWQgLSByYykpIChyYzood2lkICsgcmMpKSkpIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByY0xheWVyIGxpc3QoKChsZW4gLSByYyk6KC0gcmMpKSAoKGxlbiArIHJjKTpyYykpKSAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmNMYXllciBsaXN0KCgobGVuIC0gcmMpOih3aWQgLSByYykpICgobGVuICsgcmMpOih3aWQgKyByYykpKSkpIGlmKGRMYXllciB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkTGF5ZXIgbGlzdCgoMDowKSAoZDp3aWQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRMYXllciBsaXN0KCgwOjApIChsZW46ZCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZExheWVyIGxpc3QoKDA6KHdpZCAtIGQpKSAobGVuOndpZCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZExheWVyIGxpc3QoKChsZW4gLSBkKTowKSAobGVuOndpZCkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBuaWtvbklkICJsbE5pa29uIiAoKHBhZEVuY05pa29uIC8gZGJ1cGVydXUpOihwYWRFbmNOaWtvbiAvIGRidXBlcnV1KSkgIlIwIiAxIG5pbCkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCAodGhlTWFzdGVyfj5vdXRsaW5lUG9pbnRzKSAoY3V0UG9pbnRzID0gY29ucygoKHBhZEVuY05pa29uICsgZml4KChkYnVwZXJ1dSAqIGNhcihwb2ludCkpKSk6KHBhZEVuY05pa29uICsgZml4KChkYnVwZXJ1dSAqIGNhZHIocG9pbnQpKSkpKSBjdXRQb2ludHMpKSkgd2hlbih6ZXJvcChwYWRFbmNOaWtvbkluc2lkZSkgKHBhZEVuY05pa29uSW5zaWRlID0gcGFkRW5jTmlrb24pKSAoY29ybmVyQ3V0ID0gZml4KCgoMi4wICogcGFkRW5jTmlrb24pICsgKHMyICogcGFkRW5jTmlrb25JbnNpZGUpICsgKGRidXBlcnV1ICogY2FyKG50aCgzICh0aGVNYXN0ZXJ+Pm91dGxpbmVQb2ludHMpKSkpICsgKGRidXBlcnV1ICogY2FyKG50aCgyICh0aGVNYXN0ZXJ+Pm91dGxpbmVQb2ludHMpKSkpKSkpIHVubGVzcyh6ZXJvcChtb2QoY29ybmVyQ3V0IHBhZEdyaWQpKSAoY29ybmVyQ3V0ID0gKCgoY29ybmVyQ3V0ICsgcGFkR3JpZCkgLyBwYWRHcmlkKSAqIHBhZEdyaWQpKSkgKGJldmVsQWRkID0gMCkgZm9yZWFjaChsYXllciBpbnRSaW5nTGF5ZXJzIChzcGFjaW5nID0gY2FkcihsYXllcikpIChiZXZlbExlbmd0aCA9IChjb3JuZXJDdXQgKyAoLSBzcGFjaW5nKSArIGZpeCgoc3BhY2luZyAqIChzMiAtIDEuMCkpKSkpIChtaW5CZXZlbFJlcXVpcmVkID0gKGNlaWxpbmcgKGNhZGRyKGxheWVyKSAqIDEuMCkpKSAoYmV2ZWxBamR1c3QgPSAobWluQmV2ZWxSZXF1aXJlZCAtIGJldmVsTGVuZ3RoKSkgaWYoKChiZXZlbEFqZHVzdCA+IDApICYmIChiZXZlbEFkZCA8PSBiZXZlbEFqZHVzdCkpIHRoZW4gKGJldmVsQWRkID0gYmV2ZWxBamR1c3QpKSkgKHBhZEdyaWRGbG9hdCA9IChwYWRHcmlkICogMS4wKSkgKGJldmVsQWRkID0gKChjZWlsaW5nIChiZXZlbEFkZCAvIHBhZEdyaWRGbG9hdCkpICogcGFkR3JpZCkpIChleHRyYUNvcm5lckN1dCA9IChleHRyYUNvcm5lckN1dCArIGJldmVsQWRkKSkgKHJlYWxDdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgY3V0UG9pbnRzIChyZWFsQ3V0UG9pbnRzID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSByZWFsQ3V0UG9pbnRzKSkpIChyZWFsQ3V0UG9pbnRzID0gcmV2ZXJzZShyZWFsQ3V0UG9pbnRzKSkgKHBhZExheWVySWRfMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBwYWRMYXllciBjb25zKCgwLjA6MC4wKSBhcHBlbmQocmVhbEN1dFBvaW50cyBsaXN0KGNhcihyZWFsQ3V0UG9pbnRzKSAoMC4wOjAuMCkgKCgoY29ybmVyQ3V0ICsgZXh0cmFDb3JuZXJDdXQpIC8gZGJ1cGVydXUpOjAuMCkgKDAuMDooKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSAvIGRidXBlcnV1KSkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IG5pa29uSWQgImxyTmlrb24iICgoKGwgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSk6KHBhZEVuY05pa29uIC8gZGJ1cGVydXUpKSAiTVkiIDEgbmlsKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoY3V0UG9pbnRzID0gbmlsKSBmb3JlYWNoKHBvaW50ICh0aGVNYXN0ZXJ+Pm91dGxpbmVQb2ludHMpIChjdXRQb2ludHMgPSBjb25zKCgobCAtIHBhZEVuY05pa29uIC0gZml4KChkYnVwZXJ1dSAqIGNhcihwb2ludCkpKSk6KHBhZEVuY05pa29uICsgZml4KChkYnVwZXJ1dSAqIGNhZHIocG9pbnQpKSkpKSBjdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgY3V0UG9pbnRzIChyZWFsQ3V0UG9pbnRzID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSByZWFsQ3V0UG9pbnRzKSkpIChyZWFsQ3V0UG9pbnRzID0gcmV2ZXJzZShyZWFsQ3V0UG9pbnRzKSkgKHBhZExheWVySWRfMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBwYWRMYXllciBjb25zKCgobCAvIGRidXBlcnV1KTowLjApIGFwcGVuZChyZWFsQ3V0UG9pbnRzIGxpc3QoY2FyKHJlYWxDdXRQb2ludHMpICgobCAvIGRidXBlcnV1KTowLjApICgoKGwgLSBjb3JuZXJDdXQgLSBleHRyYUNvcm5lckN1dCkgLyBkYnVwZXJ1dSk6MC4wKSAoKGwgLyBkYnVwZXJ1dSk6KChjb3JuZXJDdXQgKyBleHRyYUNvcm5lckN1dCkgLyBkYnVwZXJ1dSkpKSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBuaWtvbklkICJ1ck5pa29uIiAoKChsIC0gcGFkRW5jTmlrb24pIC8gZGJ1cGVydXUpOigodyAtIHBhZEVuY05pa29uKSAvIGRidXBlcnV1KSkgIlIxODAiIDEgbmlsKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoY3V0UG9pbnRzID0gbmlsKSBmb3JlYWNoKHBvaW50ICh0aGVNYXN0ZXJ+Pm91dGxpbmVQb2ludHMpIChjdXRQb2ludHMgPSBjb25zKCgobCAtIHBhZEVuY05pa29uIC0gZml4KChkYnVwZXJ1dSAqIGNhcihwb2ludCkpKSk6KHcgLSBwYWRFbmNOaWtvbiAtIGZpeCgoZGJ1cGVydXUgKiBjYWRyKHBvaW50KSkpKSkgY3V0UG9pbnRzKSkpIChyZWFsQ3V0UG9pbnRzID0gbmlsKSBmb3JlYWNoKHBvaW50IGN1dFBvaW50cyAocmVhbEN1dFBvaW50cyA9IGNvbnMoKChjYXIocG9pbnQpIC8gZGJ1cGVydXUpOihjYWRyKHBvaW50KSAvIGRidXBlcnV1KSkgcmVhbEN1dFBvaW50cykpKSAocmVhbEN1dFBvaW50cyA9IHJldmVyc2UocmVhbEN1dFBvaW50cykpIChwYWRMYXllcklkXzMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcGFkTGF5ZXIgY29ucygoKGwgLyBkYnVwZXJ1dSk6KHcgLyBkYnVwZXJ1dSkpIGFwcGVuZChyZWFsQ3V0UG9pbnRzIGxpc3QoY2FyKHJlYWxDdXRQb2ludHMpICgobCAvIGRidXBlcnV1KToodyAvIGRidXBlcnV1KSkgKCgobCAtIGNvcm5lckN1dCAtIGV4dHJhQ29ybmVyQ3V0KSAvIGRidXBlcnV1KToodyAvIGRidXBlcnV1KSkgKChsIC8gZGJ1cGVydXUpOigodyAtIGNvcm5lckN1dCAtIGV4dHJhQ29ybmVyQ3V0KSAvIGRidXBlcnV1KSkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IG5pa29uSWQgInVsTmlrb24iICgocGFkRW5jTmlrb24gLyBkYnVwZXJ1dSk6KCh3IC0gcGFkRW5jTmlrb24pIC8gZGJ1cGVydXUpKSAiTVgiIDEgbmlsKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoY3V0UG9pbnRzID0gbmlsKSBmb3JlYWNoKHBvaW50ICh0aGVNYXN0ZXJ+Pm91dGxpbmVQb2ludHMpIChjdXRQb2ludHMgPSBjb25zKCgocGFkRW5jTmlrb24gKyBmaXgoKGNhcihwb2ludCkgKiBkYnVwZXJ1dSkpKToodyAtIHBhZEVuY05pa29uIC0gZml4KChkYnVwZXJ1dSAqIGNhZHIocG9pbnQpKSkpKSBjdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgY3V0UG9pbnRzIChyZWFsQ3V0UG9pbnRzID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSByZWFsQ3V0UG9pbnRzKSkpIChyZWFsQ3V0UG9pbnRzID0gcmV2ZXJzZShyZWFsQ3V0UG9pbnRzKSkgKHBhZExheWVySWRfNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBwYWRMYXllciBjb25zKCgwLjA6KHcgLyBkYnVwZXJ1dSkpIGFwcGVuZChyZWFsQ3V0UG9pbnRzIGxpc3QoY2FyKHJlYWxDdXRQb2ludHMpICgwLjA6KHcgLyBkYnVwZXJ1dSkpICgoKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSAvIGRidXBlcnV1KToodyAvIGRidXBlcnV1KSkgKDAuMDooKHcgLSBjb3JuZXJDdXQgLSBleHRyYUNvcm5lckN1dCkgLyBkYnVwZXJ1dSkpKSkpKSkgaWYoKChsYXNlclRhcmdldHNEZWYgIT0gIk9OIikgJiYgKGxhc2VyVGFyZ2V0c0RlZiAhPSAiT0ZGIikpIHRoZW4gZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3NBZHY6IEludmFsaWQgdmFsdWUgZm9yIGxhc2VyVGFyZ2V0c1xuIikpIGlmKChsYXNlclRhcmdldHNFbiAmJiAobGFzZXJUYXJnZXRzRGVmID09ICJPTiIpKSB0aGVuIChsYXNlclRhcmdldElkWCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBsYXNlclRhcmdldFhOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSAobGFzZXJUYXJnZXRJZFkgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgbGFzZXJUYXJnZXRZTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGxhc2VyVGFyZ2V0SWRYIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzQWR2OiAgQ2Fubm90IGZpbmQvb3BlbiBsYXNlciB0YXJnZXQgJXNcbiIgbGFzZXJUYXJnZXRYTmFtZSkpIHVubGVzcygobGFzZXJUYXJnZXRJZFh+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogIExhc2VyIHRhcmdldCAlcyBpcyBub3QgYSBwY2VsbFxuIiBsYXNlclRhcmdldFhOYW1lKSkgdW5sZXNzKGxhc2VyVGFyZ2V0SWRZIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzQWR2OiAgQ2Fubm90IGZpbmQvb3BlbiBsYXNlciB0YXJnZXQgJXNcbiIgbGFzZXJUYXJnZXRZTmFtZSkpIHVubGVzcygobGFzZXJUYXJnZXRJZFl+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzc0FkdjogIExhc2VyIHRhcmdldCAlcyBpcyBub3QgYSBwY2VsbFxuIiBsYXNlclRhcmdldFlOYW1lKSkgKG1heFJpbmdTcGFjZSA9IDAuMCkgZm9yZWFjaChsYXllciBzb2xpZExheWVyUmluZyAocmluZ1dpZHRoID0gY2FkZHIobGF5ZXIpKSAoc3BhY2VGcm9tRWRnZSA9IGNhZHIobGF5ZXIpKSAocmluZ1NwYWNlID0gKChyaW5nV2lkdGggKyBzcGFjZUZyb21FZGdlKSAqIGRidXBlcnV1KSkgaWYoKHJpbmdTcGFjZSA+IG1heFJpbmdTcGFjZSkgdGhlbiAobWF4UmluZ1NwYWNlID0gcmluZ1NwYWNlKSkpICh0b3RhbE9mZnNldCA9ICgoY29ybmVyQ3V0ICsgZXh0cmFDb3JuZXJDdXQgKyAoczIgKiBtYXhSaW5nU3BhY2UpKSAvIDIuMCkpICh0b3RhbE9mZnNldCA9ICgoKGNlaWxpbmcgKHRvdGFsT2Zmc2V0IC8gcGFkR3JpZEZsb2F0KSkgKiBwYWRHcmlkKSAvIGRidXBlcnV1KSkgKGx0QmJveFggPSAobGFzZXJUYXJnZXRJZFh+PmJCb3gpKSAobHRXaWR0aFggPSAobnRoKDEgbnRoKDEgbHRCYm94WCkpIC0gbnRoKDEgbnRoKDAgbHRCYm94WCkpKSkgKGx0SGVpZ2h0WCA9IChudGgoMCBudGgoMSBsdEJib3hYKSkgLSBudGgoMCBudGgoMCBsdEJib3hYKSkpKSAobHRCYm94WSA9IChsYXNlclRhcmdldElkWX4+YkJveCkpIChsdFdpZHRoWSA9IChudGgoMSBudGgoMSBsdEJib3hZKSkgLSBudGgoMSBudGgoMCBsdEJib3hZKSkpKSAobHRIZWlnaHRZID0gKG50aCgwIG50aCgxIGx0QmJveFkpKSAtIG50aCgwIG50aCgwIGx0QmJveFkpKSkpIGlmKChsYXNlclRhcmdldHNPcmllbnQgPT0gIlIwIikgdGhlbiAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9TVyIgKHRvdGFsT2Zmc2V0OnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWSAibGF6WV9TVyIgKCh0b3RhbE9mZnNldCArIGx0V2lkdGhYKTp0b3RhbE9mZnNldCkgIlIwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfTlciICh0b3RhbE9mZnNldDood2lkIC0gdG90YWxPZmZzZXQgLSBsdEhlaWdodFgpKSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWSAibGF6WV9OVyIgKCh0b3RhbE9mZnNldCArIGx0V2lkdGhYKTood2lkIC0gdG90YWxPZmZzZXQgLSBsdEhlaWdodFkpKSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9ORSIgKChsZW4gLSB0b3RhbE9mZnNldCk6KHdpZCAtIHRvdGFsT2Zmc2V0KSkgIlIxODAiIDEgbmlsKSkgaWYoKGxhc2VyVGFyZ2V0c09yaWVudCA9PSAiUjkwIikgdGhlbiAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9OVyIgKHRvdGFsT2Zmc2V0Oih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WCkpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX05XIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WSkpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX05FIiAoKGxlbiAtIHRvdGFsT2Zmc2V0KTood2lkIC0gdG90YWxPZmZzZXQpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX05FIiAoKGxlbiAtICh0b3RhbE9mZnNldCArIGx0V2lkdGhYKSk6KHdpZCAtIHRvdGFsT2Zmc2V0KSkgIlIxODAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9TRSIgKChsZW4gLSB0b3RhbE9mZnNldCk6KHRvdGFsT2Zmc2V0ICsgbHRIZWlnaHRYKSkgIlIxODAiIDEgbmlsKSkgaWYoKGxhc2VyVGFyZ2V0c09yaWVudCA9PSAiUjE4MCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfTkUiICgobGVuIC0gdG90YWxPZmZzZXQpOih3aWQgLSB0b3RhbE9mZnNldCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFkgImxhellfTkUiICgobGVuIC0gKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpKTood2lkIC0gdG90YWxPZmZzZXQpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NFIiAoKGxlbiAtIHRvdGFsT2Zmc2V0KToodG90YWxPZmZzZXQgKyBsdEhlaWdodFgpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NFIiAoKGxlbiAtICh0b3RhbE9mZnNldCArIGx0V2lkdGhYKSk6KHRvdGFsT2Zmc2V0ICsgbHRIZWlnaHRZKSkgIlIxODAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9TVyIgKHRvdGFsT2Zmc2V0OnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSkgaWYoKGxhc2VyVGFyZ2V0c09yaWVudCA9PSAiUjI3MCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfU0UiICgobGVuIC0gdG90YWxPZmZzZXQpOih0b3RhbE9mZnNldCArIGx0SGVpZ2h0WCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFkgImxhellfU0UiICgobGVuIC0gKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpKToodG90YWxPZmZzZXQgKyBsdEhlaWdodFkpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NXIiAodG90YWxPZmZzZXQ6dG90YWxPZmZzZXQpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NXIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9OVyIgKHRvdGFsT2Zmc2V0Oih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WCkpICJSMCIgMSBuaWwpKSBpZigobGFzZXJUYXJnZXRzT3JpZW50ID09ICJNWCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfTkUiICgobGVuIC0gdG90YWxPZmZzZXQpOih3aWQgLSB0b3RhbE9mZnNldCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFkgImxhellfTkUiICgobGVuIC0gKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpKTood2lkIC0gdG90YWxPZmZzZXQpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NFIiAoKGxlbiAtIHRvdGFsT2Zmc2V0KToodG90YWxPZmZzZXQgKyBsdEhlaWdodFgpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NFIiAoKGxlbiAtICh0b3RhbE9mZnNldCArIGx0V2lkdGhYKSk6KHRvdGFsT2Zmc2V0ICsgbHRIZWlnaHRZKSkgIlIxODAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9OVyIgKHRvdGFsT2Zmc2V0Oih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WCkpICJSMCIgMSBuaWwpKSBpZigobGFzZXJUYXJnZXRzT3JpZW50ID09ICJNWFI5MCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfU0UiICgobGVuIC0gdG90YWxPZmZzZXQpOih0b3RhbE9mZnNldCArIGx0SGVpZ2h0WCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFkgImxhellfU0UiICgobGVuIC0gKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpKToodG90YWxPZmZzZXQgKyBsdEhlaWdodFkpKSAiUjE4MCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NXIiAodG90YWxPZmZzZXQ6dG90YWxPZmZzZXQpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NXIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9ORSIgKChsZW4gLSB0b3RhbE9mZnNldCk6KHdpZCAtIHRvdGFsT2Zmc2V0KSkgIlIxODAiIDEgbmlsKSkgaWYoKGxhc2VyVGFyZ2V0c09yaWVudCA9PSAiTVkiKSB0aGVuIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NXIiAodG90YWxPZmZzZXQ6dG90YWxPZmZzZXQpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX1NXIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOnRvdGFsT2Zmc2V0KSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9OVyIgKHRvdGFsT2Zmc2V0Oih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WCkpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRZICJsYXpZX05XIiAoKHRvdGFsT2Zmc2V0ICsgbHRXaWR0aFgpOih3aWQgLSB0b3RhbE9mZnNldCAtIGx0SGVpZ2h0WSkpICJSMCIgMSBuaWwpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGxhc2VyVGFyZ2V0SWRYICJsYXpYX1NFIiAoKGxlbiAtIHRvdGFsT2Zmc2V0KToodG90YWxPZmZzZXQgKyBsdEhlaWdodFgpKSAiUjE4MCIgMSBuaWwpKSBpZigobGFzZXJUYXJnZXRzT3JpZW50ID09ICJNWVI5MCIpIHRoZW4gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfTlciICh0b3RhbE9mZnNldDood2lkIC0gdG90YWxPZmZzZXQgLSBsdEhlaWdodFgpKSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWSAibGF6WV9OVyIgKCh0b3RhbE9mZnNldCArIGx0V2lkdGhYKTood2lkIC0gdG90YWxPZmZzZXQgLSBsdEhlaWdodFkpKSAiUjAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWCAibGF6WF9ORSIgKChsZW4gLSB0b3RhbE9mZnNldCk6KHdpZCAtIHRvdGFsT2Zmc2V0KSkgIlIxODAiIDEgbmlsKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBsYXNlclRhcmdldElkWSAibGF6WV9ORSIgKChsZW4gLSAodG90YWxPZmZzZXQgKyBsdFdpZHRoWCkpOih3aWQgLSB0b3RhbE9mZnNldCkpICJSMTgwIiAxIG5pbCkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbGFzZXJUYXJnZXRJZFggImxhelhfU1ciICh0b3RhbE9mZnNldDp0b3RhbE9mZnNldCkgIlIwIiAxIG5pbCkpIChkYkNsb3NlIGxhc2VyVGFyZ2V0SWRYKSAoZGJDbG9zZSBsYXNlclRhcmdldElkWSkpIChyaW5nQ291bnQgPSAwKSBmb3JlYWNoKGxheWVyIGludFJpbmdMYXllcnMgKHNwYWNpbmcgPSBjYWRyKGxheWVyKSkgKHJpbmdXaWR0aCA9IGNhZGRyKGxheWVyKSkgKGdyaWQgPSBudGgoNCBsYXllcikpIChleHRyYU9mZnNldCA9IGZpeCgoc3BhY2luZyAqIChzMiAtIDEuMCkpKSkgKGJldmVsTGVuZ3RoID0gKGNvcm5lckN1dCArICgtIHNwYWNpbmcpICsgZXh0cmFPZmZzZXQpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCBzcHJpbnRmKG5pbCAicmluZyVkIiByaW5nQ291bnQpICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiaW50IiBmaXgoKHcgLSAoMiAqIHNwYWNpbmcpKSkpIGxpc3QoImwiICJpbnQiIGZpeCgobCAtICgyICogc3BhY2luZykpKSkgbGlzdCgieE9mZnNldCIgImludCIgc3BhY2luZykgbGlzdCgieU9mZnNldCIgImludCIgc3BhY2luZykgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJpbnQiIHJpbmdXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImludCIgMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImludCIgKGV4dHJhQ29ybmVyQ3V0ICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiaW50IiAoZXh0cmFDb3JuZXJDdXQgKyBiZXZlbExlbmd0aCkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJpbnQiIChleHRyYUNvcm5lckN1dCArIGJldmVsTGVuZ3RoKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImludCIgKGV4dHJhQ29ybmVyQ3V0ICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiaW50IiBncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgbmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBuZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgbmV0KSB3aGVuKG50aCgzIGxheWVyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldCBkYmlkMikpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikpIChyaW5nQ291bnQgPSAocmluZ0NvdW50ICsgMSkpKSB3aGVuKGxpc3RwKGRpc2NyZXRlQ29udGFjdFJpbmcpIChyaW5nQ291bnQgPSAwKSBmb3JlYWNoKGxheWVyIGRpc2NyZXRlQ29udGFjdFJpbmcgKGNvbnRhY3QxTGF5ZXIgPSBudGgoMCBsYXllcikpIChjb250YWN0MkxheWVyID0gbnRoKDEgbGF5ZXIpKSAoY29uMmNvbjFFbmNYID0gbnRoKDIgbGF5ZXIpKSAoY29uMmNvbjFFbmNZID0gbnRoKDMgbGF5ZXIpKSAoc3BhY2luZ0xpc3QgPSBudGgoNCBsYXllcikpIChjb250YWN0MVdpZHRoID0gbnRoKDUgbGF5ZXIpKSAoY29udGFjdDFMZW5ndGggPSBudGgoNiBsYXllcikpIChjb250YWN0MVJvd3MgPSBudGgoNyBsYXllcikpIChjb250YWN0MU9mZnNldFggPSBudGgoOCBsYXllcikpIChjb250YWN0MU9mZnNldFkgPSBudGgoOSBsYXllcikpIChjb250YWN0MVNwYWNlWCA9IG50aCgxMCBsYXllcikpIChjb250YWN0MVNwYWNlWSA9IG50aCgxMSBsYXllcikpIChjb250YWN0MlJvd3MgPSBudGgoMTIgbGF5ZXIpKSAoY29udGFjdDJPZmZzZXRYID0gbnRoKDEzIGxheWVyKSkgKGNvbnRhY3QyT2Zmc2V0WSA9IG50aCgxNCBsYXllcikpIChjb250YWN0MlNwYWNlWCA9IG50aCgxNSBsYXllcikpIChjb250YWN0MlNwYWNlWSA9IG50aCgxNiBsYXllcikpIChncmlkID0gbnRoKDE3IGxheWVyKSkgaWYobnRoKDE5IGxheWVyKSAobnVtUm93c0luQmV2ZWwgPSBudGgoMTkgbGF5ZXIpKSAobnVtUm93c0luQmV2ZWwgPSBudGgoMTggbGF5ZXIpKSkgd2hlbighbGlzdHAoc3BhY2luZ0xpc3QpIChzcGFjaW5nTGlzdCA9IGxpc3Qoc3BhY2luZ0xpc3QpKSkgZm9yZWFjaChzcGFjaW5nIHNwYWNpbmdMaXN0IChleHRyYU9mZnNldCA9IGZpeCgoKHNwYWNpbmcgKiBkYnVwZXJ1dSkgKiAodGcyMl81IC0gMSkpKSkgKGJldmVsTGVuZ3RoID0gKGNvcm5lckN1dCArIGJldmVsQWRkICsgZXh0cmFPZmZzZXQpKSAoYmV2ZWxMZW5ndGggPSAoYmV2ZWxMZW5ndGggLyBkYnVwZXJ1dSkpIChiZXZlbExlbmd0aCA9IChmaXgoKChiZXZlbExlbmd0aCAvIGdyaWQpICsgMWUtMDYpKSAqIGdyaWQpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RSaW5nSWQgc3ByaW50ZihuaWwgImNvbnRhY3QlZCIgcmluZ0NvdW50KSAoc3BhY2luZzpzcGFjaW5nKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiICh3aWQgLSAoMiAqIHNwYWNpbmcpKSkgbGlzdCgibCIgImZsb2F0IiAobGVuIC0gKDIgKiBzcGFjaW5nKSkpIGxpc3QoImJldmVsTGVuZ3RoIiAiZmxvYXQiIChleHRyYUNvcm5lckN1dF9vcmlnICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJjb250YWN0MUxheWVyIiAibGlzdCIgY29udGFjdDFMYXllcikgbGlzdCgiY29udGFjdDJMYXllciIgImxpc3QiIGNvbnRhY3QyTGF5ZXIpIGxpc3QoImNvbjJjb24xRW5jWCIgImZsb2F0IiBjb24yY29uMUVuY1gpIGxpc3QoImNvbjJjb24xRW5jWSIgImZsb2F0IiBjb24yY29uMUVuY1kpIGxpc3QoImNvbnRhY3QxV2lkdGgiICJmbG9hdCIgY29udGFjdDFXaWR0aCkgbGlzdCgiY29udGFjdDFMZW5ndGgiICJmbG9hdCIgY29udGFjdDFMZW5ndGgpIGxpc3QoImNvbnRhY3QxUm93cyIgImludCIgY29udGFjdDFSb3dzKSBsaXN0KCJjb250YWN0MU9mZnNldFgiICJmbG9hdCIgY29udGFjdDFPZmZzZXRYKSBsaXN0KCJjb250YWN0MU9mZnNldFkiICJmbG9hdCIgY29udGFjdDFPZmZzZXRZKSBsaXN0KCJjb250YWN0MVNwYWNlWSIgImZsb2F0IiBjb250YWN0MVNwYWNlWSkgbGlzdCgiY29udGFjdDFTcGFjZVgiICJmbG9hdCIgY29udGFjdDFTcGFjZVgpIGxpc3QoImNvbnRhY3QyUm93cyIgImludCIgY29udGFjdDJSb3dzKSBsaXN0KCJjb250YWN0Mk9mZnNldFgiICJmbG9hdCIgY29udGFjdDJPZmZzZXRYKSBsaXN0KCJjb250YWN0Mk9mZnNldFkiICJmbG9hdCIgY29udGFjdDJPZmZzZXRZKSBsaXN0KCJjb250YWN0MlNwYWNlWSIgImZsb2F0IiBjb250YWN0MlNwYWNlWSkgbGlzdCgiY29udGFjdDJTcGFjZVgiICJmbG9hdCIgY29udGFjdDJTcGFjZVgpIGxpc3QoImdyaWQiICJmbG9hdCIgZ3JpZCkgbGlzdCgibnVtUm93c0luQmV2ZWwiICJpbnQiIG51bVJvd3NJbkJldmVsKSkpKSAocmluZ0NvdW50ID0gKHJpbmdDb3VudCArIDEpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAic2VhbGlkIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImludCIgdykgbGlzdCgibCIgImludCIgbCkgbGlzdCgieE9mZnNldCIgImludCIgMCkgbGlzdCgieU9mZnNldCIgImludCIgMCkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJpbnQiIHNlYWxyaW5nSWRXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImludCIgMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhQ29ybmVyQ3V0KSkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImludCIgZml4KChkYnVwZXJ1dSAqIHNlYWxyaW5nR3JpZCkpKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpIHdoZW4oc2VhbHJpbmdJZExheWVyICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNlYWxyaW5nSWRMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpIChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBzZWFscmluZ0lkTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgc2VhbHJpbmdJZExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNlYWxyaW5nSWRMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJDbG9zZSByaW5nSWQpIChkYkNsb3NlIG5pa29uSWQpKQAoc29saWRMYXllclJpbmcgZGlzY3JldGVDb250YWN0UmluZyBzZWFscmluZ0lkTGF5ZXIgc2VhbHJpbmdJZFdpZHRoIHNlYWxyaW5nR3JpZCBnZW5lcmljUmluZ05hbWUgbmlrb25Dcm9zc05hbWUgZGlzY3JldGVDb250YWN0UmluZ05hbWUgbGFzZXJUYXJnZXRYTmFtZSBsYXNlclRhcmdldFlOYW1lIHBhZExheWVyIHBhZEdyaWQgcGFkRW5jTmlrb24gcGFkRW5jTmlrb25JbnNpZGUgcmRMYXllciByY0xheWVyIGRMYXllciBzY2FsZUYgY3JpdGljYWxMIGRlZlJkIGRlZlJjIGRlZkQgdyBsIGV4dHJhQ29ybmVyQ3V0IGxhc2VyVGFyZ2V0c0RlZiBsYXNlclRhcmdldHNFbiBsYXNlclRhcmdldHNPcmllbnQgZXh0cmFDb3JuZXJDdXRfb3JpZyB0ZzIyXzUgZGJ1cGVydXUgZ3JpZCBzMiBwYXJhbSBuZXQgbWluU2VhbFJpbmdJZFdpZHRoIHJpbmdJZCBjb250YWN0UmluZ0lkIG5pa29uSWQgbGF5ZXIgdGhpc0xwcCByaW5nV2lkdGggbWFrZVBpbiBsYXlHcmlkIHNwYWNpbmdMaXN0IFNQIHNwYWNpbmcgaW50UmluZ0xheWVycyBsZW4gd2lkIHNtYWxsZGllIGFyIHJkIHJjIGQgZGJpZCB0aGVNYXN0ZXIgY3V0UG9pbnRzIHBvaW50IGNvcm5lckN1dCBiZXZlbEFkZCBiZXZlbExlbmd0aCBtaW5CZXZlbFJlcXVpcmVkIGJldmVsQWpkdXN0IHBhZEdyaWRGbG9hdCByZWFsQ3V0UG9pbnRzIHBhZExheWVySWRfMSBwYWRMYXllcklkXzIgcGFkTGF5ZXJJZF8zIHBhZExheWVySWRfNCBsYXNlclRhcmdldElkWCBsYXNlclRhcmdldElkWSBtYXhSaW5nU3BhY2Ugc3BhY2VGcm9tRWRnZSByaW5nU3BhY2UgdG90YWxPZmZzZXQgbHRCYm94WCBsdFdpZHRoWCBsdEhlaWdodFggbHRCYm94WSBsdFdpZHRoWSBsdEhlaWdodFkgcmluZ0NvdW50IGV4dHJhT2Zmc2V0IGRiaWQxIGRiaWQyIGRiaWQzIGRiaWQ0IHBpbmlkIGNvbnRhY3QxTGF5ZXIgY29udGFjdDJMYXllciBjb24yY29uMUVuY1ggY29uMmNvbjFFbmNZIGNvbnRhY3QxV2lkdGggY29udGFjdDFMZW5ndGggY29udGFjdDFSb3dzIGNvbnRhY3QxT2Zmc2V0WCBjb250YWN0MU9mZnNldFkgY29udGFjdDFTcGFjZVggY29udGFjdDFTcGFjZVkgY29udGFjdDJSb3dzIGNvbnRhY3QyT2Zmc2V0WCBjb250YWN0Mk9mZnNldFkgY29udGFjdDJTcGFjZVggY29udGFjdDJTcGFjZVkgbnVtUm93c0luQmV2ZWwpACgodyAwLjApIChsIDAuMCkgKGV4dHJhQ29ybmVyQ3V0IDAuMCkgKGxhc2VyVGFyZ2V0c0RlZiAiT0ZGIikgKGxhc2VyVGFyZ2V0c0VuIG5pbCkgKGxhc2VyVGFyZ2V0c09yaWVudCBuaWwpKQAoKHNvbGlkTGF5ZXJSaW5nICcoJygoInRhcCIgImRyYXdpbmciKSA1LjAgMy4wIG5pbCAwLjA1KSAnKCgibWV0MSIgImRyYXdpbmciKSAoMS4zIDMuNCA2LjApIDIuNSBuaWwgMC4wNSkgJygoIm1ldDIiICJkcmF3aW5nIikgNS41IDQuMCB0IDAuMDUpKSkgKGRpc2NyZXRlQ29udGFjdFJpbmcgbmlsKSAoc2VhbHJpbmdJZExheWVyIGxpc3QoInkxIiAiZHJhd2luZyIpKSAoc2VhbHJpbmdJZFdpZHRoIDAuMCkgKHNlYWxyaW5nR3JpZCAwLjApIChnZW5lcmljUmluZ05hbWUgIiIpIChuaWtvbkNyb3NzTmFtZSAiIikgKGRpc2NyZXRlQ29udGFjdFJpbmdOYW1lICIiKSAobGFzZXJUYXJnZXRYTmFtZSAiIikgKGxhc2VyVGFyZ2V0WU5hbWUgIiIpIChwYWRMYXllciBsaXN0KCJ5MCIgImRyYXdpbmciKSkgKHBhZEdyaWQgMC4wKSAocGFkRW5jTmlrb24gMC4wKSAocGFkRW5jTmlrb25JbnNpZGUgMC4wKSAocmRMYXllciBuaWwpIChyY0xheWVyIG5pbCkgKGRMYXllciBuaWwpIChzY2FsZUYgMSkgKGNyaXRpY2FsTCA1MDgwLjApIChkZWZSZCAwLjApIChkZWZSYyAxNTIuNCkgKGRlZkQgMTAxLjYpKQAoKHMyID0gc3FydCgyLjApKSAoY29udGFjdDFSb3dzID0gbWF4KDEgY29udGFjdDFSb3dzKSkgKGNvbnRhY3QxUGl0Y2hZID0gKGNvbnRhY3QxV2lkdGggKyBjb250YWN0MVNwYWNlWSkpIChjb250YWN0MVBpdGNoWCA9IChjb250YWN0MUxlbmd0aCArIGNvbnRhY3QxU3BhY2VYKSkgKGNvbnRhY3QyUGl0Y2hZID0gKGNvbnRhY3QxV2lkdGggKyBjb250YWN0MlNwYWNlWSkpIChjb250YWN0MlBpdGNoWCA9IChjb250YWN0MUxlbmd0aCArIGNvbnRhY3QyU3BhY2VYKSkgKHJpbmdXaWR0aCA9IG1heCgwLjAgKChjb250YWN0MVJvd3MgKiBjb250YWN0MVBpdGNoWSkgLSBjb250YWN0MVNwYWNlWSkgKChjb250YWN0MlJvd3MgKiBjb250YWN0MlBpdGNoWSkgLSBjb250YWN0MlNwYWNlWSkpKSAoYmV2ZWxMZW5ndGggPSBtYXgoYmV2ZWxMZW5ndGggKHJpbmdXaWR0aCArIGNvbnRhY3QxU3BhY2VYKSAocmluZ1dpZHRoICsgY29udGFjdDJTcGFjZVgpKSkgd2hlbigobnVtUm93c0luQmV2ZWwgPD0gMCkgKG51bVJvd3NJbkJldmVsID0gbWF4KDEgKChjb250YWN0MVJvd3MgKyBjb250YWN0MlJvd3MpIC0gMSkpKSkgKG5vUml2ZXRzID0gaWYoKGNvbnRhY3QyUm93cyA+IDApIDIgMSkpIChzcE9mZnNldCA9IChjb250YWN0MVNwYWNlWCAqICgxIC0gKDEgLyBzMikpKSkgKHNwT2Zmc2V0ID0gKChjZWlsaW5nICgoc3BPZmZzZXQgLyBncmlkKSArIDFlLTA2KSkgKiBncmlkKSkgZm9yKGNvbnRhY3ROIDEgbm9SaXZldHMgKGNvbnRhY3RQaXRjaFkgPSBpZigoY29udGFjdE4gPT0gMSkgY29udGFjdDFQaXRjaFkgY29udGFjdDJQaXRjaFkpKSAoY29udGFjdFBpdGNoWCA9IGlmKChjb250YWN0TiA9PSAxKSBjb250YWN0MVBpdGNoWCBjb250YWN0MlBpdGNoWCkpIChjb250YWN0U3BhY2VYID0gaWYoKGNvbnRhY3ROID09IDEpIGNvbnRhY3QxU3BhY2VYIGNvbnRhY3QyU3BhY2VYKSkgKGNvbnRhY3RTcGFjZVkgPSBpZigoY29udGFjdE4gPT0gMSkgY29udGFjdDFTcGFjZVkgY29udGFjdDJTcGFjZVkpKSAoeE9mZnNldCA9IGlmKChjb250YWN0TiA9PSAxKSBjb250YWN0MU9mZnNldFggY29udGFjdDJPZmZzZXRYKSkgKHlPZmZzZXQgPSBpZigoY29udGFjdE4gPT0gMSkgY29udGFjdDFPZmZzZXRZIGNvbnRhY3QyT2Zmc2V0WSkpIChudW1Sb3dzID0gaWYoKGNvbnRhY3ROID09IDEpIGNvbnRhY3QxUm93cyBjb250YWN0MlJvd3MpKSB3aGVuKChjb250YWN0TiA9PSAxKSAodXNlZEwgPSAobCAtICgyICogKHNwT2Zmc2V0ICsgYmV2ZWxMZW5ndGgpKSkpIChudW1Db2xCID0gbWF4KDEgZml4KCgoKHVzZWRMICsgY29udGFjdFNwYWNlWCkgLyBjb250YWN0UGl0Y2hYKSArIDFlLTA2KSkpKSAoY29udGFjdFNpZGVMQiA9ICgobnVtQ29sQiAqIGNvbnRhY3RQaXRjaFgpIC0gY29udGFjdFNwYWNlWCkpIChudW1Db2xPZmZzZXRCID0gKCh1c2VkTCAtIGNvbnRhY3RTaWRlTEIpIC8gMikpIChudW1Db2xPZmZzZXRCID0gKGZpeCgoKG51bUNvbE9mZnNldEIgLyBncmlkKSArIDFlLTA2KSkgKiBncmlkKSkpICh4T3JpZ2luQiA9IChudW1Db2xPZmZzZXRCICsgYmV2ZWxMZW5ndGggKyB4T2Zmc2V0ICsgc3BPZmZzZXQpKSAoeU9yaWdpbkIgPSB5T2Zmc2V0KSAoeU9yaWdpblQgPSAodyAtIHlPZmZzZXQpKSAoWTBfYm90dG9tID0geU9yaWdpbkIpIChZMF90b3AgPSB5T3JpZ2luVCkgZm9yKHJvdyAxIG51bVJvd3MgKFgwID0geE9yaWdpbkIpIChZMV9ib3R0b20gPSAoWTBfYm90dG9tICsgY29udGFjdDFXaWR0aCkpIChZMV90b3AgPSAoWTBfdG9wIC0gY29udGFjdDFXaWR0aCkpIGZvcihjb2wgMSBudW1Db2xCIChYMSA9IChYMCArIGNvbnRhY3QxTGVuZ3RoKSkgd2hlbigoWDEgPCAobCAtIChiZXZlbExlbmd0aCArIHNwT2Zmc2V0KSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MUxheWVyIGxpc3QoKFgwOlkwX2JvdHRvbSkgKFgxOlkxX2JvdHRvbSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDFMYXllciBsaXN0KChYMDpZMF90b3ApIChYMTpZMV90b3ApKSkgd2hlbihjb250YWN0MkxheWVyIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChYMCAtIGNvbjJjb24xRW5jWCk6KFkwX2JvdHRvbSAtIGNvbjJjb24xRW5jWSkpICgoWDEgKyBjb24yY29uMUVuY1gpOihZMV9ib3R0b20gKyBjb24yY29uMUVuY1kpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChYMCAtIGNvbjJjb24xRW5jWCk6KFkwX3RvcCArIGNvbjJjb24xRW5jWSkpICgoWDEgKyBjb24yY29uMUVuY1gpOihZMV90b3AgLSBjb24yY29uMUVuY1kpKSkpKSkgKFgwID0gKFgwICsgY29udGFjdFBpdGNoWCkpKSAoWTBfYm90dG9tID0gKFkwX2JvdHRvbSArIGNvbnRhY3RQaXRjaFkpKSAoWTBfdG9wID0gKFkwX3RvcCAtIGNvbnRhY3RQaXRjaFkpKSkgd2hlbigoY29udGFjdE4gPT0gMSkgKHVzZWRXID0gKHcgLSAoMiAqIChzcE9mZnNldCArIGJldmVsTGVuZ3RoKSkpKSAobnVtQ29sUyA9IG1heCgxIGZpeCgoKCh1c2VkVyArIGNvbnRhY3RTcGFjZVgpIC8gY29udGFjdFBpdGNoWCkgKyAxZS0wNikpKSkgKGNvbnRhY3RTaWRlTFMgPSAoKG51bUNvbFMgKiBjb250YWN0UGl0Y2hYKSAtIGNvbnRhY3RTcGFjZVgpKSAobnVtQ29sT2Zmc2V0UyA9ICgodXNlZFcgLSBjb250YWN0U2lkZUxTKSAvIDIpKSAobnVtQ29sT2Zmc2V0UyA9IChmaXgoKChudW1Db2xPZmZzZXRTIC8gZ3JpZCkgKyAxZS0wNikpICogZ3JpZCkpKSAoeE9yaWdpbkwgPSAobnVtQ29sT2Zmc2V0UyArIGJldmVsTGVuZ3RoICsgeE9mZnNldCArIHNwT2Zmc2V0KSkgKHlPcmlnaW5MID0geU9mZnNldCkgKHlPcmlnaW5SID0gKGwgLSB5T2Zmc2V0KSkgKFkwX2xlZnQgPSB5T3JpZ2luTCkgKFkwX3JpZ2h0ID0geU9yaWdpblIpIGZvcihyb3cgMSBudW1Sb3dzIChYMCA9IHhPcmlnaW5MKSAoWTFfbGVmdCA9IChZMF9sZWZ0ICsgY29udGFjdDFXaWR0aCkpIChZMV9yaWdodCA9IChZMF9yaWdodCAtIGNvbnRhY3QxV2lkdGgpKSBmb3IoY29sIDEgbnVtQ29sUyAoWDEgPSAoWDAgKyBjb250YWN0MUxlbmd0aCkpIHdoZW4oKFgxIDwgKHcgLSAoc3BPZmZzZXQgKyBiZXZlbExlbmd0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDFMYXllciBsaXN0KChZMF9sZWZ0OlgwKSAoWTFfbGVmdDpYMSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDFMYXllciBsaXN0KChZMF9yaWdodDpYMCkgKFkxX3JpZ2h0OlgxKSkpIHdoZW4oY29udGFjdDJMYXllciAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDJMYXllciBsaXN0KCgoWTBfbGVmdCAtIGNvbjJjb24xRW5jWSk6KFgwIC0gY29uMmNvbjFFbmNYKSkgKChZMV9sZWZ0ICsgY29uMmNvbjFFbmNZKTooWDEgKyBjb24yY29uMUVuY1gpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChZMF9yaWdodCArIGNvbjJjb24xRW5jWSk6KFgwIC0gY29uMmNvbjFFbmNYKSkgKChZMV9yaWdodCAtIGNvbjJjb24xRW5jWSk6KFgxICsgY29uMmNvbjFFbmNYKSkpKSkpIChYMCA9IChYMCArIGNvbnRhY3RQaXRjaFgpKSkgKFkwX2xlZnQgPSAoWTBfbGVmdCArIGNvbnRhY3RQaXRjaFkpKSAoWTBfcmlnaHQgPSAoWTBfcmlnaHQgLSBjb250YWN0UGl0Y2hZKSkpIHdoZW4oKGNvbnRhY3ROID09IDEpIChiZXZlbFNwYWNlID0gbWluKGNvbnRhY3RTcGFjZVkgY29udGFjdFNwYWNlWCkpIChiZXZlbFBpdGNoID0gbWluKGNvbnRhY3RQaXRjaFkgY29udGFjdFBpdGNoWCkpICh1c2VkQyA9IChiZXZlbExlbmd0aCAtIChiZXZlbFNwYWNlICsgY29udGFjdDFMZW5ndGggKyBjb24yY29uMUVuY1gpKSkgKG51bUNvbEMgPSBtYXgoMSBmaXgoKCgodXNlZEMgKyBiZXZlbFNwYWNlKSAvIGJldmVsUGl0Y2gpICsgMWUtMDYpKSkpIChjb250YWN0U2lkZUMgPSAoKG51bUNvbEMgKiBiZXZlbFBpdGNoKSAtIGJldmVsU3BhY2UpKSAobnVtQ29sT2Zmc2V0QyA9ICh1c2VkQyAtIGNvbnRhY3RTaWRlQykpIChudW1Db2xPZmZzZXRDID0gKGZpeCgoKG51bUNvbE9mZnNldEMgLyBncmlkKSArIDFlLTA2KSkgKiBncmlkKSkgKGJldmVsV2lkdGggPSBtYXgoMC4wICgobnVtUm93c0luQmV2ZWwgKiBiZXZlbFBpdGNoKSAtIGJldmVsU3BhY2UpKSkgKGNlbnRlck9mZnNldCA9ICgocmluZ1dpZHRoIC0gYmV2ZWxXaWR0aCkgLyAyKSkgKGNlbnRlck9mZnNldCA9IChmaXgoKCgoY2VudGVyT2Zmc2V0ICogczIpIC8gZ3JpZCkgKyAxZS0wNikpICogZ3JpZCkpICh5T3JpZ2luQiA9ICh5T2Zmc2V0ICsgY2VudGVyT2Zmc2V0ICsgbnVtQ29sT2Zmc2V0QyArIGJldmVsU3BhY2UgKyBjb250YWN0MUxlbmd0aCArIGNvbjJjb24xRW5jWCkpICh5T3JpZ2luVCA9ICh3IC0gKHlPZmZzZXQgKyBjZW50ZXJPZmZzZXQgKyBudW1Db2xPZmZzZXRDICsgYmV2ZWxTcGFjZSArIGNvbnRhY3QxV2lkdGggKyBjb24yY29uMUVuY1gpKSkgKHhPcmlnaW5SID0gKChsIC0gYmV2ZWxMZW5ndGgpICsgbnVtQ29sT2Zmc2V0QyArIGJldmVsU3BhY2UgKyBjb24yY29uMUVuY1gpKSAoeE9yaWdpbkwgPSAoYmV2ZWxMZW5ndGggLSAobnVtQ29sT2Zmc2V0QyArIGJldmVsU3BhY2UgKyBjb24yY29uMUVuY1gpKSkgKFkwX2JvdHRvbSA9IHlPcmlnaW5CKSAoWTBfdG9wID0geU9yaWdpblQpIGZvcihyb3cgMSBudW1Sb3dzSW5CZXZlbCAoWDBfUiA9ICh4T3JpZ2luUiAtIGNvbjJjb24xRW5jWCkpIChYMF9MID0gKHhPcmlnaW5MICsgY29uMmNvbjFFbmNYKSkgZm9yKGNvbCAxIG51bUNvbFMgKFgxX1IgPSAoWDBfUiArIGNvbnRhY3QxTGVuZ3RoKSkgKFgxX0wgPSAoWDBfTCAtIGNvbnRhY3QxTGVuZ3RoKSkgKFkxX2JvdHRvbSA9IChZMF9ib3R0b20gKyBjb250YWN0MVdpZHRoKSkgKFkxX3RvcCA9IChZMF90b3AgLSBjb250YWN0MVdpZHRoKSkgd2hlbigoWTFfYm90dG9tIDwgKGJldmVsTGVuZ3RoIC0gYmV2ZWxTcGFjZSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MUxheWVyIGxpc3QoKFgwX1I6WTBfYm90dG9tKSAoWDFfUjpZMV9ib3R0b20pKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGNvbnRhY3QxTGF5ZXIgbGlzdCgoWDBfTDpZMF9ib3R0b20pIChYMV9MOlkxX2JvdHRvbSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDFMYXllciBsaXN0KChYMF9SOlkwX3RvcCkgKFgxX1I6WTFfdG9wKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MUxheWVyIGxpc3QoKFgwX0w6WTBfdG9wKSAoWDFfTDpZMV90b3ApKSkgd2hlbihjb250YWN0MkxheWVyIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChYMF9SIC0gY29uMmNvbjFFbmNYKTooWTBfYm90dG9tIC0gY29uMmNvbjFFbmNZKSkgKChYMV9SICsgY29uMmNvbjFFbmNYKTooWTFfYm90dG9tICsgY29uMmNvbjFFbmNZKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY29udGFjdDJMYXllciBsaXN0KCgoWDBfTCArIGNvbjJjb24xRW5jWCk6KFkwX2JvdHRvbSAtIGNvbjJjb24xRW5jWSkpICgoWDFfTCAtIGNvbjJjb24xRW5jWCk6KFkxX2JvdHRvbSArIGNvbjJjb24xRW5jWSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGNvbnRhY3QyTGF5ZXIgbGlzdCgoKFgwX1IgLSBjb24yY29uMUVuY1gpOihZMF90b3AgKyBjb24yY29uMUVuY1kpKSAoKFgxX1IgKyBjb24yY29uMUVuY1gpOihZMV90b3AgLSBjb24yY29uMUVuY1kpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjb250YWN0MkxheWVyIGxpc3QoKChYMF9MICsgY29uMmNvbjFFbmNYKTooWTBfdG9wICsgY29uMmNvbjFFbmNZKSkgKChYMV9MIC0gY29uMmNvbjFFbmNYKTooWTFfdG9wIC0gY29uMmNvbjFFbmNZKSkpKSkpIChYMF9SID0gKFgwX1IgKyBiZXZlbFBpdGNoKSkgKFgwX0wgPSAoWDBfTCAtIGJldmVsUGl0Y2gpKSAoWTBfYm90dG9tID0gKFkwX2JvdHRvbSArIGJldmVsUGl0Y2gpKSAoWTBfdG9wID0gKFkwX3RvcCAtIGJldmVsUGl0Y2gpKSkgKFkwX2JvdHRvbSA9ICh5T3JpZ2luQiArIChyb3cgKiBiZXZlbFBpdGNoKSkpIChZMF90b3AgPSAoeU9yaWdpblQgLSAocm93ICogYmV2ZWxQaXRjaCkpKSkpKSkAKGdyaWQgbnVtUm93c0luQmV2ZWwgY29udGFjdDFMYXllciBjb250YWN0MkxheWVyIGNvbjJjb24xRW5jWCBjb24yY29uMUVuY1kgY29udGFjdDFXaWR0aCBjb250YWN0MUxlbmd0aCBiZXZlbExlbmd0aCBjb250YWN0MlNwYWNlWSBjb250YWN0MlNwYWNlWCBjb250YWN0Mk9mZnNldFggY29udGFjdDJPZmZzZXRZIGNvbnRhY3QyUm93cyBjb250YWN0MVNwYWNlWSBjb250YWN0MVNwYWNlWCBjb250YWN0MU9mZnNldFggY29udGFjdDFPZmZzZXRZIGNvbnRhY3QxUm93cyBsIHcgczIgY29udGFjdDFQaXRjaFkgY29udGFjdDFQaXRjaFggY29udGFjdDJQaXRjaFkgY29udGFjdDJQaXRjaFggcmluZ1dpZHRoIG5vUml2ZXRzIHNwT2Zmc2V0IGNvbnRhY3ROIGNvbnRhY3RQaXRjaFkgY29udGFjdFBpdGNoWCBjb250YWN0U3BhY2VYIGNvbnRhY3RTcGFjZVkgeE9mZnNldCB5T2Zmc2V0IG51bVJvd3MgdXNlZEwgbnVtQ29sQiBjb250YWN0U2lkZUxCIG51bUNvbE9mZnNldEIgeE9yaWdpbkIgeU9yaWdpbkIgeU9yaWdpblQgWTBfYm90dG9tIFkwX3RvcCByb3cgWDAgWTFfYm90dG9tIFkxX3RvcCBjb2wgWDEgdXNlZFcgbnVtQ29sUyBjb250YWN0U2lkZUxTIG51bUNvbE9mZnNldFMgeE9yaWdpbkwgeU9yaWdpbkwgeU9yaWdpblIgWTBfbGVmdCBZMF9yaWdodCBZMV9sZWZ0IFkxX3JpZ2h0IGJldmVsU3BhY2UgYmV2ZWxQaXRjaCB1c2VkQyBudW1Db2xDIGNvbnRhY3RTaWRlQyBudW1Db2xPZmZzZXRDIGJldmVsV2lkdGggY2VudGVyT2Zmc2V0IHhPcmlnaW5SIFgwX1IgWDBfTCBYMV9SIFgxX0wpACgoZ3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAobnVtUm93c0luQmV2ZWwgMCkgKGNvbnRhY3QxTGF5ZXIgbGlzdCgiaGlsaXRlIiAiZHJhd2luZyIpKSAoY29udGFjdDJMYXllciBuaWwpIChjb24yY29uMUVuY1ggMC4wKSAoY29uMmNvbjFFbmNZIDAuMCkgKGNvbnRhY3QxV2lkdGggMC4xKSAoY29udGFjdDFMZW5ndGggMC4xKSAoYmV2ZWxMZW5ndGggMS4wKSAoY29udGFjdDJTcGFjZVkgMC4xKSAoY29udGFjdDJTcGFjZVggMC4xKSAoY29udGFjdDJPZmZzZXRYIDAuMCkgKGNvbnRhY3QyT2Zmc2V0WSAwLjApIChjb250YWN0MlJvd3MgMCkgKGNvbnRhY3QxU3BhY2VZIDAuMSkgKGNvbnRhY3QxU3BhY2VYIDAuMSkgKGNvbnRhY3QxT2Zmc2V0WCAwLjApIChjb250YWN0MU9mZnNldFkgMC4wKSAoY29udGFjdDFSb3dzIDEpIChsIDEwLjApICh3IDEwLjApKQAoKG1ldDFXaWR0aEQgPSBudGgoMiBkcm5HYXRlQ29udGFjdFNwYWNlVmFsdWUpKSAoZHJuR2F0ZUNvbnRhY3RTcGFjZSA9IG50aCgwIGRybkdhdGVDb250YWN0U3BhY2VWYWx1ZSkpIChtaW5pbXVtVG90YWxXaWR0aCA9IGZsb2F0KG50aCgxIGRybkdhdGVDb250YWN0U3BhY2VWYWx1ZSkpKSAob3JpZ20gPSBtKSAobSA9ICgyICogbSkpIHdoZW4oKGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSA8IG1pbklubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSkgZXJyb3IoIiUuM2YgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHJpZ2h0IHNpZGUgZGlmZiB0byB0YXAgcmluZyBzcGFjaW5nICUuM2ZcbiIgaW5uZXJSaW5nRmV0RXh0cmFSaWdodFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSkpIHdoZW4oKGlubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlIDwgbWluSW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UpIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSBsZWZ0IHNpZGUgZGlmZiB0byB0YXAgcmluZyBzcGFjaW5nICUuM2ZcbiIgaW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UgbWluSW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UpKSB3aGVuKChpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIDwgbWluSW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSkgZXJyb3IoIiUuM2YgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHRvcCBzaWRlIGRpZmYgdG8gdGFwIHJpbmcgc3BhY2luZyAlLjNmXG4iIGlubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UgbWluSW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSkpIHdoZW4oKGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgPCBtaW5Jbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlKSBlcnJvcigiJS4zZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gYm90dG9tIHNpZGUgZGlmZiB0byB0YXAgcmluZyBzcGFjaW5nICUuM2ZcbiIgaW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlKSkgd2hlbigoKHcgKiBvcmlnbSkgPCBtaW5pbXVtVG90YWxXaWR0aCkgZXJyb3IoIiUuM2YgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHRvdGFsIHdpZHRoICUuM2YgZm9yICUuM2YgZHJhaW4gdG8gZ2F0ZSBjb250YWN0IHNwYWNpbmdcbiIgKHcgKiBvcmlnbSkgbWluaW11bVRvdGFsV2lkdGggZHJuR2F0ZUNvbnRhY3RTcGFjZSkpIHdoZW4oKG9yaWdtIDwgbWluaW11bU0pIGVycm9yKCIlZCBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gbSBmYWN0b3IgJWRcbiIgb3JpZ20gbWluaW11bU0pKSAoZXNkQ2VsbE9yaWdpbiA9IGxpc3QoMCAwKSkgY29uZCgoKG1vc1R5cGUgPT0gIm5tb3MiKSAoaWRMYXllckVuZEVuYyA9IGh2V2VsbERpZmZUYXBFbmMpIChodkxheWVyRW5kRW5jID0gaHZMYXllckRpZmZUYXBFbmMpKSAoKG1vc1R5cGUgPT0gInBtb3MiKSAoaWRMYXllckVuZEVuYyA9IGh2TGF5ZXJEaWZmVGFwRW5jKSAoaHZMYXllckVuZEVuYyA9IGh2V2VsbERpZmZUYXBFbmMpKSAodCkpIChpbm5lclJpbmdGZXRSaWdodFNwYWNlID0gKGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSArIGZldERpZmZJbm5lclJpbmdTcGFjZSkpIChpbm5lclJpbmdGZXRMZWZ0U3BhY2UgPSAoaW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UgKyBmZXREaWZmSW5uZXJSaW5nU3BhY2UpKSAoaW5uZXJSaW5nRmV0VG9wU3BhY2UgPSAoaW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSArIGZldERpZmZJbm5lclJpbmdTcGFjZSkpIChpbm5lclJpbmdGZXRCb3RTcGFjZSA9IChpbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlICsgZmV0RGlmZklubmVyUmluZ1NwYWNlKSkgaWYoKChodk1vZGUgPT0gdCkgfHwgKGh2TW9kZSA9PSAiVFJVRSIpKSB0aGVuIChodk1vZGUgPSB0KSBlbHNlIChodk1vZGUgPSBuaWwpKSBpZigoKHJpbmdzTWV0MU9mZiA9PSB0KSB8fCAocmluZ3NNZXQxT2ZmID09ICJUUlVFIikpIHRoZW4gKHJpbmdzTWV0MU9mZiA9IHQpIGVsc2UgKHJpbmdzTWV0MU9mZiA9IG5pbCkpIGlmKCgoc2luZ2xlRmxhcmUgPT0gdCkgfHwgKHNpbmdsZUZsYXJlID09ICJUUlVFIikpIHRoZW4gKHNpbmdsZUZsYXJlID0gdCkgZWxzZSAoc2luZ2xlRmxhcmUgPSBuaWwpKSBpZigoKGJ1dHRpbmdUYXAgPT0gdCkgfHwgKGJ1dHRpbmdUYXAgPT0gIlRSVUUiKSkgdGhlbiAoYnV0dGluZ1RhcCA9IHQpIGVsc2UgKGJ1dHRpbmdUYXAgPSBuaWwpKSB3aGVuKG9kZHAob3JpZ20pIGVycm9yKCJJbGxlZ2FsIG0tZmFjdG9yOiBtLWZhY3RvciBtdXN0IGJlIGV2ZW4gbnVtYmVyXG4iKSkgKGNvbnRhY3QwSW5mb1MgPSBudGgoMCBzcmNJbnRlcmNvbm5lY3QpKSAoY29udGFjdDBMYXllclMgPSBudGgoMCBjb250YWN0MEluZm9TKSkgKGNvbnRhY3QwV2lkdGhTID0gbnRoKDEgY29udGFjdDBJbmZvUykpIChjb250YWN0MFNwYWNlUyA9IG50aCgyIGNvbnRhY3QwSW5mb1MpKSAoY29udGFjdDBDb2xzUyA9IG50aCgzIGNvbnRhY3QwSW5mb1MpKSAobWV0MExheWVyUyA9IG50aCg0IGNvbnRhY3QwSW5mb1MpKSAobWV0MFdpZHRoUyA9IG50aCg1IGNvbnRhY3QwSW5mb1MpKSAobWV0MFNwYWNlUyA9IG50aCg2IGNvbnRhY3QwSW5mb1MpKSAobWV0MEJldmVsUyA9IG50aCg3IGNvbnRhY3QwSW5mb1MpKSAoY29udGFjdDFJbmZvUyA9IG50aCgxIHNyY0ludGVyY29ubmVjdCkpIChjb250YWN0MUxheWVyUyA9IG50aCgwIGNvbnRhY3QxSW5mb1MpKSAoY29udGFjdDFXaWR0aFMgPSBudGgoMSBjb250YWN0MUluZm9TKSkgKGNvbnRhY3QxU3BhY2VTID0gbnRoKDIgY29udGFjdDFJbmZvUykpIChjb250YWN0MUNvbHNTID0gbnRoKDMgY29udGFjdDFJbmZvUykpIChtZXQxTGF5ZXJTID0gbnRoKDQgY29udGFjdDFJbmZvUykpIChtZXQxV2lkdGhTID0gbnRoKDUgY29udGFjdDFJbmZvUykpIChtZXQxU3BhY2VTID0gbnRoKDYgY29udGFjdDFJbmZvUykpIChtZXQxQmV2ZWxTID0gbnRoKDcgY29udGFjdDFJbmZvUykpIChjb250YWN0MEluZm9EID0gbnRoKDAgZHJuSW50ZXJjb25uZWN0KSkgKGNvbnRhY3QwTGF5ZXJEID0gbnRoKDAgY29udGFjdDBJbmZvRCkpIChjb250YWN0MFdpZHRoRCA9IG50aCgxIGNvbnRhY3QwSW5mb0QpKSAoY29udGFjdDBTcGFjZUQgPSBudGgoMiBjb250YWN0MEluZm9EKSkgKGNvbnRhY3QwQ29sc0QgPSBudGgoMyBjb250YWN0MEluZm9EKSkgKG1ldDBMYXllckQgPSBudGgoNCBjb250YWN0MEluZm9EKSkgKG1ldDBXaWR0aEQgPSBudGgoNSBjb250YWN0MEluZm9EKSkgKG1ldDBTcGFjZUQgPSBudGgoNiBjb250YWN0MEluZm9EKSkgKG1ldDBCZXZlbEQgPSBudGgoNyBjb250YWN0MEluZm9EKSkgKGNvbnRhY3QxSW5mb0QgPSBudGgoMSBkcm5JbnRlcmNvbm5lY3QpKSAoY29udGFjdDFMYXllckQgPSBudGgoMCBjb250YWN0MUluZm9EKSkgKGNvbnRhY3QxV2lkdGhEID0gbnRoKDEgY29udGFjdDFJbmZvRCkpIChjb250YWN0MVNwYWNlRCA9IG50aCgyIGNvbnRhY3QxSW5mb0QpKSAoY29udGFjdDFDb2xzRCA9IG50aCgzIGNvbnRhY3QxSW5mb0QpKSAobWV0MUxheWVyRCA9IG50aCg0IGNvbnRhY3QxSW5mb0QpKSAobWV0MVNwYWNlRCA9IG50aCg2IGNvbnRhY3QxSW5mb0QpKSAobWV0MUJldmVsRCA9IG50aCg3IGNvbnRhY3QxSW5mb0QpKSAoc3JjUGluV2lkdGggPSAoKGNvbnRhY3QwV2lkdGhTICogY29udGFjdDBDb2xzUykgKyAoKGNvbnRhY3QwQ29sc1MgKyAtMSkgKiBjb250YWN0MFNwYWNlUykpKSAobVNvdXJjZVBpbk9mZnNldCA9IHNyY0dhdGVDb250YWN0U3BhY2UpIChzaGFyZWRTb3VyY2VXaWR0aCA9ICgobVNvdXJjZVBpbk9mZnNldCAqIDIuMCkgKyBzcmNQaW5XaWR0aCkpIChkcm5QaW5XaWR0aCA9ICgoY29udGFjdDBXaWR0aEQgKiBjb250YWN0MENvbHNEKSArICgoY29udGFjdDBDb2xzRCArIC0xKSAqIGNvbnRhY3QwU3BhY2VEKSkpIChtRHJhaW5QaW5PZmZzZXQgPSBkcm5HYXRlQ29udGFjdFNwYWNlKSAoc2hhcmVkRHJhaW5XaWR0aCA9ICgobURyYWluUGluT2Zmc2V0ICogMi4wKSArIGRyblBpbldpZHRoKSkgKGZpcnN0U291cmNlUGluID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggc3JjUGluV2lkdGggP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgbGFiZWxXaWR0aCA/cGluTGFiZWxMYXllciBsYWJlbExheWVyID9waW5MYWJlbEZvbnQgInJvbWFuIiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDBMYXllclMgP3dpZHRoIGNvbnRhY3QwV2lkdGhTID9sZW5ndGggY29udGFjdDBXaWR0aFMgP3NwYWNlWSBjb250YWN0MFNwYWNlUyA/c3BhY2VYIGNvbnRhY3QwU3BhY2VTID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0U291cmNlUGluID9hbGlnbkhhbmRsZSAibFIiID9yZWZQb2ludCBlc2RDZWxsT3JpZ2luID94U2VwICgtIG1Tb3VyY2VQaW5PZmZzZXQpKSAoY29udGFjdDFQaXRjaFMgPSAoY29udGFjdDFXaWR0aFMgKyBjb250YWN0MVNwYWNlUykpIChjb250YWN0MVBpdGNoRCA9IChjb250YWN0MVdpZHRoRCArIGNvbnRhY3QxU3BhY2VEKSkgKG1ldDBQaW5XaWR0aFMgPSAoKGNvbnRhY3QxV2lkdGhTICogY29udGFjdDFDb2xzUykgKyAoKGNvbnRhY3QxQ29sc1MgKyAtMSkgKiBjb250YWN0MVNwYWNlUykpKSAobWV0MFBpbldpZHRoRCA9ICgoY29udGFjdDFXaWR0aEQgKiBjb250YWN0MUNvbHNEKSArICgoY29udGFjdDFDb2xzRCArIC0xKSAqIGNvbnRhY3QxU3BhY2VEKSkpIChmaXJzdE1ldDBQaW4gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyUyA/d2lkdGggbWV0MFBpbldpZHRoUyA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MUxheWVyUyA/d2lkdGggY29udGFjdDFXaWR0aFMgP2xlbmd0aCBjb250YWN0MVdpZHRoUyA/c3BhY2VZIGNvbnRhY3QxU3BhY2VTID9zcGFjZVggY29udGFjdDFTcGFjZVMgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RNZXQwUGluID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogZmlyc3RTb3VyY2VQaW4gP3JlZkhhbmRsZSAibEMiKSAoZmlyc3RNZXQwRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJTID93aWR0aCBtZXQwV2lkdGhTID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RNZXQwRHJhd2luZyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIGZpcnN0TWV0MFBpbiA/cmVmSGFuZGxlICJsQyIpIGRlY2xhcmUobWV0MURyYXdpbmdQdHNTWzhdKSBkZWNsYXJlKG1ldDFEcmF3aW5nUHRzRFs4XSkgKHgwTWV0MSA9IDAuMCkgKHkwTWV0MSA9IDAuMCkgKG1ldDFEcmF3aW5nUHRzU1swXSA9ICh4ME1ldDE6KHkwTWV0MSArIG1ldDFCZXZlbFMpKSkgKG1ldDFEcmF3aW5nUHRzU1sxXSA9ICh4ME1ldDE6KHcgLSBtZXQxQmV2ZWxTKSkpIChtZXQxRHJhd2luZ1B0c1NbMl0gPSAobWV0MUJldmVsUzp3KSkgKG1ldDFEcmF3aW5nUHRzU1szXSA9ICgobWV0MVdpZHRoUyArICgtIG1ldDFCZXZlbFMpKTp3KSkgKG1ldDFEcmF3aW5nUHRzU1s0XSA9IChtZXQxV2lkdGhTOih3IC0gbWV0MUJldmVsUykpKSAobWV0MURyYXdpbmdQdHNTWzVdID0gKG1ldDFXaWR0aFM6KHkwTWV0MSArIG1ldDFCZXZlbFMpKSkgKG1ldDFEcmF3aW5nUHRzU1s2XSA9ICgobWV0MVdpZHRoUyArICgtIG1ldDFCZXZlbFMpKTowKSkgKG1ldDFEcmF3aW5nUHRzU1s3XSA9IChtZXQxQmV2ZWxTOjApKSAoZmlyc3RNZXQxcG9pbnRzUyA9IG5pbCkgKG1ldDFEcmF3aW5nUHRzRFswXSA9ICh4ME1ldDE6KHkwTWV0MSArIG1ldDFCZXZlbEQpKSkgKG1ldDFEcmF3aW5nUHRzRFsxXSA9ICh4ME1ldDE6KHcgLSBtZXQxQmV2ZWxEKSkpIChtZXQxRHJhd2luZ1B0c0RbMl0gPSAobWV0MUJldmVsRDp3KSkgKG1ldDFEcmF3aW5nUHRzRFszXSA9ICgobWV0MVdpZHRoRCArICgtIG1ldDFCZXZlbEQpKTp3KSkgKG1ldDFEcmF3aW5nUHRzRFs0XSA9IChtZXQxV2lkdGhEOih3IC0gbWV0MUJldmVsRCkpKSAobWV0MURyYXdpbmdQdHNEWzVdID0gKG1ldDFXaWR0aEQ6KHkwTWV0MSArIG1ldDFCZXZlbEQpKSkgKG1ldDFEcmF3aW5nUHRzRFs2XSA9ICgobWV0MVdpZHRoRCArICgtIG1ldDFCZXZlbEQpKTowKSkgKG1ldDFEcmF3aW5nUHRzRFs3XSA9IChtZXQxQmV2ZWxEOjApKSAoZmlyc3RNZXQxcG9pbnRzRCA9IG5pbCkgZm9yKGkgMSA4IChmaXJzdE1ldDFwb2ludHNTID0gY29ucygoY2FyKG1ldDFEcmF3aW5nUHRzU1soOCAtIGkpXSk6Y2FkcihtZXQxRHJhd2luZ1B0c1NbKDggLSBpKV0pKSBmaXJzdE1ldDFwb2ludHNTKSkgKGZpcnN0TWV0MXBvaW50c0QgPSBjb25zKChjYXIobWV0MURyYXdpbmdQdHNEWyg4IC0gaSldKTpjYWRyKG1ldDFEcmF3aW5nUHRzRFsoOCAtIGkpXSkpIGZpcnN0TWV0MXBvaW50c0QpKSkgKGZpcnN0TWV0MURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgbWV0MUxheWVyUyA/cHRzIGZpcnN0TWV0MXBvaW50c1MgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdE1ldDFEcmF3aW5nID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZmlyc3RNZXQwRHJhd2luZyA/cmVmSGFuZGxlICJjQyIpIChzb3VyY2VQaW5zTnVtYmVyID0gMSkgKGRyYWluUGluc051bWJlciA9IDEpIChzb3VyY2VQaW5zTnVtYmVyID0gKG0gLyA0KSkgKGRyYWluUGluc051bWJlciA9IHNvdXJjZVBpbnNOdW1iZXIpIChzb3VyY2VQaW5zU3BhY2UgPSAoc2hhcmVkRHJhaW5XaWR0aCArIChsICogNCkgKyAoMiAqIHNoYXJlZENhc2NvZGVEaWZmV2lkdGgpICsgKG1Tb3VyY2VQaW5PZmZzZXQgKiAyLjApKSkgKGRyYWluUGluc1NwYWNlID0gKHNoYXJlZFNvdXJjZVdpZHRoICsgKGwgKiA0KSArICgyICogc2hhcmVkQ2FzY29kZURpZmZXaWR0aCkgKyAobURyYWluUGluT2Zmc2V0ICogMi4wKSkpIChzb3VyY2VQaW5zT3JpZ2luT2Zmc2V0ID0gKHNvdXJjZVBpbnNTcGFjZSArIHNyY1BpbldpZHRoKSkgKHNvdXJjZVBpbnNPcmlnaW5YID0gKGNhcihlc2RDZWxsT3JpZ2luKSArIChsICogNCkgKyAoMiAqIHNoYXJlZENhc2NvZGVEaWZmV2lkdGgpICsgc2hhcmVkRHJhaW5XaWR0aCArIG1Tb3VyY2VQaW5PZmZzZXQpKSBmb3IobiAxIHNvdXJjZVBpbnNOdW1iZXIgKHNvdXJjZVBpbnNPcmlnaW4gPSBsaXN0KChzb3VyY2VQaW5zT3JpZ2luWCArICgobiAtIDEpICogc291cmNlUGluc09yaWdpbk9mZnNldCkpIDAuMCkpIChzb3VyY2VQaW5zID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggc3JjUGluV2lkdGggP2xlbmd0aCB3ID9vcmlnaW4gc291cmNlUGluc09yaWdpbiA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IGxhYmVsV2lkdGggP3BpbkxhYmVsTGF5ZXIgbGFiZWxMYXllciA/cGluTGFiZWxGb250ICJyb21hbiIgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIGNvbnRhY3QwTGF5ZXJTID93aWR0aCBjb250YWN0MFdpZHRoUyA/bGVuZ3RoIGNvbnRhY3QwV2lkdGhTID9zcGFjZVkgY29udGFjdDBTcGFjZVMgP3NwYWNlWCBjb250YWN0MFNwYWNlUyA/bG93ZXJMZWZ0T2Zmc2V0WSBkaWZmQ29udGFjdDBZZW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBkaWZmQ29udGFjdDBZZW5jKSkpKSkgKHNvdXJjZU1ldDBQaW5zID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllclMgP3dpZHRoIG1ldDBQaW5XaWR0aFMgP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDFMYXllclMgP3dpZHRoIGNvbnRhY3QxV2lkdGhTID9sZW5ndGggY29udGFjdDFXaWR0aFMgP3NwYWNlWSBjb250YWN0MVNwYWNlUyA/c3BhY2VYIGNvbnRhY3QxU3BhY2VTID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZU1ldDBQaW5zID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogc291cmNlUGlucyA/cmVmSGFuZGxlICJsQyIpIChzb3VyY2VNZXQwRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJTID93aWR0aCBtZXQwV2lkdGhTID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogc291cmNlTWV0MERyYXdpbmcgP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiBzb3VyY2VNZXQwUGlucyA/cmVmSGFuZGxlICJsQyIpIChzb3VyY2VNZXQxRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBtZXQxTGF5ZXJTID9wdHMgZmlyc3RNZXQxcG9pbnRzUyA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZU1ldDFEcmF3aW5nID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogc291cmNlTWV0MERyYXdpbmcgP3JlZkhhbmRsZSAiY0MiKSkgKGRyYWluUGluc09yaWdpbk9mZnNldCA9IChkcmFpblBpbnNTcGFjZSArIGRyblBpbldpZHRoKSkgKGRyYWluUGluc09yaWdpblggPSAoY2FyKGVzZENlbGxPcmlnaW4pICsgKGwgKiAyKSArIHNoYXJlZENhc2NvZGVEaWZmV2lkdGggKyBtRHJhaW5QaW5PZmZzZXQpKSBmb3IobiAxIGRyYWluUGluc051bWJlciAoZHJhaW5QaW5zT3JpZ2luID0gbGlzdCgoZHJhaW5QaW5zT3JpZ2luWCArICgobiAtIDEpICogZHJhaW5QaW5zT3JpZ2luT2Zmc2V0KSkgMC4wKSkgKGRyYWluUGlucyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIGRyblBpbldpZHRoID9sZW5ndGggdyA/b3JpZ2luIGRyYWluUGluc09yaWdpbiA/cGluIHQgP3Rlcm1OYW1lICJEIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IGxhYmVsV2lkdGggP3BpbkxhYmVsTGF5ZXIgbGFiZWxMYXllciA/cGluTGFiZWxGb250ICJyb21hbiIgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIGNvbnRhY3QwTGF5ZXJEID93aWR0aCBjb250YWN0MFdpZHRoRCA/bGVuZ3RoIGNvbnRhY3QwV2lkdGhEID9zcGFjZVkgY29udGFjdDBTcGFjZUQgP3NwYWNlWCBjb250YWN0MFNwYWNlRCA/bG93ZXJMZWZ0T2Zmc2V0WSBkaWZmQ29udGFjdDBZZW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBkaWZmQ29udGFjdDBZZW5jKSkpKSkgKGRyYWluTWV0MFBpbnMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyRCA/d2lkdGggbWV0MFBpbldpZHRoRCA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiRCIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MUxheWVyRCA/d2lkdGggY29udGFjdDFXaWR0aEQgP2xlbmd0aCBjb250YWN0MVdpZHRoRCA/c3BhY2VZIGNvbnRhY3QxU3BhY2VEID9zcGFjZVggY29udGFjdDFTcGFjZUQgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZHJhaW5NZXQwUGlucyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIGRyYWluUGlucyA/cmVmSGFuZGxlICJsQyIpIChkcmFpbk1ldDBEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllckQgP3dpZHRoIG1ldDBXaWR0aEQgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBkcmFpbk1ldDBEcmF3aW5nID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogZHJhaW5NZXQwUGlucyA/cmVmSGFuZGxlICJsQyIpIChkcmFpbk1ldDFEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIG1ldDFMYXllckQgP3B0cyBmaXJzdE1ldDFwb2ludHNEID9waW4gdCA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZHJhaW5NZXQxRHJhd2luZyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGRyYWluTWV0MERyYXdpbmcgP3JlZkhhbmRsZSAiY0MiKSkgKHNoYXJlZENhc2NvZGVEaWZmTnVtYmVyID0gKGNlaWxpbmcgKG0gLyA0LjApKSkgKHNoYXJlZENhc2NvZGVEaWZmU3BhY2UgPSAoKGwgKiA0KSArIHNoYXJlZFNvdXJjZVdpZHRoICsgKDIgKiBzaGFyZWRDYXNjb2RlRGlmZldpZHRoKSArIHNoYXJlZERyYWluV2lkdGgpKSAoc2hhcmVkQ2FzY29kZURpZmZPcmlnaW5YXzEgPSAoY2FyKGVzZENlbGxPcmlnaW4pICsgbCkpIChzaGFyZWRDYXNjb2RlRGlmZk9yaWdpblhfMiA9IChjYXIoZXNkQ2VsbE9yaWdpbikgKyAoMyAqIGwpICsgc2hhcmVkQ2FzY29kZURpZmZXaWR0aCArIHNoYXJlZERyYWluV2lkdGgpKSAoc2hhcmVkQ2FzY29kZURpZmZPcmlnaW5PZmZzZXQgPSBzaGFyZWRDYXNjb2RlRGlmZlNwYWNlKSBmb3IobiAxIHNoYXJlZENhc2NvZGVEaWZmTnVtYmVyIChzaGFyZWRDYXNjb2RlRGlmZk9yaWdpbl8xID0gbGlzdCgoc2hhcmVkQ2FzY29kZURpZmZPcmlnaW5YXzEgKyAoKG4gLSAxKSAqIHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luT2Zmc2V0KSkgMC4wKSkgKHNoYXJlZENhc2NvZGVEaWZmXzEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCBzaGFyZWRDYXNjb2RlRGlmZldpZHRoID9sZW5ndGggdyA/b3JpZ2luIHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luXzEpKSAoc2hhcmVkQ2FzY29kZURpZmZPcmlnaW5fMiA9IGxpc3QoKHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luWF8yICsgKChuIC0gMSkgKiBzaGFyZWRDYXNjb2RlRGlmZk9yaWdpbk9mZnNldCkpIDAuMCkpIChzaGFyZWRDYXNjb2RlRGlmZl8yID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggc2hhcmVkQ2FzY29kZURpZmZXaWR0aCA/bGVuZ3RoIHcgP29yaWdpbiBzaGFyZWRDYXNjb2RlRGlmZk9yaWdpbl8yKSkpIChmbGFyZVkgPSAoZmxhcmVPdXREaWZmICsgZmxhcmVFeHQpKSBjb25kKChzaW5nbGVGbGFyZSBkZWNsYXJlKG9kZGZsYXJlR2F0ZVB0c1s4XSkgKHhvMCA9ICgoLSBmbGFyZU91dERpZmYpICsgKC0gZmxhcmVJbkRpZmYpKSkgKHhvMiA9ICh4bzAgKyBmbGFyZUluRGlmZiArIGZsYXJlT3V0RGlmZikpICh4bzYgPSAoeG8yICsgbCkpIChvZGRmbGFyZUdhdGVQdHNbMF0gPSAoeG8wOigtIGZsYXJlWSkpKSAob2RkZmxhcmVHYXRlUHRzWzFdID0gKHhvMDooLSBmbGFyZU91dERpZmYpKSkgKG9kZGZsYXJlR2F0ZVB0c1syXSA9ICh4bzI6ZmxhcmVJbkRpZmYpKSAob2RkZmxhcmVHYXRlUHRzWzNdID0gKHhvMjoodyArICgtIGZsYXJlSW5EaWZmKSkpKSAob2RkZmxhcmVHYXRlUHRzWzRdID0gKHhvMDoodyArIGZsYXJlT3V0RGlmZikpKSAob2RkZmxhcmVHYXRlUHRzWzVdID0gKHhvMDoodyArIGZsYXJlWSkpKSAob2RkZmxhcmVHYXRlUHRzWzZdID0gKHhvNjoodyArIGZsYXJlWSkpKSAob2RkZmxhcmVHYXRlUHRzWzddID0gKHhvNjooLSBmbGFyZVkpKSkgZGVjbGFyZShldmVuZmxhcmVHYXRlUHRzWzhdKSAoeGUwID0gMC4wKSAoeGUyID0gKHhlMCArIGwgKyBmbGFyZUluRGlmZiArIGZsYXJlT3V0RGlmZikpICh4ZTQgPSAoeGUwICsgbCkpIChldmVuZmxhcmVHYXRlUHRzWzBdID0gKHhlMDooLSBmbGFyZVkpKSkgKGV2ZW5mbGFyZUdhdGVQdHNbMV0gPSAoeGUwOih3ICsgZmxhcmVZKSkpIChldmVuZmxhcmVHYXRlUHRzWzJdID0gKHhlMjoodyArIGZsYXJlWSkpKSAoZXZlbmZsYXJlR2F0ZVB0c1szXSA9ICh4ZTI6KHcgKyBmbGFyZU91dERpZmYpKSkgKGV2ZW5mbGFyZUdhdGVQdHNbNF0gPSAoeGU0Oih3ICsgKC0gZmxhcmVJbkRpZmYpKSkpIChldmVuZmxhcmVHYXRlUHRzWzVdID0gKHhlNDpmbGFyZUluRGlmZikpIChldmVuZmxhcmVHYXRlUHRzWzZdID0gKHhlMjooLSBmbGFyZU91dERpZmYpKSkgKGV2ZW5mbGFyZUdhdGVQdHNbN10gPSAoeGUyOigtIGZsYXJlWSkpKSBmb3IoaSAxIDggKHBvaW50TGlzdDEgPSBjb25zKChjYXIob2RkZmxhcmVHYXRlUHRzWyg4IC0gaSldKTpjYWRyKG9kZGZsYXJlR2F0ZVB0c1soOCAtIGkpXSkpIHBvaW50TGlzdDEpKSkgKGZpcnN0R2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZ2F0ZUxheWVyID9wdHMgcG9pbnRMaXN0MSA/cGluIHQgP3Rlcm1OYW1lICJHIiA/dGVybUlPVHlwZSAiaW5wdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSkgKHQgZGVjbGFyZShmbGFyZUdhdGVQdHNbMTJdKSAoeDAgPSAoKC0gZmxhcmVPdXREaWZmKSArICgtIGZsYXJlSW5EaWZmKSkpICh4MiA9ICh4MCArIGZsYXJlSW5EaWZmICsgZmxhcmVPdXREaWZmKSkgKHg2ID0gKHgyICsgbCArICgtIHgwKSkpICh4OCA9ICh4MiArIGwpKSAoZmxhcmVHYXRlUHRzWzBdID0gKHgwOigtIGZsYXJlWSkpKSAoZmxhcmVHYXRlUHRzWzFdID0gKHgwOigtIGZsYXJlT3V0RGlmZikpKSAoZmxhcmVHYXRlUHRzWzJdID0gKHgyOmZsYXJlSW5EaWZmKSkgKGZsYXJlR2F0ZVB0c1szXSA9ICh4MjoodyArICgtIGZsYXJlSW5EaWZmKSkpKSAoZmxhcmVHYXRlUHRzWzRdID0gKHgwOih3ICsgZmxhcmVPdXREaWZmKSkpIChmbGFyZUdhdGVQdHNbNV0gPSAoeDA6KHcgKyBmbGFyZVkpKSkgKGZsYXJlR2F0ZVB0c1s2XSA9ICh4NjoodyArIGZsYXJlWSkpKSAoZmxhcmVHYXRlUHRzWzddID0gKHg2Oih3ICsgZmxhcmVPdXREaWZmKSkpIChmbGFyZUdhdGVQdHNbOF0gPSAoeDg6KHcgKyAoLSBmbGFyZUluRGlmZikpKSkgKGZsYXJlR2F0ZVB0c1s5XSA9ICh4ODpmbGFyZUluRGlmZikpIChmbGFyZUdhdGVQdHNbMTBdID0gKHg2OigtIGZsYXJlT3V0RGlmZikpKSAoZmxhcmVHYXRlUHRzWzExXSA9ICh4NjooLSBmbGFyZVkpKSkgKHBvaW50TGlzdDEgPSBuaWwpIGZvcihpIDEgMTIgKHBvaW50TGlzdDEgPSBjb25zKChjYXIoZmxhcmVHYXRlUHRzWygxMiAtIGkpXSk6Y2FkcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKSkgcG9pbnRMaXN0MSkpKSAoZmlyc3RHYXRlRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBnYXRlTGF5ZXIgP3B0cyBwb2ludExpc3QxID9waW4gdCA/dGVybU5hbWUgIkciID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpKSkgKG9kZEdhdGVPZmZzZXQgPSAwLjApIGZvcihuIDIgbSB3aGVuKG9kZHAobikgKHBvaW50TGlzdDEgPSBuaWwpIChvZGRHYXRlT2Zmc2V0ID0gKHNoYXJlZENhc2NvZGVEaWZmV2lkdGggKyBsICsgaWYob2RkcCgoZmxvb3IgKG4gLyAyKSkpIHNoYXJlZERyYWluV2lkdGggc2hhcmVkU291cmNlV2lkdGgpICsgbCArIG9kZEdhdGVPZmZzZXQpKSBjb25kKChzaW5nbGVGbGFyZSBmb3IoaSAxIDggKHBvaW50TGlzdDEgPSBjb25zKCgoY2FyKG9kZGZsYXJlR2F0ZVB0c1soOCAtIGkpXSkgKyBvZGRHYXRlT2Zmc2V0KTpjYWRyKG9kZGZsYXJlR2F0ZVB0c1soOCAtIGkpXSkpIHBvaW50TGlzdDEpKSkpICh0IGZvcihpIDEgMTIgKHBvaW50TGlzdDEgPSBjb25zKCgoY2FyKGZsYXJlR2F0ZVB0c1soMTIgLSBpKV0pICsgb2RkR2F0ZU9mZnNldCk6Y2FkcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKSkgcG9pbnRMaXN0MSkpKSkpIChvZGRHYXRlRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBnYXRlTGF5ZXIgP3B0cyBwb2ludExpc3QxID9waW4gdCA/dGVybU5hbWUgIkciID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpKSB3aGVuKGV2ZW5wKG4pIChwb2ludExpc3QyID0gbmlsKSBpZigobiA9PSAyKSB0aGVuIChldmVuR2F0ZU9mZnNldCA9IChzaGFyZWRDYXNjb2RlRGlmZldpZHRoICsgbCkpIGVsc2UgKGV2ZW5HYXRlT2Zmc2V0ID0gKHNoYXJlZENhc2NvZGVEaWZmV2lkdGggKyBsICsgaWYoZXZlbnAoKGZsb29yIChuIC8gMikpKSBzaGFyZWREcmFpbldpZHRoIHNoYXJlZFNvdXJjZVdpZHRoKSArIGwgKyBldmVuR2F0ZU9mZnNldCkpKSBjb25kKChzaW5nbGVGbGFyZSBmb3IoaSAxIDggKHBvaW50TGlzdDIgPSBjb25zKCgoY2FyKGV2ZW5mbGFyZUdhdGVQdHNbKDggLSBpKV0pICsgZXZlbkdhdGVPZmZzZXQpOmNhZHIoZXZlbmZsYXJlR2F0ZVB0c1soOCAtIGkpXSkpIHBvaW50TGlzdDIpKSkpICh0IGZvcihpIDEgMTIgKHBvaW50TGlzdDIgPSBjb25zKCgoY2FyKGZsYXJlR2F0ZVB0c1soMTIgLSBpKV0pICsgZXZlbkdhdGVPZmZzZXQpOmNhZHIoZmxhcmVHYXRlUHRzWygxMiAtIGkpXSkpIHBvaW50TGlzdDIpKSkpKSAoZXZlbkdhdGVEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIGdhdGVMYXllciA/cHRzIHBvaW50TGlzdDIgP3BpbiB0ID90ZXJtTmFtZSAiRyIgP3Rlcm1JT1R5cGUgImlucHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkpKSB3aGVuKHBnYXRlTGF5ZXIgKG9kZDFQR2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcGdhdGVMYXllciA/d2lkdGggbCA/bGVuZ3RoIHcgP29yaWdpbiBlc2RDZWxsT3JpZ2luID9lbGVtZW50c1ggKGNlaWxpbmcgKG0gLyA0LjApKSA/c3BhY2VYICgoMiAqIHNoYXJlZENhc2NvZGVEaWZmV2lkdGgpICsgKDMgKiBsKSArIHNoYXJlZERyYWluV2lkdGggKyBzaGFyZWRTb3VyY2VXaWR0aCkpKSAob2RkMlBHYXRlRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBwZ2F0ZUxheWVyID93aWR0aCBsID9sZW5ndGggdyA/b3JpZ2luIGxpc3QoKGNhcihlc2RDZWxsT3JpZ2luKSArICgyICogbCkgKyBzaGFyZWRDYXNjb2RlRGlmZldpZHRoICsgc2hhcmVkRHJhaW5XaWR0aCkgMCkgP2VsZW1lbnRzWCAoY2VpbGluZyAobSAvIDQuMCkpID9zcGFjZVggKCgyICogc2hhcmVkQ2FzY29kZURpZmZXaWR0aCkgKyAoMyAqIGwpICsgc2hhcmVkRHJhaW5XaWR0aCArIHNoYXJlZFNvdXJjZVdpZHRoKSkpIChldmVuMVBHYXRlRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBwZ2F0ZUxheWVyID93aWR0aCBsID9sZW5ndGggdyA/b3JpZ2luIGxpc3QoKHNoYXJlZENhc2NvZGVEaWZmV2lkdGggKyBsKSAwKSA/ZWxlbWVudHNYIChtIC8gNCkgP3NwYWNlWCAoKDIgKiBzaGFyZWRDYXNjb2RlRGlmZldpZHRoKSArICgzICogbCkgKyBzaGFyZWREcmFpbldpZHRoICsgc2hhcmVkU291cmNlV2lkdGgpKSkgKGV2ZW4xUEdhdGVEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHBnYXRlTGF5ZXIgP3dpZHRoIGwgP2xlbmd0aCB3ID9vcmlnaW4gbGlzdCgoY2FyKGVzZENlbGxPcmlnaW4pICsgKDMgKiBsKSArICgyICogc2hhcmVkQ2FzY29kZURpZmZXaWR0aCkgKyBzaGFyZWREcmFpbldpZHRoKSAwKSA/ZWxlbWVudHNYIChtIC8gNCkgP3NwYWNlWCAoKDIgKiBzaGFyZWRDYXNjb2RlRGlmZldpZHRoKSArICgzICogbCkgKyBzaGFyZWREcmFpbldpZHRoICsgc2hhcmVkU291cmNlV2lkdGgpKSkpIChmZXREaWZmdXNpb25YZGltID0gKChsICogbSkgKyAoc2hhcmVkU291cmNlV2lkdGggKiAoc291cmNlUGluc051bWJlciArIC0xKSkgKyAoc2hhcmVkRHJhaW5XaWR0aCAqIGRyYWluUGluc051bWJlcikgKyAoc2hhcmVkQ2FzY29kZURpZmZXaWR0aCAqICgyICogc2hhcmVkQ2FzY29kZURpZmZOdW1iZXIpKSArICgoc3JjUGluV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jICsgbVNvdXJjZVBpbk9mZnNldCkgKiAyLjApKSkgKGZldERpZmZ1c2lvbiA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIGZldERpZmZ1c2lvblhkaW0gP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBmZXREaWZmdXNpb24gP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmaXJzdFNvdXJjZVBpbiA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gZGlmZkNvbnRhY3QwWGVuYykpIGNvbmQoKGJ1dHRpbmdUYXAgKGZpcnN0U291cmNlVGFwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBidXR0aW5nVGFwV2lkdGggP2xlbmd0aCB3ID9waW4gdCkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RTb3VyY2VUYXAgP2FsaWduSGFuZGxlICJsUiIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAibEwiKSAoZmlyc3RTb3VyY2VUYXBNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllclMgP3dpZHRoIChidXR0aW5nVGFwV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jKSA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0U291cmNlVGFwTWV0MCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIGZpcnN0U291cmNlVGFwID9yZWZIYW5kbGUgImNMIikgKGZpcnN0U291cmNlVGFwTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQxTGF5ZXJTID93aWR0aCAoYnV0dGluZ1RhcFdpZHRoICsgKDIgKiBkaWZmQ29udGFjdDBYZW5jKSkgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFNvdXJjZVRhcE1ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBmaXJzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJjQyIpIChmaXJzdFNvdXJjZVRhcEltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBJbXBsYW50ID93aWR0aCAodGFwSW1wRW5jICsgYnV0dGluZ1RhcFdpZHRoKSA/bGVuZ3RoICh3ICsgKDIuMCAqIHRhcEltcEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFNvdXJjZVRhcEltcCA/YWxpZ25IYW5kbGUgImxSIiA/cmVmT2JqIGZpcnN0U291cmNlVGFwID9yZWZIYW5kbGUgImxSIiA/eVNlcCAoLSB0YXBJbXBFbmMpKSAobGFzdFNvdXJjZVRhcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggYnV0dGluZ1RhcFdpZHRoID9sZW5ndGggdyA/cGluIHQpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RTb3VyY2VUYXAgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAibFIiKSAobGFzdFNvdXJjZVRhcE1ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyUyA/d2lkdGggKGJ1dHRpbmdUYXBXaWR0aCArIGRpZmZDb250YWN0MFhlbmMpID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogbGFzdFNvdXJjZVRhcE1ldDAgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBsYXN0U291cmNlVGFwID9yZWZIYW5kbGUgImNSIikgKGxhc3RTb3VyY2VUYXBNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDFMYXllclMgP3dpZHRoIChidXR0aW5nVGFwV2lkdGggKyAoMiAqIGRpZmZDb250YWN0MFhlbmMpKSA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RTb3VyY2VUYXBNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbGFzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJjQyIpIChmZXREaWZmSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID93aWR0aCBmZXREaWZmdXNpb25YZGltID9sZW5ndGggKHcgKyAoMi4wICogZGlmZkltcEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmZXREaWZmSW1wID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxMIiA/eVNlcCAoLSBkaWZmSW1wRW5jKSkgKGxhc3RTb3VyY2VUYXBJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/d2lkdGggKHRhcEltcEVuYyArIGJ1dHRpbmdUYXBXaWR0aCkgP2xlbmd0aCAodyArICgyLjAgKiB0YXBJbXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGFzdFNvdXJjZVRhcEltcCA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGxhc3RTb3VyY2VUYXAgP3JlZkhhbmRsZSAibEwiID95U2VwICgtIHRhcEltcEVuYykpIHdoZW4oKChtb3NUeXBlID09ICJwbW9zIikgJiYgKHJpbmdzID09ICJOb25lIikpICh3ZWxsTGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHdlbGxMYXllciA/d2lkdGggKGZldERpZmZ1c2lvblhkaW0gKyAoMi4wICogYnV0dGluZ1RhcFdpZHRoKSArICgyLjAgKiBodldlbGxEaWZmVGFwRW5jKSkgP2xlbmd0aCAodyArICgyLjAgKiBodldlbGxEaWZmVGFwRW5jKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHdlbGxMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmaXJzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gaHZXZWxsRGlmZlRhcEVuYykgP3lTZXAgKC0gaHZXZWxsRGlmZlRhcEVuYykpKSkgKHQgKGZldERpZmZJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGxhbnQgP2Zyb21PYmogZmV0RGlmZnVzaW9uID9zaXplIGRpZmZJbXBFbmMpKSB3aGVuKCgobW9zVHlwZSA9PSAicG1vcyIpICYmIChyaW5ncyA9PSAiTm9uZSIpKSAod2VsbExheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogZmV0RGlmZnVzaW9uID9zaXplIGh2V2VsbERpZmZUYXBFbmMpKSkpKSB3aGVuKCgocmluZ3MgPT0gIklubmVyIikgfHwgKHJpbmdzID09ICJCb3RoIikpIChyaW5nQ29udGFjdDBJbmZvSCA9IG50aCgwIElubmVyUmluZ0ludGVyY29ubmVjdEhvcml6KSkgKHJpbmdDb250YWN0MExheWVySCA9IG50aCgwIHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdDb250YWN0MFdpZHRoSCA9IG50aCgxIHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdDb250YWN0MFNwYWNlSCA9IG50aCgyIHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdDb250YWN0MENvbHNIID0gbnRoKDMgcmluZ0NvbnRhY3QwSW5mb0gpKSAocmluZ01ldDBMYXllckggPSBudGgoNCByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nTWV0MENvbnQwRW5jSCA9IG50aCg1IHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdNZXQwSW5CZXZlbEggPSBudGgoNiByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nTWV0ME91dEJldmVsSCA9IG50aCg3IHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdDb250YWN0MUluZm9IID0gbnRoKDEgSW5uZXJSaW5nSW50ZXJjb25uZWN0SG9yaXopKSAocmluZ0NvbnRhY3QxTGF5ZXJIID0gbnRoKDAgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ0NvbnRhY3QxV2lkdGhIID0gbnRoKDEgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ0NvbnRhY3QxU3BhY2VIID0gbnRoKDIgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ0NvbnRhY3QxQ29sc0ggPSBudGgoMyByaW5nQ29udGFjdDFJbmZvSCkpIChyaW5nTWV0MUxheWVySCA9IG50aCg0IHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdNZXQxQ29udDFFbmNIID0gbnRoKDUgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ01ldDFJbkJldmVsSCA9IG50aCg2IHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdNZXQxT3V0QmV2ZWxIID0gbnRoKDcgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ0NvbnRhY3QwSW5mb1YgPSBudGgoMCBJbm5lclJpbmdJbnRlcmNvbm5lY3RWZXJ0KSkgKHJpbmdDb250YWN0MExheWVyViA9IG50aCgwIHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdDb250YWN0MFdpZHRoViA9IG50aCgxIHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdDb250YWN0MFNwYWNlViA9IG50aCgyIHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdDb250YWN0MENvbHNWID0gbnRoKDMgcmluZ0NvbnRhY3QwSW5mb1YpKSAocmluZ01ldDBMYXllclYgPSBudGgoNCByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nTWV0MENvbnQwRW5jViA9IG50aCg1IHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdNZXQwSW5CZXZlbFYgPSBudGgoNiByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nTWV0ME91dEJldmVsViA9IG50aCg3IHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdDb250YWN0MUluZm9WID0gbnRoKDEgSW5uZXJSaW5nSW50ZXJjb25uZWN0VmVydCkpIChyaW5nQ29udGFjdDFMYXllclYgPSBudGgoMCByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nQ29udGFjdDFXaWR0aFYgPSBudGgoMSByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nQ29udGFjdDFTcGFjZVYgPSBudGgoMiByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nQ29udGFjdDFDb2xzViA9IG50aCgzIHJpbmdDb250YWN0MUluZm9WKSkgKHJpbmdNZXQxTGF5ZXJWID0gbnRoKDQgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ01ldDFDb250MUVuY1YgPSBudGgoNSByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nTWV0MUluQmV2ZWxWID0gbnRoKDYgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ01ldDFPdXRCZXZlbFYgPSBudGgoNyByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nQ29udGFjdDBQaXRjaEggPSAocmluZ0NvbnRhY3QwV2lkdGhIICsgcmluZ0NvbnRhY3QwU3BhY2VIKSkgKHJpbmdDb250YWN0MFBpdGNoViA9IChyaW5nQ29udGFjdDBXaWR0aFYgKyByaW5nQ29udGFjdDBTcGFjZVYpKSAoaW5uZXJSaW5nV2lkdGhIID0gKChyaW5nQ29udGFjdDBXaWR0aEggKiByaW5nQ29udGFjdDBDb2xzSCkgKyAoKHJpbmdDb250YWN0MENvbHNIICsgLTEpICogcmluZ0NvbnRhY3QwU3BhY2VIKSArICgyLjAgKiByaW5nTWV0MENvbnQwRW5jSCkpKSAoaW5uZXJSaW5nV2lkdGhWID0gKChyaW5nQ29udGFjdDBXaWR0aFYgKiByaW5nQ29udGFjdDBDb2xzVikgKyAoKHJpbmdDb250YWN0MENvbHNWICsgLTEpICogcmluZ0NvbnRhY3QwU3BhY2VWKSArICgyLjAgKiByaW5nTWV0MENvbnQwRW5jVikpKSAoaW5uZXJSaW5nTGVuZ3RoTFIgPSAodyArIGlubmVyUmluZ0ZldFRvcFNwYWNlICsgaW5uZXJSaW5nRmV0Qm90U3BhY2UgKyAoMi4wICogaW5uZXJSaW5nV2lkdGhIKSkpIChpbm5lclJpbmdMZW5ndGhUQiA9IChmZXREaWZmdXNpb25YZGltICsgaW5uZXJSaW5nRmV0UmlnaHRTcGFjZSArIGlubmVyUmluZ0ZldExlZnRTcGFjZSArICgyLjAgKiBpbm5lclJpbmdXaWR0aFYpKSkgKHJpbmdDb250YWN0MVBpdGNoSCA9IChyaW5nQ29udGFjdDFXaWR0aEggKyByaW5nQ29udGFjdDFTcGFjZUgpKSAocmluZ0NvbnRhY3QxUGl0Y2hWID0gKHJpbmdDb250YWN0MVdpZHRoViArIHJpbmdDb250YWN0MVNwYWNlVikpIChpbm5lck1ldDFSaW5nV2lkdGhIID0gKChyaW5nQ29udGFjdDFXaWR0aEggKiByaW5nQ29udGFjdDFDb2xzSCkgKyAoKHJpbmdDb250YWN0MUNvbHNIICsgLTEpICogcmluZ0NvbnRhY3QxU3BhY2VIKSArICgyLjAgKiByaW5nTWV0MUNvbnQxRW5jSCkpKSAoaW5uZXJNZXQxUmluZ1dpZHRoViA9ICgocmluZ0NvbnRhY3QxV2lkdGhWICogcmluZ0NvbnRhY3QxQ29sc1YpICsgKChyaW5nQ29udGFjdDFDb2xzViArIC0xKSAqIHJpbmdDb250YWN0MVNwYWNlVikgKyAoMi4wICogcmluZ01ldDFDb250MUVuY1YpKSkgd2hlbigoaW5uZXJNZXQxUmluZ1dpZHRoSCA8IHJpbmdNZXQxT3V0QmV2ZWxIKSAocmluZ01ldDFPdXRCZXZlbEggPSBpbm5lck1ldDFSaW5nV2lkdGhIKSkgd2hlbigoaW5uZXJNZXQxUmluZ1dpZHRoViA8IHJpbmdNZXQxT3V0QmV2ZWxWKSAocmluZ01ldDFPdXRCZXZlbFYgPSBpbm5lck1ldDFSaW5nV2lkdGhWKSkgKGxlZnRJbm5lclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIGlubmVyUmluZ1dpZHRoViA/bGVuZ3RoIGlubmVyUmluZ0xlbmd0aExSID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllclYgP3dpZHRoIHJpbmdDb250YWN0MFdpZHRoViA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoViA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlViA/c3BhY2VYIHJpbmdDb250YWN0MFNwYWNlViA/bG93ZXJMZWZ0T2Zmc2V0WSAoaW5uZXJSaW5nV2lkdGhIICsgcmluZ0NvbnRhY3QwUGl0Y2hIKSA/dXBwZXJSaWdodE9mZnNldFkgKCgtIGlubmVyUmluZ1dpZHRoSCkgKyAoLSByaW5nQ29udGFjdDBQaXRjaEgpKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsZWZ0SW5uZXJSaW5nID9hbGlnbkhhbmRsZSAibFIiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxMIiA/eFNlcCAoLSBpbm5lclJpbmdGZXRMZWZ0U3BhY2UpID95U2VwICgoLSBpbm5lclJpbmdGZXRCb3RTcGFjZSkgKyAoLSBpbm5lclJpbmdXaWR0aEgpKSkgKGxlZnRJbm5lclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/ZnJvbU9iaiBsZWZ0SW5uZXJSaW5nID9zaXplIHRhcEltcEVuYykpIChsZWZ0SW5uZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyViA/ZnJvbU9iaiBsZWZ0SW5uZXJSaW5nKSkgKHJpZ2h0SW5uZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBpbm5lclJpbmdXaWR0aFYgP2xlbmd0aCBpbm5lclJpbmdMZW5ndGhMUiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXJWID93aWR0aCByaW5nQ29udGFjdDBXaWR0aFYgP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aFYgP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZVYgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZVYgP2xvd2VyTGVmdE9mZnNldFkgKGlubmVyUmluZ1dpZHRoSCArIHJpbmdDb250YWN0MFBpdGNoSCkgP3VwcGVyUmlnaHRPZmZzZXRZICgoLSBpbm5lclJpbmdXaWR0aEgpICsgKC0gcmluZ0NvbnRhY3QwUGl0Y2hIKSkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogcmlnaHRJbm5lclJpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAibFIiID94U2VwIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgP3lTZXAgKCgtIGlubmVyUmluZ0ZldEJvdFNwYWNlKSArICgtIGlubmVyUmluZ1dpZHRoSCkpKSAocmlnaHRJbm5lclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/ZnJvbU9iaiByaWdodElubmVyUmluZyA/c2l6ZSB0YXBJbXBFbmMpKSAocmlnaHRJbm5lclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXJWID9mcm9tT2JqIHJpZ2h0SW5uZXJSaW5nKSkgKGxvd2VySW5uZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBpbm5lclJpbmdMZW5ndGhUQiA/bGVuZ3RoIGlubmVyUmluZ1dpZHRoSCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXJIID93aWR0aCByaW5nQ29udGFjdDBXaWR0aEggP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aEggP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZUggP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZUggP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QwUGl0Y2hIID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDBQaXRjaEgpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxvd2VySW5uZXJSaW5nID9hbGlnbkhhbmRsZSAidUwiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxMIiA/eFNlcCAoKC0gaW5uZXJSaW5nRmV0TGVmdFNwYWNlKSArICgtIGlubmVyUmluZ1dpZHRoVikpID95U2VwICgtIGlubmVyUmluZ0ZldEJvdFNwYWNlKSkgKGxvd2VySW5uZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP2Zyb21PYmogbG93ZXJJbm5lclJpbmcgP3NpemUgdGFwSW1wRW5jKSkgKGxvd2VySW5uZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVySCA/ZnJvbU9iaiBsb3dlcklubmVyUmluZykpICh1cHBlcklubmVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggaW5uZXJSaW5nTGVuZ3RoVEIgP2xlbmd0aCBpbm5lclJpbmdXaWR0aEggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVySCA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGhIID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGhIID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2VIID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2VIID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MFBpdGNoSCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QwUGl0Y2hIKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiB1cHBlcklubmVyUmluZyA/YWxpZ25IYW5kbGUgInVMIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJ1TCIgP3hTZXAgKCgtIGlubmVyUmluZ0ZldExlZnRTcGFjZSkgKyAoLSBpbm5lclJpbmdXaWR0aFYpKSA/eVNlcCAoaW5uZXJSaW5nRmV0VG9wU3BhY2UgKyBpbm5lclJpbmdXaWR0aEgpKSAodXBwZXJJbm5lclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/ZnJvbU9iaiB1cHBlcklubmVyUmluZyA/c2l6ZSB0YXBJbXBFbmMpKSAodXBwZXJJbm5lclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXJIID9mcm9tT2JqIHVwcGVySW5uZXJSaW5nKSkgdW5sZXNzKHJpbmdzTWV0MU9mZiAobGVmdElubmVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllclYgP3dpZHRoIGlubmVyTWV0MVJpbmdXaWR0aFYgP2xlbmd0aCAoaW5uZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogKC0gaW5uZXJNZXQxUmluZ1dpZHRoSCkpICsgKC0gcmluZ01ldDFPdXRCZXZlbEgpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXJWID93aWR0aCByaW5nQ29udGFjdDFXaWR0aFYgP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aFYgP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZVYgP3NwYWNlWCByaW5nQ29udGFjdDFTcGFjZVYgP2xvd2VyTGVmdE9mZnNldFkgcmluZ0NvbnRhY3QxUGl0Y2hWID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nQ29udGFjdDFQaXRjaFYpID9sb3dlckxlZnRPZmZzZXRYIHJpbmdNZXQxQ29udDFFbmNWID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nTWV0MUNvbnQxRW5jVikpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGVmdElubmVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBsZWZ0SW5uZXJSaW5nID9yZWZIYW5kbGUgImNDIikgKHJpZ2h0SW5uZXJSaW5nTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MUxheWVyViA/d2lkdGggaW5uZXJNZXQxUmluZ1dpZHRoViA/bGVuZ3RoIChpbm5lclJpbmdMZW5ndGhMUiArICgyLjAgKiAoLSBpbm5lck1ldDFSaW5nV2lkdGhIKSkgKyAoLSByaW5nTWV0MU91dEJldmVsSCkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllclYgP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoViA/bGVuZ3RoIHJpbmdDb250YWN0MVdpZHRoViA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlViA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlViA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nQ29udGFjdDFQaXRjaFYgP3VwcGVyUmlnaHRPZmZzZXRZICgtIHJpbmdDb250YWN0MVBpdGNoVikgP2xvd2VyTGVmdE9mZnNldFggcmluZ01ldDFDb250MUVuY1YgP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdNZXQxQ29udDFFbmNWKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiByaWdodElubmVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiByaWdodElubmVyUmluZyA/cmVmSGFuZGxlICJjQyIpIChsb3dlcklubmVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllckggP3dpZHRoIChpbm5lclJpbmdMZW5ndGhUQiArICgyLjAgKiAoLSByaW5nTWV0MU91dEJldmVsVikpKSA/bGVuZ3RoIGlubmVyTWV0MVJpbmdXaWR0aEggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MUxheWVySCA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGhIID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGhIID9zcGFjZVkgcmluZ0NvbnRhY3QxU3BhY2VIID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2VIID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MVBpdGNoSCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QxUGl0Y2hIKSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nTWV0MUNvbnQxRW5jSCA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ01ldDFDb250MUVuY0gpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxvd2VySW5uZXJSaW5nTWV0MSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGxvd2VySW5uZXJSaW5nID9yZWZIYW5kbGUgImNDIikgKHVwcGVySW5uZXJSaW5nTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MUxheWVySCA/d2lkdGggKGlubmVyUmluZ0xlbmd0aFRCICsgKDIuMCAqICgtIHJpbmdNZXQxT3V0QmV2ZWxWKSkpID9sZW5ndGggaW5uZXJNZXQxUmluZ1dpZHRoSCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXJIID93aWR0aCByaW5nQ29udGFjdDFXaWR0aEggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aEggP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZUggP3NwYWNlWCByaW5nQ29udGFjdDFTcGFjZUggP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QxUGl0Y2hIID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDFQaXRjaEgpID9sb3dlckxlZnRPZmZzZXRZIHJpbmdNZXQxQ29udDFFbmNIID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nTWV0MUNvbnQxRW5jSCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdXBwZXJJbm5lclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdXBwZXJJbm5lclJpbmcgP3JlZkhhbmRsZSAiY0MiKSBkZWNsYXJlKGlubmVyUmluZ01ldDFQdHNbMThdKSAoaW5uZXJSaW5nV2lkdGhEaWZmSCA9IChpbm5lck1ldDFSaW5nV2lkdGhIIC0gaW5uZXJSaW5nV2lkdGhIKSkgKGlubmVyUmluZ1dpZHRoRGlmZlYgPSAoaW5uZXJNZXQxUmluZ1dpZHRoViAtIGlubmVyUmluZ1dpZHRoVikpICh4ME1ldDEgPSAwLjApICh5ME1ldDEgPSAwLjApIChob2xlRGltWCA9IChmZXREaWZmdXNpb25YZGltICsgaW5uZXJSaW5nRmV0TGVmdFNwYWNlICsgaW5uZXJSaW5nRmV0UmlnaHRTcGFjZSArICgtIGlubmVyUmluZ1dpZHRoRGlmZlYpICsgKDIuMCAqICgtIHJpbmdNZXQxSW5CZXZlbFYpKSkpIChob2xlRGltWSA9ICh3ICsgaW5uZXJSaW5nRmV0VG9wU3BhY2UgKyBpbm5lclJpbmdGZXRCb3RTcGFjZSArICgtIGlubmVyUmluZ1dpZHRoRGlmZkgpICsgKDIuMCAqICgtIHJpbmdNZXQxSW5CZXZlbEgpKSkpICh4ME1ldDEgPSAwLjApICh4Mk1ldDEgPSByaW5nTWV0MU91dEJldmVsVikgKHgzTWV0MSA9ICgoaG9sZURpbVggKyAoMi4wICogcmluZ01ldDFJbkJldmVsVikgKyAoMi4wICogaW5uZXJNZXQxUmluZ1dpZHRoVikpIC0gcmluZ01ldDFPdXRCZXZlbFYpKSAoeDRNZXQxID0gKHgzTWV0MSArIHJpbmdNZXQxT3V0QmV2ZWxWKSkgKHg5TWV0MSA9IChpbm5lck1ldDFSaW5nV2lkdGhWICsgcmluZ01ldDFJbkJldmVsVikpICh4MTBNZXQxID0gKHg5TWV0MSArIGhvbGVEaW1YKSkgKHgxMU1ldDEgPSAoeDEwTWV0MSArIHJpbmdNZXQxSW5CZXZlbFYpKSAoeDE1TWV0MSA9IGlubmVyTWV0MVJpbmdXaWR0aFYpICh5ME1ldDEgPSAoLSByaW5nTWV0MUluQmV2ZWxIKSkgKHkxTWV0MSA9IChob2xlRGltWSArIHJpbmdNZXQxSW5CZXZlbEgpKSAoeTJNZXQxID0gKHkxTWV0MSArIHJpbmdNZXQxT3V0QmV2ZWxIKSkgKHk2TWV0MSA9ICgoLSByaW5nTWV0MUluQmV2ZWxIKSArICgtIHJpbmdNZXQxT3V0QmV2ZWxIKSkpICh5OE1ldDEgPSAwLjApICh5MTJNZXQxID0gaG9sZURpbVkpIChpbm5lclJpbmdNZXQxUHRzWzBdID0gKHgwTWV0MTp5ME1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1sxXSA9ICh4ME1ldDE6eTFNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMl0gPSAoeDJNZXQxOnkyTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzNdID0gKHgzTWV0MTp5Mk1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1s0XSA9ICh4NE1ldDE6eTFNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbNV0gPSAoeDRNZXQxOnkwTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzZdID0gKHgzTWV0MTp5Nk1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1s3XSA9ICh4Mk1ldDE6eTZNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbOF0gPSAoeDE1TWV0MTp5OE1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1s5XSA9ICh4OU1ldDE6eTBNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMTBdID0gKHgxME1ldDE6eTBNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMTFdID0gKHgxMU1ldDE6eThNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMTJdID0gKHgxMU1ldDE6eTEyTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzEzXSA9ICh4MTBNZXQxOnkxTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzE0XSA9ICh4OU1ldDE6eTFNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMTVdID0gKHgxNU1ldDE6eTEyTWV0MSkpIChpbm5lclJpbmdNZXQxUG9pbnRzID0gbGlzdChpbm5lclJpbmdNZXQxUHRzWzBdIGlubmVyUmluZ01ldDFQdHNbMV0gaW5uZXJSaW5nTWV0MVB0c1syXSBpbm5lclJpbmdNZXQxUHRzWzNdIGlubmVyUmluZ01ldDFQdHNbNF0gaW5uZXJSaW5nTWV0MVB0c1s1XSBpbm5lclJpbmdNZXQxUHRzWzZdIGlubmVyUmluZ01ldDFQdHNbN10gaW5uZXJSaW5nTWV0MVB0c1s5XSBpbm5lclJpbmdNZXQxUHRzWzEwXSBpbm5lclJpbmdNZXQxUHRzWzExXSBpbm5lclJpbmdNZXQxUHRzWzEyXSBpbm5lclJpbmdNZXQxUHRzWzEzXSBpbm5lclJpbmdNZXQxUHRzWzE0XSBpbm5lclJpbmdNZXQxUHRzWzE1XSBpbm5lclJpbmdNZXQxUHRzWzhdIGlubmVyUmluZ01ldDFQdHNbOV0gaW5uZXJSaW5nTWV0MVB0c1s3XSkpIChpbm5lclJpbmdNZXQxTGF5ZXIgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgcmluZ01ldDFMYXllckggP3B0cyBpbm5lclJpbmdNZXQxUG9pbnRzKSkgKHJvZEFsaWduID9hbGlnbk9iaiBpbm5lclJpbmdNZXQxTGF5ZXIgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBsZWZ0SW5uZXJSaW5nTWV0MSA/cmVmSGFuZGxlICJjTCIpKSB3aGVuKGh2TW9kZSAoaHZMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaHZMYXllciA/d2lkdGggKGlubmVyUmluZ0xlbmd0aFRCICsgKDIuMCAqIGh2TGF5ZXJEaWZmVGFwRW5jKSkgP2xlbmd0aCAoaW5uZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogaHZMYXllckRpZmZUYXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogaHZMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBsb3dlcklubmVyUmluZyA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gaHZMYXllckRpZmZUYXBFbmMpID95U2VwICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSkpIHdoZW4oKG1vc1R5cGUgPT0gInBtb3MiKSAod2VsbExheWVyV2lkdGggPSAoaW5uZXJSaW5nTGVuZ3RoVEIgKyAoMi4wICogaHZXZWxsRGlmZlRhcEVuYykpKSAod2VsbExheWVyTGVuZ3RoID0gKGlubmVyUmluZ0xlbmd0aExSICsgKDIuMCAqIGh2V2VsbERpZmZUYXBFbmMpKSkgKHdlbGxMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID93aWR0aCB3ZWxsTGF5ZXJXaWR0aCA/bGVuZ3RoIHdlbGxMYXllckxlbmd0aCkpIChyb2RBbGlnbiA/YWxpZ25PYmogd2VsbExheWVyRHJhd2luZyA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGxvd2VySW5uZXJSaW5nID9yZWZIYW5kbGUgImxMIiA/eFNlcCAoLSBodldlbGxEaWZmVGFwRW5jKSA/eVNlcCAoLSBodldlbGxEaWZmVGFwRW5jKSkgd2hlbihodk1vZGUgKGh2TGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2TGF5ZXIgP2Zyb21PYmogd2VsbExheWVyRHJhd2luZyA/c2l6ZSAwLjApKSkpKSB3aGVuKChyaW5ncyA9PSAiQm90aCIpIChyaW5nQ29udGFjdDBJbmZvID0gbnRoKDAgT3V0ZXJSaW5nSW50ZXJjb25uZWN0KSkgKHJpbmdDb250YWN0MExheWVyID0gbnRoKDAgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nQ29udGFjdDBXaWR0aCA9IG50aCgxIHJpbmdDb250YWN0MEluZm8pKSAocmluZ0NvbnRhY3QwU3BhY2UgPSBudGgoMiByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdDb250YWN0MENvbHMgPSBudGgoMyByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdNZXQwTGF5ZXIgPSBudGgoNCByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdNZXQwQ29udDBFbmMgPSBudGgoNSByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdNZXQwSW5CZXZlbCA9IG50aCg2IHJpbmdDb250YWN0MEluZm8pKSAocmluZ01ldDBPdXRCZXZlbCA9IG50aCg3IHJpbmdDb250YWN0MEluZm8pKSAocmluZ0NvbnRhY3QxSW5mbyA9IG50aCgxIE91dGVyUmluZ0ludGVyY29ubmVjdCkpIChyaW5nQ29udGFjdDFMYXllciA9IG50aCgwIHJpbmdDb250YWN0MUluZm8pKSAocmluZ0NvbnRhY3QxV2lkdGggPSBudGgoMSByaW5nQ29udGFjdDFJbmZvKSkgKHJpbmdDb250YWN0MVNwYWNlID0gbnRoKDIgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nQ29udGFjdDFDb2xzID0gbnRoKDMgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nTWV0MUxheWVyID0gbnRoKDQgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nTWV0MUNvbnQxRW5jID0gbnRoKDUgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nTWV0MUluQmV2ZWwgPSBudGgoNiByaW5nQ29udGFjdDFJbmZvKSkgKHJpbmdNZXQxT3V0QmV2ZWwgPSBudGgoNyByaW5nQ29udGFjdDFJbmZvKSkgKHJpbmdDb250YWN0MFBpdGNoID0gKHJpbmdDb250YWN0MFdpZHRoICsgcmluZ0NvbnRhY3QwU3BhY2UpKSAob3V0ZXJSaW5nV2lkdGggPSAoKHJpbmdDb250YWN0MFdpZHRoICogcmluZ0NvbnRhY3QwQ29scykgKyAoKHJpbmdDb250YWN0MENvbHMgKyAtMSkgKiByaW5nQ29udGFjdDBTcGFjZSkgKyAoMi4wICogcmluZ01ldDBDb250MEVuYykpKSAob3V0ZXJSaW5nV2lkdGggPSBtYXgob3V0ZXJSaW5nV2lkdGggdXNlck91dGVyUmluZ1dpZHRoKSkgKG91dGVyUmluZ0xlbmd0aExSID0gKGlubmVyUmluZ0xlbmd0aExSICsgKDIuMCAqIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKDIuMCAqIG91dGVyUmluZ1dpZHRoKSkpIChvdXRlclJpbmdMZW5ndGhUQiA9IChpbm5lclJpbmdMZW5ndGhUQiArICgyLjAgKiBPdXRlcklubmVyUmluZ1NwYWNlKSArICgyLjAgKiBvdXRlclJpbmdXaWR0aCkpKSAocmluZ0NvbnRhY3QxUGl0Y2ggPSAocmluZ0NvbnRhY3QxV2lkdGggKyByaW5nQ29udGFjdDFTcGFjZSkpIChvdXRlck1ldDFSaW5nV2lkdGggPSAoKHJpbmdDb250YWN0MVdpZHRoICogcmluZ0NvbnRhY3QxQ29scykgKyAoKHJpbmdDb250YWN0MUNvbHMgKyAtMSkgKiByaW5nQ29udGFjdDFTcGFjZSkgKyAoMi4wICogcmluZ01ldDFDb250MUVuYykpKSB3aGVuKChvdXRlck1ldDFSaW5nV2lkdGggPCByaW5nTWV0MU91dEJldmVsKSAocmluZ01ldDFPdXRCZXZlbCA9IG91dGVyTWV0MVJpbmdXaWR0aCkpIChsZWZ0T3V0ZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBvdXRlclJpbmdXaWR0aCA/bGVuZ3RoIG91dGVyUmluZ0xlbmd0aExSID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllciA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgKG91dGVyUmluZ1dpZHRoICsgcmluZ0NvbnRhY3QwUGl0Y2gpID91cHBlclJpZ2h0T2Zmc2V0WSAoKC0gb3V0ZXJSaW5nV2lkdGgpICsgKC0gcmluZ0NvbnRhY3QwUGl0Y2gpKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsZWZ0T3V0ZXJSaW5nID9hbGlnbkhhbmRsZSAibFIiID9yZWZPYmogbGVmdElubmVyUmluZyA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gT3V0ZXJJbm5lclJpbmdTcGFjZSkgP3lTZXAgKCgtIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKC0gb3V0ZXJSaW5nV2lkdGgpKSkgKGxlZnRPdXRlclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGxhbnQgP2Zyb21PYmogbGVmdE91dGVyUmluZyA/c2l6ZSBkaWZmSW1wRW5jKSkgd2hlbigobW9zVHlwZSA9PSAibm1vcyIpIChsZWZ0T3V0ZXJSaW5nV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogbGVmdE91dGVyUmluZyA/c2l6ZSBodldlbGxEaWZmVGFwRW5jKSkpIChsZWZ0T3V0ZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyID9mcm9tT2JqIGxlZnRPdXRlclJpbmcpKSAocmlnaHRPdXRlclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIG91dGVyUmluZ1dpZHRoID9sZW5ndGggb3V0ZXJSaW5nTGVuZ3RoTFIgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVyID93aWR0aCByaW5nQ29udGFjdDBXaWR0aCA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2UgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WSAob3V0ZXJSaW5nV2lkdGggKyByaW5nQ29udGFjdDBQaXRjaCkgP3VwcGVyUmlnaHRPZmZzZXRZICgoLSBvdXRlclJpbmdXaWR0aCkgKyAoLSByaW5nQ29udGFjdDBQaXRjaCkpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHJpZ2h0T3V0ZXJSaW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogcmlnaHRJbm5lclJpbmcgP3JlZkhhbmRsZSAibFIiID94U2VwIE91dGVySW5uZXJSaW5nU3BhY2UgP3lTZXAgKCgtIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKC0gb3V0ZXJSaW5nV2lkdGgpKSkgKHJpZ2h0T3V0ZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIHJpZ2h0T3V0ZXJSaW5nID9zaXplIGRpZmZJbXBFbmMpKSB3aGVuKChtb3NUeXBlID09ICJubW9zIikgKHJpZ2h0T3V0ZXJSaW5nV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogcmlnaHRPdXRlclJpbmcgP3NpemUgaHZXZWxsRGlmZlRhcEVuYykpKSAocmlnaHRPdXRlclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXIgP2Zyb21PYmogcmlnaHRPdXRlclJpbmcpKSAobG93ZXJPdXRlclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIG91dGVyUmluZ0xlbmd0aFRCID9sZW5ndGggb3V0ZXJSaW5nV2lkdGggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVyID93aWR0aCByaW5nQ29udGFjdDBXaWR0aCA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2UgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nQ29udGFjdDBQaXRjaCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QwUGl0Y2gpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxvd2VyT3V0ZXJSaW5nID9hbGlnbkhhbmRsZSAidUMiID9yZWZPYmogbG93ZXJJbm5lclJpbmcgP3JlZkhhbmRsZSAibEMiID95U2VwICgtIE91dGVySW5uZXJSaW5nU3BhY2UpKSAobG93ZXJPdXRlclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGxhbnQgP2Zyb21PYmogbG93ZXJPdXRlclJpbmcgP3NpemUgZGlmZkltcEVuYykpIHdoZW4oKG1vc1R5cGUgPT0gIm5tb3MiKSAobG93ZXJPdXRlclJpbmdXZWxsID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHdlbGxMYXllciA/ZnJvbU9iaiBsb3dlck91dGVyUmluZyA/c2l6ZSBodldlbGxEaWZmVGFwRW5jKSkpIChsb3dlck91dGVyUmluZ01ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDBMYXllciA/ZnJvbU9iaiBsb3dlck91dGVyUmluZykpICh1cHBlck91dGVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggb3V0ZXJSaW5nTGVuZ3RoVEIgP2xlbmd0aCBvdXRlclJpbmdXaWR0aCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MFdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MFNwYWNlID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MFBpdGNoID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDBQaXRjaCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdXBwZXJPdXRlclJpbmcgP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiB1cHBlcklubmVyUmluZyA/cmVmSGFuZGxlICJ1QyIgP3lTZXAgT3V0ZXJJbm5lclJpbmdTcGFjZSkgKHVwcGVyT3V0ZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIHVwcGVyT3V0ZXJSaW5nID9zaXplIGRpZmZJbXBFbmMpKSB3aGVuKChtb3NUeXBlID09ICJubW9zIikgKHVwcGVyT3V0ZXJSaW5nV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogdXBwZXJPdXRlclJpbmcgP3NpemUgaHZXZWxsRGlmZlRhcEVuYykpKSAodXBwZXJPdXRlclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXIgP2Zyb21PYmogdXBwZXJPdXRlclJpbmcpKSB1bmxlc3MocmluZ3NNZXQxT2ZmIChsZWZ0T3V0ZXJSaW5nTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MUxheWVyID93aWR0aCBvdXRlck1ldDFSaW5nV2lkdGggP2xlbmd0aCAob3V0ZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogKC0gb3V0ZXJNZXQxUmluZ1dpZHRoKSkgKyAoLSByaW5nTWV0MU91dEJldmVsKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MUxheWVyID93aWR0aCByaW5nQ29udGFjdDFXaWR0aCA/bGVuZ3RoIHJpbmdDb250YWN0MVdpZHRoID9zcGFjZVkgcmluZ0NvbnRhY3QxU3BhY2UgP3NwYWNlWCByaW5nQ29udGFjdDFTcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nQ29udGFjdDFQaXRjaCA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ0NvbnRhY3QxUGl0Y2gpID9sb3dlckxlZnRPZmZzZXRYIHJpbmdNZXQxQ29udDFFbmMgP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdNZXQxQ29udDFFbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxlZnRPdXRlclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbGVmdE91dGVyUmluZyA/cmVmSGFuZGxlICJjQyIpIChyaWdodE91dGVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllciA/d2lkdGggb3V0ZXJNZXQxUmluZ1dpZHRoID9sZW5ndGggKG91dGVyUmluZ0xlbmd0aExSICsgKDIuMCAqICgtIG91dGVyTWV0MVJpbmdXaWR0aCkpICsgKC0gcmluZ01ldDFPdXRCZXZlbCkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllciA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgcmluZ0NvbnRhY3QxUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRZICgtIHJpbmdDb250YWN0MVBpdGNoKSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nTWV0MUNvbnQxRW5jID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nTWV0MUNvbnQxRW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiByaWdodE91dGVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiByaWdodE91dGVyUmluZyA/cmVmSGFuZGxlICJjQyIpIChsb3dlck91dGVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllciA/d2lkdGggKG91dGVyUmluZ0xlbmd0aFRCICsgKC0gb3V0ZXJNZXQxUmluZ1dpZHRoKSArICgyLjAgKiAoLSByaW5nTWV0MU91dEJldmVsKSkpID9sZW5ndGggb3V0ZXJNZXQxUmluZ1dpZHRoID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllciA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2UgP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QxUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MVBpdGNoKSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nTWV0MUNvbnQxRW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nTWV0MUNvbnQxRW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsb3dlck91dGVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBsb3dlck91dGVyUmluZyA/cmVmSGFuZGxlICJjQyIpICh1cHBlck91dGVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllciA/d2lkdGggKG91dGVyUmluZ0xlbmd0aFRCICsgKC0gb3V0ZXJNZXQxUmluZ1dpZHRoKSArICgyLjAgKiAoLSByaW5nTWV0MU91dEJldmVsKSkpID9sZW5ndGggb3V0ZXJNZXQxUmluZ1dpZHRoID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllciA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2UgP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QxUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MVBpdGNoKSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nTWV0MUNvbnQxRW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nTWV0MUNvbnQxRW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiB1cHBlck91dGVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiB1cHBlck91dGVyUmluZyA/cmVmSGFuZGxlICJjQyIpIGRlY2xhcmUob3V0ZXJSaW5nTWV0MVB0c1sxOF0pIChvdXRlclJpbmdXaWR0aERpZmYgPSAob3V0ZXJNZXQxUmluZ1dpZHRoIC0gb3V0ZXJSaW5nV2lkdGgpKSAoeDBNZXQxID0gMC4wKSAoeTBNZXQxID0gMC4wKSAoaG9sZURpbVggPSAoZmV0RGlmZnVzaW9uWGRpbSArIGlubmVyUmluZ0ZldExlZnRTcGFjZSArIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgKyAoLSBvdXRlclJpbmdXaWR0aERpZmYpICsgKDIuMCAqIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKDIuMCAqIGlubmVyUmluZ1dpZHRoVikgKyAoMi4wICogKC0gcmluZ01ldDFJbkJldmVsKSkpKSAoaG9sZURpbVkgPSAodyArIGlubmVyUmluZ0ZldFRvcFNwYWNlICsgaW5uZXJSaW5nRmV0Qm90U3BhY2UgKyAoLSBvdXRlclJpbmdXaWR0aERpZmYpICsgKDIuMCAqIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKDIuMCAqIGlubmVyUmluZ1dpZHRoSCkgKyAoMi4wICogKC0gcmluZ01ldDFJbkJldmVsKSkpKSAoeDBNZXQxID0gMC4wKSAoeDJNZXQxID0gcmluZ01ldDFPdXRCZXZlbCkgKHgzTWV0MSA9IChob2xlRGltWCArICgyLjAgKiByaW5nTWV0MUluQmV2ZWwpICsgcmluZ01ldDFPdXRCZXZlbCkpICh4NE1ldDEgPSAoeDNNZXQxICsgcmluZ01ldDFPdXRCZXZlbCkpICh4OU1ldDEgPSAocmluZ01ldDFPdXRCZXZlbCArIHJpbmdNZXQxSW5CZXZlbCkpICh4MTBNZXQxID0gKHg5TWV0MSArIGhvbGVEaW1YKSkgKHkwTWV0MSA9ICgtIHJpbmdNZXQxSW5CZXZlbCkpICh5MU1ldDEgPSAoaG9sZURpbVkgKyByaW5nTWV0MUluQmV2ZWwpKSAoeTJNZXQxID0gKHkxTWV0MSArIHJpbmdNZXQxT3V0QmV2ZWwpKSAoeTZNZXQxID0gKCgtIHJpbmdNZXQxSW5CZXZlbCkgKyAoLSByaW5nTWV0MU91dEJldmVsKSkpICh5OE1ldDEgPSAwLjApICh5MTJNZXQxID0gaG9sZURpbVkpIChvdXRlclJpbmdNZXQxUHRzWzBdID0gKHgwTWV0MTp5ME1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxXSA9ICh4ME1ldDE6eTFNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMl0gPSAoeDJNZXQxOnkyTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzNdID0gKHgzTWV0MTp5Mk1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1s0XSA9ICh4NE1ldDE6eTFNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbNV0gPSAoeDRNZXQxOnkwTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzZdID0gKHgzTWV0MTp5Nk1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1s3XSA9ICh4Mk1ldDE6eTZNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbOF0gPSAoeDJNZXQxOnk4TWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzldID0gKHg5TWV0MTp5ME1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxMF0gPSAoeDEwTWV0MTp5ME1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxMV0gPSAoeDNNZXQxOnk4TWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzEyXSA9ICh4M01ldDE6eTEyTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzEzXSA9ICh4MTBNZXQxOnkxTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzE0XSA9ICh4OU1ldDE6eTFNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMTVdID0gKHgyTWV0MTp5MTJNZXQxKSkgKG91dGVyUmluZ01ldDFQb2ludHMgPSBsaXN0KG91dGVyUmluZ01ldDFQdHNbMF0gb3V0ZXJSaW5nTWV0MVB0c1sxXSBvdXRlclJpbmdNZXQxUHRzWzJdIG91dGVyUmluZ01ldDFQdHNbM10gb3V0ZXJSaW5nTWV0MVB0c1s0XSBvdXRlclJpbmdNZXQxUHRzWzVdIG91dGVyUmluZ01ldDFQdHNbNl0gb3V0ZXJSaW5nTWV0MVB0c1s3XSBvdXRlclJpbmdNZXQxUHRzWzldIG91dGVyUmluZ01ldDFQdHNbMTBdIG91dGVyUmluZ01ldDFQdHNbMTFdIG91dGVyUmluZ01ldDFQdHNbMTJdIG91dGVyUmluZ01ldDFQdHNbMTNdIG91dGVyUmluZ01ldDFQdHNbMTRdIG91dGVyUmluZ01ldDFQdHNbMTVdIG91dGVyUmluZ01ldDFQdHNbOF0gb3V0ZXJSaW5nTWV0MVB0c1s5XSBvdXRlclJpbmdNZXQxUHRzWzddKSkgKG91dGVyUmluZ01ldDFMYXllciA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciByaW5nTWV0MUxheWVyID9wdHMgb3V0ZXJSaW5nTWV0MVBvaW50cykpIChyb2RBbGlnbiA/YWxpZ25PYmogb3V0ZXJSaW5nTWV0MUxheWVyID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogbGVmdE91dGVyUmluZ01ldDEgP3JlZkhhbmRsZSAiY0wiID94U2VwICgob3V0ZXJNZXQxUmluZ1dpZHRoIC0gcmluZ01ldDFPdXRCZXZlbCkgKiAwLjUpKSkgY29uZCgoKG1vc1R5cGUgPT0gIm5tb3MiKSAoaWRMYXllcldpZHRoID0gKG91dGVyUmluZ0xlbmd0aFRCICsgKDIuMCAqIGh2V2VsbERpZmZUYXBFbmMpKSkgKGlkTGF5ZXJMZW5ndGggPSAob3V0ZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogaHZXZWxsRGlmZlRhcEVuYykpKSB3aGVuKGh2TW9kZSAoaHZMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaHZMYXllciA/d2lkdGggaWRMYXllcldpZHRoID9sZW5ndGggaWRMYXllckxlbmd0aCkpIChyb2RBbGlnbiA/YWxpZ25PYmogaHZMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBsb3dlck91dGVyUmluZ1dlbGwgP3JlZkhhbmRsZSAibEwiKSkpICgobW9zVHlwZSA9PSAicG1vcyIpIChpZExheWVyV2lkdGggPSAob3V0ZXJSaW5nTGVuZ3RoVEIgKyAoMi4wICogaHZMYXllckRpZmZUYXBFbmMpKSkgKGlkTGF5ZXJMZW5ndGggPSAob3V0ZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogaHZMYXllckRpZmZUYXBFbmMpKSkgd2hlbihodk1vZGUgKGh2TGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2TGF5ZXIgP3dpZHRoIGlkTGF5ZXJXaWR0aCA/bGVuZ3RoIGlkTGF5ZXJMZW5ndGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIGh2TGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogbG93ZXJPdXRlclJpbmcgP3JlZkhhbmRsZSAibEwiID94U2VwICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSA/eVNlcCAoLSBodkxheWVyRGlmZlRhcEVuYykpKSkgKHQpKSAoaWRMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaWRMYXllciA/d2lkdGggaWRMYXllcldpZHRoID9sZW5ndGggaWRMYXllckxlbmd0aCkpIChyb2RBbGlnbiA/YWxpZ25PYmogaWRMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiAoaHZMYXllckRyYXdpbmcgfHwgbG93ZXJPdXRlclJpbmdXZWxsIHx8IGxvd2VyT3V0ZXJSaW5nSW1wKSA/cmVmSGFuZGxlICJsTCIpKSB3aGVuKChodk1vZGUgJiYgKHJpbmdzID09ICJOb25lIikpIChodkxheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBodkxheWVyID93aWR0aCAoZmV0RGlmZnVzaW9uWGRpbSArIG1heChpbm5lclJpbmdGZXRSaWdodFNwYWNlIGh2TGF5ZXJEaWZmVGFwRW5jKSArIG1heChpbm5lclJpbmdGZXRMZWZ0U3BhY2UgaHZMYXllckRpZmZUYXBFbmMpKSA/bGVuZ3RoICh3ICsgbWF4KGlubmVyUmluZ0ZldEJvdFNwYWNlIGh2TGF5ZXJEaWZmVGFwRW5jKSArIG1heChpbm5lclJpbmdGZXRUb3BTcGFjZSBodkxheWVyRGlmZlRhcEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBodkxheWVyRHJhd2luZyA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJsTCIgP3hTZXAgbWluKCgtIGlubmVyUmluZ0ZldExlZnRTcGFjZSkgKC0gaHZMYXllckRpZmZUYXBFbmMpKSA/eVNlcCBtaW4oKC0gaW5uZXJSaW5nRmV0Qm90U3BhY2UpICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSkpKSB1bmxlc3MoKHJpbmdzID09ICJOb25lIikgKGxlZnRYQ29vcmQgPSAoY2FyKGVzZENlbGxPcmlnaW4pIC0gKGlubmVyUmluZ0ZldExlZnRTcGFjZSArIChpbm5lclJpbmdXaWR0aFYgLyAyKSArIGRpZmZDb250YWN0MFhlbmMgKyBtU291cmNlUGluT2Zmc2V0ICsgc3JjUGluV2lkdGgpKSkgKHJpZ2h0WENvb3JkID0gKGNhcihlc2RDZWxsT3JpZ2luKSArIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgKyAoaW5uZXJSaW5nV2lkdGhWIC8gMikgKyAoZmV0RGlmZnVzaW9uWGRpbSAtIGRpZmZDb250YWN0MFhlbmMgLSBtU291cmNlUGluT2Zmc2V0IC0gc3JjUGluV2lkdGgpKSkgKGxhYmVsWUNvb3JkID0gKChpbm5lclJpbmdMZW5ndGhMUiAvIDIpIC0gaW5uZXJSaW5nRmV0Qm90U3BhY2UpKSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChsZWZ0WENvb3JkICgwLjkgKyBsYWJlbFlDb29yZCkpICJDUklUSUNBTCBUTyIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QobGVmdFhDb29yZCAoMC4zICsgbGFiZWxZQ29vcmQpKSAiQ09OTkVDVCBXSURFIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgMC40KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChsZWZ0WENvb3JkIChsYWJlbFlDb29yZCAtIDAuMykpICJTSURFUyBPRiIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QobGVmdFhDb29yZCAobGFiZWxZQ29vcmQgLSAwLjkpKSAiR1VBUkRSSU5HIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgMC40KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChyaWdodFhDb29yZCAoMC45ICsgbGFiZWxZQ29vcmQpKSAiQ1JJVElDQUwgVE8iICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KHJpZ2h0WENvb3JkICgwLjMgKyBsYWJlbFlDb29yZCkpICJDT05ORUNUIFdJREUiICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KHJpZ2h0WENvb3JkIChsYWJlbFlDb29yZCAtIDAuMykpICJTSURFUyBPRiIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QocmlnaHRYQ29vcmQgKGxhYmVsWUNvb3JkIC0gMC45KSkgIkdVQVJEUklORyIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkpKQAoZGlmZkxheWVyIGdhdGVMYXllciBwZ2F0ZUxheWVyIHdlbGxMYXllciBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIHRhcExheWVyIHRhcEltcGxhbnQgdGFwSW1wRW5jIGlkTGF5ZXIgaHZMYXllciBodldlbGxEaWZmVGFwRW5jIGh2TGF5ZXJEaWZmVGFwRW5jIGZsYXJlSW5EaWZmIGZsYXJlT3V0RGlmZiBmbGFyZUV4dCBkcm5JbnRlcmNvbm5lY3Qgc3JjSW50ZXJjb25uZWN0IGRpZmZDb250YWN0MFllbmMgZGlmZkNvbnRhY3QwWGVuYyBJbm5lclJpbmdJbnRlcmNvbm5lY3RIb3JpeiBJbm5lclJpbmdJbnRlcmNvbm5lY3RWZXJ0IE91dGVyUmluZ0ludGVyY29ubmVjdCBidXR0aW5nVGFwV2lkdGggYnV0dGluZ1RhcENvbnQwWGVuYyBmZXREaWZmSW5uZXJSaW5nU3BhY2UgT3V0ZXJJbm5lclJpbmdTcGFjZSBtb3NUeXBlIGxhYmVsTGF5ZXIgbGFiZWxXaWR0aCBzaW5nbGVGbGFyZSBzaGFyZWRDYXNjb2RlRGlmZldpZHRoIG1pbklubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgbWluaW11bU0gc3JjR2F0ZUNvbnRhY3RTcGFjZSBidXR0aW5nVGFwIHcgbCBtIGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSBpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSBpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgaHZNb2RlIHJpbmdzIHJpbmdzTWV0MU9mZiB1c2VyT3V0ZXJSaW5nV2lkdGggaHNwaWNlTW9kZWwgaHNwaWNlTW9kZWxDaG9pY2VzIGRybkdhdGVDb250YWN0U3BhY2VQYXJhbXMgZHJuR2F0ZUNvbnRhY3RTcGFjZVZhbHVlIGRybkdhdGVDb250YWN0U3BhY2VOYW1lIG1ldDFXaWR0aEQgZHJuR2F0ZUNvbnRhY3RTcGFjZSBtaW5pbXVtVG90YWxXaWR0aCBvcmlnbSBlc2RDZWxsT3JpZ2luIGlkTGF5ZXJFbmRFbmMgaHZMYXllckVuZEVuYyBpbm5lclJpbmdGZXRSaWdodFNwYWNlIGlubmVyUmluZ0ZldExlZnRTcGFjZSBpbm5lclJpbmdGZXRUb3BTcGFjZSBpbm5lclJpbmdGZXRCb3RTcGFjZSBjb250YWN0MEluZm9TIGNvbnRhY3QwTGF5ZXJTIGNvbnRhY3QwV2lkdGhTIGNvbnRhY3QwU3BhY2VTIGNvbnRhY3QwQ29sc1MgbWV0MExheWVyUyBtZXQwV2lkdGhTIG1ldDBTcGFjZVMgbWV0MEJldmVsUyBjb250YWN0MUluZm9TIGNvbnRhY3QxTGF5ZXJTIGNvbnRhY3QxV2lkdGhTIGNvbnRhY3QxU3BhY2VTIGNvbnRhY3QxQ29sc1MgbWV0MUxheWVyUyBtZXQxV2lkdGhTIG1ldDFTcGFjZVMgbWV0MUJldmVsUyBjb250YWN0MEluZm9EIGNvbnRhY3QwTGF5ZXJEIGNvbnRhY3QwV2lkdGhEIGNvbnRhY3QwU3BhY2VEIGNvbnRhY3QwQ29sc0QgbWV0MExheWVyRCBtZXQwV2lkdGhEIG1ldDBTcGFjZUQgbWV0MEJldmVsRCBjb250YWN0MUluZm9EIGNvbnRhY3QxTGF5ZXJEIGNvbnRhY3QxV2lkdGhEIGNvbnRhY3QxU3BhY2VEIGNvbnRhY3QxQ29sc0QgbWV0MUxheWVyRCBtZXQxU3BhY2VEIG1ldDFCZXZlbEQgc3JjUGluV2lkdGggbVNvdXJjZVBpbk9mZnNldCBzaGFyZWRTb3VyY2VXaWR0aCBkcm5QaW5XaWR0aCBtRHJhaW5QaW5PZmZzZXQgc2hhcmVkRHJhaW5XaWR0aCBmaXJzdFNvdXJjZVBpbiBjb250YWN0MVBpdGNoUyBjb250YWN0MVBpdGNoRCBtZXQwUGluV2lkdGhTIG1ldDBQaW5XaWR0aEQgZmlyc3RNZXQwUGluIGZpcnN0TWV0MERyYXdpbmcgbWV0MURyYXdpbmdQdHNTIG1ldDFEcmF3aW5nUHRzRCB4ME1ldDEgeTBNZXQxIGZpcnN0TWV0MXBvaW50c1MgZmlyc3RNZXQxcG9pbnRzRCBpIGZpcnN0TWV0MURyYXdpbmcgc291cmNlUGluc051bWJlciBkcmFpblBpbnNOdW1iZXIgc291cmNlUGluc1NwYWNlIGRyYWluUGluc1NwYWNlIHNvdXJjZVBpbnNPcmlnaW5PZmZzZXQgc291cmNlUGluc09yaWdpblggbiBzb3VyY2VQaW5zT3JpZ2luIHNvdXJjZVBpbnMgc291cmNlTWV0MFBpbnMgc291cmNlTWV0MERyYXdpbmcgc291cmNlTWV0MURyYXdpbmcgZHJhaW5QaW5zT3JpZ2luT2Zmc2V0IGRyYWluUGluc09yaWdpblggZHJhaW5QaW5zT3JpZ2luIGRyYWluUGlucyBkcmFpbk1ldDBQaW5zIGRyYWluTWV0MERyYXdpbmcgZHJhaW5NZXQxRHJhd2luZyBzaGFyZWRDYXNjb2RlRGlmZk51bWJlciBzaGFyZWRDYXNjb2RlRGlmZlNwYWNlIHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luWF8xIHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luWF8yIHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luT2Zmc2V0IHNoYXJlZENhc2NvZGVEaWZmT3JpZ2luXzEgc2hhcmVkQ2FzY29kZURpZmZfMSBzaGFyZWRDYXNjb2RlRGlmZk9yaWdpbl8yIHNoYXJlZENhc2NvZGVEaWZmXzIgZmxhcmVZIG9kZGZsYXJlR2F0ZVB0cyB4bzAgeG8yIHhvNiBldmVuZmxhcmVHYXRlUHRzIHhlMCB4ZTIgeGU0IHBvaW50TGlzdDEgZmlyc3RHYXRlRHJhd2luZyBmbGFyZUdhdGVQdHMgeDAgeDIgeDYgeDggb2RkR2F0ZU9mZnNldCBvZGRHYXRlRHJhd2luZyBwb2ludExpc3QyIGV2ZW5HYXRlT2Zmc2V0IGV2ZW5HYXRlRHJhd2luZyBvZGQxUEdhdGVEcmF3aW5nIG9kZDJQR2F0ZURyYXdpbmcgZXZlbjFQR2F0ZURyYXdpbmcgZmV0RGlmZnVzaW9uWGRpbSBmZXREaWZmdXNpb24gZmlyc3RTb3VyY2VUYXAgZmlyc3RTb3VyY2VUYXBNZXQwIGZpcnN0U291cmNlVGFwTWV0MSBmaXJzdFNvdXJjZVRhcEltcCBsYXN0U291cmNlVGFwIGxhc3RTb3VyY2VUYXBNZXQwIGxhc3RTb3VyY2VUYXBNZXQxIGZldERpZmZJbXAgbGFzdFNvdXJjZVRhcEltcCB3ZWxsTGF5ZXJEcmF3aW5nIHJpbmdDb250YWN0MEluZm9IIHJpbmdDb250YWN0MExheWVySCByaW5nQ29udGFjdDBXaWR0aEggcmluZ0NvbnRhY3QwU3BhY2VIIHJpbmdDb250YWN0MENvbHNIIHJpbmdNZXQwTGF5ZXJIIHJpbmdNZXQwQ29udDBFbmNIIHJpbmdNZXQwSW5CZXZlbEggcmluZ01ldDBPdXRCZXZlbEggcmluZ0NvbnRhY3QxSW5mb0ggcmluZ0NvbnRhY3QxTGF5ZXJIIHJpbmdDb250YWN0MVdpZHRoSCByaW5nQ29udGFjdDFTcGFjZUggcmluZ0NvbnRhY3QxQ29sc0ggcmluZ01ldDFMYXllckggcmluZ01ldDFDb250MUVuY0ggcmluZ01ldDFJbkJldmVsSCByaW5nTWV0MU91dEJldmVsSCByaW5nQ29udGFjdDBJbmZvViByaW5nQ29udGFjdDBMYXllclYgcmluZ0NvbnRhY3QwV2lkdGhWIHJpbmdDb250YWN0MFNwYWNlViByaW5nQ29udGFjdDBDb2xzViByaW5nTWV0MExheWVyViByaW5nTWV0MENvbnQwRW5jViByaW5nTWV0MEluQmV2ZWxWIHJpbmdNZXQwT3V0QmV2ZWxWIHJpbmdDb250YWN0MUluZm9WIHJpbmdDb250YWN0MUxheWVyViByaW5nQ29udGFjdDFXaWR0aFYgcmluZ0NvbnRhY3QxU3BhY2VWIHJpbmdDb250YWN0MUNvbHNWIHJpbmdNZXQxTGF5ZXJWIHJpbmdNZXQxQ29udDFFbmNWIHJpbmdNZXQxSW5CZXZlbFYgcmluZ01ldDFPdXRCZXZlbFYgcmluZ0NvbnRhY3QwUGl0Y2hIIHJpbmdDb250YWN0MFBpdGNoViBpbm5lclJpbmdXaWR0aEggaW5uZXJSaW5nV2lkdGhWIGlubmVyUmluZ0xlbmd0aExSIGlubmVyUmluZ0xlbmd0aFRCIHJpbmdDb250YWN0MVBpdGNoSCByaW5nQ29udGFjdDFQaXRjaFYgaW5uZXJNZXQxUmluZ1dpZHRoSCBpbm5lck1ldDFSaW5nV2lkdGhWIGxlZnRJbm5lclJpbmcgbGVmdElubmVyUmluZ0ltcCBsZWZ0SW5uZXJSaW5nTWV0MCByaWdodElubmVyUmluZyByaWdodElubmVyUmluZ0ltcCByaWdodElubmVyUmluZ01ldDAgbG93ZXJJbm5lclJpbmcgbG93ZXJJbm5lclJpbmdJbXAgbG93ZXJJbm5lclJpbmdNZXQwIHVwcGVySW5uZXJSaW5nIHVwcGVySW5uZXJSaW5nSW1wIHVwcGVySW5uZXJSaW5nTWV0MCBsZWZ0SW5uZXJSaW5nTWV0MSByaWdodElubmVyUmluZ01ldDEgbG93ZXJJbm5lclJpbmdNZXQxIHVwcGVySW5uZXJSaW5nTWV0MSBpbm5lclJpbmdNZXQxUHRzIGlubmVyUmluZ1dpZHRoRGlmZkggaW5uZXJSaW5nV2lkdGhEaWZmViBob2xlRGltWCBob2xlRGltWSB4Mk1ldDEgeDNNZXQxIHg0TWV0MSB4OU1ldDEgeDEwTWV0MSB4MTFNZXQxIHgxNU1ldDEgeTFNZXQxIHkyTWV0MSB5Nk1ldDEgeThNZXQxIHkxMk1ldDEgaW5uZXJSaW5nTWV0MVBvaW50cyBpbm5lclJpbmdNZXQxTGF5ZXIgaHZMYXllckRyYXdpbmcgd2VsbExheWVyV2lkdGggd2VsbExheWVyTGVuZ3RoIHJpbmdDb250YWN0MEluZm8gcmluZ0NvbnRhY3QwTGF5ZXIgcmluZ0NvbnRhY3QwV2lkdGggcmluZ0NvbnRhY3QwU3BhY2UgcmluZ0NvbnRhY3QwQ29scyByaW5nTWV0MExheWVyIHJpbmdNZXQwQ29udDBFbmMgcmluZ01ldDBJbkJldmVsIHJpbmdNZXQwT3V0QmV2ZWwgcmluZ0NvbnRhY3QxSW5mbyByaW5nQ29udGFjdDFMYXllciByaW5nQ29udGFjdDFXaWR0aCByaW5nQ29udGFjdDFTcGFjZSByaW5nQ29udGFjdDFDb2xzIHJpbmdNZXQxTGF5ZXIgcmluZ01ldDFDb250MUVuYyByaW5nTWV0MUluQmV2ZWwgcmluZ01ldDFPdXRCZXZlbCByaW5nQ29udGFjdDBQaXRjaCBvdXRlclJpbmdXaWR0aCBvdXRlclJpbmdMZW5ndGhMUiBvdXRlclJpbmdMZW5ndGhUQiByaW5nQ29udGFjdDFQaXRjaCBvdXRlck1ldDFSaW5nV2lkdGggbGVmdE91dGVyUmluZyBsZWZ0T3V0ZXJSaW5nSW1wIGxlZnRPdXRlclJpbmdXZWxsIGxlZnRPdXRlclJpbmdNZXQwIHJpZ2h0T3V0ZXJSaW5nIHJpZ2h0T3V0ZXJSaW5nSW1wIHJpZ2h0T3V0ZXJSaW5nV2VsbCByaWdodE91dGVyUmluZ01ldDAgbG93ZXJPdXRlclJpbmcgbG93ZXJPdXRlclJpbmdJbXAgbG93ZXJPdXRlclJpbmdXZWxsIGxvd2VyT3V0ZXJSaW5nTWV0MCB1cHBlck91dGVyUmluZyB1cHBlck91dGVyUmluZ0ltcCB1cHBlck91dGVyUmluZ1dlbGwgdXBwZXJPdXRlclJpbmdNZXQwIGxlZnRPdXRlclJpbmdNZXQxIHJpZ2h0T3V0ZXJSaW5nTWV0MSBsb3dlck91dGVyUmluZ01ldDEgdXBwZXJPdXRlclJpbmdNZXQxIG91dGVyUmluZ01ldDFQdHMgb3V0ZXJSaW5nV2lkdGhEaWZmIG91dGVyUmluZ01ldDFQb2ludHMgb3V0ZXJSaW5nTWV0MUxheWVyIGlkTGF5ZXJXaWR0aCBpZExheWVyTGVuZ3RoIGlkTGF5ZXJEcmF3aW5nIGxlZnRYQ29vcmQgcmlnaHRYQ29vcmQgbGFiZWxZQ29vcmQpACgoYnV0dGluZ1RhcCAiRkFMU0UiKSAodyAwLjApIChsIDAuMCkgKG0gMCkgKGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSAwLjApIChpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSAwLjApIChpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIDAuMCkgKGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgMC4wKSAoaHZNb2RlIG5pbCkgKHJpbmdzICJCb3RoIikgKHJpbmdzTWV0MU9mZiBuaWwpICh1c2VyT3V0ZXJSaW5nV2lkdGggMC4wKSAoaHNwaWNlTW9kZWwgbmlsKSAoaHNwaWNlTW9kZWxDaG9pY2VzIG5pbCkgKGRybkdhdGVDb250YWN0U3BhY2VQYXJhbXMgbmlsKSAoZHJuR2F0ZUNvbnRhY3RTcGFjZVZhbHVlIG5pbCkgKGRybkdhdGVDb250YWN0U3BhY2VOYW1lIG5pbCkpACgoZGlmZkxheWVyICJ5MCIpIChnYXRlTGF5ZXIgInkxIikgKHBnYXRlTGF5ZXIgInkyIikgKHdlbGxMYXllciBuaWwpIChkaWZmSW1wbGFudCBuaWwpIChkaWZmSW1wRW5jIDAuMCkgKHRhcExheWVyICJ5MiIpICh0YXBJbXBsYW50IG5pbCkgKHRhcEltcEVuYyAwLjApIChpZExheWVyIG5pbCkgKGh2TGF5ZXIgbmlsKSAoaHZXZWxsRGlmZlRhcEVuYyAwLjApIChodkxheWVyRGlmZlRhcEVuYyAwLjApIChmbGFyZUluRGlmZiAwLjApIChmbGFyZU91dERpZmYgMC4wKSAoZmxhcmVFeHQgMC4wKSAoZHJuSW50ZXJjb25uZWN0IG5pbCkgKHNyY0ludGVyY29ubmVjdCBuaWwpIChkaWZmQ29udGFjdDBZZW5jIDAuMCkgKGRpZmZDb250YWN0MFhlbmMgMC4wKSAoSW5uZXJSaW5nSW50ZXJjb25uZWN0SG9yaXogbmlsKSAoSW5uZXJSaW5nSW50ZXJjb25uZWN0VmVydCBuaWwpIChPdXRlclJpbmdJbnRlcmNvbm5lY3QgbmlsKSAoYnV0dGluZ1RhcFdpZHRoIDAuMCkgKGJ1dHRpbmdUYXBDb250MFhlbmMgMC4wKSAoZmV0RGlmZklubmVyUmluZ1NwYWNlIDAuMCkgKE91dGVySW5uZXJSaW5nU3BhY2UgMC4wKSAobW9zVHlwZSAibm1vcyIpIChsYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikpIChsYWJlbFdpZHRoIDEuMCkgKHNpbmdsZUZsYXJlICJGQUxTRSIpIChzaGFyZWRDYXNjb2RlRGlmZldpZHRoIDAuMCkgKG1pbklubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSAwLjApIChtaW5Jbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSAwLjApIChtaW5Jbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIDAuMCkgKG1pbklubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgMC4wKSAobWluaW11bU0gMCkgKHNyY0dhdGVDb250YWN0U3BhY2UgMC4wKSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKG1ldDFXaWR0aEQgPSBudGgoMiBkcm5HYXRlQ29udGFjdFNwYWNlVmFsdWUpKSAoZHJuR2F0ZUNvbnRhY3RTcGFjZSA9IG50aCgwIGRybkdhdGVDb250YWN0U3BhY2VWYWx1ZSkpIChtaW5pbXVtVG90YWxXaWR0aCA9IGZsb2F0KG50aCgxIGRybkdhdGVDb250YWN0U3BhY2VWYWx1ZSkpKSB3aGVuKChpbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgPCBtaW5Jbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UpIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSByaWdodCBzaWRlIGRpZmYgdG8gdGFwIHJpbmcgc3BhY2luZyAlLjNmXG4iIGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UpKSB3aGVuKChpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSA8IG1pbklubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlKSBlcnJvcigiJS4zZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gbGVmdCBzaWRlIGRpZmYgdG8gdGFwIHJpbmcgc3BhY2luZyAlLjNmXG4iIGlubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhTGVmdFNwYWNlKSkgd2hlbigoaW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSA8IG1pbklubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UpIGVycm9yKCIlLjNmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSB0b3Agc2lkZSBkaWZmIHRvIHRhcCByaW5nIHNwYWNpbmcgJS4zZlxuIiBpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIG1pbklubmVyUmluZ0ZldEV4dHJhVG9wU3BhY2UpKSB3aGVuKChpbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlIDwgbWluSW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSkgZXJyb3IoIiUuM2YgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIGJvdHRvbSBzaWRlIGRpZmYgdG8gdGFwIHJpbmcgc3BhY2luZyAlLjNmXG4iIGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgbWluSW5uZXJSaW5nRmV0RXh0cmFCb3RTcGFjZSkpIHdoZW4oKCh3ICogbSkgPCBtaW5pbXVtVG90YWxXaWR0aCkgZXJyb3IoIiUuM2YgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHRvdGFsIHdpZHRoICUuM2YgZm9yICUuM2YgZHJhaW4gdG8gZ2F0ZSBjb250YWN0IHNwYWNpbmdcbiIgKHcgKiBtKSBtaW5pbXVtVG90YWxXaWR0aCBkcm5HYXRlQ29udGFjdFNwYWNlKSkgd2hlbigobSA8IG1pbmltdW1NKSBlcnJvcigiJWQgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIG0gZmFjdG9yICVkXG4iIG0gbWluaW11bU0pKSB3aGVuKChzcmNHYXRlQ29udGFjdFNwYWNlIDwgc3JjR2F0ZUNvbnRhY3RTcGFjZU1pbikgZXJyb3IoIiUuM2YgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHNvdXJjZSBjb250YWN0IHRvIGdhdGUgc3BhY2luZyAlLjNmIiBzcmNHYXRlQ29udGFjdFNwYWNlIHNyY0dhdGVDb250YWN0U3BhY2VNaW4pKSB3aGVuKChzcmNHYXRlQ29udGFjdFNwYWNlID4gc3JjR2F0ZUNvbnRhY3RTcGFjZU1heCkgZXJyb3IoIiUuM2YgaXMgZ3JlYXRlciB0aGFuIGFsbG93YWJsZSBtYXhpbXVtIHNvdXJjZSBjb250YWN0IHRvIGdhdGUgc3BhY2luZyAlLjNmIiBzcmNHYXRlQ29udGFjdFNwYWNlIHNyY0dhdGVDb250YWN0U3BhY2VNYXgpKSAoZXNkQ2VsbE9yaWdpbiA9IGxpc3QoMCAwKSkgY29uZCgoKG1vc1R5cGUgPT0gIm5tb3MiKSAoaWRMYXllckVuZEVuYyA9IGh2V2VsbERpZmZUYXBFbmMpIChodkxheWVyRW5kRW5jID0gaHZMYXllckRpZmZUYXBFbmMpKSAoKG1vc1R5cGUgPT0gInBtb3MiKSAoaWRMYXllckVuZEVuYyA9IGh2TGF5ZXJEaWZmVGFwRW5jKSAoaHZMYXllckVuZEVuYyA9IGh2V2VsbERpZmZUYXBFbmMpKSAodCkpIChpbm5lclJpbmdGZXRSaWdodFNwYWNlID0gKGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSArIGZldERpZmZJbm5lclJpbmdTcGFjZSkpIChpbm5lclJpbmdGZXRMZWZ0U3BhY2UgPSAoaW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UgKyBmZXREaWZmSW5uZXJSaW5nU3BhY2UpKSAoaW5uZXJSaW5nRmV0VG9wU3BhY2UgPSAoaW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSArIGZldERpZmZJbm5lclJpbmdTcGFjZSkpIChpbm5lclJpbmdGZXRCb3RTcGFjZSA9IChpbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlICsgZmV0RGlmZklubmVyUmluZ1NwYWNlKSkgaWYoKChodk1vZGUgPT0gdCkgfHwgKGh2TW9kZSA9PSAiVFJVRSIpKSB0aGVuIChodk1vZGUgPSB0KSBlbHNlIChodk1vZGUgPSBuaWwpKSBpZigoKHJpbmdzTWV0MU9mZiA9PSB0KSB8fCAocmluZ3NNZXQxT2ZmID09ICJUUlVFIikpIHRoZW4gKHJpbmdzTWV0MU9mZiA9IHQpIGVsc2UgKHJpbmdzTWV0MU9mZiA9IG5pbCkpIGlmKCgoZXZlbk9ubHkgPT0gdCkgfHwgKGV2ZW5Pbmx5ID09ICJUUlVFIikpIHRoZW4gKGV2ZW5Pbmx5ID0gdCkgZWxzZSAoZXZlbk9ubHkgPSBuaWwpKSBpZigoKHNpbmdsZUZsYXJlID09IHQpIHx8IChzaW5nbGVGbGFyZSA9PSAiVFJVRSIpKSB0aGVuIChzaW5nbGVGbGFyZSA9IHQpIGVsc2UgKHNpbmdsZUZsYXJlID0gbmlsKSkgaWYoKChidXR0aW5nVGFwID09IHQpIHx8IChidXR0aW5nVGFwID09ICJUUlVFIikpIHRoZW4gKGJ1dHRpbmdUYXAgPSB0KSBlbHNlIChidXR0aW5nVGFwID0gbmlsKSkgd2hlbigob2RkcChtKSAmJiBldmVuT25seSkgZXJyb3IoIklsbGVnYWwgbS1mYWN0b3I6IG0tZmFjdG9yIG11c3QgYmUgZXZlbiBudW1iZXJcbiIpKSAoY29udGFjdDBJbmZvUyA9IG50aCgwIHNyY0ludGVyY29ubmVjdCkpIChjb250YWN0MExheWVyUyA9IG50aCgwIGNvbnRhY3QwSW5mb1MpKSAoY29udGFjdDBXaWR0aFMgPSBudGgoMSBjb250YWN0MEluZm9TKSkgKGNvbnRhY3QwU3BhY2VTID0gbnRoKDIgY29udGFjdDBJbmZvUykpIChjb250YWN0MENvbHNTID0gbnRoKDMgY29udGFjdDBJbmZvUykpIChtZXQwTGF5ZXJTID0gbnRoKDQgY29udGFjdDBJbmZvUykpIChtZXQwV2lkdGhTID0gbnRoKDUgY29udGFjdDBJbmZvUykpIChtZXQwU3BhY2VTID0gbnRoKDYgY29udGFjdDBJbmZvUykpIChtZXQwQmV2ZWxTID0gbnRoKDcgY29udGFjdDBJbmZvUykpIChjb250YWN0MUluZm9TID0gbnRoKDEgc3JjSW50ZXJjb25uZWN0KSkgKGNvbnRhY3QxTGF5ZXJTID0gbnRoKDAgY29udGFjdDFJbmZvUykpIChjb250YWN0MVdpZHRoUyA9IG50aCgxIGNvbnRhY3QxSW5mb1MpKSAoY29udGFjdDFTcGFjZVMgPSBudGgoMiBjb250YWN0MUluZm9TKSkgKGNvbnRhY3QxQ29sc1MgPSBudGgoMyBjb250YWN0MUluZm9TKSkgKG1ldDFMYXllclMgPSBudGgoNCBjb250YWN0MUluZm9TKSkgKG1ldDFXaWR0aFMgPSBudGgoNSBjb250YWN0MUluZm9TKSkgKG1ldDFTcGFjZVMgPSBudGgoNiBjb250YWN0MUluZm9TKSkgKG1ldDFCZXZlbFMgPSBudGgoNyBjb250YWN0MUluZm9TKSkgKGNvbnRhY3QwSW5mb0QgPSBudGgoMCBkcm5JbnRlcmNvbm5lY3QpKSAoY29udGFjdDBMYXllckQgPSBudGgoMCBjb250YWN0MEluZm9EKSkgKGNvbnRhY3QwV2lkdGhEID0gbnRoKDEgY29udGFjdDBJbmZvRCkpIChjb250YWN0MFNwYWNlRCA9IG50aCgyIGNvbnRhY3QwSW5mb0QpKSAoY29udGFjdDBDb2xzRCA9IG50aCgzIGNvbnRhY3QwSW5mb0QpKSAobWV0MExheWVyRCA9IG50aCg0IGNvbnRhY3QwSW5mb0QpKSAobWV0MFdpZHRoRCA9IG50aCg1IGNvbnRhY3QwSW5mb0QpKSAobWV0MFNwYWNlRCA9IG50aCg2IGNvbnRhY3QwSW5mb0QpKSAobWV0MEJldmVsRCA9IG50aCg3IGNvbnRhY3QwSW5mb0QpKSAoY29udGFjdDFJbmZvRCA9IG50aCgxIGRybkludGVyY29ubmVjdCkpIChjb250YWN0MUxheWVyRCA9IG50aCgwIGNvbnRhY3QxSW5mb0QpKSAoY29udGFjdDFXaWR0aEQgPSBudGgoMSBjb250YWN0MUluZm9EKSkgKGNvbnRhY3QxU3BhY2VEID0gbnRoKDIgY29udGFjdDFJbmZvRCkpIChjb250YWN0MUNvbHNEID0gbnRoKDMgY29udGFjdDFJbmZvRCkpIChtZXQxTGF5ZXJEID0gbnRoKDQgY29udGFjdDFJbmZvRCkpIChtZXQxU3BhY2VEID0gbnRoKDYgY29udGFjdDFJbmZvRCkpIChtZXQxQmV2ZWxEID0gbnRoKDcgY29udGFjdDFJbmZvRCkpIChzcmNQaW5XaWR0aCA9ICgoY29udGFjdDBXaWR0aFMgKiBjb250YWN0MENvbHNTKSArICgoY29udGFjdDBDb2xzUyArIC0xKSAqIGNvbnRhY3QwU3BhY2VTKSkpIChkcm5QaW5XaWR0aCA9ICgoY29udGFjdDBXaWR0aEQgKiBjb250YWN0MENvbHNEKSArICgoY29udGFjdDBDb2xzRCArIC0xKSAqIGNvbnRhY3QwU3BhY2VEKSkpIChtU291cmNlUGluT2Zmc2V0ID0gc3JjR2F0ZUNvbnRhY3RTcGFjZSkgKG1EcmFpblBpbk9mZnNldCA9IGRybkdhdGVDb250YWN0U3BhY2UpIChzaGFyZWRTb3VyY2VXaWR0aCA9ICgobVNvdXJjZVBpbk9mZnNldCAqIDIuMCkgKyBzcmNQaW5XaWR0aCkpIChzaGFyZWREcmFpbldpZHRoID0gKChtRHJhaW5QaW5PZmZzZXQgKiAyLjApICsgZHJuUGluV2lkdGgpKSAoZmlyc3RTb3VyY2VQaW4gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCBzcmNQaW5XaWR0aCA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCBsYWJlbFdpZHRoID9waW5MYWJlbExheWVyIGxhYmVsTGF5ZXIgP3BpbkxhYmVsRm9udCAicm9tYW4iID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MExheWVyUyA/d2lkdGggY29udGFjdDBXaWR0aFMgP2xlbmd0aCBjb250YWN0MFdpZHRoUyA/c3BhY2VZIGNvbnRhY3QwU3BhY2VTID9zcGFjZVggY29udGFjdDBTcGFjZVMgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RTb3VyY2VQaW4gP2FsaWduSGFuZGxlICJsUiIgP3JlZlBvaW50IGVzZENlbGxPcmlnaW4gP3hTZXAgKC0gbVNvdXJjZVBpbk9mZnNldCkpIChjb250YWN0MVBpdGNoUyA9IChjb250YWN0MVdpZHRoUyArIGNvbnRhY3QxU3BhY2VTKSkgKGNvbnRhY3QxUGl0Y2hEID0gKGNvbnRhY3QxV2lkdGhEICsgY29udGFjdDFTcGFjZUQpKSAobWV0MFBpbldpZHRoUyA9ICgoY29udGFjdDFXaWR0aFMgKiBjb250YWN0MUNvbHNTKSArICgoY29udGFjdDFDb2xzUyArIC0xKSAqIGNvbnRhY3QxU3BhY2VTKSkpIChtZXQwUGluV2lkdGhEID0gKChjb250YWN0MVdpZHRoRCAqIGNvbnRhY3QxQ29sc0QpICsgKChjb250YWN0MUNvbHNEICsgLTEpICogY29udGFjdDFTcGFjZUQpKSkgKGZpcnN0TWV0MFBpbiA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJTID93aWR0aCBtZXQwUGluV2lkdGhTID9sZW5ndGggdyA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIGNvbnRhY3QxTGF5ZXJTID93aWR0aCBjb250YWN0MVdpZHRoUyA/bGVuZ3RoIGNvbnRhY3QxV2lkdGhTID9zcGFjZVkgY29udGFjdDFTcGFjZVMgP3NwYWNlWCBjb250YWN0MVNwYWNlUyA/bG93ZXJMZWZ0T2Zmc2V0WSBkaWZmQ29udGFjdDBZZW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBkaWZmQ29udGFjdDBZZW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdE1ldDBQaW4gP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiBmaXJzdFNvdXJjZVBpbiA/cmVmSGFuZGxlICJsQyIpIChmaXJzdE1ldDBEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllclMgP3dpZHRoIG1ldDBXaWR0aFMgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdE1ldDBEcmF3aW5nID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogZmlyc3RNZXQwUGluID9yZWZIYW5kbGUgImxDIikgZGVjbGFyZShtZXQxRHJhd2luZ1B0c1NbOF0pIGRlY2xhcmUobWV0MURyYXdpbmdQdHNEWzhdKSAoeDBNZXQxID0gMC4wKSAoeTBNZXQxID0gMC4wKSAobWV0MURyYXdpbmdQdHNTWzBdID0gKHgwTWV0MTooeTBNZXQxICsgbWV0MUJldmVsUykpKSAobWV0MURyYXdpbmdQdHNTWzFdID0gKHgwTWV0MToodyAtIG1ldDFCZXZlbFMpKSkgKG1ldDFEcmF3aW5nUHRzU1syXSA9IChtZXQxQmV2ZWxTOncpKSAobWV0MURyYXdpbmdQdHNTWzNdID0gKChtZXQxV2lkdGhTICsgKC0gbWV0MUJldmVsUykpOncpKSAobWV0MURyYXdpbmdQdHNTWzRdID0gKG1ldDFXaWR0aFM6KHcgLSBtZXQxQmV2ZWxTKSkpIChtZXQxRHJhd2luZ1B0c1NbNV0gPSAobWV0MVdpZHRoUzooeTBNZXQxICsgbWV0MUJldmVsUykpKSAobWV0MURyYXdpbmdQdHNTWzZdID0gKChtZXQxV2lkdGhTICsgKC0gbWV0MUJldmVsUykpOjApKSAobWV0MURyYXdpbmdQdHNTWzddID0gKG1ldDFCZXZlbFM6MCkpIChmaXJzdE1ldDFwb2ludHNTID0gbmlsKSBmb3IoaSAxIDggKGZpcnN0TWV0MXBvaW50c1MgPSBjb25zKChjYXIobWV0MURyYXdpbmdQdHNTWyg4IC0gaSldKTpjYWRyKG1ldDFEcmF3aW5nUHRzU1soOCAtIGkpXSkpIGZpcnN0TWV0MXBvaW50c1MpKSkgKHgwTWV0MSA9IDAuMCkgKHkwTWV0MSA9IDAuMCkgKG1ldDFEcmF3aW5nUHRzRFswXSA9ICh4ME1ldDE6KHkwTWV0MSArIG1ldDFCZXZlbEQpKSkgKG1ldDFEcmF3aW5nUHRzRFsxXSA9ICh4ME1ldDE6KHcgLSBtZXQxQmV2ZWxEKSkpIChtZXQxRHJhd2luZ1B0c0RbMl0gPSAobWV0MUJldmVsRDp3KSkgKG1ldDFEcmF3aW5nUHRzRFszXSA9ICgobWV0MVdpZHRoRCArICgtIG1ldDFCZXZlbEQpKTp3KSkgKG1ldDFEcmF3aW5nUHRzRFs0XSA9IChtZXQxV2lkdGhEOih3IC0gbWV0MUJldmVsRCkpKSAobWV0MURyYXdpbmdQdHNEWzVdID0gKG1ldDFXaWR0aEQ6KHkwTWV0MSArIG1ldDFCZXZlbEQpKSkgKG1ldDFEcmF3aW5nUHRzRFs2XSA9ICgobWV0MVdpZHRoRCArICgtIG1ldDFCZXZlbEQpKTowKSkgKG1ldDFEcmF3aW5nUHRzRFs3XSA9IChtZXQxQmV2ZWxEOjApKSAoZmlyc3RNZXQxcG9pbnRzRCA9IG5pbCkgZm9yKGkgMSA4IChmaXJzdE1ldDFwb2ludHNEID0gY29ucygoY2FyKG1ldDFEcmF3aW5nUHRzRFsoOCAtIGkpXSk6Y2FkcihtZXQxRHJhd2luZ1B0c0RbKDggLSBpKV0pKSBmaXJzdE1ldDFwb2ludHNEKSkpIChmaXJzdE1ldDFEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIG1ldDFMYXllclMgP3B0cyBmaXJzdE1ldDFwb2ludHNTID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RNZXQxRHJhd2luZyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGZpcnN0TWV0MERyYXdpbmcgP3JlZkhhbmRsZSAiY0MiKSB3aGVuKG9uZXAobSkgKGZpcnN0RHJhaW5QaW4gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCBkcm5QaW5XaWR0aCA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiRCIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCBsYWJlbFdpZHRoID9waW5MYWJlbExheWVyIGxhYmVsTGF5ZXIgP3BpbkxhYmVsRm9udCAicm9tYW4iID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MExheWVyRCA/d2lkdGggY29udGFjdDBXaWR0aEQgP2xlbmd0aCBjb250YWN0MFdpZHRoRCA/c3BhY2VZIGNvbnRhY3QwU3BhY2VEID9zcGFjZVggY29udGFjdDBTcGFjZUQgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3REcmFpblBpbiA/YWxpZ25IYW5kbGUgImxMIiA/cmVmUG9pbnQgZXNkQ2VsbE9yaWdpbiA/eFNlcCAobCArIG1EcmFpblBpbk9mZnNldCkpIChvbmVEcmFpbk1ldDBQaW4gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyRCA/d2lkdGggbWV0MFBpbldpZHRoRCA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiRCIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MUxheWVyRCA/d2lkdGggY29udGFjdDFXaWR0aEQgP2xlbmd0aCBjb250YWN0MVdpZHRoRCA/c3BhY2VZIGNvbnRhY3QxU3BhY2VEID9zcGFjZVggY29udGFjdDFTcGFjZUQgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogb25lRHJhaW5NZXQwUGluID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogZmlyc3REcmFpblBpbiA/cmVmSGFuZGxlICJsQyIpIChkcmFpbk1ldDBEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllckQgP3dpZHRoIG1ldDBXaWR0aEQgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBkcmFpbk1ldDBEcmF3aW5nID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogb25lRHJhaW5NZXQwUGluID9yZWZIYW5kbGUgImxDIikgKGRyYWluTWV0MURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgbWV0MUxheWVyRCA/cHRzIGZpcnN0TWV0MXBvaW50c0QgP3BpbiB0ID90ZXJtTmFtZSAiRCIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBkcmFpbk1ldDFEcmF3aW5nID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZHJhaW5NZXQwRHJhd2luZyA/cmVmSGFuZGxlICJjQyIpKSAoc291cmNlUGluc051bWJlciA9IDEpIChkcmFpblBpbnNOdW1iZXIgPSAxKSB3aGVuKChtID4gMSkgKHNvdXJjZVBpbnNOdW1iZXIgPSAobSAvIDIpKSAoc291cmNlUGluc1NwYWNlID0gKChsICogMikgKyBzaGFyZWREcmFpbldpZHRoICsgKG1Tb3VyY2VQaW5PZmZzZXQgKiAyLjApKSkgKHNvdXJjZVBpbnNPcmlnaW5YID0gKGNhcihlc2RDZWxsT3JpZ2luKSArIChsICogMikgKyBzaGFyZWREcmFpbldpZHRoICsgbVNvdXJjZVBpbk9mZnNldCkpIChzb3VyY2VQaW5zT3JpZ2luT2Zmc2V0ID0gKHNvdXJjZVBpbnNTcGFjZSArIHNyY1BpbldpZHRoKSkgZm9yKG4gMSBzb3VyY2VQaW5zTnVtYmVyIChzb3VyY2VQaW5zT3JpZ2luID0gbGlzdCgoc291cmNlUGluc09yaWdpblggKyAoKG4gLSAxKSAqIHNvdXJjZVBpbnNPcmlnaW5PZmZzZXQpKSAwLjApKSAoc291cmNlUGlucyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIHNyY1BpbldpZHRoID9sZW5ndGggdyA/b3JpZ2luIHNvdXJjZVBpbnNPcmlnaW4gP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCBsYWJlbFdpZHRoID9waW5MYWJlbExheWVyIGxhYmVsTGF5ZXIgP3BpbkxhYmVsRm9udCAicm9tYW4iID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MExheWVyUyA/d2lkdGggY29udGFjdDBXaWR0aFMgP2xlbmd0aCBjb250YWN0MFdpZHRoUyA/c3BhY2VZIGNvbnRhY3QwU3BhY2VTID9zcGFjZVggY29udGFjdDBTcGFjZVMgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChzb3VyY2VNZXQwUGlucyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJTID93aWR0aCBtZXQwUGluV2lkdGhTID9sZW5ndGggdyA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIGNvbnRhY3QxTGF5ZXJTID93aWR0aCBjb250YWN0MVdpZHRoUyA/bGVuZ3RoIGNvbnRhY3QxV2lkdGhTID9zcGFjZVkgY29udGFjdDFTcGFjZVMgP3NwYWNlWCBjb250YWN0MVNwYWNlUyA/bG93ZXJMZWZ0T2Zmc2V0WSBkaWZmQ29udGFjdDBZZW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBkaWZmQ29udGFjdDBZZW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBzb3VyY2VNZXQwUGlucyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIHNvdXJjZVBpbnMgP3JlZkhhbmRsZSAibEMiKSAoc291cmNlTWV0MERyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyUyA/d2lkdGggbWV0MFdpZHRoUyA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZU1ldDBEcmF3aW5nID9hbGlnbkhhbmRsZSAibEMiID9yZWZPYmogc291cmNlTWV0MFBpbnMgP3JlZkhhbmRsZSAibEMiKSAoc291cmNlTWV0MURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgbWV0MUxheWVyUyA/cHRzIGZpcnN0TWV0MXBvaW50c1MgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBzb3VyY2VNZXQxRHJhd2luZyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHNvdXJjZU1ldDBEcmF3aW5nID9yZWZIYW5kbGUgImNDIikpIChkcmFpblBpbnNOdW1iZXIgPSAoY2VpbGluZyAobSAvIDIuMCkpKSAoZHJhaW5QaW5zU3BhY2UgPSAoKGwgKiAyKSArIHNoYXJlZFNvdXJjZVdpZHRoICsgKG1EcmFpblBpbk9mZnNldCAqIDIuMCkpKSAoZHJhaW5QaW5zT3JpZ2luWCA9IChjYXIoZXNkQ2VsbE9yaWdpbikgKyBsICsgbURyYWluUGluT2Zmc2V0KSkgKGRyYWluUGluc09yaWdpbk9mZnNldCA9IChkcmFpblBpbnNTcGFjZSArIGRyblBpbldpZHRoKSkgZm9yKG4gMSBkcmFpblBpbnNOdW1iZXIgKGRyYWluUGluc09yaWdpbiA9IGxpc3QoKGRyYWluUGluc09yaWdpblggKyAoKG4gLSAxKSAqIGRyYWluUGluc09yaWdpbk9mZnNldCkpIDAuMCkpIChkcmFpblBpbnMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkxheWVyID93aWR0aCBkcm5QaW5XaWR0aCA/bGVuZ3RoIHcgP29yaWdpbiBkcmFpblBpbnNPcmlnaW4gP3BpbiB0ID90ZXJtTmFtZSAiRCIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCBsYWJlbFdpZHRoID9waW5MYWJlbExheWVyIGxhYmVsTGF5ZXIgP3BpbkxhYmVsRm9udCAicm9tYW4iID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciBjb250YWN0MExheWVyRCA/d2lkdGggY29udGFjdDBXaWR0aEQgP2xlbmd0aCBjb250YWN0MFdpZHRoRCA/c3BhY2VZIGNvbnRhY3QwU3BhY2VEID9zcGFjZVggY29udGFjdDBTcGFjZUQgP2xvd2VyTGVmdE9mZnNldFkgZGlmZkNvbnRhY3QwWWVuYyA/dXBwZXJSaWdodE9mZnNldFkgKC0gZGlmZkNvbnRhY3QwWWVuYykpKSkpIChkcmFpbk1ldDBQaW5zID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllckQgP3dpZHRoIG1ldDBQaW5XaWR0aEQgP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIkQiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgY29udGFjdDFMYXllckQgP3dpZHRoIGNvbnRhY3QxV2lkdGhEID9sZW5ndGggY29udGFjdDFXaWR0aEQgP3NwYWNlWSBjb250YWN0MVNwYWNlRCA/c3BhY2VYIGNvbnRhY3QxU3BhY2VEID9sb3dlckxlZnRPZmZzZXRZIGRpZmZDb250YWN0MFllbmMgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGRpZmZDb250YWN0MFllbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGRyYWluTWV0MFBpbnMgP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiBkcmFpblBpbnMgP3JlZkhhbmRsZSAibEMiKSAoZHJhaW5NZXQwRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXJEID93aWR0aCBtZXQwV2lkdGhEID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogZHJhaW5NZXQwRHJhd2luZyA/YWxpZ25IYW5kbGUgImxDIiA/cmVmT2JqIGRyYWluTWV0MFBpbnMgP3JlZkhhbmRsZSAibEMiKSAoZHJhaW5NZXQxRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBtZXQxTGF5ZXJEID9wdHMgZmlyc3RNZXQxcG9pbnRzRCA/cGluIHQgP3Rlcm1OYW1lICJEIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSAocm9kQWxpZ24gP2FsaWduT2JqIGRyYWluTWV0MURyYXdpbmcgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBkcmFpbk1ldDBEcmF3aW5nID9yZWZIYW5kbGUgImNDIikpKSAoZmxhcmVZID0gKGZsYXJlT3V0RGlmZiArIGZsYXJlRXh0KSkgY29uZCgoc2luZ2xlRmxhcmUgZGVjbGFyZShvZGRmbGFyZUdhdGVQdHNbOF0pICh4bzAgPSAwLjApICh4bzIgPSAoeG8wICsgbCArIGZsYXJlSW5EaWZmICsgZmxhcmVPdXREaWZmKSkgKHhvNCA9ICh4bzAgKyBsKSkgKG9kZGZsYXJlR2F0ZVB0c1swXSA9ICh4bzA6KC0gZmxhcmVZKSkpIChvZGRmbGFyZUdhdGVQdHNbMV0gPSAoeG8wOih3ICsgZmxhcmVZKSkpIChvZGRmbGFyZUdhdGVQdHNbMl0gPSAoeG8yOih3ICsgZmxhcmVZKSkpIChvZGRmbGFyZUdhdGVQdHNbM10gPSAoeG8yOih3ICsgZmxhcmVPdXREaWZmKSkpIChvZGRmbGFyZUdhdGVQdHNbNF0gPSAoeG80Oih3ICsgKC0gZmxhcmVJbkRpZmYpKSkpIChvZGRmbGFyZUdhdGVQdHNbNV0gPSAoeG80OmZsYXJlSW5EaWZmKSkgKG9kZGZsYXJlR2F0ZVB0c1s2XSA9ICh4bzI6KC0gZmxhcmVPdXREaWZmKSkpIChvZGRmbGFyZUdhdGVQdHNbN10gPSAoeG8yOigtIGZsYXJlWSkpKSBkZWNsYXJlKGV2ZW5mbGFyZUdhdGVQdHNbOF0pICh4ZTAgPSAoeG8wICsgKC0gZmxhcmVPdXREaWZmKSArICgtIGZsYXJlSW5EaWZmKSkpICh4ZTIgPSAoeGUwICsgZmxhcmVJbkRpZmYgKyBmbGFyZU91dERpZmYpKSAoeGU2ID0gKHhlMiArIGwpKSAoZXZlbmZsYXJlR2F0ZVB0c1swXSA9ICh4ZTA6KC0gZmxhcmVZKSkpIChldmVuZmxhcmVHYXRlUHRzWzFdID0gKHhlMDooLSBmbGFyZU91dERpZmYpKSkgKGV2ZW5mbGFyZUdhdGVQdHNbMl0gPSAoeGUyOmZsYXJlSW5EaWZmKSkgKGV2ZW5mbGFyZUdhdGVQdHNbM10gPSAoeGUyOih3ICsgKC0gZmxhcmVJbkRpZmYpKSkpIChldmVuZmxhcmVHYXRlUHRzWzRdID0gKHhlMDoodyArIGZsYXJlT3V0RGlmZikpKSAoZXZlbmZsYXJlR2F0ZVB0c1s1XSA9ICh4ZTA6KHcgKyBmbGFyZVkpKSkgKGV2ZW5mbGFyZUdhdGVQdHNbNl0gPSAoeGU2Oih3ICsgZmxhcmVZKSkpIChldmVuZmxhcmVHYXRlUHRzWzddID0gKHhlNjooLSBmbGFyZVkpKSkgZm9yKGkgMSA4IChwb2ludExpc3QxID0gY29ucygoY2FyKG9kZGZsYXJlR2F0ZVB0c1soOCAtIGkpXSk6Y2FkcihvZGRmbGFyZUdhdGVQdHNbKDggLSBpKV0pKSBwb2ludExpc3QxKSkpIChmaXJzdEdhdGVEcmF3aW5nID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIGdhdGVMYXllciA/cHRzIHBvaW50TGlzdDEgP3BpbiB0ID90ZXJtTmFtZSAiRyIgP3Rlcm1JT1R5cGUgImlucHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpKSkpICh0IGRlY2xhcmUoZmxhcmVHYXRlUHRzWzEyXSkgKHgwID0gKCgtIGZsYXJlT3V0RGlmZikgKyAoLSBmbGFyZUluRGlmZikpKSAoeDIgPSAoeDAgKyBmbGFyZUluRGlmZiArIGZsYXJlT3V0RGlmZikpICh4NiA9ICh4MiArIGwgKyAoLSB4MCkpKSAoeDggPSAoeDIgKyBsKSkgKGZsYXJlR2F0ZVB0c1swXSA9ICh4MDooLSBmbGFyZVkpKSkgKGZsYXJlR2F0ZVB0c1sxXSA9ICh4MDooLSBmbGFyZU91dERpZmYpKSkgKGZsYXJlR2F0ZVB0c1syXSA9ICh4MjpmbGFyZUluRGlmZikpIChmbGFyZUdhdGVQdHNbM10gPSAoeDI6KHcgKyAoLSBmbGFyZUluRGlmZikpKSkgKGZsYXJlR2F0ZVB0c1s0XSA9ICh4MDoodyArIGZsYXJlT3V0RGlmZikpKSAoZmxhcmVHYXRlUHRzWzVdID0gKHgwOih3ICsgZmxhcmVZKSkpIChmbGFyZUdhdGVQdHNbNl0gPSAoeDY6KHcgKyBmbGFyZVkpKSkgKGZsYXJlR2F0ZVB0c1s3XSA9ICh4NjoodyArIGZsYXJlT3V0RGlmZikpKSAoZmxhcmVHYXRlUHRzWzhdID0gKHg4Oih3ICsgKC0gZmxhcmVJbkRpZmYpKSkpIChmbGFyZUdhdGVQdHNbOV0gPSAoeDg6ZmxhcmVJbkRpZmYpKSAoZmxhcmVHYXRlUHRzWzEwXSA9ICh4NjooLSBmbGFyZU91dERpZmYpKSkgKGZsYXJlR2F0ZVB0c1sxMV0gPSAoeDY6KC0gZmxhcmVZKSkpIChwb2ludExpc3QxID0gbmlsKSBmb3IoaSAxIDEyIChwb2ludExpc3QxID0gY29ucygoY2FyKGZsYXJlR2F0ZVB0c1soMTIgLSBpKV0pOmNhZHIoZmxhcmVHYXRlUHRzWygxMiAtIGkpXSkpIHBvaW50TGlzdDEpKSkgKGZpcnN0R2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZ2F0ZUxheWVyID9wdHMgcG9pbnRMaXN0MSA/cGluIHQgP3Rlcm1OYW1lICJHIiA/dGVybUlPVHlwZSAiaW5wdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikpKSkpIChvZGRHYXRlT2Zmc2V0ID0gMC4wKSBmb3IobiAyIG0gd2hlbihvZGRwKG4pIChwb2ludExpc3QxID0gbmlsKSAob2RkR2F0ZU9mZnNldCA9IChzaGFyZWREcmFpbldpZHRoICsgbCArIHNoYXJlZFNvdXJjZVdpZHRoICsgbCArIG9kZEdhdGVPZmZzZXQpKSBjb25kKChzaW5nbGVGbGFyZSBmb3IoaSAxIDggKHBvaW50TGlzdDEgPSBjb25zKCgoY2FyKG9kZGZsYXJlR2F0ZVB0c1soOCAtIGkpXSkgKyBvZGRHYXRlT2Zmc2V0KTpjYWRyKG9kZGZsYXJlR2F0ZVB0c1soOCAtIGkpXSkpIHBvaW50TGlzdDEpKSkpICh0IGZvcihpIDEgMTIgKHBvaW50TGlzdDEgPSBjb25zKCgoY2FyKGZsYXJlR2F0ZVB0c1soMTIgLSBpKV0pICsgb2RkR2F0ZU9mZnNldCk6Y2FkcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKSkgcG9pbnRMaXN0MSkpKSkpIChvZGRHYXRlRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBnYXRlTGF5ZXIgP3B0cyBwb2ludExpc3QxID9waW4gdCA/dGVybU5hbWUgIkciID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpKSB3aGVuKGV2ZW5wKG4pIChwb2ludExpc3QyID0gbmlsKSBpZigobiA9PSAyKSB0aGVuIChldmVuR2F0ZU9mZnNldCA9IChzaGFyZWREcmFpbldpZHRoICsgbCkpIGVsc2UgKGV2ZW5HYXRlT2Zmc2V0ID0gKHNoYXJlZERyYWluV2lkdGggKyBsICsgc2hhcmVkU291cmNlV2lkdGggKyBsICsgZXZlbkdhdGVPZmZzZXQpKSkgY29uZCgoc2luZ2xlRmxhcmUgZm9yKGkgMSA4IChwb2ludExpc3QyID0gY29ucygoKGNhcihldmVuZmxhcmVHYXRlUHRzWyg4IC0gaSldKSArIGV2ZW5HYXRlT2Zmc2V0KTpjYWRyKGV2ZW5mbGFyZUdhdGVQdHNbKDggLSBpKV0pKSBwb2ludExpc3QyKSkpKSAodCBmb3IoaSAxIDEyIChwb2ludExpc3QyID0gY29ucygoKGNhcihmbGFyZUdhdGVQdHNbKDEyIC0gaSldKSArIGV2ZW5HYXRlT2Zmc2V0KTpjYWRyKGZsYXJlR2F0ZVB0c1soMTIgLSBpKV0pKSBwb2ludExpc3QyKSkpKSkgKGV2ZW5HYXRlRHJhd2luZyA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciBnYXRlTGF5ZXIgP3B0cyBwb2ludExpc3QyID9waW4gdCA/dGVybU5hbWUgIkciID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpKSkgd2hlbihwZ2F0ZUxheWVyIChvZGRQR2F0ZURyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcGdhdGVMYXllciA/d2lkdGggbCA/bGVuZ3RoIHcgP29yaWdpbiBlc2RDZWxsT3JpZ2luID9lbGVtZW50c1ggKGNlaWxpbmcgKG0gLyAyLjApKSA/c3BhY2VYIChzaGFyZWREcmFpbldpZHRoICsgbCArIHNoYXJlZFNvdXJjZVdpZHRoKSkpIHdoZW4oKG0gPiAxKSAoZXZlblBHYXRlRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBwZ2F0ZUxheWVyID93aWR0aCBsID9sZW5ndGggdyA/b3JpZ2luIGxpc3QoKHNoYXJlZERyYWluV2lkdGggKyBsKSAwKSA/ZWxlbWVudHNYIChtIC8gMikgP3NwYWNlWCAoc2hhcmVkRHJhaW5XaWR0aCArIGwgKyBzaGFyZWRTb3VyY2VXaWR0aCkpKSkpIGNvbmQoKG9uZXAobSkgKGZldERpZmZ1c2lvblhkaW0gPSAoKGwgKiBtKSArIChkcm5QaW5XaWR0aCArIGRpZmZDb250YWN0MFhlbmMgKyBtRHJhaW5QaW5PZmZzZXQpICsgKHNyY1BpbldpZHRoICsgZGlmZkNvbnRhY3QwWGVuYyArIG1Tb3VyY2VQaW5PZmZzZXQpKSkpIChvZGRwKG0pIChmZXREaWZmdXNpb25YZGltID0gKChsICogbSkgKyAoc2hhcmVkU291cmNlV2lkdGggKiBzb3VyY2VQaW5zTnVtYmVyKSArIChzaGFyZWREcmFpbldpZHRoICogKGRyYWluUGluc051bWJlciArIC0xKSkgKyAoZHJuUGluV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jICsgbURyYWluUGluT2Zmc2V0KSArIChzcmNQaW5XaWR0aCArIGRpZmZDb250YWN0MFhlbmMgKyBtU291cmNlUGluT2Zmc2V0KSkpKSAoZXZlbnAobSkgKGZldERpZmZ1c2lvblhkaW0gPSAoKGwgKiBtKSArIChzaGFyZWRTb3VyY2VXaWR0aCAqIChzb3VyY2VQaW5zTnVtYmVyICsgLTEpKSArIChzaGFyZWREcmFpbldpZHRoICogZHJhaW5QaW5zTnVtYmVyKSArICgoc3JjUGluV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jICsgbVNvdXJjZVBpbk9mZnNldCkgKiAyLjApKSkpICh0KSkgKGZldERpZmZ1c2lvbiA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIGZldERpZmZ1c2lvblhkaW0gP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBmZXREaWZmdXNpb24gP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmaXJzdFNvdXJjZVBpbiA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gZGlmZkNvbnRhY3QwWGVuYykpIGNvbmQoKGJ1dHRpbmdUYXAgKGZpcnN0U291cmNlVGFwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBidXR0aW5nVGFwV2lkdGggP2xlbmd0aCB3ID9waW4gdCkpIChyb2RBbGlnbiA/YWxpZ25PYmogZmlyc3RTb3VyY2VUYXAgP2FsaWduSGFuZGxlICJsUiIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAibEwiKSAoZmlyc3RTb3VyY2VUYXBNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllclMgP3dpZHRoIChidXR0aW5nVGFwV2lkdGggKyBkaWZmQ29udGFjdDBYZW5jKSA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpcnN0U291cmNlVGFwTWV0MCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIGZpcnN0U291cmNlVGFwID9yZWZIYW5kbGUgImNMIikgKGZpcnN0U291cmNlVGFwTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQxTGF5ZXJTID93aWR0aCAoYnV0dGluZ1RhcFdpZHRoICsgKDIgKiBkaWZmQ29udGFjdDBYZW5jKSkgP2xlbmd0aCB3KSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFNvdXJjZVRhcE1ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBmaXJzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJjQyIpIChmaXJzdFNvdXJjZVRhcEltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBJbXBsYW50ID93aWR0aCAoYnV0dGluZ1RhcFdpZHRoICsgdGFwSW1wRW5jKSA/bGVuZ3RoICh3ICsgKDIuMCAqIHRhcEltcEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFNvdXJjZVRhcEltcCA/YWxpZ25IYW5kbGUgImxSIiA/cmVmT2JqIGZpcnN0U291cmNlVGFwID9yZWZIYW5kbGUgImxSIiA/eVNlcCAoLSB0YXBJbXBFbmMpKSAobGFzdFNvdXJjZVRhcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggYnV0dGluZ1RhcFdpZHRoID9sZW5ndGggdyA/cGluIHQpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RTb3VyY2VUYXAgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAibFIiKSAobGFzdFNvdXJjZVRhcE1ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyUyA/d2lkdGggKGJ1dHRpbmdUYXBXaWR0aCArIGRpZmZDb250YWN0MFhlbmMpID9sZW5ndGggdykpIChyb2RBbGlnbiA/YWxpZ25PYmogbGFzdFNvdXJjZVRhcE1ldDAgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBsYXN0U291cmNlVGFwID9yZWZIYW5kbGUgImNSIikgKGxhc3RTb3VyY2VUYXBNZXQxID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDFMYXllclMgP3dpZHRoIChidXR0aW5nVGFwV2lkdGggKyAoMiAqIGRpZmZDb250YWN0MFhlbmMpKSA/bGVuZ3RoIHcpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RTb3VyY2VUYXBNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbGFzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJjQyIpIChmZXREaWZmSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID93aWR0aCBmZXREaWZmdXNpb25YZGltID9sZW5ndGggKHcgKyAoMi4wICogZGlmZkltcEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmZXREaWZmSW1wID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxMIiA/eVNlcCAoLSBkaWZmSW1wRW5jKSkgKGxhc3RTb3VyY2VUYXBJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/d2lkdGggKGJ1dHRpbmdUYXBXaWR0aCArIHRhcEltcEVuYykgP2xlbmd0aCAodyArICgyLjAgKiB0YXBJbXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGFzdFNvdXJjZVRhcEltcCA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGxhc3RTb3VyY2VUYXAgP3JlZkhhbmRsZSAibEwiID95U2VwICgtIHRhcEltcEVuYykpIHdoZW4oKChtb3NUeXBlID09ICJwbW9zIikgJiYgKHJpbmdzID09ICJOb25lIikpICh3ZWxsTGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHdlbGxMYXllciA/d2lkdGggKGZldERpZmZ1c2lvblhkaW0gKyAoMi4wICogYnV0dGluZ1RhcFdpZHRoKSArICgyLjAgKiBodldlbGxEaWZmVGFwRW5jKSkgP2xlbmd0aCAodyArICgyLjAgKiBodldlbGxEaWZmVGFwRW5jKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHdlbGxMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmaXJzdFNvdXJjZVRhcCA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gaHZXZWxsRGlmZlRhcEVuYykgP3lTZXAgKC0gaHZXZWxsRGlmZlRhcEVuYykpKSkgKHQgKGZldERpZmZJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGxhbnQgP2Zyb21PYmogZmV0RGlmZnVzaW9uID9zaXplIGRpZmZJbXBFbmMpKSB3aGVuKCgobW9zVHlwZSA9PSAicG1vcyIpICYmIChyaW5ncyA9PSAiTm9uZSIpKSAod2VsbExheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogZmV0RGlmZnVzaW9uID9zaXplIGh2V2VsbERpZmZUYXBFbmMpKSkpKSB3aGVuKCgocmluZ3MgPT0gIklubmVyIikgfHwgKHJpbmdzID09ICJCb3RoIikpIChyaW5nQ29udGFjdDBJbmZvSCA9IG50aCgwIElubmVyUmluZ0ludGVyY29ubmVjdEhvcml6KSkgKHJpbmdDb250YWN0MExheWVySCA9IG50aCgwIHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdDb250YWN0MFdpZHRoSCA9IG50aCgxIHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdDb250YWN0MFNwYWNlSCA9IG50aCgyIHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdDb250YWN0MENvbHNIID0gbnRoKDMgcmluZ0NvbnRhY3QwSW5mb0gpKSAocmluZ01ldDBMYXllckggPSBudGgoNCByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nTWV0MENvbnQwRW5jSCA9IG50aCg1IHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdNZXQwSW5CZXZlbEggPSBudGgoNiByaW5nQ29udGFjdDBJbmZvSCkpIChyaW5nTWV0ME91dEJldmVsSCA9IG50aCg3IHJpbmdDb250YWN0MEluZm9IKSkgKHJpbmdDb250YWN0MUluZm9IID0gbnRoKDEgSW5uZXJSaW5nSW50ZXJjb25uZWN0SG9yaXopKSAocmluZ0NvbnRhY3QxTGF5ZXJIID0gbnRoKDAgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ0NvbnRhY3QxV2lkdGhIID0gbnRoKDEgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ0NvbnRhY3QxU3BhY2VIID0gbnRoKDIgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ0NvbnRhY3QxQ29sc0ggPSBudGgoMyByaW5nQ29udGFjdDFJbmZvSCkpIChyaW5nTWV0MUxheWVySCA9IG50aCg0IHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdNZXQxQ29udDFFbmNIID0gbnRoKDUgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ01ldDFJbkJldmVsSCA9IG50aCg2IHJpbmdDb250YWN0MUluZm9IKSkgKHJpbmdNZXQxT3V0QmV2ZWxIID0gbnRoKDcgcmluZ0NvbnRhY3QxSW5mb0gpKSAocmluZ0NvbnRhY3QwSW5mb1YgPSBudGgoMCBJbm5lclJpbmdJbnRlcmNvbm5lY3RWZXJ0KSkgKHJpbmdDb250YWN0MExheWVyViA9IG50aCgwIHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdDb250YWN0MFdpZHRoViA9IG50aCgxIHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdDb250YWN0MFNwYWNlViA9IG50aCgyIHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdDb250YWN0MENvbHNWID0gbnRoKDMgcmluZ0NvbnRhY3QwSW5mb1YpKSAocmluZ01ldDBMYXllclYgPSBudGgoNCByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nTWV0MENvbnQwRW5jViA9IG50aCg1IHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdNZXQwSW5CZXZlbFYgPSBudGgoNiByaW5nQ29udGFjdDBJbmZvVikpIChyaW5nTWV0ME91dEJldmVsViA9IG50aCg3IHJpbmdDb250YWN0MEluZm9WKSkgKHJpbmdDb250YWN0MUluZm9WID0gbnRoKDEgSW5uZXJSaW5nSW50ZXJjb25uZWN0VmVydCkpIChyaW5nQ29udGFjdDFMYXllclYgPSBudGgoMCByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nQ29udGFjdDFXaWR0aFYgPSBudGgoMSByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nQ29udGFjdDFTcGFjZVYgPSBudGgoMiByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nQ29udGFjdDFDb2xzViA9IG50aCgzIHJpbmdDb250YWN0MUluZm9WKSkgKHJpbmdNZXQxTGF5ZXJWID0gbnRoKDQgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ01ldDFDb250MUVuY1YgPSBudGgoNSByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nTWV0MUluQmV2ZWxWID0gbnRoKDYgcmluZ0NvbnRhY3QxSW5mb1YpKSAocmluZ01ldDFPdXRCZXZlbFYgPSBudGgoNyByaW5nQ29udGFjdDFJbmZvVikpIChyaW5nQ29udGFjdDBQaXRjaEggPSAocmluZ0NvbnRhY3QwV2lkdGhIICsgcmluZ0NvbnRhY3QwU3BhY2VIKSkgKHJpbmdDb250YWN0MFBpdGNoViA9IChyaW5nQ29udGFjdDBXaWR0aFYgKyByaW5nQ29udGFjdDBTcGFjZVYpKSAoaW5uZXJSaW5nV2lkdGhIID0gKChyaW5nQ29udGFjdDBXaWR0aEggKiByaW5nQ29udGFjdDBDb2xzSCkgKyAoKHJpbmdDb250YWN0MENvbHNIICsgLTEpICogcmluZ0NvbnRhY3QwU3BhY2VIKSArICgyLjAgKiByaW5nTWV0MENvbnQwRW5jSCkpKSAoaW5uZXJSaW5nV2lkdGhWID0gKChyaW5nQ29udGFjdDBXaWR0aFYgKiByaW5nQ29udGFjdDBDb2xzVikgKyAoKHJpbmdDb250YWN0MENvbHNWICsgLTEpICogcmluZ0NvbnRhY3QwU3BhY2VWKSArICgyLjAgKiByaW5nTWV0MENvbnQwRW5jVikpKSAoaW5uZXJSaW5nTGVuZ3RoTFIgPSAodyArIGlubmVyUmluZ0ZldFRvcFNwYWNlICsgaW5uZXJSaW5nRmV0Qm90U3BhY2UgKyAoMi4wICogaW5uZXJSaW5nV2lkdGhIKSkpIChpbm5lclJpbmdMZW5ndGhUQiA9IChmZXREaWZmdXNpb25YZGltICsgaW5uZXJSaW5nRmV0UmlnaHRTcGFjZSArIGlubmVyUmluZ0ZldExlZnRTcGFjZSArICgyLjAgKiBpbm5lclJpbmdXaWR0aFYpKSkgKHJpbmdDb250YWN0MVBpdGNoSCA9IChyaW5nQ29udGFjdDFXaWR0aEggKyByaW5nQ29udGFjdDFTcGFjZUgpKSAocmluZ0NvbnRhY3QxUGl0Y2hWID0gKHJpbmdDb250YWN0MVdpZHRoViArIHJpbmdDb250YWN0MVNwYWNlVikpIChpbm5lck1ldDFSaW5nV2lkdGhIID0gKChyaW5nQ29udGFjdDFXaWR0aEggKiByaW5nQ29udGFjdDFDb2xzSCkgKyAoKHJpbmdDb250YWN0MUNvbHNIICsgLTEpICogcmluZ0NvbnRhY3QxU3BhY2VIKSArICgyLjAgKiByaW5nTWV0MUNvbnQxRW5jSCkpKSAoaW5uZXJNZXQxUmluZ1dpZHRoViA9ICgocmluZ0NvbnRhY3QxV2lkdGhWICogcmluZ0NvbnRhY3QxQ29sc1YpICsgKChyaW5nQ29udGFjdDFDb2xzViArIC0xKSAqIHJpbmdDb250YWN0MVNwYWNlVikgKyAoMi4wICogcmluZ01ldDFDb250MUVuY1YpKSkgd2hlbigoaW5uZXJNZXQxUmluZ1dpZHRoSCA8IHJpbmdNZXQxT3V0QmV2ZWxIKSAocmluZ01ldDFPdXRCZXZlbEggPSBpbm5lck1ldDFSaW5nV2lkdGhIKSkgd2hlbigoaW5uZXJNZXQxUmluZ1dpZHRoViA8IHJpbmdNZXQxT3V0QmV2ZWxWKSAocmluZ01ldDFPdXRCZXZlbFYgPSBpbm5lck1ldDFSaW5nV2lkdGhWKSkgKGxlZnRJbm5lclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIGlubmVyUmluZ1dpZHRoViA/bGVuZ3RoIGlubmVyUmluZ0xlbmd0aExSID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllclYgP3dpZHRoIHJpbmdDb250YWN0MFdpZHRoViA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoViA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlViA/c3BhY2VYIHJpbmdDb250YWN0MFNwYWNlViA/bG93ZXJMZWZ0T2Zmc2V0WSAoaW5uZXJSaW5nV2lkdGhIICsgcmluZ0NvbnRhY3QwUGl0Y2hIKSA/dXBwZXJSaWdodE9mZnNldFkgKCgtIGlubmVyUmluZ1dpZHRoSCkgKyAoLSByaW5nQ29udGFjdDBQaXRjaEgpKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsZWZ0SW5uZXJSaW5nID9hbGlnbkhhbmRsZSAibFIiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxMIiA/eFNlcCAoLSBpbm5lclJpbmdGZXRMZWZ0U3BhY2UpID95U2VwICgoLSBpbm5lclJpbmdGZXRCb3RTcGFjZSkgKyAoLSBpbm5lclJpbmdXaWR0aEgpKSkgKGxlZnRJbm5lclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/ZnJvbU9iaiBsZWZ0SW5uZXJSaW5nID9zaXplIHRhcEltcEVuYykpIChsZWZ0SW5uZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyViA/ZnJvbU9iaiBsZWZ0SW5uZXJSaW5nKSkgKHJpZ2h0SW5uZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBpbm5lclJpbmdXaWR0aFYgP2xlbmd0aCBpbm5lclJpbmdMZW5ndGhMUiA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXJWID93aWR0aCByaW5nQ29udGFjdDBXaWR0aFYgP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aFYgP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZVYgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZVYgP2xvd2VyTGVmdE9mZnNldFkgKGlubmVyUmluZ1dpZHRoSCArIHJpbmdDb250YWN0MFBpdGNoSCkgP3VwcGVyUmlnaHRPZmZzZXRZICgoLSBpbm5lclJpbmdXaWR0aEgpICsgKC0gcmluZ0NvbnRhY3QwUGl0Y2hIKSkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogcmlnaHRJbm5lclJpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBmZXREaWZmdXNpb24gP3JlZkhhbmRsZSAibFIiID94U2VwIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgP3lTZXAgKCgtIGlubmVyUmluZ0ZldEJvdFNwYWNlKSArICgtIGlubmVyUmluZ1dpZHRoSCkpKSAocmlnaHRJbm5lclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/ZnJvbU9iaiByaWdodElubmVyUmluZyA/c2l6ZSB0YXBJbXBFbmMpKSAocmlnaHRJbm5lclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXJWID9mcm9tT2JqIHJpZ2h0SW5uZXJSaW5nKSkgKGxvd2VySW5uZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBpbm5lclJpbmdMZW5ndGhUQiA/bGVuZ3RoIGlubmVyUmluZ1dpZHRoSCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXJIID93aWR0aCByaW5nQ29udGFjdDBXaWR0aEggP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aEggP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZUggP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZUggP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QwUGl0Y2hIID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDBQaXRjaEgpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxvd2VySW5uZXJSaW5nID9hbGlnbkhhbmRsZSAidUwiID9yZWZPYmogZmV0RGlmZnVzaW9uID9yZWZIYW5kbGUgImxMIiA/eFNlcCAoKC0gaW5uZXJSaW5nRmV0TGVmdFNwYWNlKSArICgtIGlubmVyUmluZ1dpZHRoVikpID95U2VwICgtIGlubmVyUmluZ0ZldEJvdFNwYWNlKSkgKGxvd2VySW5uZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcEltcGxhbnQgP2Zyb21PYmogbG93ZXJJbm5lclJpbmcgP3NpemUgdGFwSW1wRW5jKSkgKGxvd2VySW5uZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVySCA/ZnJvbU9iaiBsb3dlcklubmVyUmluZykpICh1cHBlcklubmVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggaW5uZXJSaW5nTGVuZ3RoVEIgP2xlbmd0aCBpbm5lclJpbmdXaWR0aEggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVySCA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGhIID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGhIID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2VIID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2VIID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MFBpdGNoSCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QwUGl0Y2hIKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiB1cHBlcklubmVyUmluZyA/YWxpZ25IYW5kbGUgInVMIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJ1TCIgP3hTZXAgKCgtIGlubmVyUmluZ0ZldExlZnRTcGFjZSkgKyAoLSBpbm5lclJpbmdXaWR0aFYpKSA/eVNlcCAoaW5uZXJSaW5nRmV0VG9wU3BhY2UgKyBpbm5lclJpbmdXaWR0aEgpKSAodXBwZXJJbm5lclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwSW1wbGFudCA/ZnJvbU9iaiB1cHBlcklubmVyUmluZyA/c2l6ZSB0YXBJbXBFbmMpKSAodXBwZXJJbm5lclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXJIID9mcm9tT2JqIHVwcGVySW5uZXJSaW5nKSkgdW5sZXNzKHJpbmdzTWV0MU9mZiAobGVmdElubmVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllclYgP3dpZHRoIGlubmVyTWV0MVJpbmdXaWR0aFYgP2xlbmd0aCAoaW5uZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogKC0gaW5uZXJNZXQxUmluZ1dpZHRoSCkpICsgKC0gcmluZ01ldDFPdXRCZXZlbEgpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXJWID93aWR0aCByaW5nQ29udGFjdDFXaWR0aFYgP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aFYgP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZVYgP3NwYWNlWCByaW5nQ29udGFjdDFTcGFjZVYgP2xvd2VyTGVmdE9mZnNldFkgcmluZ0NvbnRhY3QxUGl0Y2hWID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nQ29udGFjdDFQaXRjaFYpID9sb3dlckxlZnRPZmZzZXRYIHJpbmdNZXQxQ29udDFFbmNWID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nTWV0MUNvbnQxRW5jVikpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGVmdElubmVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBsZWZ0SW5uZXJSaW5nID9yZWZIYW5kbGUgImNDIikgKHJpZ2h0SW5uZXJSaW5nTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MUxheWVyViA/d2lkdGggaW5uZXJNZXQxUmluZ1dpZHRoViA/bGVuZ3RoIChpbm5lclJpbmdMZW5ndGhMUiArICgyLjAgKiAoLSBpbm5lck1ldDFSaW5nV2lkdGhIKSkgKyAoLSByaW5nTWV0MU91dEJldmVsSCkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllclYgP3dpZHRoIHJpbmdDb250YWN0MVdpZHRoViA/bGVuZ3RoIHJpbmdDb250YWN0MVdpZHRoViA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlViA/c3BhY2VYIHJpbmdDb250YWN0MVNwYWNlViA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nQ29udGFjdDFQaXRjaFYgP3VwcGVyUmlnaHRPZmZzZXRZICgtIHJpbmdDb250YWN0MVBpdGNoVikgP2xvd2VyTGVmdE9mZnNldFggcmluZ01ldDFDb250MUVuY1YgP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdNZXQxQ29udDFFbmNWKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiByaWdodElubmVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiByaWdodElubmVyUmluZyA/cmVmSGFuZGxlICJjQyIpIChsb3dlcklubmVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllckggP3dpZHRoIChpbm5lclJpbmdMZW5ndGhUQiArICgyLjAgKiAoLSByaW5nTWV0MU91dEJldmVsVikpKSA/bGVuZ3RoIGlubmVyTWV0MVJpbmdXaWR0aEggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MUxheWVySCA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGhIID9sZW5ndGggcmluZ0NvbnRhY3QxV2lkdGhIID9zcGFjZVkgcmluZ0NvbnRhY3QxU3BhY2VIID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2VIID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MVBpdGNoSCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QxUGl0Y2hIKSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nTWV0MUNvbnQxRW5jSCA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ01ldDFDb250MUVuY0gpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxvd2VySW5uZXJSaW5nTWV0MSA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGxvd2VySW5uZXJSaW5nID9yZWZIYW5kbGUgImNDIikgKHVwcGVySW5uZXJSaW5nTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MUxheWVySCA/d2lkdGggKGlubmVyUmluZ0xlbmd0aFRCICsgKDIuMCAqICgtIHJpbmdNZXQxT3V0QmV2ZWxWKSkpID9sZW5ndGggaW5uZXJNZXQxUmluZ1dpZHRoSCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QxTGF5ZXJIID93aWR0aCByaW5nQ29udGFjdDFXaWR0aEggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aEggP3NwYWNlWSByaW5nQ29udGFjdDFTcGFjZUggP3NwYWNlWCByaW5nQ29udGFjdDFTcGFjZUggP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QxUGl0Y2hIID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDFQaXRjaEgpID9sb3dlckxlZnRPZmZzZXRZIHJpbmdNZXQxQ29udDFFbmNIID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nTWV0MUNvbnQxRW5jSCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdXBwZXJJbm5lclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdXBwZXJJbm5lclJpbmcgP3JlZkhhbmRsZSAiY0MiKSBkZWNsYXJlKGlubmVyUmluZ01ldDFQdHNbMThdKSAoaW5uZXJSaW5nV2lkdGhEaWZmSCA9IChpbm5lck1ldDFSaW5nV2lkdGhIIC0gaW5uZXJSaW5nV2lkdGhIKSkgKGlubmVyUmluZ1dpZHRoRGlmZlYgPSAoaW5uZXJNZXQxUmluZ1dpZHRoViAtIGlubmVyUmluZ1dpZHRoVikpICh4ME1ldDEgPSAwLjApICh5ME1ldDEgPSAwLjApIChob2xlRGltWCA9IChmZXREaWZmdXNpb25YZGltICsgaW5uZXJSaW5nRmV0TGVmdFNwYWNlICsgaW5uZXJSaW5nRmV0UmlnaHRTcGFjZSArICgtIGlubmVyUmluZ1dpZHRoRGlmZlYpICsgKDIuMCAqICgtIHJpbmdNZXQxSW5CZXZlbFYpKSkpIChob2xlRGltWSA9ICh3ICsgaW5uZXJSaW5nRmV0VG9wU3BhY2UgKyBpbm5lclJpbmdGZXRCb3RTcGFjZSArICgtIGlubmVyUmluZ1dpZHRoRGlmZkgpICsgKDIuMCAqICgtIHJpbmdNZXQxSW5CZXZlbEgpKSkpICh4ME1ldDEgPSAwLjApICh4Mk1ldDEgPSByaW5nTWV0MU91dEJldmVsVikgKHgzTWV0MSA9ICgoaG9sZURpbVggKyAoMi4wICogcmluZ01ldDFJbkJldmVsVikgKyAoMi4wICogaW5uZXJNZXQxUmluZ1dpZHRoVikpIC0gcmluZ01ldDFPdXRCZXZlbFYpKSAoeDRNZXQxID0gKHgzTWV0MSArIHJpbmdNZXQxT3V0QmV2ZWxWKSkgKHg5TWV0MSA9IChpbm5lck1ldDFSaW5nV2lkdGhWICsgcmluZ01ldDFJbkJldmVsVikpICh4MTBNZXQxID0gKHg5TWV0MSArIGhvbGVEaW1YKSkgKHgxMU1ldDEgPSAoeDEwTWV0MSArIHJpbmdNZXQxSW5CZXZlbFYpKSAoeDE1TWV0MSA9IGlubmVyTWV0MVJpbmdXaWR0aFYpICh5ME1ldDEgPSAoLSByaW5nTWV0MUluQmV2ZWxIKSkgKHkxTWV0MSA9IChob2xlRGltWSArIHJpbmdNZXQxSW5CZXZlbEgpKSAoeTJNZXQxID0gKHkxTWV0MSArIHJpbmdNZXQxT3V0QmV2ZWxIKSkgKHk2TWV0MSA9ICgoLSByaW5nTWV0MUluQmV2ZWxIKSArICgtIHJpbmdNZXQxT3V0QmV2ZWxIKSkpICh5OE1ldDEgPSAwLjApICh5MTJNZXQxID0gaG9sZURpbVkpIChpbm5lclJpbmdNZXQxUHRzWzBdID0gKHgwTWV0MTp5ME1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1sxXSA9ICh4ME1ldDE6eTFNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMl0gPSAoeDJNZXQxOnkyTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzNdID0gKHgzTWV0MTp5Mk1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1s0XSA9ICh4NE1ldDE6eTFNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbNV0gPSAoeDRNZXQxOnkwTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzZdID0gKHgzTWV0MTp5Nk1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1s3XSA9ICh4Mk1ldDE6eTZNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbOF0gPSAoeDE1TWV0MTp5OE1ldDEpKSAoaW5uZXJSaW5nTWV0MVB0c1s5XSA9ICh4OU1ldDE6eTBNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMTBdID0gKHgxME1ldDE6eTBNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMTFdID0gKHgxMU1ldDE6eThNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMTJdID0gKHgxMU1ldDE6eTEyTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzEzXSA9ICh4MTBNZXQxOnkxTWV0MSkpIChpbm5lclJpbmdNZXQxUHRzWzE0XSA9ICh4OU1ldDE6eTFNZXQxKSkgKGlubmVyUmluZ01ldDFQdHNbMTVdID0gKHgxNU1ldDE6eTEyTWV0MSkpIChpbm5lclJpbmdNZXQxUG9pbnRzID0gbGlzdChpbm5lclJpbmdNZXQxUHRzWzBdIGlubmVyUmluZ01ldDFQdHNbMV0gaW5uZXJSaW5nTWV0MVB0c1syXSBpbm5lclJpbmdNZXQxUHRzWzNdIGlubmVyUmluZ01ldDFQdHNbNF0gaW5uZXJSaW5nTWV0MVB0c1s1XSBpbm5lclJpbmdNZXQxUHRzWzZdIGlubmVyUmluZ01ldDFQdHNbN10gaW5uZXJSaW5nTWV0MVB0c1s5XSBpbm5lclJpbmdNZXQxUHRzWzEwXSBpbm5lclJpbmdNZXQxUHRzWzExXSBpbm5lclJpbmdNZXQxUHRzWzEyXSBpbm5lclJpbmdNZXQxUHRzWzEzXSBpbm5lclJpbmdNZXQxUHRzWzE0XSBpbm5lclJpbmdNZXQxUHRzWzE1XSBpbm5lclJpbmdNZXQxUHRzWzhdIGlubmVyUmluZ01ldDFQdHNbOV0gaW5uZXJSaW5nTWV0MVB0c1s3XSkpIChpbm5lclJpbmdNZXQxTGF5ZXIgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgcmluZ01ldDFMYXllckggP3B0cyBpbm5lclJpbmdNZXQxUG9pbnRzKSkgKHJvZEFsaWduID9hbGlnbk9iaiBpbm5lclJpbmdNZXQxTGF5ZXIgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBsZWZ0SW5uZXJSaW5nTWV0MSA/cmVmSGFuZGxlICJjTCIpKSB3aGVuKGh2TW9kZSAoaHZMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaHZMYXllciA/d2lkdGggKGlubmVyUmluZ0xlbmd0aFRCICsgKDIuMCAqIGh2TGF5ZXJEaWZmVGFwRW5jKSkgP2xlbmd0aCAoaW5uZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogaHZMYXllckRpZmZUYXBFbmMpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogaHZMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBsb3dlcklubmVyUmluZyA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gaHZMYXllckRpZmZUYXBFbmMpID95U2VwICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSkpIHdoZW4oKG1vc1R5cGUgPT0gInBtb3MiKSAod2VsbExheWVyV2lkdGggPSAoaW5uZXJSaW5nTGVuZ3RoVEIgKyAoMi4wICogaHZXZWxsRGlmZlRhcEVuYykpKSAod2VsbExheWVyTGVuZ3RoID0gKGlubmVyUmluZ0xlbmd0aExSICsgKDIuMCAqIGh2V2VsbERpZmZUYXBFbmMpKSkgKHdlbGxMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgd2VsbExheWVyID93aWR0aCB3ZWxsTGF5ZXJXaWR0aCA/bGVuZ3RoIHdlbGxMYXllckxlbmd0aCkpIChyb2RBbGlnbiA/YWxpZ25PYmogd2VsbExheWVyRHJhd2luZyA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGxvd2VySW5uZXJSaW5nID9yZWZIYW5kbGUgImxMIiA/eFNlcCAoLSBodldlbGxEaWZmVGFwRW5jKSA/eVNlcCAoLSBodldlbGxEaWZmVGFwRW5jKSkgd2hlbihodk1vZGUgKGh2TGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2TGF5ZXIgP2Zyb21PYmogd2VsbExheWVyRHJhd2luZyA/c2l6ZSAwLjApKSkpKSB3aGVuKChyaW5ncyA9PSAiQm90aCIpIChyaW5nQ29udGFjdDBJbmZvID0gbnRoKDAgT3V0ZXJSaW5nSW50ZXJjb25uZWN0KSkgKHJpbmdDb250YWN0MExheWVyID0gbnRoKDAgcmluZ0NvbnRhY3QwSW5mbykpIChyaW5nQ29udGFjdDBXaWR0aCA9IG50aCgxIHJpbmdDb250YWN0MEluZm8pKSAocmluZ0NvbnRhY3QwU3BhY2UgPSBudGgoMiByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdDb250YWN0MENvbHMgPSBudGgoMyByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdNZXQwTGF5ZXIgPSBudGgoNCByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdNZXQwQ29udDBFbmMgPSBudGgoNSByaW5nQ29udGFjdDBJbmZvKSkgKHJpbmdNZXQwSW5CZXZlbCA9IG50aCg2IHJpbmdDb250YWN0MEluZm8pKSAocmluZ01ldDBPdXRCZXZlbCA9IG50aCg3IHJpbmdDb250YWN0MEluZm8pKSAocmluZ0NvbnRhY3QxSW5mbyA9IG50aCgxIE91dGVyUmluZ0ludGVyY29ubmVjdCkpIChyaW5nQ29udGFjdDFMYXllciA9IG50aCgwIHJpbmdDb250YWN0MUluZm8pKSAocmluZ0NvbnRhY3QxV2lkdGggPSBudGgoMSByaW5nQ29udGFjdDFJbmZvKSkgKHJpbmdDb250YWN0MVNwYWNlID0gbnRoKDIgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nQ29udGFjdDFDb2xzID0gbnRoKDMgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nTWV0MUxheWVyID0gbnRoKDQgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nTWV0MUNvbnQxRW5jID0gbnRoKDUgcmluZ0NvbnRhY3QxSW5mbykpIChyaW5nTWV0MUluQmV2ZWwgPSBudGgoNiByaW5nQ29udGFjdDFJbmZvKSkgKHJpbmdNZXQxT3V0QmV2ZWwgPSBudGgoNyByaW5nQ29udGFjdDFJbmZvKSkgKHJpbmdDb250YWN0MFBpdGNoID0gKHJpbmdDb250YWN0MFdpZHRoICsgcmluZ0NvbnRhY3QwU3BhY2UpKSAob3V0ZXJSaW5nV2lkdGggPSAoKHJpbmdDb250YWN0MFdpZHRoICogcmluZ0NvbnRhY3QwQ29scykgKyAoKHJpbmdDb250YWN0MENvbHMgKyAtMSkgKiByaW5nQ29udGFjdDBTcGFjZSkgKyAoMi4wICogcmluZ01ldDBDb250MEVuYykpKSAob3V0ZXJSaW5nV2lkdGggPSBtYXgob3V0ZXJSaW5nV2lkdGggdXNlck91dGVyUmluZ1dpZHRoKSkgKG91dGVyUmluZ0xlbmd0aExSID0gKGlubmVyUmluZ0xlbmd0aExSICsgKDIuMCAqIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKDIuMCAqIG91dGVyUmluZ1dpZHRoKSkpIChvdXRlclJpbmdMZW5ndGhUQiA9IChpbm5lclJpbmdMZW5ndGhUQiArICgyLjAgKiBPdXRlcklubmVyUmluZ1NwYWNlKSArICgyLjAgKiBvdXRlclJpbmdXaWR0aCkpKSAocmluZ0NvbnRhY3QxUGl0Y2ggPSAocmluZ0NvbnRhY3QxV2lkdGggKyByaW5nQ29udGFjdDFTcGFjZSkpIChvdXRlck1ldDFSaW5nV2lkdGggPSAoKHJpbmdDb250YWN0MVdpZHRoICogcmluZ0NvbnRhY3QxQ29scykgKyAoKHJpbmdDb250YWN0MUNvbHMgKyAtMSkgKiByaW5nQ29udGFjdDFTcGFjZSkgKyAoMi4wICogcmluZ01ldDFDb250MUVuYykpKSB3aGVuKChvdXRlck1ldDFSaW5nV2lkdGggPCByaW5nTWV0MU91dEJldmVsKSAocmluZ01ldDFPdXRCZXZlbCA9IG91dGVyTWV0MVJpbmdXaWR0aCkpIChsZWZ0T3V0ZXJSaW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRhcExheWVyID93aWR0aCBvdXRlclJpbmdXaWR0aCA/bGVuZ3RoIG91dGVyUmluZ0xlbmd0aExSID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDBMYXllciA/d2lkdGggcmluZ0NvbnRhY3QwV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDBXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MFNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QwU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgKG91dGVyUmluZ1dpZHRoICsgcmluZ0NvbnRhY3QwUGl0Y2gpID91cHBlclJpZ2h0T2Zmc2V0WSAoKC0gb3V0ZXJSaW5nV2lkdGgpICsgKC0gcmluZ0NvbnRhY3QwUGl0Y2gpKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsZWZ0T3V0ZXJSaW5nID9hbGlnbkhhbmRsZSAibFIiID9yZWZPYmogbGVmdElubmVyUmluZyA/cmVmSGFuZGxlICJsTCIgP3hTZXAgKC0gT3V0ZXJJbm5lclJpbmdTcGFjZSkgP3lTZXAgKCgtIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKC0gb3V0ZXJSaW5nV2lkdGgpKSkgKGxlZnRPdXRlclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGxhbnQgP2Zyb21PYmogbGVmdE91dGVyUmluZyA/c2l6ZSBkaWZmSW1wRW5jKSkgd2hlbigobW9zVHlwZSA9PSAibm1vcyIpIChsZWZ0T3V0ZXJSaW5nV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogbGVmdE91dGVyUmluZyA/c2l6ZSBodldlbGxEaWZmVGFwRW5jKSkpIChsZWZ0T3V0ZXJSaW5nTWV0MCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MExheWVyID9mcm9tT2JqIGxlZnRPdXRlclJpbmcpKSAocmlnaHRPdXRlclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIG91dGVyUmluZ1dpZHRoID9sZW5ndGggb3V0ZXJSaW5nTGVuZ3RoTFIgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVyID93aWR0aCByaW5nQ29udGFjdDBXaWR0aCA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2UgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WSAob3V0ZXJSaW5nV2lkdGggKyByaW5nQ29udGFjdDBQaXRjaCkgP3VwcGVyUmlnaHRPZmZzZXRZICgoLSBvdXRlclJpbmdXaWR0aCkgKyAoLSByaW5nQ29udGFjdDBQaXRjaCkpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIHJpZ2h0T3V0ZXJSaW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogcmlnaHRJbm5lclJpbmcgP3JlZkhhbmRsZSAibFIiID94U2VwIE91dGVySW5uZXJSaW5nU3BhY2UgP3lTZXAgKCgtIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKC0gb3V0ZXJSaW5nV2lkdGgpKSkgKHJpZ2h0T3V0ZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIHJpZ2h0T3V0ZXJSaW5nID9zaXplIGRpZmZJbXBFbmMpKSB3aGVuKChtb3NUeXBlID09ICJubW9zIikgKHJpZ2h0T3V0ZXJSaW5nV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogcmlnaHRPdXRlclJpbmcgP3NpemUgaHZXZWxsRGlmZlRhcEVuYykpKSAocmlnaHRPdXRlclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXIgP2Zyb21PYmogcmlnaHRPdXRlclJpbmcpKSAobG93ZXJPdXRlclJpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgdGFwTGF5ZXIgP3dpZHRoIG91dGVyUmluZ0xlbmd0aFRCID9sZW5ndGggb3V0ZXJSaW5nV2lkdGggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MExheWVyID93aWR0aCByaW5nQ29udGFjdDBXaWR0aCA/bGVuZ3RoIHJpbmdDb250YWN0MFdpZHRoID9zcGFjZVkgcmluZ0NvbnRhY3QwU3BhY2UgP3NwYWNlWCByaW5nQ29udGFjdDBTcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nQ29udGFjdDBQaXRjaCA/dXBwZXJSaWdodE9mZnNldFggKC0gcmluZ0NvbnRhY3QwUGl0Y2gpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxvd2VyT3V0ZXJSaW5nID9hbGlnbkhhbmRsZSAidUMiID9yZWZPYmogbG93ZXJJbm5lclJpbmcgP3JlZkhhbmRsZSAibEMiID95U2VwICgtIE91dGVySW5uZXJSaW5nU3BhY2UpKSAobG93ZXJPdXRlclJpbmdJbXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZGlmZkltcGxhbnQgP2Zyb21PYmogbG93ZXJPdXRlclJpbmcgP3NpemUgZGlmZkltcEVuYykpIHdoZW4oKG1vc1R5cGUgPT0gIm5tb3MiKSAobG93ZXJPdXRlclJpbmdXZWxsID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHdlbGxMYXllciA/ZnJvbU9iaiBsb3dlck91dGVyUmluZyA/c2l6ZSBodldlbGxEaWZmVGFwRW5jKSkpIChsb3dlck91dGVyUmluZ01ldDAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDBMYXllciA/ZnJvbU9iaiBsb3dlck91dGVyUmluZykpICh1cHBlck91dGVyUmluZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB0YXBMYXllciA/d2lkdGggb3V0ZXJSaW5nTGVuZ3RoVEIgP2xlbmd0aCBvdXRlclJpbmdXaWR0aCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgcmluZ0NvbnRhY3QwTGF5ZXIgP3dpZHRoIHJpbmdDb250YWN0MFdpZHRoID9sZW5ndGggcmluZ0NvbnRhY3QwV2lkdGggP3NwYWNlWSByaW5nQ29udGFjdDBTcGFjZSA/c3BhY2VYIHJpbmdDb250YWN0MFNwYWNlID9sb3dlckxlZnRPZmZzZXRYIHJpbmdDb250YWN0MFBpdGNoID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nQ29udGFjdDBQaXRjaCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdXBwZXJPdXRlclJpbmcgP2FsaWduSGFuZGxlICJsQyIgP3JlZk9iaiB1cHBlcklubmVyUmluZyA/cmVmSGFuZGxlICJ1QyIgP3lTZXAgT3V0ZXJJbm5lclJpbmdTcGFjZSkgKHVwcGVyT3V0ZXJSaW5nSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZJbXBsYW50ID9mcm9tT2JqIHVwcGVyT3V0ZXJSaW5nID9zaXplIGRpZmZJbXBFbmMpKSB3aGVuKChtb3NUeXBlID09ICJubW9zIikgKHVwcGVyT3V0ZXJSaW5nV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB3ZWxsTGF5ZXIgP2Zyb21PYmogdXBwZXJPdXRlclJpbmcgP3NpemUgaHZXZWxsRGlmZlRhcEVuYykpKSAodXBwZXJPdXRlclJpbmdNZXQwID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHJpbmdNZXQwTGF5ZXIgP2Zyb21PYmogdXBwZXJPdXRlclJpbmcpKSB1bmxlc3MocmluZ3NNZXQxT2ZmIChsZWZ0T3V0ZXJSaW5nTWV0MSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciByaW5nTWV0MUxheWVyID93aWR0aCBvdXRlck1ldDFSaW5nV2lkdGggP2xlbmd0aCAob3V0ZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogKC0gb3V0ZXJNZXQxUmluZ1dpZHRoKSkgKyAoLSByaW5nTWV0MU91dEJldmVsKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHJpbmdDb250YWN0MUxheWVyID93aWR0aCByaW5nQ29udGFjdDFXaWR0aCA/bGVuZ3RoIHJpbmdDb250YWN0MVdpZHRoID9zcGFjZVkgcmluZ0NvbnRhY3QxU3BhY2UgP3NwYWNlWCByaW5nQ29udGFjdDFTcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nQ29udGFjdDFQaXRjaCA/dXBwZXJSaWdodE9mZnNldFkgKC0gcmluZ0NvbnRhY3QxUGl0Y2gpID9sb3dlckxlZnRPZmZzZXRYIHJpbmdNZXQxQ29udDFFbmMgP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdNZXQxQ29udDFFbmMpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxlZnRPdXRlclJpbmdNZXQxID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbGVmdE91dGVyUmluZyA/cmVmSGFuZGxlICJjQyIpIChyaWdodE91dGVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllciA/d2lkdGggb3V0ZXJNZXQxUmluZ1dpZHRoID9sZW5ndGggKG91dGVyUmluZ0xlbmd0aExSICsgKDIuMCAqICgtIG91dGVyTWV0MVJpbmdXaWR0aCkpICsgKC0gcmluZ01ldDFPdXRCZXZlbCkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllciA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgcmluZ0NvbnRhY3QxUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRZICgtIHJpbmdDb250YWN0MVBpdGNoKSA/bG93ZXJMZWZ0T2Zmc2V0WCByaW5nTWV0MUNvbnQxRW5jID91cHBlclJpZ2h0T2Zmc2V0WCAoLSByaW5nTWV0MUNvbnQxRW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiByaWdodE91dGVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiByaWdodE91dGVyUmluZyA/cmVmSGFuZGxlICJjQyIpIChsb3dlck91dGVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllciA/d2lkdGggKG91dGVyUmluZ0xlbmd0aFRCICsgKC0gb3V0ZXJNZXQxUmluZ1dpZHRoKSArICgyLjAgKiAoLSByaW5nTWV0MU91dEJldmVsKSkpID9sZW5ndGggb3V0ZXJNZXQxUmluZ1dpZHRoID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllciA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2UgP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QxUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MVBpdGNoKSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nTWV0MUNvbnQxRW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nTWV0MUNvbnQxRW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsb3dlck91dGVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiBsb3dlck91dGVyUmluZyA/cmVmSGFuZGxlICJjQyIpICh1cHBlck91dGVyUmluZ01ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgcmluZ01ldDFMYXllciA/d2lkdGggKG91dGVyUmluZ0xlbmd0aFRCICsgKC0gb3V0ZXJNZXQxUmluZ1dpZHRoKSArICgyLjAgKiAoLSByaW5nTWV0MU91dEJldmVsKSkpID9sZW5ndGggb3V0ZXJNZXQxUmluZ1dpZHRoID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciByaW5nQ29udGFjdDFMYXllciA/d2lkdGggcmluZ0NvbnRhY3QxV2lkdGggP2xlbmd0aCByaW5nQ29udGFjdDFXaWR0aCA/c3BhY2VZIHJpbmdDb250YWN0MVNwYWNlID9zcGFjZVggcmluZ0NvbnRhY3QxU3BhY2UgP2xvd2VyTGVmdE9mZnNldFggcmluZ0NvbnRhY3QxUGl0Y2ggP3VwcGVyUmlnaHRPZmZzZXRYICgtIHJpbmdDb250YWN0MVBpdGNoKSA/bG93ZXJMZWZ0T2Zmc2V0WSByaW5nTWV0MUNvbnQxRW5jID91cHBlclJpZ2h0T2Zmc2V0WSAoLSByaW5nTWV0MUNvbnQxRW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiB1cHBlck91dGVyUmluZ01ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiB1cHBlck91dGVyUmluZyA/cmVmSGFuZGxlICJjQyIpIGRlY2xhcmUob3V0ZXJSaW5nTWV0MVB0c1sxOF0pIChvdXRlclJpbmdXaWR0aERpZmYgPSAob3V0ZXJNZXQxUmluZ1dpZHRoIC0gb3V0ZXJSaW5nV2lkdGgpKSAoeDBNZXQxID0gMC4wKSAoeTBNZXQxID0gMC4wKSAoaG9sZURpbVggPSAoZmV0RGlmZnVzaW9uWGRpbSArIGlubmVyUmluZ0ZldExlZnRTcGFjZSArIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgKyAoLSBvdXRlclJpbmdXaWR0aERpZmYpICsgKDIuMCAqIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKDIuMCAqIGlubmVyUmluZ1dpZHRoVikgKyAoMi4wICogKC0gcmluZ01ldDFJbkJldmVsKSkpKSAoaG9sZURpbVkgPSAodyArIGlubmVyUmluZ0ZldFRvcFNwYWNlICsgaW5uZXJSaW5nRmV0Qm90U3BhY2UgKyAoLSBvdXRlclJpbmdXaWR0aERpZmYpICsgKDIuMCAqIE91dGVySW5uZXJSaW5nU3BhY2UpICsgKDIuMCAqIGlubmVyUmluZ1dpZHRoSCkgKyAoMi4wICogKC0gcmluZ01ldDFJbkJldmVsKSkpKSAoeDBNZXQxID0gMC4wKSAoeDJNZXQxID0gcmluZ01ldDFPdXRCZXZlbCkgKHgzTWV0MSA9IChob2xlRGltWCArICgyLjAgKiByaW5nTWV0MUluQmV2ZWwpICsgcmluZ01ldDFPdXRCZXZlbCkpICh4NE1ldDEgPSAoeDNNZXQxICsgcmluZ01ldDFPdXRCZXZlbCkpICh4OU1ldDEgPSAocmluZ01ldDFPdXRCZXZlbCArIHJpbmdNZXQxSW5CZXZlbCkpICh4MTBNZXQxID0gKHg5TWV0MSArIGhvbGVEaW1YKSkgKHkwTWV0MSA9ICgtIHJpbmdNZXQxSW5CZXZlbCkpICh5MU1ldDEgPSAoaG9sZURpbVkgKyByaW5nTWV0MUluQmV2ZWwpKSAoeTJNZXQxID0gKHkxTWV0MSArIHJpbmdNZXQxT3V0QmV2ZWwpKSAoeTZNZXQxID0gKCgtIHJpbmdNZXQxSW5CZXZlbCkgKyAoLSByaW5nTWV0MU91dEJldmVsKSkpICh5OE1ldDEgPSAwLjApICh5MTJNZXQxID0gaG9sZURpbVkpIChvdXRlclJpbmdNZXQxUHRzWzBdID0gKHgwTWV0MTp5ME1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxXSA9ICh4ME1ldDE6eTFNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMl0gPSAoeDJNZXQxOnkyTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzNdID0gKHgzTWV0MTp5Mk1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1s0XSA9ICh4NE1ldDE6eTFNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbNV0gPSAoeDRNZXQxOnkwTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzZdID0gKHgzTWV0MTp5Nk1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1s3XSA9ICh4Mk1ldDE6eTZNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbOF0gPSAoeDJNZXQxOnk4TWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzldID0gKHg5TWV0MTp5ME1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxMF0gPSAoeDEwTWV0MTp5ME1ldDEpKSAob3V0ZXJSaW5nTWV0MVB0c1sxMV0gPSAoeDNNZXQxOnk4TWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzEyXSA9ICh4M01ldDE6eTEyTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzEzXSA9ICh4MTBNZXQxOnkxTWV0MSkpIChvdXRlclJpbmdNZXQxUHRzWzE0XSA9ICh4OU1ldDE6eTFNZXQxKSkgKG91dGVyUmluZ01ldDFQdHNbMTVdID0gKHgyTWV0MTp5MTJNZXQxKSkgKG91dGVyUmluZ01ldDFQb2ludHMgPSBsaXN0KG91dGVyUmluZ01ldDFQdHNbMF0gb3V0ZXJSaW5nTWV0MVB0c1sxXSBvdXRlclJpbmdNZXQxUHRzWzJdIG91dGVyUmluZ01ldDFQdHNbM10gb3V0ZXJSaW5nTWV0MVB0c1s0XSBvdXRlclJpbmdNZXQxUHRzWzVdIG91dGVyUmluZ01ldDFQdHNbNl0gb3V0ZXJSaW5nTWV0MVB0c1s3XSBvdXRlclJpbmdNZXQxUHRzWzldIG91dGVyUmluZ01ldDFQdHNbMTBdIG91dGVyUmluZ01ldDFQdHNbMTFdIG91dGVyUmluZ01ldDFQdHNbMTJdIG91dGVyUmluZ01ldDFQdHNbMTNdIG91dGVyUmluZ01ldDFQdHNbMTRdIG91dGVyUmluZ01ldDFQdHNbMTVdIG91dGVyUmluZ01ldDFQdHNbOF0gb3V0ZXJSaW5nTWV0MVB0c1s5XSBvdXRlclJpbmdNZXQxUHRzWzddKSkgKG91dGVyUmluZ01ldDFMYXllciA9IChyb2RDcmVhdGVQb2x5Z29uID9sYXllciByaW5nTWV0MUxheWVyID9wdHMgb3V0ZXJSaW5nTWV0MVBvaW50cykpIChyb2RBbGlnbiA/YWxpZ25PYmogb3V0ZXJSaW5nTWV0MUxheWVyID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogbGVmdE91dGVyUmluZ01ldDEgP3JlZkhhbmRsZSAiY0wiID94U2VwICgob3V0ZXJNZXQxUmluZ1dpZHRoIC0gcmluZ01ldDFPdXRCZXZlbCkgKiAwLjUpKSkgY29uZCgoKG1vc1R5cGUgPT0gIm5tb3MiKSAoaWRMYXllcldpZHRoID0gKG91dGVyUmluZ0xlbmd0aFRCICsgKDIuMCAqIGh2V2VsbERpZmZUYXBFbmMpKSkgKGlkTGF5ZXJMZW5ndGggPSAob3V0ZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogaHZXZWxsRGlmZlRhcEVuYykpKSB3aGVuKGh2TW9kZSAoaHZMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaHZMYXllciA/d2lkdGggaWRMYXllcldpZHRoID9sZW5ndGggaWRMYXllckxlbmd0aCkpIChyb2RBbGlnbiA/YWxpZ25PYmogaHZMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiBsb3dlck91dGVyUmluZ1dlbGwgP3JlZkhhbmRsZSAibEwiKSkpICgobW9zVHlwZSA9PSAicG1vcyIpIChpZExheWVyV2lkdGggPSAob3V0ZXJSaW5nTGVuZ3RoVEIgKyAoMi4wICogaHZMYXllckRpZmZUYXBFbmMpKSkgKGlkTGF5ZXJMZW5ndGggPSAob3V0ZXJSaW5nTGVuZ3RoTFIgKyAoMi4wICogaHZMYXllckRpZmZUYXBFbmMpKSkgd2hlbihodk1vZGUgKGh2TGF5ZXJEcmF3aW5nID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2TGF5ZXIgP3dpZHRoIGlkTGF5ZXJXaWR0aCA/bGVuZ3RoIGlkTGF5ZXJMZW5ndGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIGh2TGF5ZXJEcmF3aW5nID9hbGlnbkhhbmRsZSAibEwiID9yZWZPYmogbG93ZXJPdXRlclJpbmcgP3JlZkhhbmRsZSAibEwiID94U2VwICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSA/eVNlcCAoLSBodkxheWVyRGlmZlRhcEVuYykpKSkgKHQpKSAoaWRMYXllckRyYXdpbmcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgaWRMYXllciA/d2lkdGggaWRMYXllcldpZHRoID9sZW5ndGggaWRMYXllckxlbmd0aCkpIChyb2RBbGlnbiA/YWxpZ25PYmogaWRMYXllckRyYXdpbmcgP2FsaWduSGFuZGxlICJsTCIgP3JlZk9iaiAoaHZMYXllckRyYXdpbmcgfHwgbG93ZXJPdXRlclJpbmdXZWxsIHx8IGxvd2VyT3V0ZXJSaW5nSW1wKSA/cmVmSGFuZGxlICJsTCIpKSB3aGVuKChodk1vZGUgJiYgKHJpbmdzID09ICJOb25lIikpIChodkxheWVyRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBodkxheWVyID93aWR0aCAoZmV0RGlmZnVzaW9uWGRpbSArIG1heChpbm5lclJpbmdGZXRSaWdodFNwYWNlIGh2TGF5ZXJEaWZmVGFwRW5jKSArIG1heChpbm5lclJpbmdGZXRMZWZ0U3BhY2UgaHZMYXllckRpZmZUYXBFbmMpKSA/bGVuZ3RoICh3ICsgbWF4KGlubmVyUmluZ0ZldEJvdFNwYWNlIGh2TGF5ZXJEaWZmVGFwRW5jKSArIG1heChpbm5lclJpbmdGZXRUb3BTcGFjZSBodkxheWVyRGlmZlRhcEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBodkxheWVyRHJhd2luZyA/YWxpZ25IYW5kbGUgImxMIiA/cmVmT2JqIGZldERpZmZ1c2lvbiA/cmVmSGFuZGxlICJsTCIgP3hTZXAgbWluKCgtIGlubmVyUmluZ0ZldExlZnRTcGFjZSkgKC0gaHZMYXllckRpZmZUYXBFbmMpKSA/eVNlcCBtaW4oKC0gaW5uZXJSaW5nRmV0Qm90U3BhY2UpICgtIGh2TGF5ZXJEaWZmVGFwRW5jKSkpKSB1bmxlc3MoKHJpbmdzID09ICJOb25lIikgKGxlZnRYQ29vcmQgPSAoY2FyKGVzZENlbGxPcmlnaW4pIC0gKGlubmVyUmluZ0ZldExlZnRTcGFjZSArIChpbm5lclJpbmdXaWR0aFYgLyAyKSArIGRpZmZDb250YWN0MFhlbmMgKyBtU291cmNlUGluT2Zmc2V0ICsgc3JjUGluV2lkdGgpKSkgKHJpZ2h0WENvb3JkID0gKGNhcihlc2RDZWxsT3JpZ2luKSArIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgKyAoaW5uZXJSaW5nV2lkdGhWIC8gMikgKyAoZmV0RGlmZnVzaW9uWGRpbSAtIGRpZmZDb250YWN0MFhlbmMgLSBtU291cmNlUGluT2Zmc2V0IC0gc3JjUGluV2lkdGgpKSkgKGxhYmVsWUNvb3JkID0gKChpbm5lclJpbmdMZW5ndGhMUiAvIDIpIC0gaW5uZXJSaW5nRmV0Qm90U3BhY2UpKSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChsZWZ0WENvb3JkICgwLjkgKyBsYWJlbFlDb29yZCkpICJDUklUSUNBTCBUTyIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QobGVmdFhDb29yZCAoMC4zICsgbGFiZWxZQ29vcmQpKSAiQ09OTkVDVCBXSURFIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgMC40KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChsZWZ0WENvb3JkIChsYWJlbFlDb29yZCAtIDAuMykpICJTSURFUyBPRiIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QobGVmdFhDb29yZCAobGFiZWxZQ29vcmQgLSAwLjkpKSAiR1VBUkRSSU5HIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgMC40KSAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdChyaWdodFhDb29yZCAoMC45ICsgbGFiZWxZQ29vcmQpKSAiQ1JJVElDQUwgVE8iICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KHJpZ2h0WENvb3JkICgwLjMgKyBsYWJlbFlDb29yZCkpICJDT05ORUNUIFdJREUiICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiAwLjQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KHJpZ2h0WENvb3JkIChsYWJlbFlDb29yZCAtIDAuMykpICJTSURFUyBPRiIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QocmlnaHRYQ29vcmQgKGxhYmVsWUNvb3JkIC0gMC45KSkgIkdVQVJEUklORyIgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIDAuNCkpKQAoZGlmZkxheWVyIGdhdGVMYXllciBwZ2F0ZUxheWVyIHdlbGxMYXllciBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIHRhcExheWVyIHRhcEltcGxhbnQgdGFwSW1wRW5jIGlkTGF5ZXIgaHZMYXllciBodldlbGxEaWZmVGFwRW5jIGh2TGF5ZXJEaWZmVGFwRW5jIGZsYXJlSW5EaWZmIGZsYXJlT3V0RGlmZiBmbGFyZUV4dCBkcm5JbnRlcmNvbm5lY3Qgc3JjSW50ZXJjb25uZWN0IGRpZmZDb250YWN0MFllbmMgZGlmZkNvbnRhY3QwWGVuYyBJbm5lclJpbmdJbnRlcmNvbm5lY3RIb3JpeiBJbm5lclJpbmdJbnRlcmNvbm5lY3RWZXJ0IE91dGVyUmluZ0ludGVyY29ubmVjdCBidXR0aW5nVGFwV2lkdGggYnV0dGluZ1RhcENvbnQwWGVuYyBmZXREaWZmSW5uZXJSaW5nU3BhY2UgT3V0ZXJJbm5lclJpbmdTcGFjZSBtb3NUeXBlIGxhYmVsTGF5ZXIgbGFiZWxXaWR0aCBldmVuT25seSBzaW5nbGVGbGFyZSBtaW5Jbm5lclJpbmdGZXRFeHRyYVJpZ2h0U3BhY2UgbWluSW5uZXJSaW5nRmV0RXh0cmFMZWZ0U3BhY2UgbWluSW5uZXJSaW5nRmV0RXh0cmFUb3BTcGFjZSBtaW5Jbm5lclJpbmdGZXRFeHRyYUJvdFNwYWNlIG1pbmltdW1NIHNyY0dhdGVDb250YWN0U3BhY2VNaW4gc3JjR2F0ZUNvbnRhY3RTcGFjZU1heCBidXR0aW5nVGFwIHcgbCBtIGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSBpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSBpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgaHZNb2RlIHJpbmdzIHJpbmdzTWV0MU9mZiB1c2VyT3V0ZXJSaW5nV2lkdGggaHNwaWNlTW9kZWwgaHNwaWNlTW9kZWxDaG9pY2VzIHNyY0dhdGVDb250YWN0U3BhY2UgZHJuR2F0ZUNvbnRhY3RTcGFjZVBhcmFtcyBkcm5HYXRlQ29udGFjdFNwYWNlVmFsdWUgZHJuR2F0ZUNvbnRhY3RTcGFjZU5hbWUgbWV0MVdpZHRoRCBkcm5HYXRlQ29udGFjdFNwYWNlIG1pbmltdW1Ub3RhbFdpZHRoIGVzZENlbGxPcmlnaW4gaWRMYXllckVuZEVuYyBodkxheWVyRW5kRW5jIGlubmVyUmluZ0ZldFJpZ2h0U3BhY2UgaW5uZXJSaW5nRmV0TGVmdFNwYWNlIGlubmVyUmluZ0ZldFRvcFNwYWNlIGlubmVyUmluZ0ZldEJvdFNwYWNlIGNvbnRhY3QwSW5mb1MgY29udGFjdDBMYXllclMgY29udGFjdDBXaWR0aFMgY29udGFjdDBTcGFjZVMgY29udGFjdDBDb2xzUyBtZXQwTGF5ZXJTIG1ldDBXaWR0aFMgbWV0MFNwYWNlUyBtZXQwQmV2ZWxTIGNvbnRhY3QxSW5mb1MgY29udGFjdDFMYXllclMgY29udGFjdDFXaWR0aFMgY29udGFjdDFTcGFjZVMgY29udGFjdDFDb2xzUyBtZXQxTGF5ZXJTIG1ldDFXaWR0aFMgbWV0MVNwYWNlUyBtZXQxQmV2ZWxTIGNvbnRhY3QwSW5mb0QgY29udGFjdDBMYXllckQgY29udGFjdDBXaWR0aEQgY29udGFjdDBTcGFjZUQgY29udGFjdDBDb2xzRCBtZXQwTGF5ZXJEIG1ldDBXaWR0aEQgbWV0MFNwYWNlRCBtZXQwQmV2ZWxEIGNvbnRhY3QxSW5mb0QgY29udGFjdDFMYXllckQgY29udGFjdDFXaWR0aEQgY29udGFjdDFTcGFjZUQgY29udGFjdDFDb2xzRCBtZXQxTGF5ZXJEIG1ldDFTcGFjZUQgbWV0MUJldmVsRCBzcmNQaW5XaWR0aCBkcm5QaW5XaWR0aCBtU291cmNlUGluT2Zmc2V0IG1EcmFpblBpbk9mZnNldCBzaGFyZWRTb3VyY2VXaWR0aCBzaGFyZWREcmFpbldpZHRoIGZpcnN0U291cmNlUGluIGNvbnRhY3QxUGl0Y2hTIGNvbnRhY3QxUGl0Y2hEIG1ldDBQaW5XaWR0aFMgbWV0MFBpbldpZHRoRCBmaXJzdE1ldDBQaW4gZmlyc3RNZXQwRHJhd2luZyBtZXQxRHJhd2luZ1B0c1MgbWV0MURyYXdpbmdQdHNEIHgwTWV0MSB5ME1ldDEgZmlyc3RNZXQxcG9pbnRzUyBpIGZpcnN0TWV0MXBvaW50c0QgZmlyc3RNZXQxRHJhd2luZyBmaXJzdERyYWluUGluIG9uZURyYWluTWV0MFBpbiBkcmFpbk1ldDBEcmF3aW5nIGRyYWluTWV0MURyYXdpbmcgc291cmNlUGluc051bWJlciBkcmFpblBpbnNOdW1iZXIgc291cmNlUGluc1NwYWNlIHNvdXJjZVBpbnNPcmlnaW5YIHNvdXJjZVBpbnNPcmlnaW5PZmZzZXQgbiBzb3VyY2VQaW5zT3JpZ2luIHNvdXJjZVBpbnMgc291cmNlTWV0MFBpbnMgc291cmNlTWV0MERyYXdpbmcgc291cmNlTWV0MURyYXdpbmcgZHJhaW5QaW5zU3BhY2UgZHJhaW5QaW5zT3JpZ2luWCBkcmFpblBpbnNPcmlnaW5PZmZzZXQgZHJhaW5QaW5zT3JpZ2luIGRyYWluUGlucyBkcmFpbk1ldDBQaW5zIGZsYXJlWSBvZGRmbGFyZUdhdGVQdHMgeG8wIHhvMiB4bzQgZXZlbmZsYXJlR2F0ZVB0cyB4ZTAgeGUyIHhlNiBwb2ludExpc3QxIGZpcnN0R2F0ZURyYXdpbmcgZmxhcmVHYXRlUHRzIHgwIHgyIHg2IHg4IG9kZEdhdGVPZmZzZXQgb2RkR2F0ZURyYXdpbmcgcG9pbnRMaXN0MiBldmVuR2F0ZU9mZnNldCBldmVuR2F0ZURyYXdpbmcgb2RkUEdhdGVEcmF3aW5nIGV2ZW5QR2F0ZURyYXdpbmcgZmV0RGlmZnVzaW9uWGRpbSBmZXREaWZmdXNpb24gZmlyc3RTb3VyY2VUYXAgZmlyc3RTb3VyY2VUYXBNZXQwIGZpcnN0U291cmNlVGFwTWV0MSBmaXJzdFNvdXJjZVRhcEltcCBsYXN0U291cmNlVGFwIGxhc3RTb3VyY2VUYXBNZXQwIGxhc3RTb3VyY2VUYXBNZXQxIGZldERpZmZJbXAgbGFzdFNvdXJjZVRhcEltcCB3ZWxsTGF5ZXJEcmF3aW5nIHJpbmdDb250YWN0MEluZm9IIHJpbmdDb250YWN0MExheWVySCByaW5nQ29udGFjdDBXaWR0aEggcmluZ0NvbnRhY3QwU3BhY2VIIHJpbmdDb250YWN0MENvbHNIIHJpbmdNZXQwTGF5ZXJIIHJpbmdNZXQwQ29udDBFbmNIIHJpbmdNZXQwSW5CZXZlbEggcmluZ01ldDBPdXRCZXZlbEggcmluZ0NvbnRhY3QxSW5mb0ggcmluZ0NvbnRhY3QxTGF5ZXJIIHJpbmdDb250YWN0MVdpZHRoSCByaW5nQ29udGFjdDFTcGFjZUggcmluZ0NvbnRhY3QxQ29sc0ggcmluZ01ldDFMYXllckggcmluZ01ldDFDb250MUVuY0ggcmluZ01ldDFJbkJldmVsSCByaW5nTWV0MU91dEJldmVsSCByaW5nQ29udGFjdDBJbmZvViByaW5nQ29udGFjdDBMYXllclYgcmluZ0NvbnRhY3QwV2lkdGhWIHJpbmdDb250YWN0MFNwYWNlViByaW5nQ29udGFjdDBDb2xzViByaW5nTWV0MExheWVyViByaW5nTWV0MENvbnQwRW5jViByaW5nTWV0MEluQmV2ZWxWIHJpbmdNZXQwT3V0QmV2ZWxWIHJpbmdDb250YWN0MUluZm9WIHJpbmdDb250YWN0MUxheWVyViByaW5nQ29udGFjdDFXaWR0aFYgcmluZ0NvbnRhY3QxU3BhY2VWIHJpbmdDb250YWN0MUNvbHNWIHJpbmdNZXQxTGF5ZXJWIHJpbmdNZXQxQ29udDFFbmNWIHJpbmdNZXQxSW5CZXZlbFYgcmluZ01ldDFPdXRCZXZlbFYgcmluZ0NvbnRhY3QwUGl0Y2hIIHJpbmdDb250YWN0MFBpdGNoViBpbm5lclJpbmdXaWR0aEggaW5uZXJSaW5nV2lkdGhWIGlubmVyUmluZ0xlbmd0aExSIGlubmVyUmluZ0xlbmd0aFRCIHJpbmdDb250YWN0MVBpdGNoSCByaW5nQ29udGFjdDFQaXRjaFYgaW5uZXJNZXQxUmluZ1dpZHRoSCBpbm5lck1ldDFSaW5nV2lkdGhWIGxlZnRJbm5lclJpbmcgbGVmdElubmVyUmluZ0ltcCBsZWZ0SW5uZXJSaW5nTWV0MCByaWdodElubmVyUmluZyByaWdodElubmVyUmluZ0ltcCByaWdodElubmVyUmluZ01ldDAgbG93ZXJJbm5lclJpbmcgbG93ZXJJbm5lclJpbmdJbXAgbG93ZXJJbm5lclJpbmdNZXQwIHVwcGVySW5uZXJSaW5nIHVwcGVySW5uZXJSaW5nSW1wIHVwcGVySW5uZXJSaW5nTWV0MCBsZWZ0SW5uZXJSaW5nTWV0MSByaWdodElubmVyUmluZ01ldDEgbG93ZXJJbm5lclJpbmdNZXQxIHVwcGVySW5uZXJSaW5nTWV0MSBpbm5lclJpbmdNZXQxUHRzIGlubmVyUmluZ1dpZHRoRGlmZkggaW5uZXJSaW5nV2lkdGhEaWZmViBob2xlRGltWCBob2xlRGltWSB4Mk1ldDEgeDNNZXQxIHg0TWV0MSB4OU1ldDEgeDEwTWV0MSB4MTFNZXQxIHgxNU1ldDEgeTFNZXQxIHkyTWV0MSB5Nk1ldDEgeThNZXQxIHkxMk1ldDEgaW5uZXJSaW5nTWV0MVBvaW50cyBpbm5lclJpbmdNZXQxTGF5ZXIgaHZMYXllckRyYXdpbmcgd2VsbExheWVyV2lkdGggd2VsbExheWVyTGVuZ3RoIHJpbmdDb250YWN0MEluZm8gcmluZ0NvbnRhY3QwTGF5ZXIgcmluZ0NvbnRhY3QwV2lkdGggcmluZ0NvbnRhY3QwU3BhY2UgcmluZ0NvbnRhY3QwQ29scyByaW5nTWV0MExheWVyIHJpbmdNZXQwQ29udDBFbmMgcmluZ01ldDBJbkJldmVsIHJpbmdNZXQwT3V0QmV2ZWwgcmluZ0NvbnRhY3QxSW5mbyByaW5nQ29udGFjdDFMYXllciByaW5nQ29udGFjdDFXaWR0aCByaW5nQ29udGFjdDFTcGFjZSByaW5nQ29udGFjdDFDb2xzIHJpbmdNZXQxTGF5ZXIgcmluZ01ldDFDb250MUVuYyByaW5nTWV0MUluQmV2ZWwgcmluZ01ldDFPdXRCZXZlbCByaW5nQ29udGFjdDBQaXRjaCBvdXRlclJpbmdXaWR0aCBvdXRlclJpbmdMZW5ndGhMUiBvdXRlclJpbmdMZW5ndGhUQiByaW5nQ29udGFjdDFQaXRjaCBvdXRlck1ldDFSaW5nV2lkdGggbGVmdE91dGVyUmluZyBsZWZ0T3V0ZXJSaW5nSW1wIGxlZnRPdXRlclJpbmdXZWxsIGxlZnRPdXRlclJpbmdNZXQwIHJpZ2h0T3V0ZXJSaW5nIHJpZ2h0T3V0ZXJSaW5nSW1wIHJpZ2h0T3V0ZXJSaW5nV2VsbCByaWdodE91dGVyUmluZ01ldDAgbG93ZXJPdXRlclJpbmcgbG93ZXJPdXRlclJpbmdJbXAgbG93ZXJPdXRlclJpbmdXZWxsIGxvd2VyT3V0ZXJSaW5nTWV0MCB1cHBlck91dGVyUmluZyB1cHBlck91dGVyUmluZ0ltcCB1cHBlck91dGVyUmluZ1dlbGwgdXBwZXJPdXRlclJpbmdNZXQwIGxlZnRPdXRlclJpbmdNZXQxIHJpZ2h0T3V0ZXJSaW5nTWV0MSBsb3dlck91dGVyUmluZ01ldDEgdXBwZXJPdXRlclJpbmdNZXQxIG91dGVyUmluZ01ldDFQdHMgb3V0ZXJSaW5nV2lkdGhEaWZmIG91dGVyUmluZ01ldDFQb2ludHMgb3V0ZXJSaW5nTWV0MUxheWVyIGlkTGF5ZXJXaWR0aCBpZExheWVyTGVuZ3RoIGlkTGF5ZXJEcmF3aW5nIGxlZnRYQ29vcmQgcmlnaHRYQ29vcmQgbGFiZWxZQ29vcmQpACgoYnV0dGluZ1RhcCAiRkFMU0UiKSAodyAwLjApIChsIDAuMCkgKG0gMCkgKGlubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSAwLjApIChpbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSAwLjApIChpbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIDAuMCkgKGlubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgMC4wKSAoaHZNb2RlIG5pbCkgKHJpbmdzICJCb3RoIikgKHJpbmdzTWV0MU9mZiBuaWwpICh1c2VyT3V0ZXJSaW5nV2lkdGggMC4wKSAoaHNwaWNlTW9kZWwgbmlsKSAoaHNwaWNlTW9kZWxDaG9pY2VzIG5pbCkgKHNyY0dhdGVDb250YWN0U3BhY2UgMC4wKSAoZHJuR2F0ZUNvbnRhY3RTcGFjZVBhcmFtcyBuaWwpIChkcm5HYXRlQ29udGFjdFNwYWNlVmFsdWUgbmlsKSAoZHJuR2F0ZUNvbnRhY3RTcGFjZU5hbWUgbmlsKSkAKChkaWZmTGF5ZXIgInkwIikgKGdhdGVMYXllciAieTEiKSAocGdhdGVMYXllciAieTIiKSAod2VsbExheWVyIG5pbCkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgMC4wKSAodGFwTGF5ZXIgInkyIikgKHRhcEltcGxhbnQgbmlsKSAodGFwSW1wRW5jIDAuMCkgKGlkTGF5ZXIgbmlsKSAoaHZMYXllciBuaWwpIChodldlbGxEaWZmVGFwRW5jIDAuMCkgKGh2TGF5ZXJEaWZmVGFwRW5jIDAuMCkgKGZsYXJlSW5EaWZmIDAuMCkgKGZsYXJlT3V0RGlmZiAwLjApIChmbGFyZUV4dCAwLjApIChkcm5JbnRlcmNvbm5lY3QgbmlsKSAoc3JjSW50ZXJjb25uZWN0IG5pbCkgKGRpZmZDb250YWN0MFllbmMgMC4wKSAoZGlmZkNvbnRhY3QwWGVuYyAwLjApIChJbm5lclJpbmdJbnRlcmNvbm5lY3RIb3JpeiBuaWwpIChJbm5lclJpbmdJbnRlcmNvbm5lY3RWZXJ0IG5pbCkgKE91dGVyUmluZ0ludGVyY29ubmVjdCBuaWwpIChidXR0aW5nVGFwV2lkdGggMC4wKSAoYnV0dGluZ1RhcENvbnQwWGVuYyAwLjApIChmZXREaWZmSW5uZXJSaW5nU3BhY2UgMC4wKSAoT3V0ZXJJbm5lclJpbmdTcGFjZSAwLjApIChtb3NUeXBlICJubW9zIikgKGxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSkgKGxhYmVsV2lkdGggMS4wKSAoZXZlbk9ubHkgIlRSVUUiKSAoc2luZ2xlRmxhcmUgIkZBTFNFIikgKG1pbklubmVyUmluZ0ZldEV4dHJhUmlnaHRTcGFjZSAwLjApIChtaW5Jbm5lclJpbmdGZXRFeHRyYUxlZnRTcGFjZSAwLjApIChtaW5Jbm5lclJpbmdGZXRFeHRyYVRvcFNwYWNlIDAuMCkgKG1pbklubmVyUmluZ0ZldEV4dHJhQm90U3BhY2UgMC4wKSAobWluaW11bU0gMCkgKHNyY0dhdGVDb250YWN0U3BhY2VNaW4gMC4wKSAoc3JjR2F0ZUNvbnRhY3RTcGFjZU1heCAwLjApKQAoaWYoKCh1c2VTZWNvbmRNZXRhbCA9PSB0KSB8fCAodXNlU2Vjb25kTWV0YWwgPT0gIlRSVUUiKSkgdGhlbiAodXNlU2Vjb25kTWV0YWwgPSB0KSBlbHNlICh1c2VTZWNvbmRNZXRhbCA9IG5pbCkpIHVubGVzcyh1c2VQY2VsbHMgKGRpb2RlQXJlYSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmTGF5ZXIgP3dpZHRoIHdpZHRoID9sZW5ndGggbGVuZ3RoKSkgKHJvZEFsaWduID9hbGlnbk9iaiBkaW9kZUFyZWEgP2FsaWduSGFuZGxlICJjQyIgP3JlZlBvaW50IGxpc3QoMCAwKSkgKGRpb2RlSW1wbGFudCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wbGFudCA/ZnJvbU9iaiBkaW9kZUFyZWEgP3NpemUgZGlmZkltcEVuYykpICh0YXBXaWR0aCA9IG1heCh0YXBXaWR0aCAoKDIgKiB0YXBFbmNWaWExWCkgKyB2aWExU2l6ZSkpKSAoVUxyaW5nID0gbGlzdCgoLSAoKHRhcFdpZHRoIC8gMikgKyAod2lkdGggLyAyKSArIG1heCh1c2VyRGVmVGFwRGlmZlNwYWNlIHRhcFJpbmdEaWZmU3BhY2luZyAoZGlmZkltcEVuYyArIHRhcFJpbmdJbXBFbmMpKSkpICgodGFwV2lkdGggLyAyKSArIChsZW5ndGggLyAyKSArIG1heCh1c2VyRGVmVGFwRGlmZlNwYWNlIHRhcFJpbmdEaWZmU3BhY2luZyAoZGlmZkltcEVuYyArIHRhcFJpbmdJbXBFbmMpKSkpKSAoVVJyaW5nID0gbGlzdCgoLSBjYXIoVUxyaW5nKSkgY2FkcihVTHJpbmcpKSkgKEJMcmluZyA9IGxpc3QoY2FyKFVMcmluZykgKC0gY2FkcihVTHJpbmcpKSkpIChCUnJpbmcgPSBsaXN0KCgtIGNhcihVTHJpbmcpKSAoLSBjYWRyKFVMcmluZykpKSkgKHJpbmdFbmRfdGFwUmluZyA9IGxpc3QoY2FyKFVMcmluZykgKGNhZHIoVUxyaW5nKSArICh0YXBXaWR0aCAvIDIpKSkpIChVTHJpbmdfdGFwUmluZyA9IGxpc3QoKCh0YXBXaWR0aCAvIDIpICsgY2FyKFVMcmluZykpIGNhZHIoVUxyaW5nKSkpICh0YXBSaW5nID0gKHJvZENyZWF0ZVBhdGggP2xheWVyIHRhcFJpbmdMYXllciA/d2lkdGggdGFwV2lkdGggP2p1c3RpZmljYXRpb24gImNlbnRlciIgP3B0cyBsaXN0KFVMcmluZ190YXBSaW5nIFVScmluZyBCUnJpbmcgQkxyaW5nIHJpbmdFbmRfdGFwUmluZykpKSAoVUxyaW5nX3RhcEltcFJpbmcgPSBsaXN0KCgoKHRhcFdpZHRoICsgKDIgKiB0YXBSaW5nSW1wRW5jKSkgLyAyKSArIGNhcihVTHJpbmcpKSBjYWRyKFVMcmluZykpKSAocmluZ0VuZF90YXBJbXBSaW5nID0gbGlzdChjYXIoVUxyaW5nKSAoY2FkcihVTHJpbmcpICsgKCh0YXBXaWR0aCArICgyICogdGFwUmluZ0ltcEVuYykpIC8gMikpKSkgKHRhcEltcFJpbmcgPSAocm9kQ3JlYXRlUGF0aCA/bGF5ZXIgdGFwUmluZ0ltcGxhbnQgP3dpZHRoICh0YXBXaWR0aCArICgyICogdGFwUmluZ0ltcEVuYykpID9qdXN0aWZpY2F0aW9uICJjZW50ZXIiID9wdHMgbGlzdChVTHJpbmdfdGFwSW1wUmluZyBVUnJpbmcgQlJyaW5nIEJMcmluZyByaW5nRW5kX3RhcEltcFJpbmcpKSkgKHJvZEFzc2lnbkhhbmRsZVRvUGFyYW1ldGVyID9wYXJhbWV0ZXIgImxlbmd0aCIgP3JvZE9iaiB0YXBJbXBSaW5nID9oYW5kbGVOYW1lIGxpc3QoImxMIiAiY0wiICJ1TCIgImxSIiAiY1IiICJ1UiIgInVMIiAidUMiICJ1UiIgImxMIiAibEMiICJsUiIpID9kaXNwbGF5TmFtZSAiYXJlYSIgP2Rpc3BsYXlFeHByZXNzaW9uICJ3aWR0aCAqIGxlbmd0aCIgP3N0cmV0Y2hEaXIgInkiID9zdHJldGNoVHlwZSAicmVsYXRpdmUiKSAocm9kQXNzaWduSGFuZGxlVG9QYXJhbWV0ZXIgP3BhcmFtZXRlciAid2lkdGgiID9yb2RPYmogdGFwSW1wUmluZyA/aGFuZGxlTmFtZSBsaXN0KCJsTCIgImNMIiAidUwiICJsUiIgImNSIiAidVIiICJ1TCIgInVDIiAidVIiICJsTCIgImxDIiAibFIiKSA/c3RyZXRjaERpciAieCIgP3N0cmV0Y2hUeXBlICJyZWxhdGl2ZSIpIChVTHJpbmdfbWV0MVJpbmcgPSBsaXN0KCgoKCgyICogbWV0MUVuY1ZpYTFYKSArIHZpYTFTaXplKSAvIDIpICsgY2FyKFVMcmluZykpIGNhZHIoVUxyaW5nKSkpIChyaW5nRW5kX21ldDFSaW5nID0gbGlzdChjYXIoVUxyaW5nKSAoY2FkcihVTHJpbmcpICsgKCgoMiAqIG1ldDFFbmNWaWExWCkgKyB2aWExU2l6ZSkgLyAyKSkpKSAodGFwUmluZ01ldDEgPSAocm9kQ3JlYXRlUGF0aCA/bGF5ZXIgbWV0MUxheWVyID93aWR0aCAoKDIgKiBtZXQxRW5jVmlhMVgpICsgdmlhMVNpemUpID9qdXN0aWZpY2F0aW9uICJjZW50ZXIiID9wdHMgbGlzdChVTHJpbmdfbWV0MVJpbmcgVVJyaW5nIEJScmluZyBCTHJpbmcgcmluZ0VuZF9tZXQxUmluZykgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciB2aWExTGF5ZXIgP3dpZHRoIHZpYTFTaXplID9sZW5ndGggdmlhMVNpemUgP2JlZ2luT2Zmc2V0ICgtIHZpYTFTcGFjaW5nKSA/ZW5kU2VnT2Zmc2V0IHZpYTFTcGFjaW5nID9zcGFjZSB2aWExU3BhY2luZyA/Z2FwICJtaW5pbXVtIikpKSkgd2hlbigobGFiZWxMYXllciAmJiBsYWJlbFRleHQpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KChjYXIoVUxyaW5nX21ldDFSaW5nKSAtICh2aWExU2l6ZSAvIDIuMCkpICh2aWExU2l6ZSAvIDIuMCkpIGxhYmVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbGFiZWxXaWR0aCkpIChtZXQxQ29uQ29sdW1ucyA9IChmbG9vciAoKCh3aWR0aCAtICgyICogZGlmZkVuY1ZpYTFYKSkgKyB2aWExU3BhY2luZykgLyAodmlhMVNwYWNpbmcgKyB2aWExU2l6ZSkpKSkgKG1ldDFDb25Sb3dzID0gKGZsb29yICgoKGxlbmd0aCAtICgyICogZGlmZkVuY1ZpYTFZKSkgKyB2aWExU3BhY2luZykgLyAodmlhMVNwYWNpbmcgKyB2aWExU2l6ZSkpKSkgKG1ldDFXaWR0aCA9ICgobWV0MUNvbkNvbHVtbnMgKiB2aWExU2l6ZSkgKyAodmlhMVNwYWNpbmcgKiAobWV0MUNvbkNvbHVtbnMgLSAxKSkgKyAoMiAqIG1ldDFFbmNWaWExWCkpKSAobWV0MUxlbmd0aCA9ICgobWV0MUNvblJvd3MgKiB2aWExU2l6ZSkgKyAodmlhMVNwYWNpbmcgKiAobWV0MUNvblJvd3MgLSAxKSkgKyAoMiAqIG1ldDFFbmNWaWExWSkpKSAoZGlmZk1ldDEgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MUxheWVyID93aWR0aCBtZXQxV2lkdGggP2xlbmd0aCBtZXQxTGVuZ3RoID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciB2aWExTGF5ZXIgP3dpZHRoIHZpYTFTaXplID9sZW5ndGggdmlhMVNpemUgP3NwYWNlWCB2aWExU3BhY2luZyA/c3BhY2VZIHZpYTFTcGFjaW5nID9sb3dlckxlZnRPZmZzZXRYIG1ldDFFbmNWaWExWCA/bG93ZXJMZWZ0T2Zmc2V0WSBtZXQxRW5jVmlhMVkgP2dhcCAibWluaW11bSIpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZGlmZk1ldDEgP2FsaWduSGFuZGxlICJjQyIgP3JlZlBvaW50IGxpc3QoMCAwKSkgaWYodXNlU2Vjb25kTWV0YWwgdGhlbiBpZigoc2Vjb25kTWV0YWxMZW5ndGggPCAoKDIgKiBtZXQyRW5jVmlhMlkpICsgdmlhMlNpemUpKSB0aGVuIChzZWNvbmRNZXRhbExlbmd0aCA9ICgoMiAqIG1ldDJFbmNWaWEyWSkgKyB2aWEyU2l6ZSkpKSAobWV0MkNvbkxlbmd0aCA9IG1pbigoc2Vjb25kTWV0YWxMZW5ndGggLSAoMiAqIG1ldDJFbmNWaWEyWSkpIChtZXQxTGVuZ3RoIC0gKDIgKiBtZXQxRW5jVmlhMlkpKSkpIChtZXQyQ29uUm93cyA9IChmbG9vciAoKG1ldDJDb25MZW5ndGggKyB2aWEyU3BhY2luZykgLyAodmlhMlNwYWNpbmcgKyB2aWEyU2l6ZSkpKSkgKG1ldDJDb25MZW5ndGhEaWZmID0gKChzZWNvbmRNZXRhbExlbmd0aCAtICgobWV0MkNvblJvd3MgKiB2aWEyU2l6ZSkgKyAodmlhMlNwYWNpbmcgKiAobWV0MkNvblJvd3MgLSAxKSkpKSAvIDIpKSAoZGlmZk1ldDJDb24gPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MkxheWVyID93aWR0aCAoKDIgKiBtZXQyRW5jVmlhMlgpICsgdmlhMlNpemUpID9sZW5ndGggc2Vjb25kTWV0YWxMZW5ndGggP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYTJMYXllciA/d2lkdGggdmlhMlNpemUgP2xlbmd0aCB2aWEyU2l6ZSA/c3BhY2VYIHZpYTJTcGFjaW5nID9zcGFjZVkgdmlhMlNwYWNpbmcgP2dhcCAibWluaW11bSIgP2xvd2VyTGVmdE9mZnNldFggbWV0MkVuY1ZpYTJYID9sb3dlckxlZnRPZmZzZXRZIG1ldDJDb25MZW5ndGhEaWZmID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBtZXQyQ29uTGVuZ3RoRGlmZikpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogZGlmZk1ldDJDb24gP3JlZlBvaW50IGxpc3QoMCAwKSkpKSB3aGVuKHVzZVBjZWxscyAoZGlmZkNlbGxJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBkaWZmQ2VsbCAic3ltYm9saWMiIG5pbCAicm4iKSkgKHdPdmVyMiA9ICgoZmxvb3IgKCh3aWR0aCAvIDIpIC8gc25hcEdyaWQpKSAqIHNuYXBHcmlkKSkgKGxPdmVyMiA9ICgoZmxvb3IgKChsZW5ndGggLyAyKSAvIHNuYXBHcmlkKSkgKiBzbmFwR3JpZCkpICh3QWRqdXN0ID0gKC0gKCh3aWR0aCAvIDIpIC0gd092ZXIyKSkpIChsQWRqdXN0ID0gKC0gKChsZW5ndGggLyAyKSAtIGxPdmVyMikpKSBpZigobWF4RGRsaVdpZHRoIDwgKCgyICogbWF4RGRsaUV4dGVuc2lvbikgKyB3aWR0aCkpIHRoZW4gKGJpZ1NpZGVZID0gbWluKHdpZHRoICgoZmxvb3IgKHNxcnQobWF4RGRsaVdpZHRoKSAvIHNuYXBHcmlkKSkgKiBzbmFwR3JpZCkpKSAobnVtWSA9IChmbG9vciAoKG1pbkxpdHJFbmRTcGFjaW5nICsgd2lkdGgpIC8gKG1pbkxpdHJFbmRTcGFjaW5nICsgYmlnU2lkZVkpKSkpIChyZW1haW5kZXJZID0gKHdpZHRoIC0gKG51bVkgKiAoYmlnU2lkZVkgKyBtaW5MaXRyRW5kU3BhY2luZykpKSkgKHNoaWZ0QWRqdXN0WSA9IDApIGlmKChyZW1haW5kZXJZIDw9IG1pblJlbWFpbmRlclkpIHRoZW4gKHNoaWZ0QWRqdXN0WSA9ICgobWluTGl0ckVuZFNwYWNpbmcgKyByZW1haW5kZXJZKSAvIDIpKSAoc2hpZnRBZGp1c3RZID0gKChmbG9vciAoc2hpZnRBZGp1c3RZIC8gc25hcEdyaWQpKSAqIHNuYXBHcmlkKSkpIChvZmZzZXRYID0gKC0gKGxPdmVyMiAtICgyICogbEFkanVzdCkpKSkgKG9mZnNldFkgPSAoLSAod092ZXIyIC0gc2hpZnRBZGp1c3RZIC0gKDIgKiB3QWRqdXN0KSkpKSBmb3IoeUNvdW50IDEgbnVtWSAoY3VycmVudFkgPSAoKHlDb3VudCAtIDEpICogKG1pbkxpdHJFbmRTcGFjaW5nICsgYmlnU2lkZVkpKSkgaWYoKCh5Q291bnQgPT0gbnVtWSkgJiYgKHJlbWFpbmRlclkgPiBtaW5SZW1haW5kZXJZKSkgdGhlbiAoaW5zdE5hbWUgPSBzcHJpbnRmKG5pbCAicmVtYWluZGVyRmlsbFlfJWQiIHlDb3VudCkpIChkaWZmQXJlYSA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGRpZmZDZWxsSWQgaW5zdE5hbWUgKG9mZnNldFg6KChjdXJyZW50WSArIGJpZ1NpZGVZICsgbWluTGl0ckVuZFNwYWNpbmcpICsgb2Zmc2V0WSkpICJSMCIgMSBsaXN0KGxpc3QoIndsRHJpdmVuIiAiYm9vbGVhbiIgdCkgbGlzdCgiVyIgImZsb2F0IiByZW1haW5kZXJZKSBsaXN0KCJMIiAiZmxvYXQiIGxlbmd0aCkpKSkpIChpbnN0TmFtZSA9IHNwcmludGYobmlsICJkaWZmXyVkIiB5Q291bnQpKSAoZGlmZkFyZWEgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBkaWZmQ2VsbElkIGluc3ROYW1lIChvZmZzZXRYOihjdXJyZW50WSArIG9mZnNldFkpKSAiUjAiIDEgbGlzdChsaXN0KCJ3bERyaXZlbiIgImJvb2xlYW4iIHQpIGxpc3QoIlciICJmbG9hdCIgYmlnU2lkZVkpIGxpc3QoIkwiICJmbG9hdCIgbGVuZ3RoKSkpKSkgKGZpbGxBcmVhID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggbGVuZ3RoID9sZW5ndGggd2lkdGgpKSAocm9kQWxpZ24gP2FsaWduT2JqIGZpbGxBcmVhID9hbGlnbkhhbmRsZSAiY0MiID9yZWZQb2ludCBsaXN0KGxBZGp1c3Qgd0FkanVzdCkpIChmaWxsQXJlYUltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkaWZmSW1wbGFudCA/ZnJvbU9iaiBmaWxsQXJlYSA/c2l6ZSBkaWZmSW1wRW5jKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaWxsQXJlYUltcCA/YWxpZ25IYW5kbGUgImNDIiA/cmVmUG9pbnQgbGlzdChsQWRqdXN0IHdBZGp1c3QpKSB3aGVuKHZpYTFDb25MYXllciAobnVtVmlhMUNvbiA9IChmbG9vciAoKHZpYTFDb25TcGFjaW5nICsgbGVuZ3RoKSAvICh2aWExQ29uV2lkdGggKyB2aWExQ29uU3BhY2luZykpKSkgKHZpYTFDb25BcnJheVdpZHRoID0gKChudW1WaWExQ29uICogdmlhMUNvbldpZHRoKSArICgobnVtVmlhMUNvbiAtIDEpICogdmlhMUNvblNwYWNpbmcpKSkgKHZpYTFDb25BcnJheU9mZnNldCA9ICgtICgodmlhMUNvbkFycmF5V2lkdGggLyAyKSAtICgoZmxvb3IgKCh2aWExQ29uQXJyYXlXaWR0aCAvIDIpIC8gc25hcEdyaWQpKSAqIHNuYXBHcmlkKSkpKSAodmlhMUNvbkFycmF5ID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRpZmZMYXllciA/d2lkdGggdmlhMUNvbkFycmF5V2lkdGggP2xlbmd0aCB3aWR0aCA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgdmlhMUNvbkxheWVyID93aWR0aCB2aWExQ29uV2lkdGggP2xlbmd0aCB3aWR0aCA/c3BhY2VYIHZpYTFDb25TcGFjaW5nID9zcGFjZVkgdmlhMUNvblNwYWNpbmcgP2dhcCAibWluaW11bSIpKSkpICh2aWExQ29uT2Zmc2V0ID0gKC0gKCh2aWExQ29uQXJyYXlXaWR0aCAtIGxlbmd0aCkgLyAyKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhMUNvbkFycmF5ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZQb2ludCBsaXN0KCgyICogbEFkanVzdCkgd0FkanVzdCkpKSBlbHNlIChkaWZmQXJlYSA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGRpZmZDZWxsSWQgImkwIiAoMDowKSAiUjAiIDEgbGlzdChsaXN0KCJ3bERyaXZlbiIgImJvb2xlYW4iIHQpIGxpc3QoIlciICJmbG9hdCIgd2lkdGgpIGxpc3QoIkwiICJmbG9hdCIgbGVuZ3RoKSkpKSAoZGlmZkFyZWFSb2QgPSAocm9kR2V0T2JqIGRpZmZBcmVhKSkgKHJvZEFsaWduID9hbGlnbk9iaiBkaWZmQXJlYVJvZCA/cmVmUG9pbnQgbGlzdChsQWRqdXN0IHdBZGp1c3QpKSkgKGd1YXJkUmluZ0NlbGxJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBndWFyZFJpbmdDZWxsICJzeW1ib2xpYyIgbmlsICJybiIpKSAoZ3VhcmRSaW5nID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZ3VhcmRSaW5nQ2VsbElkICJpMSIgKDA6MCkgIlIwIiAxIGxpc3QobGlzdCgiaW5uZXJSaW5nIiAic3RyaW5nIiAicFRhcCIpIGxpc3QoImlubmVyUmluZ01ldCIgInN0cmluZyIgIkRETEkiKSBsaXN0KCJXIiAiZmxvYXQiICgoMiAqIHRhcFJpbmdEaWZmU3BhY2luZykgKyB3aWR0aCkpIGxpc3QoIkwiICJmbG9hdCIgKCgyICogdGFwUmluZ0RpZmZTcGFjaW5nKSArIGxlbmd0aCkpKSkpIChndWFyZFJpbmdSb2QgPSAocm9kR2V0T2JqIGd1YXJkUmluZykpIChyb2RBbGlnbiA/YWxpZ25PYmogZ3VhcmRSaW5nUm9kID9yZWZQb2ludCBsaXN0KGxBZGp1c3Qgd0FkanVzdCkpIGlmKHVzZVNlY29uZE1ldGFsIHRoZW4gKG1ldGFsUmVjdCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQxTGF5ZXIgP3dpZHRoIG1heCgodmlhMVNpemUgKyAoMiAqIG1ldDFFbmNWaWExWSkpIHNlY29uZE1ldGFsTGVuZ3RoKSA/bGVuZ3RoICh2aWExU2l6ZSArICgyICogbWV0MUVuY1ZpYTFYKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYTFMYXllciA/d2lkdGggdmlhMVNpemUgP2xlbmd0aCB2aWExU2l6ZSA/c3BhY2VYIHZpYTFTcGFjaW5nID9zcGFjZVkgdmlhMVNwYWNpbmcgP2dhcCAibWluaW11bSIgP2xvd2VyTGVmdE9mZnNldFggbWV0MUVuY1ZpYTFZID9sb3dlckxlZnRPZmZzZXRZIG1ldDFFbmNWaWExWCA/dXBwZXJSaWdodE9mZnNldFggKC0gbWV0MUVuY1ZpYTFZKSA/dXBwZXJSaWdodE9mZnNldFkgKC0gbWV0MUVuY1ZpYTFYKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBtZXRhbFJlY3QgP3JlZlBvaW50IGxpc3QobWV0MU9mZnNldFggbWV0MU9mZnNldFkpKSAocm9kQXNzaWduSGFuZGxlVG9QYXJhbWV0ZXIgP3BhcmFtZXRlciAibWV0MU9mZnNldFkiID9yb2RPYmogbWV0YWxSZWN0ID9oYW5kbGVOYW1lIGxpc3QoImxMIiAiY0wiICJ1TCIgImxSIiAiY1IiICJ1UiIgInVMIiAidUMiICJ1UiIgImxMIiAibEMiICJsUiIpID9kaXNwbGF5TmFtZSAibWV0YWwgeS1vZmZzZXQiID9kaXNwbGF5RXhwcmVzc2lvbiAibWV0MU9mZnNldFkiID9zdHJldGNoRGlyICJ5IiA/c3RyZXRjaFR5cGUgImFic29sdXRlIikgKHJvZEFzc2lnbkhhbmRsZVRvUGFyYW1ldGVyID9wYXJhbWV0ZXIgIm1ldDFPZmZzZXRYIiA/cm9kT2JqIG1ldGFsUmVjdCA/aGFuZGxlTmFtZSBsaXN0KCJsTCIgImNMIiAidUwiICJsUiIgImNSIiAidVIiICJ1TCIgInVDIiAidVIiICJsTCIgImxDIiAibFIiKSA/ZGlzcGxheU5hbWUgIm1ldGFsIHgtb2Zmc2V0IiA/ZGlzcGxheUV4cHJlc3Npb24gIm1ldDFPZmZzZXRYIiA/c3RyZXRjaERpciAieCIgP3N0cmV0Y2hUeXBlICJhYnNvbHV0ZSIpKSAocm9kQXNzaWduSGFuZGxlVG9QYXJhbWV0ZXIgP3BhcmFtZXRlciAid2lkdGgiID9yb2RPYmogZ3VhcmRSaW5nUm9kID9oYW5kbGVOYW1lIGxpc3QoImxMIiAiY0wiICJ1TCIgImxSIiAiY1IiICJ1UiIgInVMIiAidUMiICJ1UiIgImxMIiAibEMiICJsUiIpID9kaXNwbGF5TmFtZSAiYXJlYSIgP2Rpc3BsYXlFeHByZXNzaW9uICJ3aWR0aCAqIGxlbmd0aCIgP3N0cmV0Y2hEaXIgInkiID9zdHJldGNoVHlwZSAicmVsYXRpdmUiKSAocm9kQXNzaWduSGFuZGxlVG9QYXJhbWV0ZXIgP3BhcmFtZXRlciAibGVuZ3RoIiA/cm9kT2JqIGd1YXJkUmluZ1JvZCA/aGFuZGxlTmFtZSBsaXN0KCJsTCIgImNMIiAidUwiICJsUiIgImNSIiAidVIiICJ1TCIgInVDIiAidVIiICJsTCIgImxDIiAibFIiKSA/c3RyZXRjaERpciAieCIgP3N0cmV0Y2hUeXBlICJyZWxhdGl2ZSIpKSkAKGRpZmZMYXllciBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIHRhcFJpbmdMYXllciB0YXBSaW5nSW1wbGFudCB0YXBSaW5nSW1wRW5jIHRhcFdpZHRoIHRhcFJpbmdEaWZmU3BhY2luZyB2aWExTGF5ZXIgdmlhMVNpemUgdmlhMVNwYWNpbmcgdmlhMUNvbkxheWVyIHZpYTFDb25XaWR0aCB2aWExQ29uU3BhY2luZyB0YXBFbmNWaWExWCB0YXBFbmNWaWExWSBkaWZmRW5jVmlhMVggZGlmZkVuY1ZpYTFZIG1ldDFMYXllciBtZXQxRW5jVmlhMVggbWV0MUVuY1ZpYTFZIG1ldDFFbmNWaWEyWCBtZXQxRW5jVmlhMlkgdmlhMkxheWVyIHZpYTJTaXplIHZpYTJTcGFjaW5nIG1ldDJMYXllciBtZXQyRW5jVmlhMlggbWV0MkVuY1ZpYTJZIHVzZVBjZWxscyBndWFyZFJpbmdDZWxsIGRpZmZDZWxsIG1heERkbGlXaWR0aCBtaW5EZGxpU3BhY2luZyBtaW5MaXRyRW5kU3BhY2luZyBtYXhEZGxpRXh0ZW5zaW9uIHNlY29uZE1ldGFsQ2VsbCBzbmFwR3JpZCBtaW5SZW1haW5kZXJYIG1pblJlbWFpbmRlclkgbGFiZWxMYXllciBsYWJlbFdpZHRoIGxhYmVsVGV4dCBsZW5ndGggd2lkdGggc2Vjb25kTWV0YWxMZW5ndGggdXNlU2Vjb25kTWV0YWwgbWV0MU9mZnNldFkgbWV0MU9mZnNldFggdXNlckRlZlRhcERpZmZTcGFjZSBkaW9kZUFyZWEgZGlvZGVJbXBsYW50IFVMcmluZyBVUnJpbmcgQkxyaW5nIEJScmluZyByaW5nRW5kX3RhcFJpbmcgVUxyaW5nX3RhcFJpbmcgdGFwUmluZyBVTHJpbmdfdGFwSW1wUmluZyByaW5nRW5kX3RhcEltcFJpbmcgdGFwSW1wUmluZyBVTHJpbmdfbWV0MVJpbmcgcmluZ0VuZF9tZXQxUmluZyB0YXBSaW5nTWV0MSBtZXQxQ29uQ29sdW1ucyBtZXQxQ29uUm93cyBtZXQxV2lkdGggbWV0MUxlbmd0aCBkaWZmTWV0MSBtZXQyQ29uTGVuZ3RoIG1ldDJDb25Sb3dzIG1ldDJDb25MZW5ndGhEaWZmIGRpZmZNZXQyQ29uIGRpZmZDZWxsSWQgd092ZXIyIGxPdmVyMiB3QWRqdXN0IGxBZGp1c3QgYmlnU2lkZVkgbnVtWSByZW1haW5kZXJZIHNoaWZ0QWRqdXN0WSBvZmZzZXRYIG9mZnNldFkgeUNvdW50IGN1cnJlbnRZIGluc3ROYW1lIGRpZmZBcmVhIGZpbGxBcmVhIGZpbGxBcmVhSW1wIG51bVZpYTFDb24gdmlhMUNvbkFycmF5V2lkdGggdmlhMUNvbkFycmF5T2Zmc2V0IHZpYTFDb25BcnJheSB2aWExQ29uT2Zmc2V0IGRpZmZBcmVhUm9kIGd1YXJkUmluZ0NlbGxJZCBndWFyZFJpbmcgZ3VhcmRSaW5nUm9kIG1ldGFsUmVjdCkAKGxlbmd0aCgxLjApICh3aWR0aCAxLjApIChzZWNvbmRNZXRhbExlbmd0aCAxLjApICh1c2VTZWNvbmRNZXRhbCAiRkFMU0UiKSAobWV0MU9mZnNldFkgMC4wKSAobWV0MU9mZnNldFggMC4wKSAodXNlckRlZlRhcERpZmZTcGFjZSAwLjApKQAoKGRpZmZMYXllciAiaGlsaXRlIikgKGRpZmZJbXBsYW50ICJoaWxpdGUiKSAoZGlmZkltcEVuYyAwLjApICh0YXBSaW5nTGF5ZXIgImhpbGl0ZSIpICh0YXBSaW5nSW1wbGFudCAiaGlsaXRlIikgKHRhcFJpbmdJbXBFbmMgMC4wKSAodGFwV2lkdGggMC4wKSAodGFwUmluZ0RpZmZTcGFjaW5nIDAuMCkgKHZpYTFMYXllciBuaWwpICh2aWExU2l6ZSAwLjApICh2aWExU3BhY2luZyAwLjApICh2aWExQ29uTGF5ZXIgbmlsKSAodmlhMUNvbldpZHRoIDAuMCkgKHZpYTFDb25TcGFjaW5nIDAuMCkgKHRhcEVuY1ZpYTFYIDAuMCkgKHRhcEVuY1ZpYTFZIDAuMCkgKGRpZmZFbmNWaWExWCAwLjApIChkaWZmRW5jVmlhMVkgMC4wKSAobWV0MUxheWVyICJoaWxpdGUiKSAobWV0MUVuY1ZpYTFYIDAuMCkgKG1ldDFFbmNWaWExWSAwLjApIChtZXQxRW5jVmlhMlggMC4wKSAobWV0MUVuY1ZpYTJZIDAuMCkgKHZpYTJMYXllciAiaGlsaXRlIikgKHZpYTJTaXplIDAuMCkgKHZpYTJTcGFjaW5nIDAuMCkgKG1ldDJMYXllciBuaWwpIChtZXQyRW5jVmlhMlggMC4wKSAobWV0MkVuY1ZpYTJZIDAuMCkgKHVzZVBjZWxscyBuaWwpIChndWFyZFJpbmdDZWxsIG5pbCkgKGRpZmZDZWxsIG5pbCkgKG1heERkbGlXaWR0aCAwLjApIChtaW5EZGxpU3BhY2luZyAwLjApIChtaW5MaXRyRW5kU3BhY2luZyAwLjApIChtYXhEZGxpRXh0ZW5zaW9uIDAuMCkgKHNlY29uZE1ldGFsQ2VsbCBuaWwpIChzbmFwR3JpZCAwLjApIChtaW5SZW1haW5kZXJYIDAuMCkgKG1pblJlbWFpbmRlclkgMC4wKSAobGFiZWxMYXllciBuaWwpIChsYWJlbFdpZHRoIDEuMCkgKGxhYmVsVGV4dCBuaWwpKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoc2VjSWRMYXllcnNUYWJsZSA9IGxpc3QobGlzdCgibm9uZSIgbGlzdCgwLjAgMC4wIDAuMCkpKSkgKHdlbGxFbmNZRGlmZiA9IDAuMCkgd2hlbigod2VsbExheWVyV2lkdGggIT0gMC4wKSAod2VsbFdpZHRoID0gKChtYXgod2VsbEVuY0RpZmYgd2VsbEVuY1RhcCkgKiAyKSArIHcpKSBpZigod2VsbFdpZHRoIDwgd2VsbExheWVyV2lkdGgpIHRoZW4gKHdlbGxFbmNZRGlmZiA9IGFicygobWF4KHdlbGxFbmNEaWZmIHdlbGxFbmNUYXApIC0gKCh3ZWxsTGF5ZXJXaWR0aCAtIHcpIC8gMikpKSkpKSBpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoIWlkTGF5ZXJzVGFibGUgfHwgKGlkTGF5ZXJzVGFibGUgPT0gIm5vbmUiKSB8fCAoaWRMYXllcnNUYWJsZSA9PSAibmlsIikgfHwgKGlkTGF5ZXJzVGFibGUgPT0gIkZBTFNFIikpIHRoZW4gKGlkTGF5ZXIgPSBuaWwpIGVsc2UgKGlkTGF5ZXIgPSB0KSkgaWYoKGxpc3RwKGlkTGF5ZXJzVGFibGUpICYmIChjYWFyKGlkTGF5ZXJzVGFibGUpID09ICJub25lIikpIChpZExheWVyID0gbmlsKSkgaWYoKCFzcmNTZWNJZExheWVyc1RhYmxlIHx8IChzcmNTZWNJZExheWVyc1RhYmxlID09ICJub25lIikgfHwgKHNyY1NlY0lkTGF5ZXJzVGFibGUgPT0gIm5pbCIpIHx8IChzcmNTZWNJZExheWVyc1RhYmxlID09ICJGQUxTRSIpKSB0aGVuIChzcmNTZWNJZExheWVyID0gbmlsKSBlbHNlIChzcmNTZWNJZExheWVyID0gdCkpIGlmKChsaXN0cChzcmNTZWNJZExheWVyc1RhYmxlKSAmJiAoY2FhcihzcmNTZWNJZExheWVyc1RhYmxlKSA9PSAibm9uZSIpKSAoc3JjU2VjSWRMYXllciA9IG5pbCkpIGlmKCghZHJuU2VjSWRMYXllcnNUYWJsZSB8fCAoZHJuU2VjSWRMYXllcnNUYWJsZSA9PSAibm9uZSIpIHx8IChkcm5TZWNJZExheWVyc1RhYmxlID09ICJuaWwiKSB8fCAoZHJuU2VjSWRMYXllcnNUYWJsZSA9PSAiRkFMU0UiKSkgdGhlbiAoZHJuU2VjSWRMYXllciA9IG5pbCkgZWxzZSAoZHJuU2VjSWRMYXllciA9IHQpKSBpZigobGlzdHAoZHJuU2VjSWRMYXllcnNUYWJsZSkgJiYgKGNhYXIoZHJuU2VjSWRMYXllcnNUYWJsZSkgPT0gIm5vbmUiKSkgKGRyblNlY0lkTGF5ZXIgPSBuaWwpKSBpZigoKHNvdXJjZUZpcnN0ID09IHQpIHx8IChzb3VyY2VGaXJzdCA9PSAiVFJVRSIpKSB0aGVuIChzb3VyY2VGaXJzdCA9IHQpIGVsc2UgKHNvdXJjZUZpcnN0ID0gbmlsKSkgaWYoKChnYXRlSW1wbGFudCA9PSB0KSB8fCAoZ2F0ZUltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoZ2F0ZUltcGxhbnQgPSB0KSBlbHNlIChnYXRlSW1wbGFudCA9IG5pbCkpIGlmKCgobWFudWFsTE9EID09IHQpIHx8IChtYW51YWxMT0QgPT0gIlRSVUUiKSkgdGhlbiAobWFudWFsTE9EID0gdCkgZWxzZSAobWFudWFsTE9EID0gbmlsKSkgaWYoKGdhdGVFeHQgPCAwLjApIGVycm9yKCJtTW9kZWxGZXRDbGFzczogZ2F0ZUV4dCAoJWcpIG11c3QgYmUgPiAwXG4iIGdhdGVFeHQpKSAoZ05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJnIikpIChkYkNyZWF0ZVRlcm0gZ05ldCAiZyIgImlucHV0IikgKHNOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicyIpKSAoZGJDcmVhdGVUZXJtIHNOZXQgInMiICJpbnB1dE91dHB1dCIpIChkTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImQiKSkgKGRiQ3JlYXRlVGVybSBkTmV0ICJkIiAiaW5wdXRPdXRwdXQiKSBpZihzb3VyY2VGaXJzdCB0aGVuIChjTmV0ID0gc05ldCkgKG5ldEwgPSAiUyIpIChzZWNJZExheWVyID0gc3JjU2VjSWRMYXllcikgd2hlbihzZWNJZExheWVyIChzZWNJZExheWVyc1RhYmxlID0gc3JjU2VjSWRMYXllcnNUYWJsZSkpIGVsc2UgKGNOZXQgPSBkTmV0KSAobmV0TCA9ICJEIikgKHNlY0lkTGF5ZXIgPSBkcm5TZWNJZExheWVyKSB3aGVuKHNlY0lkTGF5ZXIgKHNlY0lkTGF5ZXJzVGFibGUgPSBkcm5TZWNJZExheWVyc1RhYmxlKSkpIHdoZW4oKG0gPCAxKSAobSA9IDEpKSB3aGVuKChmaXJzdENvbnRhY3QgIT0gIiIpIChjb250YWN0RiA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBmaXJzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpKSB3aGVuKChsYXN0Q29udGFjdCAhPSAiIikgKGNvbnRhY3RMID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGxhc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSkgd2hlbigoc2hhcmVkRHJhaW4gIT0gIiIpIChjb250YWN0RCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzaGFyZWREcmFpbiAic3ltYm9saWMiIG5pbCAicm4iKSkpIHdoZW4oKHNoYXJlZFNvdXJjZSAhPSAiIikgKGNvbnRhY3RTID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZFNvdXJjZSAic3ltYm9saWMiIG5pbCAicm4iKSkpIHdoZW4obG9kRW5hYmxlZCB1bmxlc3MoKGZpcnN0Q29udGFjdCA9PSAiIikgd2hlbigoKGNvbnRhY3RGfj50YXBMYXllckJib3gpID09IG5pbCkgKGNvbnRhY3RGTGVuZ3RoID0gKGNhYWRyKChjb250YWN0Rn4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigoY29udGFjdEZ+PmRpZmZMYXllckJib3gpKSkpKSB1bmxlc3MoKChjb250YWN0Rn4+dGFwTGF5ZXJCYm94KSA9PSBuaWwpIChjb250YWN0Rkxlbmd0aCA9IChtYXgoY2FhZHIoKGNvbnRhY3RGfj5kaWZmTGF5ZXJCYm94KSkgY2FhZHIoKGNvbnRhY3RGfj50YXBMYXllckJib3gpKSkgLSBtaW4oY2FhcigoY29udGFjdEZ+PmRpZmZMYXllckJib3gpKSBjYWFyKChjb250YWN0Rn4+dGFwTGF5ZXJCYm94KSkpKSkpKSB3aGVuKChmaXJzdENvbnRhY3QgPT0gIiIpIChjb250YWN0Rkxlbmd0aCA9IGRpZmZFeHQpKSB1bmxlc3MoKGxhc3RDb250YWN0ID09ICIiKSB3aGVuKCgoY29udGFjdEx+PnRhcExheWVyQmJveCkgPT0gbmlsKSAoY29udGFjdExMZW5ndGggPSAoY2FhZHIoKGNvbnRhY3RMfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChjb250YWN0TH4+ZGlmZkxheWVyQmJveCkpKSkpIHVubGVzcygoKGNvbnRhY3RMfj50YXBMYXllckJib3gpID09IG5pbCkgKGNvbnRhY3RMTGVuZ3RoID0gKG1heChjYWFkcigoY29udGFjdEx+PmRpZmZMYXllckJib3gpKSBjYWFkcigoY29udGFjdEx+PnRhcExheWVyQmJveCkpKSAtIG1pbihjYWFyKChjb250YWN0TH4+ZGlmZkxheWVyQmJveCkpIGNhYXIoKGNvbnRhY3RMfj50YXBMYXllckJib3gpKSkpKSkpIHdoZW4oKGxhc3RDb250YWN0ID09ICIiKSAoY29udGFjdExMZW5ndGggPSBkaWZmRXh0KSkgdW5sZXNzKChzaGFyZWREcmFpbiA9PSAiIikgd2hlbigoKGNvbnRhY3REfj50YXBMYXllckJib3gpID09IG5pbCkgKGNvbnRhY3RETGVuZ3RoID0gKGNhYWRyKChjb250YWN0RH4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigoY29udGFjdER+PmRpZmZMYXllckJib3gpKSkpKSB1bmxlc3MoKChjb250YWN0RH4+dGFwTGF5ZXJCYm94KSA9PSBuaWwpIChjb250YWN0RExlbmd0aCA9IChtYXgoY2FhZHIoKGNvbnRhY3REfj5kaWZmTGF5ZXJCYm94KSkgY2FhZHIoKGNvbnRhY3REfj50YXBMYXllckJib3gpKSkgLSBtaW4oY2FhcigoY29udGFjdER+PmRpZmZMYXllckJib3gpKSBjYWFyKChjb250YWN0RH4+dGFwTGF5ZXJCYm94KSkpKSkpKSB3aGVuKChzaGFyZWREcmFpbiA9PSAiIikgKGNvbnRhY3RETGVuZ3RoID0gZ2F0ZXRvZ2F0ZVNwYWNpbmcpKSB1bmxlc3MoKHNoYXJlZFNvdXJjZSA9PSAiIikgd2hlbigoKGNvbnRhY3RTfj50YXBMYXllckJib3gpID09IG5pbCkgKGNvbnRhY3RTTGVuZ3RoID0gKGNhYWRyKChjb250YWN0U34+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigoY29udGFjdFN+PmRpZmZMYXllckJib3gpKSkpKSB1bmxlc3MoKChjb250YWN0U34+dGFwTGF5ZXJCYm94KSA9PSBuaWwpIChjb250YWN0U0xlbmd0aCA9IChtYXgoY2FhZHIoKGNvbnRhY3RTfj5kaWZmTGF5ZXJCYm94KSkgY2FhZHIoKGNvbnRhY3RTfj50YXBMYXllckJib3gpKSkgLSBtaW4oY2FhcigoY29udGFjdFN+PmRpZmZMYXllckJib3gpKSBjYWFyKChjb250YWN0U34+dGFwTGF5ZXJCYm94KSkpKSkpKSB3aGVuKChzaGFyZWRTb3VyY2UgPT0gIiIpIChjb250YWN0U0xlbmd0aCA9IGdhdGV0b2dhdGVTcGFjaW5nKSkpICh2aWExWENyZEYgPSBpZigoY29udGFjdEZ+PmJCb3hWaWExKSBhYnMoY2FhcigoY29udGFjdEZ+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkRiA9IGlmKChjb250YWN0Rn4+YkJveExheWVyMikgYWJzKGNhYXIoKGNvbnRhY3RGfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZEYgPSBpZigoY29udGFjdEZ+PmJCb3hWaWEyKSBhYnMoY2FhcigoY29udGFjdEZ+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkRiA9IGlmKChjb250YWN0Rn4+YkJveExheWVyMykgYWJzKGNhYXIoKGNvbnRhY3RGfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkRiA9IGlmKChjb250YWN0Rn4+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGNvbnRhY3RGfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpICh2aWExWENyZEwgPSBpZigoY29udGFjdEx+PmJCb3hWaWExKSBhYnMoY2FhcigoY29udGFjdEx+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkTCA9IGlmKChjb250YWN0TH4+YkJveExheWVyMikgYWJzKGNhYXIoKGNvbnRhY3RMfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZEwgPSBpZigoY29udGFjdEx+PmJCb3hWaWEyKSBhYnMoY2FhcigoY29udGFjdEx+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkTCA9IGlmKChjb250YWN0TH4+YkJveExheWVyMykgYWJzKGNhYXIoKGNvbnRhY3RMfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkTCA9IGlmKChjb250YWN0TH4+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGNvbnRhY3RMfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpICh2aWExWENyZFMgPSBpZigoY29udGFjdFN+PmJCb3hWaWExKSBhYnMoY2FhcigoY29udGFjdFN+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkUyA9IGlmKChjb250YWN0U34+YkJveExheWVyMikgYWJzKGNhYXIoKGNvbnRhY3RTfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZFMgPSBpZigoY29udGFjdFN+PmJCb3hWaWEyKSBhYnMoY2FhcigoY29udGFjdFN+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkUyA9IGlmKChjb250YWN0U34+YkJveExheWVyMykgYWJzKGNhYXIoKGNvbnRhY3RTfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkUyA9IGlmKChjb250YWN0U34+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGNvbnRhY3RTfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpICh2aWExWENyZEQgPSBpZigoY29udGFjdER+PmJCb3hWaWExKSBhYnMoY2FhcigoY29udGFjdER+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkRCA9IGlmKChjb250YWN0RH4+YkJveExheWVyMikgYWJzKGNhYXIoKGNvbnRhY3REfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZEQgPSBpZigoY29udGFjdER+PmJCb3hWaWEyKSBhYnMoY2FhcigoY29udGFjdER+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkRCA9IGlmKChjb250YWN0RH4+YkJveExheWVyMykgYWJzKGNhYXIoKGNvbnRhY3REfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkRCA9IGlmKChjb250YWN0RH4+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGNvbnRhY3REfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpIGlmKChsYXllcjFYQ3JkRiAmJiB2aWExWENyZEYpIHRoZW4gKHZpYTFFbmNGID0gYWJzKChsYXllcjFYQ3JkRiAtIHZpYTFYQ3JkRikpKSkgaWYoKGxheWVyMVhDcmRGICYmIHZpYTJYQ3JkRikgdGhlbiAodmlhMkVuY0YgPSBhYnMoKGxheWVyMVhDcmRGIC0gdmlhMlhDcmRGKSkpKSBpZigobGF5ZXIxWENyZEYgJiYgbGF5ZXIyWENyZEYpIHRoZW4gKGxheWVyMkVuY0YgPSBhYnMoKGxheWVyMVhDcmRGIC0gbGF5ZXIyWENyZEYpKSkpIGlmKChsYXllcjFYQ3JkRiAmJiBsYXllcjNYQ3JkRikgdGhlbiAobGF5ZXIzRW5jRiA9IGFicygobGF5ZXIxWENyZEYgLSBsYXllcjNYQ3JkRikpKSkgaWYoKGxheWVyMVhDcmRMICYmIHZpYTFYQ3JkTCkgdGhlbiAodmlhMUVuY0wgPSBhYnMoKGxheWVyMVhDcmRMIC0gdmlhMVhDcmRMKSkpKSBpZigobGF5ZXIxWENyZEwgJiYgdmlhMlhDcmRMKSB0aGVuICh2aWEyRW5jTCA9IGFicygobGF5ZXIxWENyZEwgLSB2aWEyWENyZEwpKSkpIGlmKChsYXllcjFYQ3JkTCAmJiBsYXllcjJYQ3JkTCkgdGhlbiAobGF5ZXIyRW5jTCA9IGFicygobGF5ZXIxWENyZEwgLSBsYXllcjJYQ3JkTCkpKSkgaWYoKGxheWVyMVhDcmRMICYmIGxheWVyM1hDcmRMKSB0aGVuIChsYXllcjNFbmNMID0gYWJzKChsYXllcjFYQ3JkTCAtIGxheWVyM1hDcmRMKSkpKSBpZigobGF5ZXIxWENyZFMgJiYgdmlhMVhDcmRTKSB0aGVuICh2aWExRW5jUyA9IGFicygobGF5ZXIxWENyZFMgLSB2aWExWENyZFMpKSkpIGlmKChsYXllcjFYQ3JkUyAmJiB2aWEyWENyZFMpIHRoZW4gKHZpYTJFbmNTID0gYWJzKChsYXllcjFYQ3JkUyAtIHZpYTJYQ3JkUykpKSkgaWYoKGxheWVyMVhDcmRTICYmIGxheWVyMlhDcmRTKSB0aGVuIChsYXllcjJFbmNTID0gYWJzKChsYXllcjFYQ3JkUyAtIGxheWVyMlhDcmRTKSkpKSBpZigobGF5ZXIxWENyZFMgJiYgbGF5ZXIzWENyZFMpIHRoZW4gKGxheWVyM0VuY1MgPSBhYnMoKGxheWVyMVhDcmRTIC0gbGF5ZXIzWENyZFMpKSkpIGlmKChsYXllcjFYQ3JkRCAmJiB2aWExWENyZEQpIHRoZW4gKHZpYTFFbmNEID0gYWJzKChsYXllcjFYQ3JkRCAtIHZpYTFYQ3JkRCkpKSkgaWYoKGxheWVyMVhDcmREICYmIHZpYTJYQ3JkRCkgdGhlbiAodmlhMkVuY0QgPSBhYnMoKGxheWVyMVhDcmREIC0gdmlhMlhDcmREKSkpKSBpZigobGF5ZXIxWENyZEQgJiYgbGF5ZXIyWENyZEQpIHRoZW4gKGxheWVyMkVuY0QgPSBhYnMoKGxheWVyMVhDcmREIC0gbGF5ZXIyWENyZEQpKSkpIGlmKChsYXllcjFYQ3JkRCAmJiBsYXllcjNYQ3JkRCkgdGhlbiAobGF5ZXIzRW5jRCA9IGFicygobGF5ZXIxWENyZEQgLSBsYXllcjNYQ3JkRCkpKSkgaWYoKHZpYTFFbmNGICYmIHZpYTFFbmNMKSB0aGVuICh2aWExU3BhY2VGTCA9ICh2aWExRW5jRiArIHZpYTFFbmNMICsgbCkpICh2aWExT2ZmU2V0RkwgPSAodmlhMU1pblNwYWNlIC0gdmlhMVNwYWNlRkwpKSBlbHNlICh2aWExT2ZmU2V0RkwgPSAwLjApKSBpZigodmlhMkVuY0YgJiYgdmlhMkVuY0wpIHRoZW4gKHZpYTJTcGFjZUZMID0gKHZpYTJFbmNGICsgdmlhMkVuY0wgKyBsKSkgKHZpYTJPZmZTZXRGTCA9ICh2aWEyTWluU3BhY2UgLSB2aWEyU3BhY2VGTCkpIGVsc2UgKHZpYTJPZmZTZXRGTCA9IDAuMCkpIGlmKChsYXllcjNFbmNGICYmIGxheWVyM0VuY0wpIHRoZW4gKGxheWVyM1NwYWNlRkwgPSAobGF5ZXIzRW5jRiArIGxheWVyM0VuY0wgKyBsKSkgKGxheWVyM09mZlNldEZMID0gKGxheWVyM01pblNwYWNlIC0gbGF5ZXIzU3BhY2VGTCkpIGVsc2UgKGxheWVyM09mZlNldEZMID0gMC4wKSkgaWYoKGxheWVyMkVuY0YgJiYgbGF5ZXIyRW5jTCkgdGhlbiAobGF5ZXIyU3BhY2VGTCA9IChsYXllcjJFbmNGICsgbGF5ZXIyRW5jTCArIGwpKSAobGF5ZXIyT2ZmU2V0RkwgPSAobGF5ZXIyTWluU3BhY2UgLSBsYXllcjJTcGFjZUZMKSkgZWxzZSAobGF5ZXIyT2ZmU2V0RkwgPSAwLjApKSBpZigodmlhMUVuY0YgJiYgdmlhMUVuY1MpIHRoZW4gKHZpYTFTcGFjZUZTID0gKHZpYTFFbmNGICsgdmlhMUVuY1MgKyBsKSkgKHZpYTFPZmZTZXRGUyA9ICh2aWExTWluU3BhY2UgLSB2aWExU3BhY2VGUykpIGVsc2UgKHZpYTFPZmZTZXRGUyA9IDAuMCkpIGlmKCh2aWEyRW5jRiAmJiB2aWEyRW5jUykgdGhlbiAodmlhMlNwYWNlRlMgPSAodmlhMkVuY0YgKyB2aWEyRW5jUyArIGwpKSAodmlhMk9mZlNldEZTID0gKHZpYTJNaW5TcGFjZSAtIHZpYTJTcGFjZUZTKSkgZWxzZSAodmlhMk9mZlNldEZTID0gMC4wKSkgaWYoKGxheWVyM0VuY0YgJiYgbGF5ZXIzRW5jUykgdGhlbiAobGF5ZXIzU3BhY2VGUyA9IChsYXllcjNFbmNGICsgbGF5ZXIzRW5jUyArIGwpKSAobGF5ZXIzT2ZmU2V0RlMgPSAobGF5ZXIzTWluU3BhY2UgLSBsYXllcjNTcGFjZUZTKSkgZWxzZSAobGF5ZXIzT2ZmU2V0RlMgPSAwLjApKSBpZigobGF5ZXIyRW5jRiAmJiBsYXllcjJFbmNTKSB0aGVuIChsYXllcjJTcGFjZUZTID0gKGxheWVyMkVuY0YgKyBsYXllcjJFbmNTICsgbCkpIChsYXllcjJPZmZTZXRGUyA9IChsYXllcjJNaW5TcGFjZSAtIGxheWVyMlNwYWNlRlMpKSBlbHNlIChsYXllcjJPZmZTZXRGUyA9IDAuMCkpIGlmKCh2aWExRW5jRiAmJiB2aWExRW5jRCkgdGhlbiAodmlhMVNwYWNlRkQgPSAodmlhMUVuY0YgKyB2aWExRW5jRCArIGwpKSAodmlhMU9mZlNldEZEID0gKHZpYTFNaW5TcGFjZSAtIHZpYTFTcGFjZUZEKSkgZWxzZSAodmlhMU9mZlNldEZEID0gMC4wKSkgaWYoKHZpYTJFbmNGICYmIHZpYTJFbmNEKSB0aGVuICh2aWEyU3BhY2VGRCA9ICh2aWEyRW5jRiArIHZpYTJFbmNEICsgbCkpICh2aWEyT2ZmU2V0RkQgPSAodmlhMk1pblNwYWNlIC0gdmlhMlNwYWNlRkQpKSBlbHNlICh2aWEyT2ZmU2V0RkQgPSAwLjApKSBpZigobGF5ZXIzRW5jRiAmJiBsYXllcjNFbmNEKSB0aGVuIChsYXllcjNTcGFjZUZEID0gKGxheWVyM0VuY0YgKyBsYXllcjNFbmNEICsgbCkpIChsYXllcjNPZmZTZXRGRCA9IChsYXllcjNNaW5TcGFjZSAtIGxheWVyM1NwYWNlRkQpKSBlbHNlIChsYXllcjNPZmZTZXRGRCA9IDAuMCkpIGlmKChsYXllcjJFbmNGICYmIGxheWVyMkVuY0QpIHRoZW4gKGxheWVyMlNwYWNlRkQgPSAobGF5ZXIyRW5jRiArIGxheWVyMkVuY0QgKyBsKSkgKGxheWVyMk9mZlNldEZEID0gKGxheWVyMk1pblNwYWNlIC0gbGF5ZXIyU3BhY2VGRCkpIGVsc2UgKGxheWVyMk9mZlNldEZEID0gMC4wKSkgaWYoKHZpYTFFbmNMICYmIHZpYTFFbmNTKSB0aGVuICh2aWExU3BhY2VMUyA9ICh2aWExRW5jTCArIHZpYTFFbmNTICsgbCkpICh2aWExT2ZmU2V0TFMgPSAodmlhMU1pblNwYWNlIC0gdmlhMVNwYWNlTFMpKSBlbHNlICh2aWExT2ZmU2V0TFMgPSAwLjApKSBpZigodmlhMkVuY0wgJiYgdmlhMkVuY1MpIHRoZW4gKHZpYTJTcGFjZUxTID0gKHZpYTJFbmNMICsgdmlhMkVuY1MgKyBsKSkgKHZpYTJPZmZTZXRMUyA9ICh2aWEyTWluU3BhY2UgLSB2aWEyU3BhY2VMUykpIGVsc2UgKHZpYTJPZmZTZXRMUyA9IDAuMCkpIGlmKChsYXllcjNFbmNMICYmIGxheWVyM0VuY1MpIHRoZW4gKGxheWVyM1NwYWNlTFMgPSAobGF5ZXIzRW5jTCArIGxheWVyM0VuY1MgKyBsKSkgKGxheWVyM09mZlNldExTID0gKGxheWVyM01pblNwYWNlIC0gbGF5ZXIzU3BhY2VMUykpIGVsc2UgKGxheWVyM09mZlNldExTID0gMC4wKSkgaWYoKGxheWVyMkVuY0wgJiYgbGF5ZXIyRW5jUykgdGhlbiAobGF5ZXIyU3BhY2VMUyA9IChsYXllcjJFbmNMICsgbGF5ZXIyRW5jUyArIGwpKSAobGF5ZXIyT2ZmU2V0TFMgPSAobGF5ZXIyTWluU3BhY2UgLSBsYXllcjJTcGFjZUxTKSkgZWxzZSAobGF5ZXIyT2ZmU2V0TFMgPSAwLjApKSBpZigodmlhMUVuY0wgJiYgdmlhMUVuY0QpIHRoZW4gKHZpYTFTcGFjZUxEID0gKHZpYTFFbmNMICsgdmlhMUVuY0QgKyBsKSkgKHZpYTFPZmZTZXRMRCA9ICh2aWExTWluU3BhY2UgLSB2aWExU3BhY2VMRCkpIGVsc2UgKHZpYTFPZmZTZXRMRCA9IDAuMCkpIGlmKCh2aWEyRW5jTCAmJiB2aWEyRW5jRCkgdGhlbiAodmlhMlNwYWNlTEQgPSAodmlhMkVuY0wgKyB2aWEyRW5jRCArIGwpKSAodmlhMk9mZlNldExEID0gKHZpYTJNaW5TcGFjZSAtIHZpYTJTcGFjZUxEKSkgZWxzZSAodmlhMk9mZlNldExEID0gMC4wKSkgaWYoKGxheWVyM0VuY0wgJiYgbGF5ZXIzRW5jRCkgdGhlbiAobGF5ZXIzU3BhY2VMRCA9IChsYXllcjNFbmNMICsgbGF5ZXIzRW5jRCArIGwpKSAobGF5ZXIzT2ZmU2V0TEQgPSAobGF5ZXIzTWluU3BhY2UgLSBsYXllcjNTcGFjZUxEKSkgZWxzZSAobGF5ZXIzT2ZmU2V0TEQgPSAwLjApKSBpZigobGF5ZXIyRW5jTCAmJiBsYXllcjJFbmNEKSB0aGVuIChsYXllcjJTcGFjZUxEID0gKGxheWVyMkVuY0wgKyBsYXllcjJFbmNEICsgbCkpIChsYXllcjJPZmZTZXRMRCA9IChsYXllcjJNaW5TcGFjZSAtIGxheWVyMlNwYWNlTEQpKSBlbHNlIChsYXllcjJPZmZTZXRMRCA9IDAuMCkpIGlmKCh2aWExRW5jUyAmJiB2aWExRW5jRCkgdGhlbiAodmlhMVNwYWNlU0QgPSAodmlhMUVuY1MgKyB2aWExRW5jRCArIGwpKSAodmlhMU9mZlNldFNEID0gKHZpYTFNaW5TcGFjZSAtIHZpYTFTcGFjZVNEKSkgZWxzZSAodmlhMU9mZlNldFNEID0gMC4wKSkgaWYoKHZpYTJFbmNTICYmIHZpYTJFbmNEKSB0aGVuICh2aWEyU3BhY2VTRCA9ICh2aWEyRW5jUyArIHZpYTJFbmNEICsgbCkpICh2aWEyT2ZmU2V0U0QgPSAodmlhMk1pblNwYWNlIC0gdmlhMlNwYWNlU0QpKSBlbHNlICh2aWEyT2ZmU2V0U0QgPSAwLjApKSBpZigobGF5ZXIzRW5jUyAmJiBsYXllcjNFbmNEKSB0aGVuIChsYXllcjNTcGFjZVNEID0gKGxheWVyM0VuY1MgKyBsYXllcjNFbmNEICsgbCkpIChsYXllcjNPZmZTZXRTRCA9IChsYXllcjNNaW5TcGFjZSAtIGxheWVyM1NwYWNlU0QpKSBlbHNlIChsYXllcjNPZmZTZXRTRCA9IDAuMCkpIGlmKChsYXllcjJFbmNTICYmIGxheWVyMkVuY0QpIHRoZW4gKGxheWVyMlNwYWNlU0QgPSAobGF5ZXIyRW5jUyArIGxheWVyMkVuY0QgKyBsKSkgKGxheWVyMk9mZlNldFNEID0gKGxheWVyMk1pblNwYWNlIC0gbGF5ZXIyU3BhY2VTRCkpIGVsc2UgKGxheWVyMk9mZlNldFNEID0gMC4wKSkgaWYoKG0gPT0gMSkgdGhlbiAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGTCB2aWEyT2ZmU2V0RkwgbGF5ZXIyT2ZmU2V0RkwgbGF5ZXIzT2ZmU2V0RkwgMC4wKSkgZWxzZSBpZigobSA9PSAyKSB0aGVuIGlmKHNvdXJjZUZpcnN0IHRoZW4gKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RkQgdmlhMk9mZlNldEZEIGxheWVyMk9mZlNldEZEIGxheWVyM09mZlNldEZEIHZpYTFPZmZTZXRMRCB2aWEyT2ZmU2V0TEQgbGF5ZXIyT2ZmU2V0TEQgbGF5ZXIzT2ZmU2V0TEQgMC4wKSkgZWxzZSAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGUyB2aWEyT2ZmU2V0RlMgbGF5ZXIyT2ZmU2V0RlMgbGF5ZXIzT2ZmU2V0RlMgdmlhMU9mZlNldExTIHZpYTJPZmZTZXRMUyBsYXllcjJPZmZTZXRMUyBsYXllcjNPZmZTZXRMUyAwLjApKSkgZWxzZSBpZigobW9kKG0gMikgPT0gMCkgdGhlbiBpZihzb3VyY2VGaXJzdCB0aGVuIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZEIHZpYTJPZmZTZXRGRCBsYXllcjJPZmZTZXRGRCBsYXllcjNPZmZTZXRGRCB2aWExT2ZmU2V0U0QgdmlhMk9mZlNldFNEIGxheWVyMk9mZlNldFNEIGxheWVyM09mZlNldFNEIHZpYTFPZmZTZXRMRCB2aWEyT2ZmU2V0TEQgbGF5ZXIyT2ZmU2V0TEQgbGF5ZXIzT2ZmU2V0TEQgMC4wKSkgZWxzZSAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGUyB2aWEyT2ZmU2V0RlMgbGF5ZXIyT2ZmU2V0RlMgbGF5ZXIzT2ZmU2V0RlMgdmlhMU9mZlNldFNEIHZpYTJPZmZTZXRTRCBsYXllcjJPZmZTZXRTRCBsYXllcjNPZmZTZXRTRCB2aWExT2ZmU2V0TFMgdmlhMk9mZlNldExTIGxheWVyMk9mZlNldExTIGxheWVyM09mZlNldExTIDAuMCkpKSBlbHNlIGlmKHNvdXJjZUZpcnN0IHRoZW4gKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RkQgdmlhMk9mZlNldEZEIGxheWVyMk9mZlNldEZEIGxheWVyM09mZlNldEZEIHZpYTFPZmZTZXRTRCB2aWEyT2ZmU2V0U0QgbGF5ZXIyT2ZmU2V0U0QgbGF5ZXIzT2ZmU2V0U0QgdmlhMU9mZlNldExTIHZpYTJPZmZTZXRMUyBsYXllcjJPZmZTZXRMUyBsYXllcjNPZmZTZXRMUyAwLjApKSBlbHNlIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZTIHZpYTJPZmZTZXRGUyBsYXllcjJPZmZTZXRGUyBsYXllcjNPZmZTZXRGUyB2aWExT2ZmU2V0U0QgdmlhMk9mZlNldFNEIGxheWVyMk9mZlNldFNEIGxheWVyM09mZlNldFNEIHZpYTFPZmZTZXRMRCB2aWEyT2ZmU2V0TEQgbGF5ZXIyT2ZmU2V0TEQgbGF5ZXIzT2ZmU2V0TEQgMC4wKSkpKSkpIChvZmZzZXRTaWRlID0gKG1heE9mZlNldCAvIDIuMCkpIChtaW5TcGFjZU9mZlNldCA9ICgoY2VpbGluZyAoKG9mZnNldFNpZGUgLyBzbmFwR3JpZCkgKyAtMWUtMDYpKSAqIHNuYXBHcmlkKSkgaWYoaW1wbGFudCB0aGVuIChjb250YWN0SW1wUGFyYW0gPSBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgdCkpIGVsc2UgKGNvbnRhY3RJbXBQYXJhbSA9IGxpc3QoImltcGxhbnQiICJib29sZWFuIiAiRkFMU0UiKSkpIGlmKHdlbGxMYXllciB0aGVuIChjb250YWN0V2VsbFBhcmFtID0gbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpIGVsc2UgKGNvbnRhY3RXZWxsUGFyYW0gPSBsaXN0KCJpbldlbGwiICJib29sZWFuIiAiRkFMU0UiKSkpICh4MUNvb3JkID0gMC4wKSAoeTFDb29yZCA9IDAuMCkgKGxhc3RQWWlYMUNvb3JkID0gKC0gKDIuMCAqIHBvbHlJbXBYRW5jKSkpIHdoZW4oKHBvbHlJbXBsYW50ICYmIGdhdGVJbXBsYW50KSAoeTFQWWlDb29yZCA9ICh5MUNvb3JkIC0gcG9seUltcFlFbmMgLSBnYXRlRXh0KSkgKHkyUFlpQ29vcmQgPSAoeTFDb29yZCArIHcgKyBwb2x5SW1wWUVuYyArIGdhdGVFeHQpKSkgKGlkTGF5ZXJzQ29vcmRUYWJsZSA9IG1ha2VUYWJsZSgiaWRMYXllcnNDb29yZFRhYmxlIiBuaWwpKSAobGF5ZXJJbmZvID0gbmlsKSAobGF5ZXJFbmNzID0gbmlsKSAoeDFJZENvb3JkID0gMC4wKSAoeTFJZENvb3JkID0gMC4wKSAoeDJJZENvb3JkID0gMC4wKSAoeTJJZENvb3JkID0gMC4wKSB3aGVuKGlkTGF5ZXIgZm9yZWFjaChsYXllckluZm8gaWRMYXllcnNUYWJsZSAobGF5ZXJOYW1lID0gY2FyKGxheWVySW5mbykpIChsYXllckVuY3MgPSBjYWRyKGxheWVySW5mbykpIChpZExheUNvb3JkcyA9IGxpc3QoKHgxSWRDb29yZDp5MUlkQ29vcmQpICh4MklkQ29vcmQ6eTJJZENvb3JkKSkpIChpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSA9IGlkTGF5Q29vcmRzKSkpIChzZWNJZExheWVyc0Nvb3JkVGFibGUgPSBtYWtlVGFibGUoInNlY0lkTGF5ZXJzQ29vcmRUYWJsZSIgbmlsKSkgKHNlY0xheWVySW5mbyA9IG5pbCkgKHNlY0xheWVyRW5jcyA9IG5pbCkgKHgxU2VjSWRDb29yZCA9IDAuMCkgKHkxU2VjSWRDb29yZCA9IDAuMCkgKHgyU2VjSWRDb29yZCA9IDAuMCkgKHkyU2VjSWRDb29yZCA9IDAuMCkgd2hlbihzZWNJZExheWVyIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJFbmNzID0gY2FkcihzZWNMYXllckluZm8pKSAoc2VjSWRMYXlDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNJZExheUNvb3JkcykpKSAod2VsbEVuY0RpZmZZID0gd2VsbEVuY0RpZmYpICh3ZWxsRW5jVGFwWSA9IHdlbGxFbmNUYXApICh3ZWxsRW5jRGlmZlggPSB3ZWxsRW5jRGlmZikgKHdlbGxFbmNUYXBYID0gd2VsbEVuY1RhcCkgKGV4dGVuc2lvbiA9IG5pbCkgaWYoKGNOZXQgPT0gc05ldCkgdGhlbiAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgc3JjT2Zmc2V0KSkgKGN1clRlcm1PZmZzZXQgPSBvZmZzZXQpIChuZXh0VGVybU9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIGRybk9mZnNldCkpIChjdXJUZXJtU2hDb25MZW5ndGggPSBjb250YWN0U0xlbmd0aCkgKG5leHRUZXJtU2hDb25MZW5ndGggPSBjb250YWN0RExlbmd0aCkgZWxzZSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgZHJuT2Zmc2V0KSkgKGN1clRlcm1PZmZzZXQgPSBvZmZzZXQpIChuZXh0VGVybU9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIHNyY09mZnNldCkpIChjdXJUZXJtU2hDb25MZW5ndGggPSBjb250YWN0RExlbmd0aCkgKG5leHRUZXJtU2hDb25MZW5ndGggPSBjb250YWN0U0xlbmd0aCkpIHdoZW4oKGZpcnN0Q29udGFjdCAhPSAiIikgKGNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBmaXJzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhjb250YWN0SWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gZmlyc3RDb250YWN0IGNvbnRhY3QgY2VsbCBgJXMnIiBmaXJzdENvbnRhY3QpKSkgdW5sZXNzKChjb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKHBhcmFtcyA9IChjb250YWN0SWR+PnBhcmFtZXRlcnMpKSAoaW5zdFBhcmFtcyA9IGxpc3QobGlzdCgidyIgImZsb2F0IiB3KSkpIHdoZW4oKHBhcmFtc34+aW1wbGFudCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RJbXBQYXJhbSkpKSB3aGVuKChwYXJhbXN+PmluV2VsbCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RXZWxsUGFyYW0pKSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgImMwIiAoKC0gb2Zmc2V0KTowKSAiTVkiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGZpcnN0Q29udGFjdCkpKSB1bmxlc3MobG9kRW5hYmxlZCB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIG9mZnNldCk6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkpIHdoZW4obG9kRW5hYmxlZCAoaXNTaW5nbGVTdHJhcHBlZCA9IG5pbCkgKGlzTkRTdHJhcHBlZCA9IG5pbCkgd2hlbihtYW51YWxMT0Qgd2hlbihMT0RDb250YWN0TWFwU1N0cmFwcGVkIGZvcmVhY2gocGFpciBMT0RDb250YWN0TWFwU1N0cmFwcGVkIHdoZW4oKGZpcnN0Q29udGFjdCA9PSBjYXIocGFpcikpIChpc1NpbmdsZVN0cmFwcGVkID0gdCkgKGlubmVyQ29udGFjdCA9IGNkcihwYWlyKSkpKSkgd2hlbihpc1NpbmdsZVN0cmFwcGVkIChkYkRlbGV0ZU9iamVjdCBpbnN0KSAoZGJDbG9zZSBjb250YWN0SWQpIChpbm5lckNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBjYXIoaW5uZXJDb250YWN0KSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChpbm5lckNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGlubmVyQ29udGFjdCkpKSAoaW5uZXJDb250YWN0TGVuZ3RoID0gKGNhYWRyKChpbm5lckNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigoaW5uZXJDb250YWN0SWR+PmRpZmZMYXllckJib3gpKSkpICh2aWExWENyZElubmVyQ29uID0gaWYoKGlubmVyQ29udGFjdElkfj5iQm94VmlhMSkgYWJzKGNhYXIoKGlubmVyQ29udGFjdElkfj5iQm94VmlhMSkpKSBuaWwpKSAobGF5ZXIyWENyZElubmVyQ29uID0gaWYoKGlubmVyQ29udGFjdElkfj5iQm94TGF5ZXIyKSBhYnMoY2FhcigoaW5uZXJDb250YWN0SWR+PmJCb3hMYXllcjIpKSkgbmlsKSkgKHZpYTJYQ3JkSW5uZXJDb24gPSBpZigoaW5uZXJDb250YWN0SWR+PmJCb3hWaWEyKSBhYnMoY2FhcigoaW5uZXJDb250YWN0SWR+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkSW5uZXJDb24gPSBpZigoaW5uZXJDb250YWN0SWR+PmJCb3hMYXllcjMpIGFicyhjYWFyKChpbm5lckNvbnRhY3RJZH4+YkJveExheWVyMykpKSBuaWwpKSAobGF5ZXIxWENyZElubmVyQ29uID0gaWYoKGlubmVyQ29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSBhYnMoY2FhcigoaW5uZXJDb250YWN0SWR+PmRpZmZMYXllckJib3gpKSkgbmlsKSkgaWYoKGxheWVyMVhDcmRJbm5lckNvbiAmJiB2aWExWENyZElubmVyQ29uKSB0aGVuICh2aWExRW5jSW5uZXJDb24gPSBhYnMoKGxheWVyMVhDcmRJbm5lckNvbiAtIHZpYTFYQ3JkSW5uZXJDb24pKSkpIGlmKChsYXllcjJYQ3JkSW5uZXJDb24gJiYgdmlhMlhDcmRJbm5lckNvbikgdGhlbiAodmlhMkVuY0lubmVyQ29uID0gYWJzKChsYXllcjFYQ3JkSW5uZXJDb24gLSB2aWEyWENyZElubmVyQ29uKSkpKSBpZigodmlhMUVuY0lubmVyQ29uICYmIHZpYTFFbmNGKSB0aGVuIChhdmFpbGFibGVWaWExU3BhY2UgPSAodmlhMUVuY0lubmVyQ29uICsgdmlhMUVuY0YpKSBpZigodmlhMU1pblNwYWNlID4gYXZhaWxhYmxlVmlhMVNwYWNlKSB0aGVuIChyZXF1aXJlZFZpYTFTcCA9ICh2aWExTWluU3BhY2UgLSBhdmFpbGFibGVWaWExU3BhY2UpKSBlbHNlIChyZXF1aXJlZFZpYTFTcCA9IDApKSkgaWYoKHZpYTJFbmNJbm5lckNvbiAmJiB2aWEyRW5jRikgdGhlbiAoYXZhaWxhYmxlVmlhMlNwYWNlID0gKHZpYTJFbmNJbm5lckNvbiArIHZpYTJFbmNGKSkgaWYoKHZpYTJNaW5TcGFjZSA+IGF2YWlsYWJsZVZpYTJTcGFjZSkgdGhlbiAocmVxdWlyZWRWaWEyU3AgPSAodmlhMk1pblNwYWNlIC0gYXZhaWxhYmxlVmlhMlNwYWNlKSkgZWxzZSAocmVxdWlyZWRWaWEyU3AgPSAwKSkpIHdoZW4oKHJlcXVpcmVkVmlhMlNwICYmIHJlcXVpcmVkVmlhMVNwKSAocmVxdWlyZWRTcGFjZSA9IG1heChyZXF1aXJlZFZpYTJTcCByZXF1aXJlZFZpYTFTcCkpKSB3aGVuKCgobm90IHJlcXVpcmVkVmlhMlNwKSAmJiByZXF1aXJlZFZpYTFTcCkgKHJlcXVpcmVkU3BhY2UgPSByZXF1aXJlZFZpYTFTcCkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0KTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKCgoc2EgLSBjb250YWN0Rkxlbmd0aCkgPj0gKG9mZnNldCArIHJlcXVpcmVkU3BhY2UgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAoY29udGFjdElkID0gaW5uZXJDb250YWN0SWQpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJjMCIgKCgtIG9mZnNldCk6MCkgIk1ZIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBpbm5lckNvbnRhY3QpKSkgKHN0cmFwcGVkQ29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGZpcnN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChzdHJhcHBlZENvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoc3RyYXBwZWRDb250YWN0SW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHN0cmFwcGVkQ29udGFjdElkIG5pbCAoKC0gKHNhIC0gY29udGFjdEZMZW5ndGgpKTowKSAiTVkiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhzdHJhcHBlZENvbnRhY3RJbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoZGJDbG9zZSBzdHJhcHBlZENvbnRhY3RJZCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoKSk6eTFDb29yZCkgKCh4MUNvb3JkIC0gKG9mZnNldCArIGlubmVyQ29udGFjdExlbmd0aCkpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoKSkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCAtIChvZmZzZXQgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSAoc2EgLSBjb250YWN0Rkxlbmd0aCkpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkIC0gKG9mZnNldCArIGlubmVyQ29udGFjdExlbmd0aCkpICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgdW5sZXNzKCgoc2EgLSBjb250YWN0Rkxlbmd0aCkgPj0gKG9mZnNldCArIHJlcXVpcmVkU3BhY2UgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAoZGJDbG9zZSBpbm5lckNvbnRhY3RJZCkgKHN0cmFwcGVkQ29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGZpcnN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChzdHJhcHBlZENvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoc3RyYXBwZWRDb250YWN0SW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHN0cmFwcGVkQ29udGFjdElkIG5pbCAoKC0gKHNhIC0gY29udGFjdEZMZW5ndGgpKTowKSAiTVkiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhzdHJhcHBlZENvbnRhY3RJbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoY29udGFjdElkID0gc3RyYXBwZWRDb250YWN0SWQpIChpbnN0ID0gc3RyYXBwZWRDb250YWN0SW5zdCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoKSk6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gKHNhIC0gY29udGFjdEZMZW5ndGgpKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gKHNhIC0gY29udGFjdEZMZW5ndGgpKSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkpIHVubGVzcyhpc1NpbmdsZVN0cmFwcGVkIHdoZW4oKCgoc2EgPiAxZS0wNikgfHwgKG9mZnNldCA+PSAwLjApKSAmJiAoc2EgPiAob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQgLSBjb250YWN0Rkxlbmd0aCAtIChzYSAtIGNvbnRhY3RGTGVuZ3RoIC0gb2Zmc2V0KSk6eTFDb29yZCkgKCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGgpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZJbXBFbmMpKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGggLSAoc2EgLSBjb250YWN0Rkxlbmd0aCAtIG9mZnNldCkgLSBkaWZmSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGgpICh3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGggLSAoc2EgLSBjb250YWN0Rkxlbmd0aCAtIG9mZnNldCkgLSBkaWZmQ29yZUltcEVuYykgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQgLSBjb250YWN0Rkxlbmd0aCkgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKCgoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2EgPT0gMC4wKSAmJiAoKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSA+PSBzYSkpIHx8ICgob2Zmc2V0ID4gMWUtMDYpICYmIChzYSA+IDFlLTA2KSAmJiAoKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSA+PSBzYSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0KTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSkpIHdoZW4oKG5vdCBtYW51YWxMT0QpIHVubGVzcygoYnV0dGluZ0dhdGVzU0EgPj0gMCkgd2FybihzcHJpbnRmKG5pbCAiQ2Fubm90IHNwZWNpZnkgbm9uLXplcm8gbnVtYmVyIG9mIGJ1dHRpbmcgZ2F0ZXMgZm9yIFNBICVMXG4iIGJ1dHRpbmdHYXRlc1NBKSkpIHVubGVzcygoYnV0dGluZ0dhdGVzU0EgPj0gMSkgKGV4dGVuc2lvbiA9IChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkpKSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIG9mZnNldCk6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAoeTFDb29yZCArIHcgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh5MUNvb3JkICsgdyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKGJ1dHRpbmdHYXRlc1NBID49IDApIHdoZW4oKGJ1dHRpbmdHYXRlc1NBID49IDEpIHdoZW4oTE9EQ29udGFjdE1hcFNTdHJhcHBlZCBmb3JlYWNoKHBhaXIgTE9EQ29udGFjdE1hcFNTdHJhcHBlZCB3aGVuKChmaXJzdENvbnRhY3QgPT0gY2FyKHBhaXIpKSAoaXNTaW5nbGVTdHJhcHBlZCA9IHQpIChpbm5lckNvbnRhY3QgPSBjZHIocGFpcikpKSkpIHdoZW4oTE9EQ29udGFjdE1hcE5EU3RyYXBwZWQgZm9yZWFjaChwYWlyIExPRENvbnRhY3RNYXBORFN0cmFwcGVkIHdoZW4oKGZpcnN0Q29udGFjdCA9PSBjYXIocGFpcikpIChpc05EU3RyYXBwZWQgPSB0KSAob3V0ZXJDb250YWN0ID0gY2RyKHBhaXIpKSkpKSkgd2hlbigoaXNTaW5nbGVTdHJhcHBlZCAmJiAoYnV0dGluZ0dhdGVzU0EgPj0gMSkpIChkYkRlbGV0ZU9iamVjdCBpbnN0KSAoZGJDbG9zZSBjb250YWN0SWQpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgY2FyKGlubmVyQ29udGFjdCkgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygoY29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgaW5uZXJDb250YWN0KSkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJjMCIgKCgtIG9mZnNldCk6MCkgIk1ZIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBpbm5lckNvbnRhY3QpKSkgKGlubmVyQ29udGFjdExlbmd0aCA9IChjYWFkcigoY29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChjb250YWN0SWR+PmRpZmZMYXllckJib3gpKSkpIHdoZW4oKGJ1dHRpbmdHYXRlc1NBID49IDEpIHdoZW4oKG1vZChidXR0aW5nR2F0ZXNTQSAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKChpbm5lckNvbnRhY3RMZW5ndGggKyAoMiAqIGN1clRlcm1PZmZzZXQpKSArICgoKGJ1dHRpbmdHYXRlc1NBIC8gMikgLSAxKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NBIC0gMikgKiBjdXJUZXJtT2Zmc2V0KSArICgoYnV0dGluZ0dhdGVzU0EgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKGJ1dHRpbmdHYXRlc1NBICogbmV4dFRlcm1PZmZzZXQpICsgKGNvbnRhY3RGTGVuZ3RoICsgY3VyVGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0EgKiBsKSkpKSB1bmxlc3MoKG1vZChidXR0aW5nR2F0ZXNTQSAyKSA9PSAwKSAoZXh0ZW5zaW9uID0gKChpbm5lckNvbnRhY3RMZW5ndGggKyAoMiAqIGN1clRlcm1PZmZzZXQpKSArICgoKGJ1dHRpbmdHYXRlc1NBIC0gMSkgLyAyKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NBIC0gMSkgKiBjdXJUZXJtT2Zmc2V0KSArICgoKGJ1dHRpbmdHYXRlc1NBIC0gMSkgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQSAtIDEpICogbmV4dFRlcm1PZmZzZXQpICsgKGNvbnRhY3RGTGVuZ3RoICsgbmV4dFRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NBICogbCkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKC0gKGV4dGVuc2lvbiAtIGNvbnRhY3RGTGVuZ3RoKSk6eTFDb29yZCkgKCgtIChvZmZzZXQgKyBpbm5lckNvbnRhY3RMZW5ndGgpKTp3KSkpIChvdXRlckNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBmaXJzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygob3V0ZXJDb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKG91dGVySW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IG91dGVyQ29udGFjdElkIG5pbCAoKC0gKGV4dGVuc2lvbiAtIGNvbnRhY3RGTGVuZ3RoKSk6MCkgIk1ZIiAxIGluc3RQYXJhbXMpKSB1bmxlc3Mob3V0ZXJJbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGZpcnN0Q29udGFjdCkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gKGV4dGVuc2lvbiAtIGNvbnRhY3RGTGVuZ3RoKSkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCAtIG9mZnNldCAtIGlubmVyQ29udGFjdExlbmd0aCkgKHkxQ29vcmQgKyB3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIChleHRlbnNpb24gLSBjb250YWN0Rkxlbmd0aCkpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkIC0gb2Zmc2V0IC0gaW5uZXJDb250YWN0TGVuZ3RoKSAoeTFDb29yZCArIHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKCgobm90IGlzU2luZ2xlU3RyYXBwZWQpICYmIChidXR0aW5nR2F0ZXNTQSA+PSAxKSkgKG91dGVyQ29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGNhcihvdXRlckNvbnRhY3QpICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoKG91dGVyQ29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgb3V0ZXJDb250YWN0KSkpIChvdXRlckNvbnRhY3RMZW5ndGggPSAoY2FhZHIoKG91dGVyQ29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChvdXRlckNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkpKSkgd2hlbigoYnV0dGluZ0dhdGVzU0EgPj0gMSkgd2hlbigobW9kKGJ1dHRpbmdHYXRlc1NBIDIpID09IDApIChleHRlbnNpb24gPSAoKGNvbnRhY3RGTGVuZ3RoICsgKDIgKiBjdXJUZXJtT2Zmc2V0KSkgKyAoKChidXR0aW5nR2F0ZXNTQSAvIDIpIC0gMSkgKiBjdXJUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQSAtIDIpICogY3VyVGVybU9mZnNldCkgKyAoKGJ1dHRpbmdHYXRlc1NBIC8gMikgKiBuZXh0VGVybVNoQ29uTGVuZ3RoKSArIChidXR0aW5nR2F0ZXNTQSAqIG5leHRUZXJtT2Zmc2V0KSArIChvdXRlckNvbnRhY3RMZW5ndGggKyBjdXJUZXJtT2Zmc2V0KSArIChidXR0aW5nR2F0ZXNTQSAqIGwpKSkpIHVubGVzcygobW9kKGJ1dHRpbmdHYXRlc1NBIDIpID09IDApIChleHRlbnNpb24gPSAoKGNvbnRhY3RGTGVuZ3RoICsgKDIgKiBjdXJUZXJtT2Zmc2V0KSkgKyAoKChidXR0aW5nR2F0ZXNTQSAtIDEpIC8gMikgKiBjdXJUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQSAtIDEpICogY3VyVGVybU9mZnNldCkgKyAoKChidXR0aW5nR2F0ZXNTQSAtIDEpIC8gMikgKiBuZXh0VGVybVNoQ29uTGVuZ3RoKSArICgoYnV0dGluZ0dhdGVzU0EgLSAxKSAqIG5leHRUZXJtT2Zmc2V0KSArIChvdXRlckNvbnRhY3RMZW5ndGggKyBuZXh0VGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0EgKiBsKSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIGV4dGVuc2lvbik6eTFDb29yZCkgKCh4MUNvb3JkIC0gb2Zmc2V0IC0gY29udGFjdEZMZW5ndGgpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIGV4dGVuc2lvbiAtIGRpZmZJbXBFbmMpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQgLSBjb250YWN0Rkxlbmd0aCkgKHkxQ29vcmQgKyB3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIGV4dGVuc2lvbiAtIGRpZmZDb3JlSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCAtIG9mZnNldCAtIGNvbnRhY3RGTGVuZ3RoKSAoeTFDb29yZCArIHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSkpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIHVubGVzcygoKG1hc3Rlcn4+dG9wTGF5ZXIpICYmIChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoYkJveCA9IGxpc3QobGlzdCgoLSAob2Zmc2V0ICsgY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpIGNhZGFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSBsaXN0KCgtIChvZmZzZXQgKyBjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpIGNhZGFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpKSB3aGVuKChsb2RFbmFibGVkICYmIG1hbnVhbExPRCAmJiBpc1NpbmdsZVN0cmFwcGVkKSB1bmxlc3MoKChzYSAtIGNvbnRhY3RGTGVuZ3RoKSA+PSAob2Zmc2V0ICsgcmVxdWlyZWRTcGFjZSArIGlubmVyQ29udGFjdExlbmd0aCkpIChiQm94ID0gbGlzdChsaXN0KCgtICgoc2EgLSBjb250YWN0Rkxlbmd0aCkgKyBjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpIGxpc3QoKC0gKChzYSAtIGNvbnRhY3RGTGVuZ3RoKSArIGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB1bmxlc3MobG9kRW5hYmxlZCB3aGVuKCh3ZWxsTGF5ZXIgfHwgaWRMYXllciB8fCBzZWNJZExheWVyKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoeDFEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpIHdoZW4od2VsbExheWVyICh4MVdlbGxDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKHdlbGxFbmNEaWZmWCArIHgxRGlmZkNvb3JkKSAod2VsbEVuY1RhcFggKyB4MVRhcENvb3JkKSkpKSkgKHkxV2VsbENvb3JkID0gKC0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTFUYXBDb29yZCkpKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTJUYXBDb29yZCkpKSkgd2hlbihpZExheWVyIGZvcmVhY2gobGF5ZXJJbmZvIGlkTGF5ZXJzVGFibGUgKGxheWVyTmFtZSA9IGNhcihsYXllckluZm8pKSAobGF5ZXJFbmNzID0gY2FkcihsYXllckluZm8pKSAoaWRFbmNYTCA9IG50aCgwIGxheWVyRW5jcykpIChpZEVuY1hSID0gbnRoKDEgbGF5ZXJFbmNzKSkgKGlkRW5jWSA9IG50aCgyIGxheWVyRW5jcykpICh4MUlkQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KChpZEVuY1hMICsgeDFEaWZmQ29vcmQpIChpZEVuY1hMICsgeDFUYXBDb29yZCkpKSkpICh5MUlkQ29vcmQgPSAoLSBtYXgoKGlkRW5jWSArIHkxRGlmZkNvb3JkKSAoaWRFbmNZICsgeTFUYXBDb29yZCkpKSkgKHkySWRDb29yZCA9IG1heCgoaWRFbmNZICsgeTJEaWZmQ29vcmQpIChpZEVuY1kgKyB5MlRhcENvb3JkKSkpIChsYXllckNvb3JkcyA9IGxpc3QoKHgxSWRDb29yZDp5MUlkQ29vcmQpICh4MklkQ29vcmQ6eTJJZENvb3JkKSkpIChpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSA9IGxheWVyQ29vcmRzKSkpIHdoZW4oc2VjSWRMYXllciBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyRW5jcyA9IGNhZHIoc2VjTGF5ZXJJbmZvKSkgKHNlY0lkRW5jWEwgPSBudGgoMCBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNYUiA9IG50aCgxIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1kgPSBudGgoMiBzZWNMYXllckVuY3MpKSAoeDFTZWNJZENvb3JkID0gKC0gKG9mZnNldCArIG1heCgoc2VjSWRFbmNYTCArIHgxRGlmZkNvb3JkKSAoc2VjSWRFbmNYTCArIHgxVGFwQ29vcmQpKSkpKSAoeTFTZWNJZENvb3JkID0gKC0gbWF4KChzZWNJZEVuY1kgKyB5MURpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkxVGFwQ29vcmQpKSkpICh5MlNlY0lkQ29vcmQgPSBtYXgoKHNlY0lkRW5jWSArIHkyRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTJUYXBDb29yZCkpKSAoc2VjTGF5ZXJDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNMYXllckNvb3JkcykpKSkpIHdoZW4obG9kRW5hYmxlZCB3aGVuKCh3ZWxsTGF5ZXIgfHwgaWRMYXllciB8fCBzZWNJZExheWVyKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoeDFEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpIHdoZW4obWFudWFsTE9EIHdoZW4od2VsbExheWVyIHdoZW4oaXNTaW5nbGVTdHJhcHBlZCAoeDFXZWxsQ29vcmQgPSAoLSAoKHNhIC0gbWF4KHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQpKSArIG1heCgod2VsbEVuY0RpZmZYICsgeDFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgxVGFwQ29vcmQpKSkpKSkgdW5sZXNzKGlzU2luZ2xlU3RyYXBwZWQgd2hlbigoKChzYSA+IDFlLTA2KSAmJiAob2Zmc2V0ID4gMWUtMDYpICYmIChzYSA+IChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkpKSB8fCAoKHNhID4gMWUtMDYpICYmIChvZmZzZXQgPT0gMC4wKSAmJiAoc2EgPj0gKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSkpKSAoeDFXZWxsQ29vcmQgPSAoLSAoKHNhIC0gbWF4KHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQpKSArIG1heCgod2VsbEVuY0RpZmZYICsgeDFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgxVGFwQ29vcmQpKSkpKSkgd2hlbigoKChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID09IDAuMCkgJiYgKChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkgPj0gc2EpKSB8fCAoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2EgPiAxZS0wNikgJiYgKChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkgPj0gc2EpKSkgKHgxV2VsbENvb3JkID0gKC0gKG9mZnNldCArIG1heCgod2VsbEVuY0RpZmZYICsgeDFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgxVGFwQ29vcmQpKSkpKSkpICh5MVdlbGxDb29yZCA9ICgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpKSkpIHdoZW4oaWRMYXllciBmb3JlYWNoKGxheWVySW5mbyBpZExheWVyc1RhYmxlIChsYXllck5hbWUgPSBjYXIobGF5ZXJJbmZvKSkgKGxheWVyRW5jcyA9IGNhZHIobGF5ZXJJbmZvKSkgKGlkRW5jWEwgPSBudGgoMCBsYXllckVuY3MpKSAoaWRFbmNYUiA9IG50aCgxIGxheWVyRW5jcykpIChpZEVuY1kgPSBudGgoMiBsYXllckVuY3MpKSB3aGVuKGlzU2luZ2xlU3RyYXBwZWQgKHgxSWRDb29yZCA9ICgtICgoc2EgLSBtYXgoeDFEaWZmQ29vcmQgeDFUYXBDb29yZCkpICsgbWF4KChpZEVuY1hMICsgeDFEaWZmQ29vcmQpIChpZEVuY1hMICsgeDFUYXBDb29yZCkpKSkpKSB1bmxlc3MoaXNTaW5nbGVTdHJhcHBlZCB3aGVuKCgoKHNhID4gMWUtMDYpICYmIChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID4gKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSkpIHx8ICgoc2EgPiAxZS0wNikgJiYgKG9mZnNldCA9PSAwLjApICYmIChzYSA+PSAob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpKSkpICh4MUlkQ29vcmQgPSAoLSAoKHNhIC0gbWF4KHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQpKSArIG1heCgoaWRFbmNYTCArIHgxRGlmZkNvb3JkKSAoaWRFbmNYTCArIHgxVGFwQ29vcmQpKSkpKSkgd2hlbigoKChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID09IDAuMCkgJiYgKChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkgPj0gc2EpKSB8fCAoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2EgPiAxZS0wNikgJiYgKChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkgPj0gc2EpKSkgKHgxSWRDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKGlkRW5jWEwgKyB4MURpZmZDb29yZCkgKGlkRW5jWEwgKyB4MVRhcENvb3JkKSkpKSkpKSAoeTFJZENvb3JkID0gKC0gbWF4KChpZEVuY1kgKyB5MURpZmZDb29yZCkgKGlkRW5jWSArIHkxVGFwQ29vcmQpKSkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSAoaWRFbmNZICsgeTJUYXBDb29yZCkpKSAobGF5ZXJDb29yZHMgPSBsaXN0KCh4MUlkQ29vcmQ6eTFJZENvb3JkKSAoeDJJZENvb3JkOnkySWRDb29yZCkpKSAoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0gPSBsYXllckNvb3JkcykpKSB3aGVuKHNlY0lkTGF5ZXIgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckVuY3MgPSBjYWRyKHNlY0xheWVySW5mbykpIChzZWNJZEVuY1hMID0gbnRoKDAgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWFIgPSBudGgoMSBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNZID0gbnRoKDIgc2VjTGF5ZXJFbmNzKSkgd2hlbihpc1NpbmdsZVN0cmFwcGVkICh4MVNlY0lkQ29vcmQgPSAoLSAoKHNhIC0gbWF4KHgxRGlmZkNvb3JkIHgxVGFwQ29vcmQpKSArIG1heCgoc2VjSWRFbmNYTCArIHgxRGlmZkNvb3JkKSAoc2VjSWRFbmNYTCArIHgxVGFwQ29vcmQpKSkpKSkgdW5sZXNzKGlzU2luZ2xlU3RyYXBwZWQgd2hlbigoKChzYSA+IDFlLTA2KSAmJiAob2Zmc2V0ID4gMWUtMDYpICYmIChzYSA+IChvZmZzZXQgKyBjb250YWN0Rkxlbmd0aCkpKSB8fCAoKHNhID4gMWUtMDYpICYmIChvZmZzZXQgPT0gMC4wKSAmJiAoc2EgPj0gKG9mZnNldCArIGNvbnRhY3RGTGVuZ3RoKSkpKSAoeDFTZWNJZENvb3JkID0gKC0gKChzYSAtIG1heCh4MURpZmZDb29yZCB4MVRhcENvb3JkKSkgKyBtYXgoKHNlY0lkRW5jWEwgKyB4MURpZmZDb29yZCkgKHNlY0lkRW5jWEwgKyB4MVRhcENvb3JkKSkpKSkpIHdoZW4oKCgob2Zmc2V0ID4gMWUtMDYpICYmIChzYSA9PSAwLjApICYmICgob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpID49IHNhKSkgfHwgKChvZmZzZXQgPiAxZS0wNikgJiYgKHNhID4gMWUtMDYpICYmICgob2Zmc2V0ICsgY29udGFjdEZMZW5ndGgpID49IHNhKSkpICh4MVNlY0lkQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KChzZWNJZEVuY1hMICsgeDFEaWZmQ29vcmQpIChzZWNJZEVuY1hMICsgeDFUYXBDb29yZCkpKSkpKSkgKHkxU2VjSWRDb29yZCA9ICgtIG1heCgoc2VjSWRFbmNZICsgeTFEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeTJTZWNJZENvb3JkID0gbWF4KChzZWNJZEVuY1kgKyB5MkRpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkyVGFwQ29vcmQpKSkgKHNlY0xheWVyQ29vcmRzID0gbGlzdCgoeDFTZWNJZENvb3JkOnkxU2VjSWRDb29yZCkgKHgyU2VjSWRDb29yZDp5MlNlY0lkQ29vcmQpKSkgKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdID0gc2VjTGF5ZXJDb29yZHMpKSkpIHdoZW4oKG5vdCBtYW51YWxMT0QpIHdoZW4od2VsbExheWVyIHdoZW4oaXNTaW5nbGVTdHJhcHBlZCAoeDFXZWxsQ29vcmQgPSAoLSAoZXh0ZW5zaW9uICsgd2VsbEVuY1RhcFgpKSkpIHVubGVzcyhpc1NpbmdsZVN0cmFwcGVkICh4MVdlbGxDb29yZCA9ICgtIChleHRlbnNpb24gKyB3ZWxsRW5jRGlmZlgpKSkpICh5MVdlbGxDb29yZCA9ICgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpKSkpIHdoZW4oaWRMYXllciBmb3JlYWNoKGxheWVySW5mbyBpZExheWVyc1RhYmxlIChsYXllck5hbWUgPSBjYXIobGF5ZXJJbmZvKSkgKGxheWVyRW5jcyA9IGNhZHIobGF5ZXJJbmZvKSkgKGlkRW5jWEwgPSBudGgoMCBsYXllckVuY3MpKSAoaWRFbmNYUiA9IG50aCgxIGxheWVyRW5jcykpIChpZEVuY1kgPSBudGgoMiBsYXllckVuY3MpKSAoeDFJZENvb3JkID0gKC0gKGV4dGVuc2lvbiArIGlkRW5jWEwpKSkgKHkxSWRDb29yZCA9ICgtIG1heCgoaWRFbmNZICsgeTFEaWZmQ29vcmQpIChpZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeTJJZENvb3JkID0gbWF4KChpZEVuY1kgKyB5MkRpZmZDb29yZCkgKGlkRW5jWSArIHkyVGFwQ29vcmQpKSkgKGxheWVyQ29vcmRzID0gbGlzdCgoeDFJZENvb3JkOnkxSWRDb29yZCkgKHgySWRDb29yZDp5MklkQ29vcmQpKSkgKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdID0gbGF5ZXJDb29yZHMpKSkgd2hlbihzZWNJZExheWVyIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJFbmNzID0gY2FkcihzZWNMYXllckluZm8pKSAoc2VjSWRFbmNYTCA9IG50aCgwIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1hSID0gbnRoKDEgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWSA9IG50aCgyIHNlY0xheWVyRW5jcykpICh4MVNlY0lkQ29vcmQgPSAoLSAoZXh0ZW5zaW9uICsgc2VjSWRFbmNYTCkpKSAoeTFTZWNJZENvb3JkID0gKC0gbWF4KChzZWNJZEVuY1kgKyB5MURpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkxVGFwQ29vcmQpKSkpICh5MlNlY0lkQ29vcmQgPSBtYXgoKHNlY0lkRW5jWSArIHkyRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTJUYXBDb29yZCkpKSAoc2VjTGF5ZXJDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNMYXllckNvb3JkcykpKSkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIGRpZmZFeHQpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIGRpZmZFeHQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIpIGFjY2Vzc0Rpcikgd2hlbihzZWNJZExheWVyIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJDb29yZHMgPSBzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNlY0xheWVyTmFtZSBzZWNMYXllckNvb3JkcykpKSB3aGVuKChmaXJzdENvbnRhY3QgPT0gIiIpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0IC0gZGlmZkltcEVuYykgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIGRpZmZFeHQgLSBkaWZmQ29yZUltcEVuYykgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkgd2hlbigobG9kRW5hYmxlZCAmJiAobm90IG1hbnVhbExPRCkgJiYgKGJ1dHRpbmdHYXRlc1NBID49IDEpKSB3aGVuKChtb2QoYnV0dGluZ0dhdGVzU0EgMikgPT0gMCkgKGV4dGVuc2lvbiA9IChjb250YWN0Rkxlbmd0aCArICgoYnV0dGluZ0dhdGVzU0EgLyAyKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoYnV0dGluZ0dhdGVzU0EgKiBjdXJUZXJtT2Zmc2V0KSArICgoYnV0dGluZ0dhdGVzU0EgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKGJ1dHRpbmdHYXRlc1NBICogbmV4dFRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NBICogbCkpKSkgdW5sZXNzKChtb2QoYnV0dGluZ0dhdGVzU0EgMikgPT0gMCkgKGV4dGVuc2lvbiA9IChjb250YWN0Rkxlbmd0aCArICgoKGJ1dHRpbmdHYXRlc1NBICsgMSkgLyAyKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NBICsgMSkgKiBjdXJUZXJtT2Zmc2V0KSArICgoKGJ1dHRpbmdHYXRlc1NBIC0gMSkgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQSAtIDEpICogbmV4dFRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NBICogbCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoLSBleHRlbnNpb24pOnkxQ29vcmQpICgoeDFDb29yZCAtIGRpZmZFeHQpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoLSAoZXh0ZW5zaW9uICsgZGlmZkltcEVuYykpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKC0gKGV4dGVuc2lvbiArIGRpZmZDb3JlSW1wRW5jKSkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIChzYSA+IGRpZmZFeHQpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCgtIHNhKTp5MUNvb3JkKSAoKHgxQ29vcmQgLSBkaWZmRXh0KTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKC0gKHNhICsgZGlmZkltcEVuYykpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKC0gKHNhICsgZGlmZkNvcmVJbXBFbmMpKSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCAtIGRpZmZFeHQpICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KCgtICh4MUNvb3JkICsgKGRpZmZFeHQgLyAyLjApKSkgKHkxQ29vcmQgKyAodyAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbih3ZWxsTGF5ZXIgKHgxV2VsbENvb3JkID0gKC0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgd2VsbEVuY0RpZmZYKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgKG5vdCBtYW51YWxMT0QpICYmIChidXR0aW5nR2F0ZXNTQSA+PSAxKSkgKHgxV2VsbENvb3JkID0gKC0gKHgxQ29vcmQgKyBleHRlbnNpb24gKyB3ZWxsRW5jRGlmZlgpKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIChzYSA+IGRpZmZFeHQpKSAoeDFXZWxsQ29vcmQgPSAoLSAoeDFDb29yZCArIHNhICsgd2VsbEVuY0RpZmZYKSkpKSAoeTFXZWxsQ29vcmQgPSAoLSAoeTFDb29yZCArIHdlbGxFbmNEaWZmWSkpKSAoeTJXZWxsQ29vcmQgPSAoeTFDb29yZCArIHcgKyB3ZWxsRW5jRGlmZlkpKSkgd2hlbihpZExheWVyIGZvcmVhY2gobGF5ZXJJbmZvIGlkTGF5ZXJzVGFibGUgKGxheWVyTmFtZSA9IGNhcihsYXllckluZm8pKSAobGF5ZXJFbmNzID0gY2FkcihsYXllckluZm8pKSAoaWRFbmNYTCA9IG50aCgwIGxheWVyRW5jcykpIChpZEVuY1hSID0gbnRoKDEgbGF5ZXJFbmNzKSkgKGlkRW5jWSA9IG50aCgyIGxheWVyRW5jcykpICh4MUlkQ29vcmQgPSBudGgoMCBjYXIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHkxSWRDb29yZCA9IG50aCgxIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeDJJZENvb3JkID0gbnRoKDAgY2FkcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTJJZENvb3JkID0gbnRoKDEgY2FkcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeDFJZENvb3JkID0gKC0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgaWRFbmNYTCkpKSB3aGVuKChsb2RFbmFibGVkICYmIChub3QgbWFudWFsTE9EKSAmJiAoYnV0dGluZ0dhdGVzU0EgPj0gMSkpICh4MUlkQ29vcmQgPSAoLSAoeDFDb29yZCArIGV4dGVuc2lvbiArIGlkRW5jWEwpKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIChzYSA+IGRpZmZFeHQpKSAoeDFJZENvb3JkID0gKC0gKHgxQ29vcmQgKyBzYSArIGlkRW5jWEwpKSkpICh5MUlkQ29vcmQgPSAoLSAoeTFDb29yZCArIGlkRW5jWSkpKSAoeTJJZENvb3JkID0gKHkxQ29vcmQgKyB3ICsgaWRFbmNZKSkgKGxheWVyQ29vcmRzID0gbGlzdCgoeDFJZENvb3JkOnkxSWRDb29yZCkgKHgySWRDb29yZDp5MklkQ29vcmQpKSkgKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdID0gbGF5ZXJDb29yZHMpKSkgd2hlbihzZWNJZExheWVyIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJFbmNzID0gY2FkcihzZWNMYXllckluZm8pKSAoc2VjSWRFbmNYTCA9IG50aCgwIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1hSID0gbnRoKDEgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWSA9IG50aCgyIHNlY0xheWVyRW5jcykpICh4MVNlY0lkQ29vcmQgPSBudGgoMCBjYXIoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0pKSkgKHkxU2VjSWRDb29yZCA9IG50aCgxIGNhcihzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkpKSAoeDJTZWNJZENvb3JkID0gbnRoKDAgY2FkcihzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkpKSAoeTJTZWNJZENvb3JkID0gbnRoKDEgY2FkcihzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkpKSAoeDFTZWNJZENvb3JkID0gKC0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgc2VjSWRFbmNYTCkpKSB3aGVuKChsb2RFbmFibGVkICYmIChub3QgbWFudWFsTE9EKSAmJiAoYnV0dGluZ0dhdGVzU0EgPj0gMSkpICh4MVNlY0lkQ29vcmQgPSAoLSAoeDFDb29yZCArIGV4dGVuc2lvbiArIHNlY0lkRW5jWEwpKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIChzYSA+IGRpZmZFeHQpKSAoeDFTZWNJZENvb3JkID0gKC0gKHgxQ29vcmQgKyBzYSArIHNlY0lkRW5jWEwpKSkpICh5MVNlY0lkQ29vcmQgPSAoLSAoeTFDb29yZCArIHNlY0lkRW5jWSkpKSAoeTJTZWNJZENvb3JkID0gKHkxQ29vcmQgKyB3ICsgc2VjSWRFbmNZKSkgKHNlY0xheWVyQ29vcmRzID0gbGlzdCgoeDFTZWNJZENvb3JkOnkxU2VjSWRDb29yZCkgKHgyU2VjSWRDb29yZDp5MlNlY0lkQ29vcmQpKSkgKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdID0gc2VjTGF5ZXJDb29yZHMpKSBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyQ29vcmRzID0gc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0pIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzZWNMYXllck5hbWUgc2VjTGF5ZXJDb29yZHMpKSkpIHdoZW4oKG0gPiAxKSB3aGVuKChzaGFyZWRTb3VyY2UgIT0gIiIpIChzaGFyZWRTcmNJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzaGFyZWRTb3VyY2UgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygoc2hhcmVkU291cmNlICE9ICIiKSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBzaGFyZWQgc291cmNlIGNvbnRhY3QgY2VsbCBgJXMnIiBzaGFyZWRTb3VyY2UpKSkgdW5sZXNzKChzaGFyZWRTcmNJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIHNoYXJlZFNvdXJjZSkpKSkgd2hlbigoc2hhcmVkRHJhaW4gIT0gIiIpIChzaGFyZWREcm5JZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzaGFyZWREcmFpbiAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHNoYXJlZERybklkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIHNoYXJlZCBkcmFpbiBjb250YWN0IGNlbGwgYCVzJyIgc2hhcmVkRHJhaW4pKSkgdW5sZXNzKChzaGFyZWREcm5JZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIHNoYXJlZERyYWluKSkpKSkgKGNOZXQgPSBpZigoY05ldCA9PSBzTmV0KSBkTmV0IHNOZXQpKSAobmV0TCA9IGlmKChuZXRMID09ICJTIikgIkQiICJTIikpIGZvcihuIDEgbSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCAtIGdhdGVFeHQpKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcgKyBnYXRlRXh0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCArIHcpKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcgKyBnYXRlRXh0KSkpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCh4MUNvb3JkOih5MUNvb3JkIC0gZ2F0ZUV4dCkpICgoeDFDb29yZCArIGwpOnkxQ29vcmQpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgiYm90dG9tIikgYWNjZXNzRGlyKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKCh4MUNvb3JkICsgbCk6KHkxQ29vcmQgKyB3KSkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGwpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgbCkgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpIHdoZW4oKHBvbHlJbXBsYW50ICYmIGltcGxhbnQgJiYgZ2F0ZUltcGxhbnQpICh4MVBZaUNvb3JkID0gKHgxQ29vcmQgLSBwb2x5SW1wWEVuYykpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBwb2x5SW1wbGFudCBsaXN0KCh4MVBZaUNvb3JkOnkxUFlpQ29vcmQpICgoeDFDb29yZCArIGwgKyBwb2x5SW1wWEVuYyk6eTJQWWlDb29yZCkpKSkgKHgxQ29vcmQgPSAoeDFDb29yZCArIGwpKSBpZigoY05ldCA9PSBzTmV0KSB0aGVuIChjdXJyZW50Q29udGFjdCA9IHNoYXJlZFNvdXJjZSkgKGN1cnJlbnROZXQgPSBzTmV0KSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgc3JjT2Zmc2V0KSkgKHNlY0lkTGF5ZXIgPSBzcmNTZWNJZExheWVyKSB3aGVuKHNlY0lkTGF5ZXIgKHNlY0lkTGF5ZXJzVGFibGUgPSBzcmNTZWNJZExheWVyc1RhYmxlKSkgZWxzZSAoY3VycmVudENvbnRhY3QgPSBzaGFyZWREcmFpbikgKGN1cnJlbnROZXQgPSBkTmV0KSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgZHJuT2Zmc2V0KSkgKHNlY0lkTGF5ZXIgPSBkcm5TZWNJZExheWVyKSB3aGVuKHNlY0lkTGF5ZXIgKHNlY0lkTGF5ZXJzVGFibGUgPSBkcm5TZWNJZExheWVyc1RhYmxlKSkpIHdoZW4oKChuICE9IG0pICYmIChjdXJyZW50Q29udGFjdCAhPSAiIikpIGlmKChjTmV0ID09IHNOZXQpIHRoZW4gKGNvbnRhY3RJZCA9IHNoYXJlZFNyY0lkKSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgc3JjT2Zmc2V0KSkgZWxzZSAoY29udGFjdElkID0gc2hhcmVkRHJuSWQpIChvZmZzZXQgPSAobWluU3BhY2VPZmZTZXQgKyBkcm5PZmZzZXQpKSkgKHBhcmFtcyA9IChjb250YWN0SWR+PnBhcmFtZXRlcnMpKSAoaW5zdFBhcmFtcyA9IGxpc3QobGlzdCgidyIgImZsb2F0IiB3KSkpIHdoZW4oKHBhcmFtc34+aW1wbGFudCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RJbXBQYXJhbSkpKSB3aGVuKChwYXJhbXN+PmluV2VsbCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RXZWxsUGFyYW0pKSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgc3ByaW50ZihuaWwgImMlZCIgbikgKChvZmZzZXQgKyB4MUNvb3JkKTp5MUNvb3JkKSAiUjAiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIHVubGVzcygoKG1hc3Rlcn4+dG9wTGF5ZXIpICYmIChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAoYkJveCA9IGxpc3QobGlzdCgoY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpIGNhZGFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSBsaXN0KChjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpIGNhZGFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAobWFzdGVyfj50b3BMYXllcikgYkJveCkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIikgYWNjZXNzRGlyKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoYkJveCkgKyAoKGNhYWRyKGJCb3gpIC0gY2FhcihiQm94KSkgLyAyLjApKSAoY2FkYXIoYkJveCkgKyAoKGNhZGFkcihiQm94KSAtIGNhZGFyKGJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKG9mZnNldCArIHgxQ29vcmQpOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKG9mZnNldCArIHgxQ29vcmQpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyBkaWZmTGF5ZXJCYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgKHgxQ29vcmQgPSAoKDIuMCAqIG9mZnNldCkgKyAoeDFDb29yZCArIChjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpICh4MURpZmZDb29yZCA9IGNhYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MkRpZmZDb29yZCA9IGNhYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHgyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgd2hlbih3ZWxsTGF5ZXIgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkgeTFXZWxsQ29vcmQpKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHdlbGxFbmNEaWZmWSArIHkyRGlmZkNvb3JkKSAod2VsbEVuY1RhcFkgKyB5MlRhcENvb3JkKSB5MldlbGxDb29yZCkpKSB3aGVuKGlkTGF5ZXIgZm9yZWFjaChsYXllckluZm8gaWRMYXllcnNUYWJsZSAobGF5ZXJOYW1lID0gY2FyKGxheWVySW5mbykpIChsYXllckVuY3MgPSBjYWRyKGxheWVySW5mbykpIChpZEVuY1hMID0gbnRoKDAgbGF5ZXJFbmNzKSkgKGlkRW5jWFIgPSBudGgoMSBsYXllckVuY3MpKSAoaWRFbmNZID0gbnRoKDIgbGF5ZXJFbmNzKSkgKHgxSWRDb29yZCA9IG50aCgwIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbnRoKDEgY2FyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MklkQ29vcmQgPSBudGgoMCBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MklkQ29vcmQgPSBudGgoMSBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MUlkQ29vcmQgPSBtaW4oKC0gbWF4KChpZEVuY1kgKyB5MURpZmZDb29yZCkgKGlkRW5jWSArIHkxVGFwQ29vcmQpKSkgeTFJZENvb3JkKSkgKHkySWRDb29yZCA9IG1heCgoaWRFbmNZICsgeTJEaWZmQ29vcmQpIChpZEVuY1kgKyB5MlRhcENvb3JkKSB5MklkQ29vcmQpKSAobGF5ZXJDb29yZHMgPSBsaXN0KCh4MUlkQ29vcmQ6eTFJZENvb3JkKSAoeDJJZENvb3JkOnkySWRDb29yZCkpKSAoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0gPSBsYXllckNvb3JkcykpKSB3aGVuKHNlY0lkTGF5ZXIgZm9yZWFjaChzZWNMYXllckluZm8gc2VjSWRMYXllcnNUYWJsZSAoc2VjTGF5ZXJOYW1lID0gY2FyKHNlY0xheWVySW5mbykpIChzZWNMYXllckVuY3MgPSBjYWRyKHNlY0xheWVySW5mbykpIChzZWNJZEVuY1hMID0gbnRoKDAgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWFIgPSBudGgoMSBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNZID0gbnRoKDIgc2VjTGF5ZXJFbmNzKSkgKHgxU2VjSWRDb29yZCA9IHgxQ29vcmQpICh5MVNlY0lkQ29vcmQgPSAoLSBtYXgoKHNlY0lkRW5jWSArIHkxRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTFUYXBDb29yZCkpKSkgKHgyU2VjSWRDb29yZCA9ICh4MVNlY0lkQ29vcmQgLSAoKDIgKiBvZmZzZXQpICsgbWF4KHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQpKSkpICh5MlNlY0lkQ29vcmQgPSBtYXgoKHNlY0lkRW5jWSArIHkyRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTJUYXBDb29yZCkpKSAoc2VjTGF5ZXJDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNMYXllckNvb3JkcykpIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJDb29yZHMgPSBzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNlY0xheWVyTmFtZSBzZWNMYXllckNvb3JkcykpKSkgd2hlbigoKG4gIT0gbSkgJiYgKGN1cnJlbnRDb250YWN0ID09ICIiKSkgKG9sZHgxQ29vcmQgPSB4MUNvb3JkKSAoeDFDb29yZCA9ICgoMi4wICogb2Zmc2V0KSArICh4MUNvb3JkICsgZ2F0ZXRvZ2F0ZVNwYWNpbmcpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKG9sZHgxQ29vcmQ6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iKSBhY2Nlc3NEaXIpIChkaWZmYkJveCA9IGxpc3QoKG9sZHgxQ29vcmQ6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoZGlmZmJCb3gpICsgKChjYWFkcihkaWZmYkJveCkgLSBjYWFyKGRpZmZiQm94KSkgLyAyLjApKSAoY2FkYXIoZGlmZmJCb3gpICsgKChjYWRhZHIoZGlmZmJCb3gpIC0gY2FkYXIoZGlmZmJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChvbGR4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3Qob2xkeDFDb29yZCAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIGRpZmZFeHQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSAoY05ldCA9IGlmKChjTmV0ID09IHNOZXQpIGROZXQgc05ldCkpIChuZXRMID0gaWYoKG5ldEwgPT0gIlMiKSAiRCIgIlMiKSkpIHdoZW4oKG0gIT0gMSkgd2hlbigoc2hhcmVkU291cmNlICE9ICIiKSAoZGJDbG9zZSBzaGFyZWRTcmNJZCkpIHdoZW4oKHNoYXJlZERyYWluICE9ICIiKSAoZGJDbG9zZSBzaGFyZWREcm5JZCkpKSAoY05ldCA9IGlmKChjTmV0ID09IHNOZXQpIGROZXQgc05ldCkpIChuZXRMID0gaWYoKG5ldEwgPT0gIlMiKSAiRCIgIlMiKSkgaWYoKGNOZXQgPT0gc05ldCkgdGhlbiAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgc3JjT2Zmc2V0KSkgKGN1clRlcm1PZmZzZXQgPSBvZmZzZXQpIChuZXh0VGVybU9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIGRybk9mZnNldCkpIChjdXJUZXJtU2hDb25MZW5ndGggPSBjb250YWN0U0xlbmd0aCkgKG5leHRUZXJtU2hDb25MZW5ndGggPSBjb250YWN0RExlbmd0aCkgKHNlY0lkTGF5ZXIgPSBzcmNTZWNJZExheWVyKSB3aGVuKHNlY0lkTGF5ZXIgKHNlY0lkTGF5ZXJzVGFibGUgPSBzcmNTZWNJZExheWVyc1RhYmxlKSkgZWxzZSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgZHJuT2Zmc2V0KSkgKGN1clRlcm1PZmZzZXQgPSBvZmZzZXQpIChuZXh0VGVybU9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIHNyY09mZnNldCkpIChjdXJUZXJtU2hDb25MZW5ndGggPSBjb250YWN0RExlbmd0aCkgKG5leHRUZXJtU2hDb25MZW5ndGggPSBjb250YWN0U0xlbmd0aCkgKHNlY0lkTGF5ZXIgPSBkcm5TZWNJZExheWVyKSB3aGVuKHNlY0lkTGF5ZXIgKHNlY0lkTGF5ZXJzVGFibGUgPSBkcm5TZWNJZExheWVyc1RhYmxlKSkpIHdoZW4oKGxhc3RDb250YWN0ICE9ICIiKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGxhc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGxhc3RDb250YWN0IGNvbnRhY3QgY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGxhc3RDb250YWN0KSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgKGluc3RQYXJhbXMgPSBsaXN0KGxpc3QoInciICJmbG9hdCIgdykpKSB3aGVuKChwYXJhbXN+PmltcGxhbnQpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0SW1wUGFyYW0pKSkgd2hlbigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkIHNwcmludGYobmlsICJjJWQiIG0pICgob2Zmc2V0ICsgeDFDb29yZCk6eTFDb29yZCkgIlIwIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBsYXN0IGNvbnRhY3QiKSkgdW5sZXNzKGxvZEVuYWJsZWQgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKG9mZnNldCArIHgxQ29vcmQpOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKG9mZnNldCArIHgxQ29vcmQpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpKSB3aGVuKGxvZEVuYWJsZWQgKGlzU2luZ2xlU3RyYXBwZWQgPSBuaWwpIChpc05EU3RyYXBwZWQgPSBuaWwpIHdoZW4obWFudWFsTE9EIHdoZW4oTE9EQ29udGFjdE1hcFNTdHJhcHBlZCBmb3JlYWNoKHBhaXIgTE9EQ29udGFjdE1hcFNTdHJhcHBlZCB3aGVuKChsYXN0Q29udGFjdCA9PSBjYXIocGFpcikpIChpc1NpbmdsZVN0cmFwcGVkID0gdCkgKGlubmVyQ29udGFjdCA9IGNkcihwYWlyKSkpKSkgd2hlbihpc1NpbmdsZVN0cmFwcGVkIChkYkRlbGV0ZU9iamVjdCBpbnN0KSAoZGJDbG9zZSBjb250YWN0SWQpIChpbm5lckNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBjYXIoaW5uZXJDb250YWN0KSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChpbm5lckNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGlubmVyQ29udGFjdCkpKSAoaW5uZXJDb250YWN0TGVuZ3RoID0gKGNhYWRyKChpbm5lckNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigoaW5uZXJDb250YWN0SWR+PmRpZmZMYXllckJib3gpKSkpICh2aWExWENyZElubmVyQ29uID0gaWYoKGlubmVyQ29udGFjdElkfj5iQm94VmlhMSkgYWJzKGNhYXIoKGlubmVyQ29udGFjdElkfj5iQm94VmlhMSkpKSBuaWwpKSAobGF5ZXIyWENyZElubmVyQ29uID0gaWYoKGlubmVyQ29udGFjdElkfj5iQm94TGF5ZXIyKSBhYnMoY2FhcigoaW5uZXJDb250YWN0SWR+PmJCb3hMYXllcjIpKSkgbmlsKSkgKHZpYTJYQ3JkSW5uZXJDb24gPSBpZigoaW5uZXJDb250YWN0SWR+PmJCb3hWaWEyKSBhYnMoY2FhcigoaW5uZXJDb250YWN0SWR+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkSW5uZXJDb24gPSBpZigoaW5uZXJDb250YWN0SWR+PmJCb3hMYXllcjMpIGFicyhjYWFyKChpbm5lckNvbnRhY3RJZH4+YkJveExheWVyMykpKSBuaWwpKSAobGF5ZXIxWENyZElubmVyQ29uID0gaWYoKGlubmVyQ29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSBhYnMoY2FhcigoaW5uZXJDb250YWN0SWR+PmRpZmZMYXllckJib3gpKSkgbmlsKSkgaWYoKGxheWVyMVhDcmRJbm5lckNvbiAmJiB2aWExWENyZElubmVyQ29uKSB0aGVuICh2aWExRW5jSW5uZXJDb24gPSBhYnMoKGxheWVyMVhDcmRJbm5lckNvbiAtIHZpYTFYQ3JkSW5uZXJDb24pKSkpIGlmKChsYXllcjJYQ3JkSW5uZXJDb24gJiYgdmlhMlhDcmRJbm5lckNvbikgdGhlbiAodmlhMkVuY0lubmVyQ29uID0gYWJzKChsYXllcjFYQ3JkSW5uZXJDb24gLSB2aWEyWENyZElubmVyQ29uKSkpKSBpZigodmlhMUVuY0lubmVyQ29uICYmIHZpYTFFbmNMKSB0aGVuIChhdmFpbGFibGVWaWExU3BhY2UgPSAodmlhMUVuY0lubmVyQ29uICsgdmlhMUVuY0wpKSBpZigodmlhMU1pblNwYWNlID4gYXZhaWxhYmxlVmlhMVNwYWNlKSB0aGVuIChyZXF1aXJlZFZpYTFTcCA9ICh2aWExTWluU3BhY2UgLSBhdmFpbGFibGVWaWExU3BhY2UpKSBlbHNlIChyZXF1aXJlZFZpYTFTcCA9IDApKSkgaWYoKHZpYTJFbmNJbm5lckNvbiAmJiB2aWEyRW5jTCkgdGhlbiAoYXZhaWxhYmxlVmlhMlNwYWNlID0gKHZpYTJFbmNJbm5lckNvbiArIHZpYTJFbmNMKSkgaWYoKHZpYTJNaW5TcGFjZSA+IGF2YWlsYWJsZVZpYTJTcGFjZSkgdGhlbiAocmVxdWlyZWRWaWEyU3AgPSAodmlhMk1pblNwYWNlIC0gYXZhaWxhYmxlVmlhMlNwYWNlKSkgZWxzZSAocmVxdWlyZWRWaWEyU3AgPSAwKSkpIHdoZW4oKHJlcXVpcmVkVmlhMlNwICYmIHJlcXVpcmVkVmlhMVNwKSAocmVxdWlyZWRTcGFjZSA9IG1heChyZXF1aXJlZFZpYTJTcCByZXF1aXJlZFZpYTFTcCkpKSB3aGVuKCgobm90IHJlcXVpcmVkVmlhMlNwKSAmJiByZXF1aXJlZFZpYTFTcCkgKHJlcXVpcmVkU3BhY2UgPSByZXF1aXJlZFZpYTFTcCkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTooeTFDb29yZCArIHcpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgob2Zmc2V0ICsgeDFDb29yZCkgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKCgoc2IgLSBjb250YWN0TExlbmd0aCkgPj0gKG9mZnNldCArIHJlcXVpcmVkU3BhY2UgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAoY29udGFjdElkID0gaW5uZXJDb250YWN0SWQpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkIG5pbCAoKG9mZnNldCArIHgxQ29vcmQpOnkxQ29vcmQpICJSMCIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKGluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgaW5uZXJDb250YWN0KSkpIChzdHJhcHBlZENvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBsYXN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChzdHJhcHBlZENvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGxhc3RDb250YWN0KSkpIChzdHJhcHBlZENvbnRhY3RJbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgc3RyYXBwZWRDb250YWN0SWQgbmlsICgoeDFDb29yZCArIChzYiAtIGNvbnRhY3RMTGVuZ3RoKSk6eTFDb29yZCkgIlIwIiAxIGluc3RQYXJhbXMpKSB1bmxlc3Moc3RyYXBwZWRDb250YWN0SW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBsYXN0Q29udGFjdCkpKSAoZGJDbG9zZSBzdHJhcHBlZENvbnRhY3RJZCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCArIChvZmZzZXQgKyBpbm5lckNvbnRhY3RMZW5ndGgpKTp5MUNvb3JkKSAoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCArIChvZmZzZXQgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgKHNiIC0gY29udGFjdExMZW5ndGgpKSAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyAob2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpICh3ICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgdW5sZXNzKCgoc2IgLSBjb250YWN0TExlbmd0aCkgPj0gKG9mZnNldCArIHJlcXVpcmVkU3BhY2UgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAoc3RyYXBwZWRDb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgbGFzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcygoc3RyYXBwZWRDb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSAoc3RyYXBwZWRDb250YWN0SW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHN0cmFwcGVkQ29udGFjdElkIG5pbCAoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpOnkxQ29vcmQpICJSMCIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKHN0cmFwcGVkQ29udGFjdEluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgKHN0cmFwcGVkQ29udGFjdElkfj5jZWxsTmFtZSkpKSkgKGNvbnRhY3RJZCA9IHN0cmFwcGVkQ29udGFjdElkKSAoaW5zdCA9IHN0cmFwcGVkQ29udGFjdEluc3QpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpICh3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgKHNiIC0gY29udGFjdExMZW5ndGgpKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpKSB1bmxlc3MoaXNTaW5nbGVTdHJhcHBlZCB3aGVuKCgoKChzYiA+IDFlLTA2KSAmJiAob2Zmc2V0ID4gMWUtMDYpKSB8fCAoKHNiID4gMWUtMDYpICYmIChvZmZzZXQgPj0gMC4wKSkpICYmIChzYiA+IChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkpKSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgob2Zmc2V0ICsgeDFDb29yZCk6KHkxQ29vcmQgKyB3KSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCArIG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKTp5MUNvb3JkKSAoKHgxQ29vcmQgKyBvZmZzZXQgKyBjb250YWN0TExlbmd0aCArIChzYiAtIG9mZnNldCAtIGNvbnRhY3RMTGVuZ3RoKSk6dykpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKG9mZnNldCArIHgxQ29vcmQpICh3ICsgZGlmZkltcEVuYykpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQgKyBjb250YWN0TExlbmd0aCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoICsgKHNiIC0gb2Zmc2V0IC0gY29udGFjdExMZW5ndGgpICsgZGlmZkltcEVuYykgKHcgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQgKyBjb250YWN0TExlbmd0aCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQgKyBjb250YWN0TExlbmd0aCArIChzYiAtIG9mZnNldCAtIGNvbnRhY3RMTGVuZ3RoKSArIGRpZmZDb3JlSW1wRW5jKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKCgoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2IgPj0gMC4wKSkgfHwgKChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID4gMWUtMDYpKSkgJiYgKChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkgPj0gc2IpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAodyArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgob2Zmc2V0ICsgeDFDb29yZCkgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSkpIHVubGVzcyhtYW51YWxMT0QgdW5sZXNzKChidXR0aW5nR2F0ZXNTQiA+PSAwKSB3YXJuKHNwcmludGYobmlsICJDYW5ub3Qgc3BlY2lmeSBub24temVybyBudW1iZXIgb2YgYnV0dGluZyBnYXRlcyBmb3IgU0IgJUxcbiIgYnV0dGluZ0dhdGVzU0IpKSkgdW5sZXNzKChidXR0aW5nR2F0ZXNTQiA+PSAxKSAoZXh0ZW5zaW9uID0gKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKCh4MUNvb3JkICsgb2Zmc2V0KTp3KSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgb2Zmc2V0KSAoeTFDb29yZCArIHcgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBvZmZzZXQpICh5MUNvb3JkICsgdyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4oKGJ1dHRpbmdHYXRlc1NCID49IDApIHdoZW4oKGJ1dHRpbmdHYXRlc1NCID49IDEpIHdoZW4oTE9EQ29udGFjdE1hcFNTdHJhcHBlZCBmb3JlYWNoKHBhaXIgTE9EQ29udGFjdE1hcFNTdHJhcHBlZCB3aGVuKChsYXN0Q29udGFjdCA9PSBjYXIocGFpcikpIChpc1NpbmdsZVN0cmFwcGVkID0gdCkgKGlubmVyQ29udGFjdCA9IGNkcihwYWlyKSkpKSkgd2hlbihMT0RDb250YWN0TWFwTkRTdHJhcHBlZCBmb3JlYWNoKHBhaXIgTE9EQ29udGFjdE1hcE5EU3RyYXBwZWQgd2hlbigobGFzdENvbnRhY3QgPT0gY2FyKHBhaXIpKSAoaXNORFN0cmFwcGVkID0gdCkgKG91dGVyQ29udGFjdCA9IGNkcihwYWlyKSkpKSkpIHdoZW4oKGlzU2luZ2xlU3RyYXBwZWQgJiYgKGJ1dHRpbmdHYXRlc1NCID49IDEpKSAoZGJEZWxldGVPYmplY3QgaW5zdCkgKGRiQ2xvc2UgY29udGFjdElkKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGNhcihpbm5lckNvbnRhY3QpICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGlubmVyQ29udGFjdCkpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCBuaWwgKCh4MUNvb3JkICsgb2Zmc2V0KTowKSAiUjAiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGlubmVyQ29udGFjdCkpKSAoaW5uZXJDb250YWN0TGVuZ3RoID0gKGNhYWRyKChjb250YWN0SWR+PmRpZmZMYXllckJib3gpKSAtIGNhYXIoKGNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkpKSkgd2hlbigoYnV0dGluZ0dhdGVzU0IgPj0gMSkgd2hlbigobW9kKGJ1dHRpbmdHYXRlc1NCIDIpID09IDApIChleHRlbnNpb24gPSAoKGlubmVyQ29udGFjdExlbmd0aCArICgyICogY3VyVGVybU9mZnNldCkpICsgKCgoYnV0dGluZ0dhdGVzU0IgLyAyKSAtIDEpICogY3VyVGVybVNoQ29uTGVuZ3RoKSArICgoYnV0dGluZ0dhdGVzU0IgLSAyKSAqIGN1clRlcm1PZmZzZXQpICsgKChidXR0aW5nR2F0ZXNTQiAvIDIpICogbmV4dFRlcm1TaENvbkxlbmd0aCkgKyAoYnV0dGluZ0dhdGVzU0IgKiBuZXh0VGVybU9mZnNldCkgKyAoY29udGFjdExMZW5ndGggKyBjdXJUZXJtT2Zmc2V0KSArIChidXR0aW5nR2F0ZXNTQiAqIGwpKSkpIHVubGVzcygobW9kKGJ1dHRpbmdHYXRlc1NCIDIpID09IDApIChleHRlbnNpb24gPSAoKGlubmVyQ29udGFjdExlbmd0aCArICgyICogY3VyVGVybU9mZnNldCkpICsgKCgoYnV0dGluZ0dhdGVzU0IgLSAxKSAvIDIpICogY3VyVGVybVNoQ29uTGVuZ3RoKSArICgoYnV0dGluZ0dhdGVzU0IgLSAxKSAqIGN1clRlcm1PZmZzZXQpICsgKCgoYnV0dGluZ0dhdGVzU0IgLSAxKSAvIDIpICogbmV4dFRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgKiBuZXh0VGVybU9mZnNldCkgKyAoY29udGFjdExMZW5ndGggKyBuZXh0VGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0IgKiBsKSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCArIChvZmZzZXQgKyBpbm5lckNvbnRhY3RMZW5ndGgpKTp5MUNvb3JkKSAoKHgxQ29vcmQgKyAoZXh0ZW5zaW9uIC0gY29udGFjdExMZW5ndGgpKTp3KSkpIChvdXRlckNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBsYXN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKChvdXRlckNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGxhc3RDb250YWN0KSkpIChvdXRlckluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBvdXRlckNvbnRhY3RJZCBuaWwgKCh4MUNvb3JkICsgKGV4dGVuc2lvbiAtIGNvbnRhY3RMTGVuZ3RoKSk6MCkgIlIwIiAxIGluc3RQYXJhbXMpKSB1bmxlc3Mob3V0ZXJJbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGxhc3RDb250YWN0KSkpIChkYkNsb3NlIG91dGVyQ29udGFjdElkKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgb2Zmc2V0ICsgaW5uZXJDb250YWN0TGVuZ3RoKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgKGV4dGVuc2lvbiAtIGNvbnRhY3RMTGVuZ3RoKSkgKHkxQ29vcmQgKyB3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCArIG9mZnNldCArIGlubmVyQ29udGFjdExlbmd0aCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyAoZXh0ZW5zaW9uIC0gY29udGFjdExMZW5ndGgpKSAoeTFDb29yZCArIHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKCgobm90IGlzU2luZ2xlU3RyYXBwZWQpICYmIChidXR0aW5nR2F0ZXNTQiA+PSAxKSkgKG91dGVyQ29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGNhcihvdXRlckNvbnRhY3QpICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoKG91dGVyQ29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgb3V0ZXJDb250YWN0KSkpIChvdXRlckNvbnRhY3RMZW5ndGggPSAoY2FhZHIoKG91dGVyQ29udGFjdElkfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChvdXRlckNvbnRhY3RJZH4+ZGlmZkxheWVyQmJveCkpKSkgd2hlbigoYnV0dGluZ0dhdGVzU0IgPj0gMSkgd2hlbigobW9kKGJ1dHRpbmdHYXRlc1NCIDIpID09IDApIChleHRlbnNpb24gPSAoKGNvbnRhY3RMTGVuZ3RoICsgKDIgKiBjdXJUZXJtT2Zmc2V0KSkgKyAoKChidXR0aW5nR2F0ZXNTQiAvIDIpIC0gMSkgKiBjdXJUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQiAtIDIpICogY3VyVGVybU9mZnNldCkgKyAoKGJ1dHRpbmdHYXRlc1NCIC8gMikgKiBuZXh0VGVybVNoQ29uTGVuZ3RoKSArIChidXR0aW5nR2F0ZXNTQiAqIG5leHRUZXJtT2Zmc2V0KSArIChvdXRlckNvbnRhY3RMZW5ndGggKyBjdXJUZXJtT2Zmc2V0KSArIChidXR0aW5nR2F0ZXNTQiAqIGwpKSkpIHVubGVzcygobW9kKGJ1dHRpbmdHYXRlc1NCIDIpID09IDApIChleHRlbnNpb24gPSAoKGNvbnRhY3RMTGVuZ3RoICsgKDIgKiBjdXJUZXJtT2Zmc2V0KSkgKyAoKChidXR0aW5nR2F0ZXNTQiAtIDEpIC8gMikgKiBjdXJUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQiAtIDEpICogY3VyVGVybU9mZnNldCkgKyAoKChidXR0aW5nR2F0ZXNTQiAtIDEpIC8gMikgKiBuZXh0VGVybVNoQ29uTGVuZ3RoKSArICgoYnV0dGluZ0dhdGVzU0IgLSAxKSAqIG5leHRUZXJtT2Zmc2V0KSArIChvdXRlckNvbnRhY3RMZW5ndGggKyBuZXh0VGVybU9mZnNldCkgKyAoYnV0dGluZ0dhdGVzU0IgKiBsKSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCArIChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkpOnkxQ29vcmQpICgoeDFDb29yZCArIGV4dGVuc2lvbik6dykpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgb2Zmc2V0ICsgY29udGFjdExMZW5ndGgpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBleHRlbnNpb24gKyBkaWZmSW1wRW5jKSAoeTFDb29yZCArIHcgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgb2Zmc2V0ICsgY29udGFjdExMZW5ndGgpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZXh0ZW5zaW9uICsgZGlmZkNvcmVJbXBFbmMpICh5MUNvb3JkICsgdyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgbGFzdENvbnRhY3QpKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkgd2hlbigobG9kRW5hYmxlZCAmJiBtYW51YWxMT0QgJiYgaXNTaW5nbGVTdHJhcHBlZCkgdW5sZXNzKCgoc2IgLSBjb250YWN0TExlbmd0aCkgPj0gKG9mZnNldCArIHJlcXVpcmVkU3BhY2UgKyBpbm5lckNvbnRhY3RMZW5ndGgpKSAoYkJveCA9IGxpc3QobGlzdCgoY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpIGNhZGFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSBsaXN0KChjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyAoc2IgLSBjb250YWN0TExlbmd0aCkpIGNhZGFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0Rpcikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KChjYWFyKGJCb3gpICsgKChjYWFkcihiQm94KSAtIGNhYXIoYkJveCkpIC8gMi4wKSkgKGNhZGFyKGJCb3gpICsgKChjYWRhZHIoYkJveCkgLSBjYWRhcihiQm94KSkgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MkRpZmZDb29yZCA9IGNhYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHgyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgdW5sZXNzKGxvZEVuYWJsZWQgd2hlbih3ZWxsTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSAoeTFXZWxsQ29vcmQgPSBtaW4oKC0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTFUYXBDb29yZCkpKSB5MVdlbGxDb29yZCkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpIHkyV2VsbENvb3JkKSkgKHgyV2VsbENvb3JkID0gKG9mZnNldCArIHgxQ29vcmQgKyBtYXgoKHdlbGxFbmNEaWZmWCArIHgyRGlmZkNvb3JkKSAod2VsbEVuY1RhcFggKyB4MlRhcENvb3JkKSkpKSkgd2hlbihpZExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgZm9yZWFjaChsYXllckluZm8gaWRMYXllcnNUYWJsZSAobGF5ZXJOYW1lID0gY2FyKGxheWVySW5mbykpIChsYXllckVuY3MgPSBjYWRyKGxheWVySW5mbykpIChpZEVuY1hMID0gbnRoKDAgbGF5ZXJFbmNzKSkgKGlkRW5jWFIgPSBudGgoMSBsYXllckVuY3MpKSAoaWRFbmNZID0gbnRoKDIgbGF5ZXJFbmNzKSkgKHgxSWRDb29yZCA9IG50aCgwIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbnRoKDEgY2FyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MklkQ29vcmQgPSBudGgoMCBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MklkQ29vcmQgPSBudGgoMSBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MUlkQ29vcmQgPSBtaW4oKC0gbWF4KChpZEVuY1kgKyB5MURpZmZDb29yZCkgKGlkRW5jWSArIHkxVGFwQ29vcmQpKSkgeTFJZENvb3JkKSkgKHkySWRDb29yZCA9IG1heCgoaWRFbmNZICsgeTJEaWZmQ29vcmQpIChpZEVuY1kgKyB5MlRhcENvb3JkKSB5MklkQ29vcmQpKSAoeDJJZENvb3JkID0gKG9mZnNldCArIHgxQ29vcmQgKyBtYXgoKGlkRW5jWFIgKyB4MkRpZmZDb29yZCkgKGlkRW5jWFIgKyB4MlRhcENvb3JkKSkpKSAobGF5ZXJDb29yZHMgPSBsaXN0KCh4MUlkQ29vcmQ6eTFJZENvb3JkKSAoeDJJZENvb3JkOnkySWRDb29yZCkpKSAoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0gPSBsYXllckNvb3JkcykpKSB3aGVuKHNlY0lkTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyRW5jcyA9IGNhZHIoc2VjTGF5ZXJJbmZvKSkgKHNlY0lkRW5jWEwgPSBudGgoMCBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNYUiA9IG50aCgxIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1kgPSBudGgoMiBzZWNMYXllckVuY3MpKSAoeDFTZWNJZENvb3JkID0geDFDb29yZCkgKHkxU2VjSWRDb29yZCA9ICgtIG1heCgoc2VjSWRFbmNZICsgeTFEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeTJTZWNJZENvb3JkID0gbWF4KChzZWNJZEVuY1kgKyB5MkRpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkyVGFwQ29vcmQpKSkgKHgyU2VjSWRDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KChzZWNJZEVuY1hSICsgeDJEaWZmQ29vcmQpIChzZWNJZEVuY1hSICsgeDJUYXBDb29yZCkpKSkgKHNlY0xheWVyQ29vcmRzID0gbGlzdCgoeDFTZWNJZENvb3JkOnkxU2VjSWRDb29yZCkgKHgyU2VjSWRDb29yZDp5MlNlY0lkQ29vcmQpKSkgKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdID0gc2VjTGF5ZXJDb29yZHMpKSkpIHdoZW4obG9kRW5hYmxlZCB3aGVuKG1hbnVhbExPRCB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpICh5MVdlbGxDb29yZCA9IG1pbigoLSBtYXgoKHdlbGxFbmNEaWZmWSArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcFkgKyB5MVRhcENvb3JkKSkpIHkxV2VsbENvb3JkKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSB3aGVuKGlzU2luZ2xlU3RyYXBwZWQgKHgyV2VsbENvb3JkID0gKHgxQ29vcmQgKyAoc2IgLSBtYXgoeDJEaWZmQ29vcmQgeDJUYXBDb29yZCkpICsgbWF4KCh3ZWxsRW5jRGlmZlggKyB4MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBYICsgeDJUYXBDb29yZCkpKSkpIHVubGVzcyhpc1NpbmdsZVN0cmFwcGVkIHdoZW4oKCgoc2IgPiAxZS0wNikgJiYgKG9mZnNldCA+IDFlLTA2KSAmJiAoc2IgPiAob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpKSkgfHwgKChzYiA+IDFlLTA2KSAmJiAob2Zmc2V0ID09IDAuMCkgJiYgKHNiID49IChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkpKSkgKHgyV2VsbENvb3JkID0gKHgxQ29vcmQgKyAoc2IgLSBtYXgoeDJEaWZmQ29vcmQgeDJUYXBDb29yZCkpICsgbWF4KCh3ZWxsRW5jRGlmZlggKyB4MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBYICsgeDJUYXBDb29yZCkpKSkpIHdoZW4oKCgob2Zmc2V0ID4gMWUtMDYpICYmIChzYiA9PSAwLjApICYmICgob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpID49IHNiKSkgfHwgKChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID4gMWUtMDYpICYmICgob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpID49IHNiKSkpICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgb2Zmc2V0ICsgbWF4KCh3ZWxsRW5jRGlmZlggKyB4MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBYICsgeDJUYXBDb29yZCkpKSkpKSkgd2hlbihpZExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgZm9yZWFjaChsYXllckluZm8gaWRMYXllcnNUYWJsZSAobGF5ZXJOYW1lID0gY2FyKGxheWVySW5mbykpIChsYXllckVuY3MgPSBjYWRyKGxheWVySW5mbykpIChpZEVuY1hMID0gbnRoKDAgbGF5ZXJFbmNzKSkgKGlkRW5jWFIgPSBudGgoMSBsYXllckVuY3MpKSAoaWRFbmNZID0gbnRoKDIgbGF5ZXJFbmNzKSkgKHgxSWRDb29yZCA9IG50aCgwIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbnRoKDEgY2FyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MklkQ29vcmQgPSBudGgoMCBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MklkQ29vcmQgPSBudGgoMSBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MUlkQ29vcmQgPSBtaW4oKC0gbWF4KChpZEVuY1kgKyB5MURpZmZDb29yZCkgKGlkRW5jWSArIHkxVGFwQ29vcmQpKSkgeTFJZENvb3JkKSkgKHkySWRDb29yZCA9IG1heCgoaWRFbmNZICsgeTJEaWZmQ29vcmQpIChpZEVuY1kgKyB5MlRhcENvb3JkKSB5MklkQ29vcmQpKSB3aGVuKGlzU2luZ2xlU3RyYXBwZWQgKHgySWRDb29yZCA9ICh4MUNvb3JkICsgKChzYiAtIG1heCh4MkRpZmZDb29yZCB4MlRhcENvb3JkKSkgKyBtYXgoKGlkRW5jWFIgKyB4MkRpZmZDb29yZCkgKGlkRW5jWFIgKyB4MlRhcENvb3JkKSkpKSkpIHVubGVzcyhpc1NpbmdsZVN0cmFwcGVkIHdoZW4oKCgoc2IgPiAxZS0wNikgJiYgKG9mZnNldCA+IDFlLTA2KSAmJiAoc2IgPj0gKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSkpIHx8ICgoc2IgPiAxZS0wNikgJiYgKG9mZnNldCA+PSAwLjApICYmIChzYiA+PSAob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpKSkpICh4MklkQ29vcmQgPSAoeDFDb29yZCArIChzYiAtIG1heCh4MkRpZmZDb29yZCB4MlRhcENvb3JkKSkgKyBtYXgoKGlkRW5jWFIgKyB4MkRpZmZDb29yZCkgKGlkRW5jWFIgKyB4MlRhcENvb3JkKSkpKSkgd2hlbigoKChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID49IDAuMCkgJiYgKChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkgPj0gc2IpKSB8fCAoKG9mZnNldCA+IDFlLTA2KSAmJiAoc2IgPiAxZS0wNikgJiYgKChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkgPj0gc2IpKSkgKHgySWRDb29yZCA9ICh4MUNvb3JkICsgb2Zmc2V0ICsgbWF4KChpZEVuY1hSICsgeDJEaWZmQ29vcmQpIChpZEVuY1hSICsgeDJUYXBDb29yZCkpKSkpKSAobGF5ZXJDb29yZHMgPSBsaXN0KCh4MUlkQ29vcmQ6eTFJZENvb3JkKSAoeDJJZENvb3JkOnkySWRDb29yZCkpKSAoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0gPSBsYXllckNvb3JkcykpKSB3aGVuKHNlY0lkTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyRW5jcyA9IGNhZHIoc2VjTGF5ZXJJbmZvKSkgKHNlY0lkRW5jWEwgPSBudGgoMCBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNYUiA9IG50aCgxIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1kgPSBudGgoMiBzZWNMYXllckVuY3MpKSAoeDFTZWNJZENvb3JkID0geDFDb29yZCkgKHkxU2VjSWRDb29yZCA9ICgtIG1heCgoc2VjSWRFbmNZICsgeTFEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeTJTZWNJZENvb3JkID0gbWF4KChzZWNJZEVuY1kgKyB5MkRpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkyVGFwQ29vcmQpKSkgd2hlbihpc1NpbmdsZVN0cmFwcGVkICh4MlNlY0lkQ29vcmQgPSAoeDFDb29yZCArICgoc2IgLSBtYXgoeDJEaWZmQ29vcmQgeDJUYXBDb29yZCkpICsgbWF4KChzZWNJZEVuY1hSICsgeDJEaWZmQ29vcmQpIChzZWNJZEVuY1hSICsgeDJUYXBDb29yZCkpKSkpKSB1bmxlc3MoaXNTaW5nbGVTdHJhcHBlZCB3aGVuKCgoKHNiID4gMWUtMDYpICYmIChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID49IChvZmZzZXQgKyBjb250YWN0TExlbmd0aCkpKSB8fCAoKHNiID4gMWUtMDYpICYmIChvZmZzZXQgPj0gMC4wKSAmJiAoc2IgPj0gKG9mZnNldCArIGNvbnRhY3RMTGVuZ3RoKSkpKSAoeDJTZWNJZENvb3JkID0gKHgxQ29vcmQgKyAoc2IgLSBtYXgoeDJEaWZmQ29vcmQgeDJUYXBDb29yZCkpICsgbWF4KChzZWNJZEVuY1hSICsgeDJEaWZmQ29vcmQpIChzZWNJZEVuY1hSICsgeDJUYXBDb29yZCkpKSkpIHdoZW4oKCgob2Zmc2V0ID4gMWUtMDYpICYmIChzYiA+PSAwLjApICYmICgob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpID49IHNiKSkgfHwgKChvZmZzZXQgPiAxZS0wNikgJiYgKHNiID4gMWUtMDYpICYmICgob2Zmc2V0ICsgY29udGFjdExMZW5ndGgpID49IHNiKSkpICh4MlNlY0lkQ29vcmQgPSAoeDFDb29yZCArIG9mZnNldCArIG1heCgoc2VjSWRFbmNYUiArIHgyRGlmZkNvb3JkKSAoc2VjSWRFbmNYUiArIHgyVGFwQ29vcmQpKSkpKSkgKHNlY0xheWVyQ29vcmRzID0gbGlzdCgoeDFTZWNJZENvb3JkOnkxU2VjSWRDb29yZCkgKHgyU2VjSWRDb29yZDp5MlNlY0lkQ29vcmQpKSkgKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdID0gc2VjTGF5ZXJDb29yZHMpKSkpIHVubGVzcyhtYW51YWxMT0Qgd2hlbih3ZWxsTGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSAoeTFXZWxsQ29vcmQgPSBtaW4oKC0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTFUYXBDb29yZCkpKSB5MVdlbGxDb29yZCkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpIHkyV2VsbENvb3JkKSkgd2hlbihpc1NpbmdsZVN0cmFwcGVkICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgZXh0ZW5zaW9uICsgd2VsbEVuY1RhcFgpKSkgdW5sZXNzKGlzU2luZ2xlU3RyYXBwZWQgKHgyV2VsbENvb3JkID0gKHgxQ29vcmQgKyBleHRlbnNpb24gKyB3ZWxsRW5jRGlmZlgpKSkpIHdoZW4oaWRMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpIGZvcmVhY2gobGF5ZXJJbmZvIGlkTGF5ZXJzVGFibGUgKGxheWVyTmFtZSA9IGNhcihsYXllckluZm8pKSAobGF5ZXJFbmNzID0gY2FkcihsYXllckluZm8pKSAoaWRFbmNYTCA9IG50aCgwIGxheWVyRW5jcykpIChpZEVuY1hSID0gbnRoKDEgbGF5ZXJFbmNzKSkgKGlkRW5jWSA9IG50aCgyIGxheWVyRW5jcykpICh4MUlkQ29vcmQgPSBudGgoMCBjYXIoaWRMYXllcnNDb29yZFRhYmxlW2xheWVyTmFtZV0pKSkgKHkxSWRDb29yZCA9IG50aCgxIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeDJJZENvb3JkID0gbnRoKDAgY2FkcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTJJZENvb3JkID0gbnRoKDEgY2FkcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbWluKCgtIG1heCgoaWRFbmNZICsgeTFEaWZmQ29vcmQpIChpZEVuY1kgKyB5MVRhcENvb3JkKSkpIHkxSWRDb29yZCkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSAoaWRFbmNZICsgeTJUYXBDb29yZCkgeTJJZENvb3JkKSkgKHgySWRDb29yZCA9ICh4MUNvb3JkICsgZXh0ZW5zaW9uICsgaWRFbmNYUikpIChsYXllckNvb3JkcyA9IGxpc3QoKHgxSWRDb29yZDp5MUlkQ29vcmQpICh4MklkQ29vcmQ6eTJJZENvb3JkKSkpIChpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSA9IGxheWVyQ29vcmRzKSkpIHdoZW4oc2VjSWRMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJFbmNzID0gY2FkcihzZWNMYXllckluZm8pKSAoc2VjSWRFbmNYTCA9IG50aCgwIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1hSID0gbnRoKDEgc2VjTGF5ZXJFbmNzKSkgKHNlY0lkRW5jWSA9IG50aCgyIHNlY0xheWVyRW5jcykpICh4MVNlY0lkQ29vcmQgPSB4MUNvb3JkKSAoeTFTZWNJZENvb3JkID0gKC0gbWF4KChzZWNJZEVuY1kgKyB5MURpZmZDb29yZCkgKHNlY0lkRW5jWSArIHkxVGFwQ29vcmQpKSkpICh5MlNlY0lkQ29vcmQgPSBtYXgoKHNlY0lkRW5jWSArIHkyRGlmZkNvb3JkKSAoc2VjSWRFbmNZICsgeTJUYXBDb29yZCkpKSAoeDJTZWNJZENvb3JkID0gKHgxQ29vcmQgKyBleHRlbnNpb24gKyBzZWNJZEVuY1hSKSkgKHNlY0xheWVyQ29vcmRzID0gbGlzdCgoeDFTZWNJZENvb3JkOnkxU2VjSWRDb29yZCkgKHgyU2VjSWRDb29yZDp5MlNlY0lkQ29vcmQpKSkgKHNlY0lkTGF5ZXJzQ29vcmRUYWJsZVtzZWNMYXllck5hbWVdID0gc2VjTGF5ZXJDb29yZHMpKSkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGRpZmZFeHQpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgoeDFDb29yZCArIGRpZmZFeHQpOih5MUNvb3JkICsgdykpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4oc2VjSWRMYXllciBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyQ29vcmRzID0gc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0pIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzZWNMYXllck5hbWUgc2VjTGF5ZXJDb29yZHMpKSkgd2hlbigobGFzdENvbnRhY3QgPT0gIiIpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCArIGRpZmZJbXBFbmMpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCArIGRpZmZDb3JlSW1wRW5jKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkgd2hlbigobG9kRW5hYmxlZCAmJiAobm90IG1hbnVhbExPRCkgJiYgKGJ1dHRpbmdHYXRlc1NCID49IDEpKSB3aGVuKChtb2QoYnV0dGluZ0dhdGVzU0IgMikgPT0gMCkgKGV4dGVuc2lvbiA9IChjb250YWN0TExlbmd0aCArICgoYnV0dGluZ0dhdGVzU0IgLyAyKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoYnV0dGluZ0dhdGVzU0IgKiBjdXJUZXJtT2Zmc2V0KSArICgoYnV0dGluZ0dhdGVzU0IgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKGJ1dHRpbmdHYXRlc1NCICogbmV4dFRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NCICogbCkpKSkgdW5sZXNzKChtb2QoYnV0dGluZ0dhdGVzU0IgMikgPT0gMCkgKGV4dGVuc2lvbiA9IChjb250YWN0TExlbmd0aCArICgoKGJ1dHRpbmdHYXRlc1NCICsgMSkgLyAyKSAqIGN1clRlcm1TaENvbkxlbmd0aCkgKyAoKGJ1dHRpbmdHYXRlc1NCICsgMSkgKiBjdXJUZXJtT2Zmc2V0KSArICgoKGJ1dHRpbmdHYXRlc1NCIC0gMSkgLyAyKSAqIG5leHRUZXJtU2hDb25MZW5ndGgpICsgKChidXR0aW5nR2F0ZXNTQiAtIDEpICogbmV4dFRlcm1PZmZzZXQpICsgKGJ1dHRpbmdHYXRlc1NCICogbCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCArIGRpZmZFeHQpOnkxQ29vcmQpICgoeDFDb29yZCArIGV4dGVuc2lvbik6KHkxQ29vcmQgKyB3KSkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGV4dGVuc2lvbiArIGRpZmZJbXBFbmMpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCArIGRpZmZFeHQpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZXh0ZW5zaW9uICsgZGlmZkNvcmVJbXBFbmMpICgoeTFDb29yZCArIHcpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSkgd2hlbigobG9kRW5hYmxlZCAmJiBtYW51YWxMT0QgJiYgKHNiID4gZGlmZkV4dCkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgKyBkaWZmRXh0KTp5MUNvb3JkKSAoKHgxQ29vcmQgKyBzYik6KHkxQ29vcmQgKyB3KSkpKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIHNiICsgZGlmZkltcEVuYykgKHcgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBzYiArIGRpZmZDb3JlSW1wRW5jKSAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoeDFDb29yZCArIChkaWZmRXh0IC8gMi4wKSkgKHkxQ29vcmQgKyAodyAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbih3ZWxsTGF5ZXIgKHgyV2VsbENvb3JkID0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgd2VsbEVuY0RpZmZYKSkgd2hlbigobG9kRW5hYmxlZCAmJiAobm90IG1hbnVhbExPRCkgJiYgKGJ1dHRpbmdHYXRlc1NCID49IDEpKSAoeDJXZWxsQ29vcmQgPSAoeDFDb29yZCArIGV4dGVuc2lvbiArIHdlbGxFbmNEaWZmWCkpKSB3aGVuKChsb2RFbmFibGVkICYmIG1hbnVhbExPRCAmJiAoc2IgPiBkaWZmRXh0KSkgKHgyV2VsbENvb3JkID0gKHgxQ29vcmQgKyBzYiArIHdlbGxFbmNEaWZmWCkpKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyB3ICsgd2VsbEVuY0RpZmZZKSB5MldlbGxDb29yZCkpKSB3aGVuKGlkTGF5ZXIgZm9yZWFjaChsYXllckluZm8gaWRMYXllcnNUYWJsZSAobGF5ZXJOYW1lID0gY2FyKGxheWVySW5mbykpIChsYXllckVuY3MgPSBjYWRyKGxheWVySW5mbykpIChpZEVuY1hMID0gbnRoKDAgbGF5ZXJFbmNzKSkgKGlkRW5jWFIgPSBudGgoMSBsYXllckVuY3MpKSAoaWRFbmNZID0gbnRoKDIgbGF5ZXJFbmNzKSkgKHgxSWRDb29yZCA9IG50aCgwIGNhcihpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSkpKSAoeTFJZENvb3JkID0gbnRoKDEgY2FyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MklkQ29vcmQgPSBudGgoMCBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh5MklkQ29vcmQgPSBudGgoMSBjYWRyKGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSkpICh4MklkQ29vcmQgPSAoeDFDb29yZCArIGRpZmZFeHQgKyBpZEVuY1hSKSkgd2hlbigobG9kRW5hYmxlZCAmJiAobm90IG1hbnVhbExPRCkgJiYgKGJ1dHRpbmdHYXRlc1NCID49IDEpKSAoeDJJZENvb3JkID0gKHgxQ29vcmQgKyBleHRlbnNpb24gKyBpZEVuY1hSKSkpIHdoZW4oKGxvZEVuYWJsZWQgJiYgbWFudWFsTE9EICYmIChzYiA+IGRpZmZFeHQpKSAoeDJJZENvb3JkID0gKHgxQ29vcmQgKyBzYiArIGlkRW5jWFIpKSkgKHkySWRDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyBpZEVuY1kpIHkySWRDb29yZCkpIChsYXllckNvb3JkcyA9IGxpc3QoKHgxSWRDb29yZDp5MUlkQ29vcmQpICh4MklkQ29vcmQ6eTJJZENvb3JkKSkpIChpZExheWVyc0Nvb3JkVGFibGVbbGF5ZXJOYW1lXSA9IGxheWVyQ29vcmRzKSkpIHdoZW4oc2VjSWRMYXllciBmb3JlYWNoKHNlY0xheWVySW5mbyBzZWNJZExheWVyc1RhYmxlIChzZWNMYXllck5hbWUgPSBjYXIoc2VjTGF5ZXJJbmZvKSkgKHNlY0xheWVyRW5jcyA9IGNhZHIoc2VjTGF5ZXJJbmZvKSkgKHNlY0lkRW5jWEwgPSBudGgoMCBzZWNMYXllckVuY3MpKSAoc2VjSWRFbmNYUiA9IG50aCgxIHNlY0xheWVyRW5jcykpIChzZWNJZEVuY1kgPSBudGgoMiBzZWNMYXllckVuY3MpKSAoeDFTZWNJZENvb3JkID0geDFDb29yZCkgKHkxU2VjSWRDb29yZCA9ICgtIG1heCgoc2VjSWRFbmNZICsgeTFEaWZmQ29vcmQpIChzZWNJZEVuY1kgKyB5MVRhcENvb3JkKSkpKSAoeDJTZWNJZENvb3JkID0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgc2VjSWRFbmNYUikpIHdoZW4oKGxvZEVuYWJsZWQgJiYgKG5vdCBtYW51YWxMT0QpICYmIChidXR0aW5nR2F0ZXNTQiA+PSAxKSkgKHgyU2VjSWRDb29yZCA9ICh4MUNvb3JkICsgZXh0ZW5zaW9uICsgc2VjSWRFbmNYUikpKSB3aGVuKChsb2RFbmFibGVkICYmIG1hbnVhbExPRCAmJiAoc2IgPiBkaWZmRXh0KSkgKHgyU2VjSWRDb29yZCA9ICh4MUNvb3JkICsgc2IgKyBzZWNJZEVuY1hSKSkpICh5MlNlY0lkQ29vcmQgPSAoeTFDb29yZCArIHcgKyBzZWNJZEVuY1kpKSAoc2VjTGF5ZXJDb29yZHMgPSBsaXN0KCh4MVNlY0lkQ29vcmQ6eTFTZWNJZENvb3JkKSAoeDJTZWNJZENvb3JkOnkyU2VjSWRDb29yZCkpKSAoc2VjSWRMYXllcnNDb29yZFRhYmxlW3NlY0xheWVyTmFtZV0gPSBzZWNMYXllckNvb3JkcykpIGZvcmVhY2goc2VjTGF5ZXJJbmZvIHNlY0lkTGF5ZXJzVGFibGUgKHNlY0xheWVyTmFtZSA9IGNhcihzZWNMYXllckluZm8pKSAoc2VjTGF5ZXJDb29yZHMgPSBzZWNJZExheWVyc0Nvb3JkVGFibGVbc2VjTGF5ZXJOYW1lXSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNlY0xheWVyTmFtZSBzZWNMYXllckNvb3JkcykpKSkgd2hlbih3ZWxsTGF5ZXIgKHdlbGxMYXllcl9Yb3JpZ2luID0geDFXZWxsQ29vcmQpICh3ZWxsTGF5ZXJfWW9yaWdpbiA9ICh5MVdlbGxDb29yZCArICgtIHdlbGxFbmNZRGlmZikpKSAod2VsbExheWVyX1hlbmQgPSB4MldlbGxDb29yZCkgKHdlbGxMYXllcl9ZZW5kID0gKHkyV2VsbENvb3JkICsgd2VsbEVuY1lEaWZmKSkgd2hlbigoKHdlbGxMYXllcl9YZW5kIC0gd2VsbExheWVyX1hvcmlnaW4pIDwgd2VsbG1pbldpZHRoKSAoRGlmZl93ZWxsX3dpZHRoID0gKHdlbGxtaW5XaWR0aCAtICh3ZWxsTGF5ZXJfWGVuZCAtIHdlbGxMYXllcl9Yb3JpZ2luKSkpICh4MldlbGxDb29yZCA9ICh4MldlbGxDb29yZCArIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpICh4MVdlbGxDb29yZCA9ICh4MVdlbGxDb29yZCAtIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpKSB3aGVuKCgod2VsbExheWVyX1llbmQgLSB3ZWxsTGF5ZXJfWW9yaWdpbikgPCB3ZWxsbWluV2lkdGgpIChEaWZmX3dlbGxfd2lkdGggPSAod2VsbG1pbldpZHRoIC0gKHdlbGxMYXllcl9ZZW5kIC0gd2VsbExheWVyX1lvcmlnaW4pKSkgKHkxV2VsbENvb3JkID0gKHkxV2VsbENvb3JkIC0gKERpZmZfd2VsbF93aWR0aCAvIDIpKSkgKHkyV2VsbENvb3JkID0gKHkyV2VsbENvb3JkICsgKERpZmZfd2VsbF93aWR0aCAvIDIpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoeDFXZWxsQ29vcmQ6KHkxV2VsbENvb3JkICsgKC0gd2VsbEVuY1lEaWZmKSkpICh4MldlbGxDb29yZDooeTJXZWxsQ29vcmQgKyB3ZWxsRW5jWURpZmYpKSkpKSB3aGVuKGlkTGF5ZXIgZm9yZWFjaChsYXllckluZm8gaWRMYXllcnNUYWJsZSAobGF5ZXJOYW1lID0gY2FyKGxheWVySW5mbykpIChsYXllckNvb3JkcyA9IGlkTGF5ZXJzQ29vcmRUYWJsZVtsYXllck5hbWVdKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXJOYW1lIGxheWVyQ29vcmRzKSkpKQAoZGlmZkxheWVyIGdhdGVMYXllciB3ZWxsTGF5ZXIgd2VsbG1pbldpZHRoIGRpZmZFeHQgd2VsbEVuY0RpZmYgd2VsbEVuY1RhcCB3ZWxsTGF5ZXJXaWR0aCBsYWJlbExheWVyIGxhYmVsV2lkdGggZGlmZkltcGxhbnQgZGlmZkltcEVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBFbmMgcG9seUltcGxhbnQgcG9seUltcFhFbmMgcG9seUltcFlFbmMgdmlhMU1pblNwYWNlIHZpYTJNaW5TcGFjZSBsYXllcjJNaW5TcGFjZSBsYXllcjNNaW5TcGFjZSBzbmFwR3JpZCBpbXBsYW50IHRhcExheWVyIHRhcEltcGxhbnQgdGFwSW1wRW5jIGxvZEVuYWJsZWQgc291cmNlRmlyc3Qgc2hhcmVkRHJhaW4gc2hhcmVkU291cmNlIGxhc3RDb250YWN0IGZpcnN0Q29udGFjdCBnYXRlRXh0IGlkTGF5ZXJzVGFibGUgc3JjU2VjSWRMYXllcnNUYWJsZSBkcm5TZWNJZExheWVyc1RhYmxlIGhzcGljZU1vZGVsIHNyY09mZnNldCBkcm5PZmZzZXQgbSBsIHcgZ2F0ZXRvZ2F0ZVNwYWNpbmcgZ2F0ZUltcGxhbnQgbWFudWFsTE9EIHNhIHNiIHNkIGJ1dHRpbmdHYXRlc1NBIGJ1dHRpbmdHYXRlc1NCIExPRENvbnRhY3RNYXBTU3RyYXBwZWQgTE9EQ29udGFjdE1hcE5EU3RyYXBwZWQgbm9Db250YWN0TE9EIHZvbHRhZ2VDaG9pY2VzIHNlY0lkTGF5ZXJzVGFibGUgd2VsbEVuY1lEaWZmIHdlbGxXaWR0aCBpZExheWVyIHNyY1NlY0lkTGF5ZXIgZHJuU2VjSWRMYXllciBnTmV0IHNOZXQgZE5ldCBjTmV0IG5ldEwgc2VjSWRMYXllciBjb250YWN0RiBjb250YWN0TCBjb250YWN0RCBjb250YWN0UyBjb250YWN0Rkxlbmd0aCBjb250YWN0TExlbmd0aCBjb250YWN0RExlbmd0aCBjb250YWN0U0xlbmd0aCB2aWExWENyZEYgbGF5ZXIyWENyZEYgdmlhMlhDcmRGIGxheWVyM1hDcmRGIGxheWVyMVhDcmRGIHZpYTFYQ3JkTCBsYXllcjJYQ3JkTCB2aWEyWENyZEwgbGF5ZXIzWENyZEwgbGF5ZXIxWENyZEwgdmlhMVhDcmRTIGxheWVyMlhDcmRTIHZpYTJYQ3JkUyBsYXllcjNYQ3JkUyBsYXllcjFYQ3JkUyB2aWExWENyZEQgbGF5ZXIyWENyZEQgdmlhMlhDcmREIGxheWVyM1hDcmREIGxheWVyMVhDcmREIHZpYTFFbmNGIHZpYTJFbmNGIGxheWVyMkVuY0YgbGF5ZXIzRW5jRiB2aWExRW5jTCB2aWEyRW5jTCBsYXllcjJFbmNMIGxheWVyM0VuY0wgdmlhMUVuY1MgdmlhMkVuY1MgbGF5ZXIyRW5jUyBsYXllcjNFbmNTIHZpYTFFbmNEIHZpYTJFbmNEIGxheWVyMkVuY0QgbGF5ZXIzRW5jRCB2aWExU3BhY2VGTCB2aWExT2ZmU2V0RkwgdmlhMlNwYWNlRkwgdmlhMk9mZlNldEZMIGxheWVyM1NwYWNlRkwgbGF5ZXIzT2ZmU2V0RkwgbGF5ZXIyU3BhY2VGTCBsYXllcjJPZmZTZXRGTCB2aWExU3BhY2VGUyB2aWExT2ZmU2V0RlMgdmlhMlNwYWNlRlMgdmlhMk9mZlNldEZTIGxheWVyM1NwYWNlRlMgbGF5ZXIzT2ZmU2V0RlMgbGF5ZXIyU3BhY2VGUyBsYXllcjJPZmZTZXRGUyB2aWExU3BhY2VGRCB2aWExT2ZmU2V0RkQgdmlhMlNwYWNlRkQgdmlhMk9mZlNldEZEIGxheWVyM1NwYWNlRkQgbGF5ZXIzT2ZmU2V0RkQgbGF5ZXIyU3BhY2VGRCBsYXllcjJPZmZTZXRGRCB2aWExU3BhY2VMUyB2aWExT2ZmU2V0TFMgdmlhMlNwYWNlTFMgdmlhMk9mZlNldExTIGxheWVyM1NwYWNlTFMgbGF5ZXIzT2ZmU2V0TFMgbGF5ZXIyU3BhY2VMUyBsYXllcjJPZmZTZXRMUyB2aWExU3BhY2VMRCB2aWExT2ZmU2V0TEQgdmlhMlNwYWNlTEQgdmlhMk9mZlNldExEIGxheWVyM1NwYWNlTEQgbGF5ZXIzT2ZmU2V0TEQgbGF5ZXIyU3BhY2VMRCBsYXllcjJPZmZTZXRMRCB2aWExU3BhY2VTRCB2aWExT2ZmU2V0U0QgdmlhMlNwYWNlU0QgdmlhMk9mZlNldFNEIGxheWVyM1NwYWNlU0QgbGF5ZXIzT2ZmU2V0U0QgbGF5ZXIyU3BhY2VTRCBsYXllcjJPZmZTZXRTRCBtYXhPZmZTZXQgb2Zmc2V0U2lkZSBtaW5TcGFjZU9mZlNldCBjb250YWN0SW1wUGFyYW0gY29udGFjdFdlbGxQYXJhbSB4MUNvb3JkIHkxQ29vcmQgbGFzdFBZaVgxQ29vcmQgeTFQWWlDb29yZCB5MlBZaUNvb3JkIGlkTGF5ZXJzQ29vcmRUYWJsZSBsYXllckluZm8gbGF5ZXJFbmNzIHgxSWRDb29yZCB5MUlkQ29vcmQgeDJJZENvb3JkIHkySWRDb29yZCBsYXllck5hbWUgaWRMYXlDb29yZHMgc2VjSWRMYXllcnNDb29yZFRhYmxlIHNlY0xheWVySW5mbyBzZWNMYXllckVuY3MgeDFTZWNJZENvb3JkIHkxU2VjSWRDb29yZCB4MlNlY0lkQ29vcmQgeTJTZWNJZENvb3JkIHNlY0xheWVyTmFtZSBzZWNJZExheUNvb3JkcyB3ZWxsRW5jRGlmZlkgd2VsbEVuY1RhcFkgd2VsbEVuY0RpZmZYIHdlbGxFbmNUYXBYIGV4dGVuc2lvbiBvZmZzZXQgY3VyVGVybU9mZnNldCBuZXh0VGVybU9mZnNldCBjdXJUZXJtU2hDb25MZW5ndGggbmV4dFRlcm1TaENvbkxlbmd0aCBjb250YWN0SWQgcGFyYW1zIGluc3RQYXJhbXMgaW5zdCBpc1NpbmdsZVN0cmFwcGVkIGlzTkRTdHJhcHBlZCBwYWlyIGlubmVyQ29udGFjdCBpbm5lckNvbnRhY3RJZCBpbm5lckNvbnRhY3RMZW5ndGggdmlhMVhDcmRJbm5lckNvbiBsYXllcjJYQ3JkSW5uZXJDb24gdmlhMlhDcmRJbm5lckNvbiBsYXllcjNYQ3JkSW5uZXJDb24gbGF5ZXIxWENyZElubmVyQ29uIHZpYTFFbmNJbm5lckNvbiB2aWEyRW5jSW5uZXJDb24gYXZhaWxhYmxlVmlhMVNwYWNlIHJlcXVpcmVkVmlhMVNwIGF2YWlsYWJsZVZpYTJTcGFjZSByZXF1aXJlZFZpYTJTcCByZXF1aXJlZFNwYWNlIHN0cmFwcGVkQ29udGFjdElkIHN0cmFwcGVkQ29udGFjdEluc3Qgb3V0ZXJDb250YWN0IG91dGVyQ29udGFjdElkIG91dGVySW5zdCBvdXRlckNvbnRhY3RMZW5ndGggbWFzdGVyIGJCb3ggZGJpZCBwaW5pZCB4MURpZmZDb29yZCB4MVRhcENvb3JkIHkyRGlmZkNvb3JkIHkyVGFwQ29vcmQgeTFEaWZmQ29vcmQgeTFUYXBDb29yZCB4MVdlbGxDb29yZCB5MVdlbGxDb29yZCB5MldlbGxDb29yZCBpZEVuY1hMIGlkRW5jWFIgaWRFbmNZIGxheWVyQ29vcmRzIHNlY0lkRW5jWEwgc2VjSWRFbmNYUiBzZWNJZEVuY1kgc2VjTGF5ZXJDb29yZHMgc2hhcmVkU3JjSWQgc2hhcmVkRHJuSWQgbiB4MVBZaUNvb3JkIGN1cnJlbnRDb250YWN0IGN1cnJlbnROZXQgeDJEaWZmQ29vcmQgeDJUYXBDb29yZCBvbGR4MUNvb3JkIGRpZmZiQm94IHgyV2VsbENvb3JkIHdlbGxMYXllcl9Yb3JpZ2luIHdlbGxMYXllcl9Zb3JpZ2luIHdlbGxMYXllcl9YZW5kIHdlbGxMYXllcl9ZZW5kIERpZmZfd2VsbF93aWR0aCkAKChzb3VyY2VGaXJzdCAiVFJVRSIpIChzaGFyZWREcmFpbiAiIikgKHNoYXJlZFNvdXJjZSAiIikgKGxhc3RDb250YWN0ICIiKSAoZmlyc3RDb250YWN0ICIiKSAoZ2F0ZUV4dCAwLjApIChpZExheWVyc1RhYmxlIGxpc3QobGlzdCgibm9uZSIgbGlzdCgwLjAgMC4wIDAuMCkpKSkgKHNyY1NlY0lkTGF5ZXJzVGFibGUgbGlzdChsaXN0KCJub25lIiBsaXN0KDAuMCAwLjAgMC4wKSkpKSAoZHJuU2VjSWRMYXllcnNUYWJsZSBsaXN0KGxpc3QoIm5vbmUiIGxpc3QoMC4wIDAuMCAwLjApKSkpIChoc3BpY2VNb2RlbCAiIikgKHNyY09mZnNldCAwLjApIChkcm5PZmZzZXQgMC4wKSAobSAxKSAobCAwLjApICh3IDAuMCkgKGdhdGV0b2dhdGVTcGFjaW5nIDAuMCkgKGdhdGVJbXBsYW50ICJGQUxTRSIpIChtYW51YWxMT0QgIkZBTFNFIikgKHNhIDAuMCkgKHNiIDAuMCkgKHNkIDAuMCkgKGJ1dHRpbmdHYXRlc1NBIDApIChidXR0aW5nR2F0ZXNTQiAwKSAoTE9EQ29udGFjdE1hcFNTdHJhcHBlZCBuaWwpIChMT0RDb250YWN0TWFwTkRTdHJhcHBlZCBuaWwpIChub0NvbnRhY3RMT0QgMC4wKSAodm9sdGFnZUNob2ljZXMgbGlzdCgibm9ybWFsIikpKQAoKGRpZmZMYXllciAiaGlsaXRlIikgKGdhdGVMYXllciAibWFya2VyIikgKHdlbGxMYXllciBuaWwpICh3ZWxsbWluV2lkdGggMC4wKSAoZGlmZkV4dCAwLjApICh3ZWxsRW5jRGlmZiAwLjApICh3ZWxsRW5jVGFwIDAuMCkgKHdlbGxMYXllcldpZHRoIDAuMCkgKGxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSkgKGxhYmVsV2lkdGggMC40KSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyAwLjApIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBFbmMgMC4wKSAocG9seUltcGxhbnQgbmlsKSAocG9seUltcFhFbmMgMC4wKSAocG9seUltcFlFbmMgMC4wKSAodmlhMU1pblNwYWNlIDAuMCkgKHZpYTJNaW5TcGFjZSAwLjApIChsYXllcjJNaW5TcGFjZSAwLjApIChsYXllcjNNaW5TcGFjZSAwLjApIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAoaW1wbGFudCB0KSAodGFwTGF5ZXIgbGlzdCgidGFwIiAiZHJhd2luZyIpKSAodGFwSW1wbGFudCBuaWwpICh0YXBJbXBFbmMgMC4wKSAobG9kRW5hYmxlZCBuaWwpKQAoKG0gPSBtYXgoMSBtKSkgKHNyY1VuZGVyUG9seSA9IChsICsgbWluU3BhY2VTcmNPdmVyV2VsbCkpIChsID0gKHNyY1VuZGVyUG9seSArIHBvbHlFeHRTb3VyY2UpKSBpZigoY29udGFjdHMgIT0gIm5vIGNvbnRhY3RzIikgdGhlbiAoc3JjRXh0RnJvbVBvbHkgPSBtYXgoc3JjRXh0RnJvbVBvbHkgKCgyICogbWluRW5jVmlhMFNyY1gpICsgdmlhMFdpZHRoKSkpIChtaW5Ecm5XaWR0aCA9IG1heChtaW5Ecm5XaWR0aCAoKDIgKiBtaW5FbmNWaWEwRHJuWCkgKyB2aWEwV2lkdGgpKSkgKGVuZFRhcFdpZHRoID0gbWF4KGVuZFRhcFdpZHRoICgoMiAqIG1pbkVuY1ZpYTBEcm5YKSArIHZpYTBXaWR0aCkpKSkgZm9yKG4gMSBtIGlmKCgobiA9PSAxKSB8fCAoKG4gPT0gbSkgJiYgKG1vZChtIDIpID09IDApKSkgdGhlbiAoc3JjRXh0V2lkdGggPSBzcmNFeHRGcm9tUG9seSkgZWxzZSAoc3JjRXh0V2lkdGggPSBzaGFyZWRTcmNXaWR0aCkpIChnYXRlRHJhd2luZyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBnYXRlTGF5ZXIgP3dpZHRoIGwgP2xlbmd0aCAoKDIgKiBnYXRlRXh0KSArIHcpID9waW4gdCA/dGVybU5hbWUgIkciID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSkpIGlmKChuID09IDEpIHRoZW4gKGdhdGVEcmF3aW5nUHJldiA9IGdhdGVEcmF3aW5nKSkgaWYoKG4gIT0gMSkgdGhlbiBpZigobW9kKG4gMikgPT0gMCkgdGhlbiAocm9kQWxpZ24gP2FsaWduT2JqIGdhdGVEcmF3aW5nID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogZ2F0ZURyYXdpbmdQcmV2ID9yZWZIYW5kbGUgImNSIiA/eFNlcCAoKDIgKiAobWluU3BhY2VTcmNEcm4gLSAobCAtIHNyY1VuZGVyUG9seSkpKSArIG1pbkRybldpZHRoKSkgZWxzZSAocm9kQWxpZ24gP2FsaWduT2JqIGdhdGVEcmF3aW5nID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogZ2F0ZURyYXdpbmdQcmV2ID9yZWZIYW5kbGUgImNSIiA/eFNlcCBzcmNFeHRXaWR0aCkpKSAoc291cmNlRGlmZiA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBzcmNMYXllciA/d2lkdGggKHNyY0V4dFdpZHRoICsgc3JjVW5kZXJQb2x5KSA/bGVuZ3RoIHcpKSBpZigoc3JjSW1wbGFudCAhPSBuaWwpIHRoZW4gKHNvdXJjZUltcGxhbnQgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgc3JjSW1wbGFudCA/d2lkdGggKHNyY0V4dFdpZHRoICsgc3JjVW5kZXJQb2x5ICsgKDIgKiBzcmNJbXBsYW50RW5jKSkgP2xlbmd0aCAodyArICgyICogc3JjSW1wbGFudEVuYykpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBzb3VyY2VJbXBsYW50ID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjQyIpKSBpZigobW9kKG4gMikgPT0gMSkgdGhlbiAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZURpZmYgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBnYXRlRHJhd2luZyA/cmVmSGFuZGxlICJjTCIgP3hTZXAgKC0gc3JjRXh0V2lkdGgpKSBpZigobiA9PSAxKSB0aGVuIChmaXJzdFBvbHkgPSBzb3VyY2VEaWZmKSkgaWYoKGNvbnRhY3RzID09ICJubyBjb250YWN0cyIpIHRoZW4gKHNvdXJjZVBpbiA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBzcmNMYXllciA/d2lkdGggc3JjRXh0V2lkdGggP2xlbmd0aCB3ID9waW4gdCA/dGVybU5hbWUgIlMiID90ZXJtSU9UeXBlICJpbnB1dE91dHB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgMC4xID9waW5MYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikgP3BpbkxhYmVsRm9udCAicm9tYW4iKSkgKHJvZEFsaWduID9hbGlnbk9iaiBzb3VyY2VQaW4gP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNMIikpIGVsc2UgKHJvZEFsaWduID9hbGlnbk9iaiBzb3VyY2VEaWZmID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogZ2F0ZURyYXdpbmcgP3JlZkhhbmRsZSAiY0wiID94U2VwIChzcmNFeHRXaWR0aCArIGwpKSBpZigobiA9PSBtKSB0aGVuIChsYXN0UG9seSA9IHNvdXJjZURpZmYpKSBpZigoY29udGFjdHMgPT0gIm5vIGNvbnRhY3RzIikgdGhlbiAoc291cmNlUGluID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHNyY0xheWVyID93aWR0aCBzcmNFeHRXaWR0aCA/bGVuZ3RoIHcgP3BpbiB0ID90ZXJtTmFtZSAiUyIgP3Rlcm1JT1R5cGUgImlucHV0T3V0cHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCAwLjEgP3BpbkxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSA/cGluTGFiZWxGb250ICJyb21hbiIpKSAocm9kQWxpZ24gP2FsaWduT2JqIHNvdXJjZVBpbiA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY1IiKSkpIGlmKCgobiA9PSAxKSAmJiAocEZldCA9PSB0KSkgdGhlbiAod2VsbFdpZHRoID0gbWF4KG53ZWxsRW5jRG53ZWxsIChud2VsbEVuY0Rud2VsbCArIChkbndlbGxFbmNOd2VsbCAtIChzcmNFeHRXaWR0aCArIChzcmNVbmRlclBvbHkgLSBtaW5TcGFjZVNyY092ZXJXZWxsKSkpKSkpIChud2VsbEV4dFNvdXJjZSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkcmFpbldlbGwgP3dpZHRoIHdlbGxXaWR0aCA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgbndlbGxFbmNEbndlbGwgKyBkbndlbGxFbmNOd2VsbCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbndlbGxFeHRTb3VyY2UgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNMIikgKGZpcnN0UG9seSA9IG53ZWxsRXh0U291cmNlKSBpZigoZG5XZWxsICE9IG5pbCkgdGhlbiAoZG53ZWxsV2lkdGggPSAoZG53ZWxsRW5jTndlbGwgLSAoc3JjRXh0V2lkdGggKyAoc3JjVW5kZXJQb2x5IC0gbWluU3BhY2VTcmNPdmVyV2VsbCkpKSkgaWYoKGRud2VsbFdpZHRoID4gMCkgdGhlbiAoZG53ZWxsRXh0U291cmNlID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRuV2VsbCA/d2lkdGggZG53ZWxsV2lkdGggP2xlbmd0aCAodyArICgyICogKHdlbGxFbmNEcmFpbiArIGRud2VsbEVuY053ZWxsKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBkbndlbGxFeHRTb3VyY2UgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNMIikpKSkgaWYoKHBGZXQgPT0gbmlsKSB0aGVuIGlmKCgobW9kKG4gMikgPT0gMSkgJiYgKG4gPT0gbSkpIHRoZW4gKGJldmVsRHJhaW5XZWxsID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIGRyYWluV2VsbCA/cHRzIGxpc3QobGlzdCh3ZWxsQmV2ZWwgMC4wKSBsaXN0KCgod2VsbEVuY0RyYWluICsgbWluU3BhY2VTcmNEcm4gKyBtaW5Ecm5XaWR0aCArIG1pblNwYWNlU3JjT3ZlcldlbGwpIC0gd2VsbEJldmVsKSAwLjApIGxpc3QoKHdlbGxFbmNEcmFpbiArIG1pblNwYWNlU3JjRHJuICsgbWluRHJuV2lkdGggKyBtaW5TcGFjZVNyY092ZXJXZWxsKSB3ZWxsQmV2ZWwpIGxpc3QoKHdlbGxFbmNEcmFpbiArIG1pblNwYWNlU3JjRHJuICsgbWluRHJuV2lkdGggKyBtaW5TcGFjZVNyY092ZXJXZWxsKSAoKCgyICogd2VsbEVuY0RyYWluKSArIHcpIC0gd2VsbEJldmVsKSkgbGlzdCgoKHdlbGxFbmNEcmFpbiArIG1pblNwYWNlU3JjRHJuICsgbWluRHJuV2lkdGggKyBtaW5TcGFjZVNyY092ZXJXZWxsKSAtIHdlbGxCZXZlbCkgKCgyICogd2VsbEVuY0RyYWluKSArIHcpKSBsaXN0KHdlbGxCZXZlbCAoKDIgKiB3ZWxsRW5jRHJhaW4pICsgdykpIGxpc3QoMC4wICgoKDIgKiB3ZWxsRW5jRHJhaW4pICsgdykgLSB3ZWxsQmV2ZWwpKSBsaXN0KDAuMCB3ZWxsQmV2ZWwpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogYmV2ZWxEcmFpbldlbGwgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNSIiA/eFNlcCAoLSBtaW5TcGFjZVNyY092ZXJXZWxsKSkgKGxhc3RQb2x5ID0gYmV2ZWxEcmFpbldlbGwpIGVsc2UgKGJldmVsRHJhaW5XZWxsID0gKHJvZENyZWF0ZVBvbHlnb24gP2xheWVyIGRyYWluV2VsbCA/cHRzIGxpc3QobGlzdCh3ZWxsQmV2ZWwgMC4wKSBsaXN0KCgoKDIgKiBtaW5TcGFjZVNyY0RybikgKyBtaW5Ecm5XaWR0aCArICgyICogbWluU3BhY2VTcmNPdmVyV2VsbCkpIC0gd2VsbEJldmVsKSAwLjApIGxpc3QoKCgyICogbWluU3BhY2VTcmNEcm4pICsgbWluRHJuV2lkdGggKyAoMiAqIG1pblNwYWNlU3JjT3ZlcldlbGwpKSB3ZWxsQmV2ZWwpIGxpc3QoKCgyICogbWluU3BhY2VTcmNEcm4pICsgbWluRHJuV2lkdGggKyAoMiAqIG1pblNwYWNlU3JjT3ZlcldlbGwpKSAoKCgyICogd2VsbEVuY0RyYWluKSArIHcpIC0gd2VsbEJldmVsKSkgbGlzdCgoKCgyICogbWluU3BhY2VTcmNEcm4pICsgbWluRHJuV2lkdGggKyAoMiAqIG1pblNwYWNlU3JjT3ZlcldlbGwpKSAtIHdlbGxCZXZlbCkgKCgyICogd2VsbEVuY0RyYWluKSArIHcpKSBsaXN0KHdlbGxCZXZlbCAoKDIgKiB3ZWxsRW5jRHJhaW4pICsgdykpIGxpc3QoMC4wICgoKDIgKiB3ZWxsRW5jRHJhaW4pICsgdykgLSB3ZWxsQmV2ZWwpKSBsaXN0KDAuMCB3ZWxsQmV2ZWwpKSkpIGlmKChtb2QobiAyKSA9PSAxKSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogYmV2ZWxEcmFpbldlbGwgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNSIiA/eFNlcCAoLSBtaW5TcGFjZVNyY092ZXJXZWxsKSkgZWxzZSAocm9kQWxpZ24gP2FsaWduT2JqIGJldmVsRHJhaW5XZWxsID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjTCIgP3hTZXAgbWluU3BhY2VTcmNPdmVyV2VsbCkpKSBlbHNlIChjb3JuZXJPZldlbGxYID0gKChzcmNFeHRXaWR0aCArIHNyY1VuZGVyUG9seSkgLSBtaW5TcGFjZVNyY092ZXJXZWxsKSkgaWYoKChuID09IG0pICYmIChtb2QobSAyKSA9PSAxKSkgdGhlbiAod2VsbFdpZHRoID0gKG1pblNwYWNlU3JjRHJuICsgbWluRHJuV2lkdGggKyB3ZWxsRW5jRHJhaW4gKyBtaW5TcGFjZVNyY092ZXJXZWxsKSkgZWxzZSAod2VsbFdpZHRoID0gKCgyICogKG1pblNwYWNlU3JjRHJuICsgbWluU3BhY2VTcmNPdmVyV2VsbCkpICsgbWluRHJuV2lkdGgpKSkgaWYoKG1vZChuIDIpID09IDEpIHRoZW4gKHBGZXREcmFpbldlbGwgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZHJhaW5XZWxsID9wdHMgbGlzdChsaXN0KDAuMCAodyArIHdlbGxFbmNEcmFpbiArIGRud2VsbEVuY053ZWxsICsgbndlbGxFbmNEbndlbGwpKSBsaXN0KChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoICsgbndlbGxFbmNEbndlbGwgKyB3ZWxsRXh0SG9sZSkgKHcgKyB3ZWxsRW5jRHJhaW4gKyBud2VsbEVuY0Rud2VsbCArIGRud2VsbEVuY053ZWxsKSkgbGlzdCgoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCArIG53ZWxsRW5jRG53ZWxsICsgd2VsbEV4dEhvbGUpICgwIC0gd2VsbEVuY0RyYWluIC0gbndlbGxFbmNEbndlbGwgLSBkbndlbGxFbmNOd2VsbCkpIGxpc3QoMC4wICgwIC0gd2VsbEVuY0RyYWluIC0gbndlbGxFbmNEbndlbGwgLSBkbndlbGxFbmNOd2VsbCkpIGxpc3QoMC4wICh3ZWxsQmV2ZWwgLSB3ZWxsRW5jRHJhaW4pKSBsaXN0KGNvcm5lck9mV2VsbFggKHdlbGxCZXZlbCAtIHdlbGxFbmNEcmFpbikpIGxpc3QoKGNvcm5lck9mV2VsbFggKyB3ZWxsQmV2ZWwpICgtIHdlbGxFbmNEcmFpbikpIGxpc3QoKChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoKSAtIHdlbGxCZXZlbCkgKC0gd2VsbEVuY0RyYWluKSkgbGlzdCgoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCkgKHdlbGxCZXZlbCAtIHdlbGxFbmNEcmFpbikpIGxpc3QoKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGgpICgodyAtIHdlbGxCZXZlbCkgKyB3ZWxsRW5jRHJhaW4pKSBsaXN0KCgoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCkgLSB3ZWxsQmV2ZWwpICh3ICsgd2VsbEVuY0RyYWluKSkgbGlzdCgoY29ybmVyT2ZXZWxsWCArIHdlbGxCZXZlbCkgKHdlbGxFbmNEcmFpbiArIHcpKSBsaXN0KGNvcm5lck9mV2VsbFggKCh3IC0gd2VsbEJldmVsKSArIHdlbGxFbmNEcmFpbikpIGxpc3QoY29ybmVyT2ZXZWxsWCAod2VsbEJldmVsIC0gd2VsbEVuY0RyYWluKSkgbGlzdCgwLjAgKHdlbGxCZXZlbCAtIHdlbGxFbmNEcmFpbikpKSkpIGVsc2UgKHBGZXREcmFpbldlbGwgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZHJhaW5XZWxsID9wdHMgbGlzdChsaXN0KDAuMCAodyArIHdlbGxFbmNEcmFpbiArIG53ZWxsRW5jRG53ZWxsICsgZG53ZWxsRW5jTndlbGwpKSBsaXN0KCgtIChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoICsgd2VsbEV4dEhvbGUgKyBud2VsbEVuY0Rud2VsbCkpICh3ICsgd2VsbEVuY0RyYWluICsgbndlbGxFbmNEbndlbGwgKyBkbndlbGxFbmNOd2VsbCkpIGxpc3QoKC0gKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGggKyB3ZWxsRXh0SG9sZSArIG53ZWxsRW5jRG53ZWxsKSkgKDAgLSB3ZWxsRW5jRHJhaW4gLSBud2VsbEVuY0Rud2VsbCAtIGRud2VsbEVuY053ZWxsKSkgbGlzdCgwLjAgKDAgLSB3ZWxsRW5jRHJhaW4gLSBud2VsbEVuY0Rud2VsbCAtIGRud2VsbEVuY053ZWxsKSkgbGlzdCgwLjAgKHdlbGxCZXZlbCAtIHdlbGxFbmNEcmFpbikpIGxpc3QoKC0gY29ybmVyT2ZXZWxsWCkgKHdlbGxCZXZlbCAtIHdlbGxFbmNEcmFpbikpIGxpc3QoKC0gKGNvcm5lck9mV2VsbFggKyB3ZWxsQmV2ZWwpKSAoLSB3ZWxsRW5jRHJhaW4pKSBsaXN0KCgtICgoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCkgLSB3ZWxsQmV2ZWwpKSAoLSB3ZWxsRW5jRHJhaW4pKSBsaXN0KCgtIChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoKSkgKHdlbGxCZXZlbCAtIHdlbGxFbmNEcmFpbikpIGxpc3QoKC0gKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGgpKSAoKHcgLSB3ZWxsQmV2ZWwpICsgd2VsbEVuY0RyYWluKSkgbGlzdCgoLSAoKGNvcm5lck9mV2VsbFggKyB3ZWxsV2lkdGgpIC0gd2VsbEJldmVsKSkgKHcgKyB3ZWxsRW5jRHJhaW4pKSBsaXN0KCgtIChjb3JuZXJPZldlbGxYICsgd2VsbEJldmVsKSkgKHdlbGxFbmNEcmFpbiArIHcpKSBsaXN0KCgtIGNvcm5lck9mV2VsbFgpICgodyAtIHdlbGxCZXZlbCkgKyB3ZWxsRW5jRHJhaW4pKSBsaXN0KCgtIGNvcm5lck9mV2VsbFgpICh3ZWxsQmV2ZWwgLSB3ZWxsRW5jRHJhaW4pKSBsaXN0KDAuMCAod2VsbEJldmVsIC0gd2VsbEVuY0RyYWluKSkpKSkpIGlmKCgobiA9PSBtKSAmJiAobW9kKG0gMikgPT0gMSkpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiBwRmV0RHJhaW5XZWxsID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjTCIpIGVsc2UgaWYoKG1vZChuIDIpID09IDEpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiBwRmV0RHJhaW5XZWxsID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjTCIpIGVsc2UgKHJvZEFsaWduID9hbGlnbk9iaiBwRmV0RHJhaW5XZWxsID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjUiIpKSkgaWYoZG5XZWxsIHRoZW4gaWYoKG1vZChuIDIpID09IDApIHRoZW4gKHBGZXREbldlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZG5XZWxsID93aWR0aCAoY29ybmVyT2ZXZWxsWCArIHdlbGxXaWR0aCkgP2xlbmd0aCAodyArICgyICogKHdlbGxFbmNEcmFpbiArIGRud2VsbEVuY053ZWxsKSkpKSkgZWxzZSAocEZldERuV2VsbCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkbldlbGwgP3dpZHRoIChjb3JuZXJPZldlbGxYICsgd2VsbFdpZHRoICsgZG53ZWxsRW5jTndlbGwpID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBkbndlbGxFbmNOd2VsbCkpKSkpKSBpZigobW9kKG4gMikgPT0gMCkgdGhlbiAocm9kQWxpZ24gP2FsaWduT2JqIHBGZXREbldlbGwgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBwRmV0RHJhaW5XZWxsID9yZWZIYW5kbGUgImNSIikgZWxzZSAocm9kQWxpZ24gP2FsaWduT2JqIHBGZXREbldlbGwgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBwRmV0RHJhaW5XZWxsID9yZWZIYW5kbGUgImNMIikpKSkgKGV4dGVuZGVkRHJhaW4gPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZHJuTGF5ZXIgP3B0cyBsaXN0KGxpc3QoZHJuQmV2ZWwgMC4wKSBsaXN0KChtaW5Ecm5XaWR0aCAtIGRybkJldmVsKSAwLjApIGxpc3QobWluRHJuV2lkdGggZHJuQmV2ZWwpIGxpc3QobWluRHJuV2lkdGggKHcgLSBkcm5CZXZlbCkpIGxpc3QoKG1pbkRybldpZHRoIC0gZHJuQmV2ZWwpIHcpIGxpc3QoZHJuQmV2ZWwgdykgbGlzdCgwLjAgKHcgLSBkcm5CZXZlbCkpIGxpc3QoMC4wIGRybkJldmVsKSkgP3BpbiBldmFsKChjb250YWN0cyA9PSAibm8gY29udGFjdHMiKSkgP3Rlcm1OYW1lICJEIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IDAuMSA/cGluTGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpID9waW5MYWJlbEZvbnQgInJvbWFuIikpIGlmKChtb2QobiAyKSA9PSAxKSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogZXh0ZW5kZWREcmFpbiA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY1IiID94U2VwIG1pblNwYWNlU3JjRHJuKSBlbHNlIChyb2RBbGlnbiA/YWxpZ25PYmogZXh0ZW5kZWREcmFpbiA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY0wiID94U2VwICgtIG1pblNwYWNlU3JjRHJuKSkpIGlmKChjb250YWN0cyAhPSAibm8gY29udGFjdHMiKSB0aGVuIChudW1Db250YWN0cyA9IChmbG9vciAodyAvIHZpYTBXaWR0aCkpKSB3aGlsZSgoKCgyICogbWluRW5jVmlhMFNyY1kpICsgKG51bUNvbnRhY3RzICogdmlhMFdpZHRoKSArICgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTBNaW5TcGFjZSkpID4gdykgKG51bUNvbnRhY3RzID0gKG51bUNvbnRhY3RzIC0gMSkpKSAobnVtQ29udGFjdHNXID0gKGZsb29yIChzcmNFeHRXaWR0aCAvIHZpYTBXaWR0aCkpKSB3aGlsZSgoKCgyICogbWluRW5jVmlhMFNyY1gpICsgKG51bUNvbnRhY3RzVyAqIHZpYTBXaWR0aCkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhME1pblNwYWNlKSkgPiAoc25hcEdyaWQgKyBzcmNFeHRXaWR0aCkpIChudW1Db250YWN0c1cgPSAobnVtQ29udGFjdHNXIC0gMSkpKSAodmlhMENvbnRhY3RzID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIG1ldDBMYXllciA/d2lkdGggKCgyICogbWV0MEVuY1ZpYTBYKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWEwTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTBXaWR0aCkpID9sZW5ndGggKCgyICogbWF4KG1pbkVuY1ZpYTBTcmNZIG1ldDBFbmNWaWEwWSkpICsgKChudW1Db250YWN0cyAtIDEpICogdmlhME1pblNwYWNlKSArIChudW1Db250YWN0cyAqIHZpYTBXaWR0aCkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciB2aWEwTGF5ZXIgP3dpZHRoIHZpYTBXaWR0aCA/bGVuZ3RoIHZpYTBXaWR0aCA/c3BhY2VZIHZpYTBNaW5TcGFjZSA/c3BhY2VYIHZpYTBNaW5TcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WSBtZXQwRW5jVmlhMFkgP3VwcGVyUmlnaHRPZmZzZXRZICgtIG1ldDBFbmNWaWEwWSkgP2xvd2VyTGVmdE9mZnNldFggbWV0MEVuY1ZpYTBYID91cHBlclJpZ2h0T2Zmc2V0WCAoLSBtZXQwRW5jVmlhMFgpID9nYXAgIm1pbmltdW0iKSkgP3BpbiBldmFsKChjb250YWN0cyA9PSAiZmlyc3QgbWV0YWwiKSkgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IDAuMSA/cGluTGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpID9waW5MYWJlbEZvbnQgInJvbWFuIikpIGlmKChtb2QobiAyKSA9PSAxKSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhMENvbnRhY3RzID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogc291cmNlRGlmZiA/cmVmSGFuZGxlICJjTCIgP3hTZXAgbWF4KChzcmNFeHRXaWR0aCAvIDIpIG1pbkVuY1ZpYTBTcmNYKSkgZWxzZSAocm9kQWxpZ24gP2FsaWduT2JqIHZpYTBDb250YWN0cyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY1IiID94U2VwICgtIG1heCgoc3JjRXh0V2lkdGggLyAyKSBtaW5FbmNWaWEwU3JjWCkpKSkgaWYoKGNvbnRhY3RzID09ICJzZWNvbmQgbWV0YWwiKSB0aGVuIChudW1Db250YWN0cyA9IChmbG9vciAodyAvIHZpYTFXaWR0aCkpKSB3aGlsZSgoKChudW1Db250YWN0cyAqIHZpYTFXaWR0aCkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpKSA+IHcpIChudW1Db250YWN0cyA9IChudW1Db250YWN0cyAtIDEpKSkgKG51bUNvbnRhY3RzVyA9IChmbG9vciAoc3JjRXh0V2lkdGggLyB2aWEwV2lkdGgpKSkgd2hpbGUoKCgoMiAqIG1ldDFFbmNWaWExWCkgKyAobnVtQ29udGFjdHNXICogdmlhMVdpZHRoKSArICgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWExTWluU3BhY2UpKSA+IChzbmFwR3JpZCArIHNyY0V4dFdpZHRoKSkgKG51bUNvbnRhY3RzVyA9IChudW1Db250YWN0c1cgLSAxKSkpIChtZXQwRW5jVmlhMSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXIgP3dpZHRoICgoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhMU1pblNwYWNlKSArIChudW1Db250YWN0c1cgKiB2aWExV2lkdGgpICsgKDIgKiBtYXgobWV0MUVuY1ZpYTFYIG1ldDBFbmNWaWExWCkpKSA/bGVuZ3RoICgoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMVdpZHRoKSArICgyICogbWF4KG1ldDFFbmNWaWExWSBtZXQwRW5jVmlhMVkpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIG1ldDBFbmNWaWExID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdmlhMENvbnRhY3RzID9yZWZIYW5kbGUgImNDIikgKHZpYTFDb250YWN0cyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQxTGF5ZXIgP3dpZHRoICgoMiAqIG1heChtZXQwRW5jVmlhMVggbWV0MUVuY1ZpYTFYKSkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhMU1pblNwYWNlKSArIChudW1Db250YWN0c1cgKiB2aWExV2lkdGgpKSA/bGVuZ3RoICgoMiAqIG1heChtZXQwRW5jVmlhMVkgbWV0MUVuY1ZpYTFZKSkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMVdpZHRoKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYTFMYXllciA/d2lkdGggdmlhMVdpZHRoID9sZW5ndGggdmlhMVdpZHRoID9zcGFjZVkgdmlhMU1pblNwYWNlID9zcGFjZVggdmlhMU1pblNwYWNlID9sb3dlckxlZnRPZmZzZXRZIG1heChtZXQwRW5jVmlhMVkgbWV0MUVuY1ZpYTFZKSA/dXBwZXJSaWdodE9mZnNldFkgKC0gbWF4KG1ldDBFbmNWaWExWSBtZXQxRW5jVmlhMVkpKSA/bG93ZXJMZWZ0T2Zmc2V0WCBtYXgobWV0MEVuY1ZpYTFYIG1ldDFFbmNWaWExWCkgP3VwcGVyUmlnaHRPZmZzZXRYICgtIG1heChtZXQwRW5jVmlhMVggbWV0MUVuY1ZpYTFYKSkgP2dhcCAibWluaW11bSIpKSA/cGluIHQgP3Rlcm1OYW1lICJTIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IDAuMSA/cGluTGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpID9waW5MYWJlbEZvbnQgInJvbWFuIikpIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhMUNvbnRhY3RzID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbWV0MEVuY1ZpYTEgP3JlZkhhbmRsZSAiY0MiKSkpIGlmKChkcm5JbXBsYW50ICE9IG5pbCkgdGhlbiAoYmV2ZWxEcmFpbkltcGxhbnQgPSAocm9kQ3JlYXRlUG9seWdvbiA/bGF5ZXIgZHJuSW1wbGFudCA/cHRzIGxpc3QobGlzdCgoZHJuQmV2ZWwgLSBkcm5JbXBsYW50RW5jKSAoLSBkcm5JbXBsYW50RW5jKSkgbGlzdCgoKGRybkltcGxhbnRFbmMgKyBtaW5Ecm5XaWR0aCkgLSBkcm5CZXZlbCkgKC0gZHJuSW1wbGFudEVuYykpIGxpc3QoKGRybkltcGxhbnRFbmMgKyBtaW5Ecm5XaWR0aCkgKGRybkJldmVsIC0gZHJuSW1wbGFudEVuYykpIGxpc3QoKGRybkltcGxhbnRFbmMgKyBtaW5Ecm5XaWR0aCkgKChkcm5JbXBsYW50RW5jICsgdykgLSBkcm5CZXZlbCkpIGxpc3QoKChkcm5JbXBsYW50RW5jICsgbWluRHJuV2lkdGgpIC0gZHJuQmV2ZWwpIChkcm5JbXBsYW50RW5jICsgdykpIGxpc3QoKGRybkJldmVsIC0gZHJuSW1wbGFudEVuYykgKGRybkltcGxhbnRFbmMgKyB3KSkgbGlzdCgoLSBkcm5JbXBsYW50RW5jKSAoKGRybkltcGxhbnRFbmMgKyB3KSAtIGRybkJldmVsKSkgbGlzdCgoLSBkcm5JbXBsYW50RW5jKSAoZHJuQmV2ZWwgLSBkcm5JbXBsYW50RW5jKSkpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBiZXZlbERyYWluSW1wbGFudCA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGV4dGVuZGVkRHJhaW4gP3JlZkhhbmRsZSAiY0MiKSkgaWYoKChuID09IG0pICYmIChwRmV0ID09IHQpKSB0aGVuIGlmKChtb2QobSAyKSA9PSAwKSB0aGVuIChud2VsbEV4dExhc3QgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZHJhaW5XZWxsID93aWR0aCBtYXgod2VsbEVuY1NyYyBud2VsbEVuY0Rud2VsbCAoKGRud2VsbEVuY053ZWxsIC0gc3JjRXh0V2lkdGggLSBzcmNVbmRlclBvbHkpICsgbWluU3BhY2VTcmNPdmVyV2VsbCArIG53ZWxsRW5jRG53ZWxsKSkgP2xlbmd0aCAodyArICgyICogKHdlbGxFbmNEcmFpbiArIG53ZWxsRW5jRG53ZWxsICsgZG53ZWxsRW5jTndlbGwpKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIG53ZWxsRXh0TGFzdCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIHNvdXJjZURpZmYgP3JlZkhhbmRsZSAiY1IiKSAobGFzdFBvbHkgPSBud2VsbEV4dExhc3QpIGVsc2UgKG53ZWxsRXh0TGFzdCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBkcmFpbldlbGwgP3dpZHRoIChkbndlbGxFbmNOd2VsbCArIG53ZWxsRW5jRG53ZWxsKSA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgbndlbGxFbmNEbndlbGwgKyBkbndlbGxFbmNOd2VsbCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbndlbGxFeHRMYXN0ID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogZXh0ZW5kZWREcmFpbiA/cmVmSGFuZGxlICJjUiIgP3hTZXAgd2VsbEVuY0RyYWluKSAobGFzdFBvbHkgPSBud2VsbEV4dExhc3QpKSkgaWYoKGNvbnRhY3RzICE9ICJubyBjb250YWN0cyIpIHRoZW4gKG51bUNvbnRhY3RzID0gKGZsb29yICh3IC8gdmlhMFdpZHRoKSkpIHdoaWxlKCgoKDIgKiBtaW5FbmNWaWEwRHJuWSkgKyAobnVtQ29udGFjdHMgKiB2aWEwV2lkdGgpICsgKChudW1Db250YWN0cyAtIDEpICogdmlhME1pblNwYWNlKSkgPiAodyAtICgyICogZHJuQmV2ZWwpKSkgKG51bUNvbnRhY3RzID0gKG51bUNvbnRhY3RzIC0gMSkpKSAobnVtQ29udGFjdHNXID0gKGZsb29yIChtaW5Ecm5XaWR0aCAvIHZpYTBXaWR0aCkpKSB3aGlsZSgoKCgyICogbWluRW5jVmlhMERyblgpICsgKG51bUNvbnRhY3RzVyAqIHZpYTBXaWR0aCkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhME1pblNwYWNlKSkgPiBtaW5Ecm5XaWR0aCkgKG51bUNvbnRhY3RzVyA9IChudW1Db250YWN0c1cgLSAxKSkpICh2aWEwQ29udGFjdHMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyID93aWR0aCAoKDIgKiBtZXQwRW5jVmlhMFgpICsgKCgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWEwTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTBXaWR0aCkpKSA/bGVuZ3RoICgoMiAqIG1heChtaW5FbmNWaWEwU3JjWSBtZXQwRW5jVmlhMFkpKSArICgoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWEwTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMFdpZHRoKSkpID9zdWJSZWN0QXJyYXkgbGlzdChsaXN0KD9sYXllciB2aWEwTGF5ZXIgP3dpZHRoIHZpYTBXaWR0aCA/bGVuZ3RoIHZpYTBXaWR0aCA/c3BhY2VZIHZpYTBNaW5TcGFjZSA/c3BhY2VYIHZpYTBNaW5TcGFjZSA/bG93ZXJMZWZ0T2Zmc2V0WSBtZXQwRW5jVmlhMFkgP3VwcGVyUmlnaHRPZmZzZXRZICgtIG1ldDBFbmNWaWEwWSkgP2xvd2VyTGVmdE9mZnNldFggbWV0MEVuY1ZpYTBYID91cHBlclJpZ2h0T2Zmc2V0WCAoLSBtZXQwRW5jVmlhMFgpID9nYXAgIm1pbmltdW0iKSkgP3BpbiBldmFsKChjb250YWN0cyA9PSAiZmlyc3QgbWV0YWwiKSkgP3Rlcm1OYW1lICJEIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IDAuMSA/cGluTGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpID9waW5MYWJlbEZvbnQgInJvbWFuIikpIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhMENvbnRhY3RzID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogZXh0ZW5kZWREcmFpbiA/cmVmSGFuZGxlICJjQyIpIGlmKChjb250YWN0cyA9PSAic2Vjb25kIG1ldGFsIikgdGhlbiAobnVtQ29udGFjdHMgPSAoZmxvb3IgKHcgLyB2aWExV2lkdGgpKSkgd2hpbGUoKCgobnVtQ29udGFjdHMgKiB2aWExV2lkdGgpICsgKChudW1Db250YWN0cyAtIDEpICogdmlhMU1pblNwYWNlKSkgPiB3KSAobnVtQ29udGFjdHMgPSAobnVtQ29udGFjdHMgLSAxKSkpIChudW1Db250YWN0c1cgPSAoZmxvb3IgKG1pbkRybldpZHRoIC8gdmlhMVdpZHRoKSkpIHdoaWxlKCgoKG51bUNvbnRhY3RzVyAqIHZpYTFXaWR0aCkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhMU1pblNwYWNlKSkgPiBtaW5Ecm5XaWR0aCkgKG51bUNvbnRhY3RzVyA9IChudW1Db250YWN0c1cgLSAxKSkpIChtZXQwRW5jVmlhMSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXIgP3dpZHRoIChtYXgoKDIgKiBtZXQxRW5jVmlhMVgpICgyICogbWV0MEVuY1ZpYTFYKSkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhMU1pblNwYWNlKSArIChudW1Db250YWN0c1cgKiB2aWExV2lkdGgpKSA/bGVuZ3RoIChtYXgoKDIgKiBtZXQwRW5jVmlhMVkpICgyICogbWV0MUVuY1ZpYTFZKSkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMVdpZHRoKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIG1ldDBFbmNWaWExID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdmlhMENvbnRhY3RzID9yZWZIYW5kbGUgImNDIikgKHZpYTFDb250YWN0cyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQxTGF5ZXIgP3dpZHRoICgoMiAqIG1heChtZXQxRW5jVmlhMVggbWV0MEVuY1ZpYTFYKSkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhMU1pblNwYWNlKSArIChudW1Db250YWN0c1cgKiB2aWExV2lkdGgpKSA/bGVuZ3RoICgoMiAqIG1heChtZXQwRW5jVmlhMVkgbWV0MUVuY1ZpYTFZKSkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMVdpZHRoKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYTFMYXllciA/d2lkdGggdmlhMVdpZHRoID9sZW5ndGggdmlhMVdpZHRoID9zcGFjZVkgdmlhMU1pblNwYWNlID9zcGFjZVggdmlhMU1pblNwYWNlID9sb3dlckxlZnRPZmZzZXRZIG1heChtZXQwRW5jVmlhMVkgbWV0MUVuY1ZpYTFZKSA/dXBwZXJSaWdodE9mZnNldFkgKC0gbWF4KG1ldDBFbmNWaWExWSBtZXQxRW5jVmlhMVkpKSA/bG93ZXJMZWZ0T2Zmc2V0WCBtYXgobWV0MUVuY1ZpYTFYIG1ldDBFbmNWaWExWCkgP3VwcGVyUmlnaHRPZmZzZXRYICgtIG1heChtZXQxRW5jVmlhMVggbWV0MEVuY1ZpYTFYKSkgP2dhcCAibWluaW11bSIpKSA/cGluIHQgP3Rlcm1OYW1lICJEIiA/dGVybUlPVHlwZSAiaW5wdXRPdXRwdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IDAuMSA/cGluTGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpID9waW5MYWJlbEZvbnQgInJvbWFuIikpIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhMUNvbnRhY3RzID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbWV0MEVuY1ZpYTEgP3JlZkhhbmRsZSAiY0MiKSkpIGlmKChpZExheWVyICE9IG5pbCkgdGhlbiAoaWRSZWN0ID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGlkTGF5ZXIgP2Zyb21PYmogbGlzdChzb3VyY2VEaWZmIGV4dGVuZGVkRHJhaW4pKSkgaWYoKG1vZChuIDIpID09IDEpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiBpZFJlY3QgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBleHRlbmRlZERyYWluID9yZWZIYW5kbGUgImNSIikgZWxzZSAocm9kQWxpZ24gP2FsaWduT2JqIGlkUmVjdCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIGV4dGVuZGVkRHJhaW4gP3JlZkhhbmRsZSAiY0wiKSkpIGlmKChtID09IDEpIHRoZW4gKHJ1blR3aWNlID0gMikgZWxzZSAocnVuVHdpY2UgPSAxKSkgZm9yKHJ1bnMgMSBydW5Ud2ljZSBpZigoKGVuZFRhcHMgPT0gIlRSVUUiKSAmJiAoKG4gPT0gMSkgfHwgKG4gPT0gbSkpKSB0aGVuIChlbmRUYXAgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZW5kVGFwTGF5ZXIgP3dpZHRoIGVuZFRhcFdpZHRoID9sZW5ndGggdyA/cGluIGV2YWwoKGNvbnRhY3RzID09ICJubyBjb250YWN0cyIpKSA/dGVybU5hbWUgIkIiID90ZXJtSU9UeXBlICJpbnB1dCIgP3BpbkFjY2Vzc0RpciBsaXN0KCJ0b3AiICJib3R0b20iKSA/cGluTGFiZWwgdCA/cGluTGFiZWxIZWlnaHQgMC4xID9waW5MYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikgP3BpbkxhYmVsRm9udCAicm9tYW4iKSkgaWYoKGVuZFRhcEltcGxhbnQgIT0gbmlsKSB0aGVuICh0YXBJbXBsYW50ID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGVuZFRhcEltcGxhbnQgP2Zyb21PYmogZW5kVGFwID9zaXplIGVuZFRhcEltcEVuYykpIChyb2RBbGlnbiA/YWxpZ25PYmogdGFwSW1wbGFudCA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGVuZFRhcCA/cmVmSGFuZGxlICJjQyIpKSBpZigoKG4gPT0gMSkgJiYgKHJ1bnMgPT0gMSkpIHRoZW4gKHJvZEFsaWduID9hbGlnbk9iaiBlbmRUYXAgP2FsaWduSGFuZGxlICJjUiIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNMIiA/eFNlcCAoLSBtaW5TcGFjZUVuZFRhcFNvdXJjZSkpIGlmKChwRmV0ID09IHQpIHRoZW4gKGZpcnN0VGFwTndlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZHJhaW5XZWxsID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBud2VsbEVuY0Rud2VsbCArIGRud2VsbEVuY053ZWxsKSkpID93aWR0aCAod2VsbEVuY1RhcCArIGVuZFRhcFdpZHRoICsgbWluU3BhY2VFbmRUYXBTb3VyY2UpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFRhcE53ZWxsID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogZW5kVGFwID9yZWZIYW5kbGUgImNMIiA/eFNlcCAoLSBtYXgobndlbGxFbmNEbndlbGwgd2VsbEVuY1RhcCkpKSBpZigoZG5XZWxsICE9IG5pbCkgdGhlbiAoZmlyc3RUYXBEbndlbGwgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZG5XZWxsID9sZW5ndGggKHcgKyAoMiAqICh3ZWxsRW5jRHJhaW4gKyBkbndlbGxFbmNOd2VsbCkpKSA/d2lkdGggKGVuZFRhcFdpZHRoICsgbWluU3BhY2VFbmRUYXBTb3VyY2UpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBmaXJzdFRhcERud2VsbCA/YWxpZ25IYW5kbGUgImNMIiA/cmVmT2JqIGZpcnN0VGFwTndlbGwgP3JlZkhhbmRsZSAiY0wiID94U2VwIG53ZWxsRW5jRG53ZWxsKSkgZWxzZSAoZmlyc3RQb2x5ID0gZW5kVGFwKSkgZWxzZSBpZigoKG1vZChtIDIpID09IDEpIHx8IChydW5zID09IDIpKSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogZW5kVGFwID9hbGlnbkhhbmRsZSAiY0wiID9yZWZPYmogZXh0ZW5kZWREcmFpbiA/cmVmSGFuZGxlICJjUiIgP3hTZXAgbWluU3BhY2VFbmRUYXBEcmFpbikgaWYoKHBGZXQgPT0gdCkgdGhlbiAobGFzdFRhcE53ZWxsID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRyYWluV2VsbCA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgbndlbGxFbmNEbndlbGwgKyBkbndlbGxFbmNOd2VsbCkpKSA/d2lkdGggKHdlbGxFbmNUYXAgKyBlbmRUYXBXaWR0aCkpKSAocm9kQWxpZ24gP2FsaWduT2JqIGxhc3RUYXBOd2VsbCA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIGVuZFRhcCA/cmVmSGFuZGxlICJjUiIgP3hTZXAgKHdlbGxFbmNUYXAgKyBud2VsbEVuY0Rud2VsbCkpIGlmKChkbldlbGwgIT0gbmlsKSB0aGVuIChsYXN0VGFwRG53ZWxsID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRuV2VsbCA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgZG53ZWxsRW5jTndlbGwpKSkgP3dpZHRoIChlbmRUYXBXaWR0aCArIG1pblNwYWNlRW5kVGFwRHJhaW4pKSkgKHJvZEFsaWduID9hbGlnbk9iaiBsYXN0VGFwRG53ZWxsID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogbGFzdFRhcE53ZWxsID9yZWZIYW5kbGUgImNSIiA/eFNlcCAoLSBud2VsbEVuY0Rud2VsbCkpKSBlbHNlIChsYXN0UG9seSA9IGVuZFRhcCkpIGVsc2UgKHJvZEFsaWduID9hbGlnbk9iaiBlbmRUYXAgP2FsaWduSGFuZGxlICJjTCIgP3JlZk9iaiBzb3VyY2VEaWZmID9yZWZIYW5kbGUgImNSIiA/eFNlcCBtaW5TcGFjZUVuZFRhcFNvdXJjZSkgaWYoKHBGZXQgPT0gdCkgdGhlbiAobGFzdFRhcE53ZWxsID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRyYWluV2VsbCA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgbndlbGxFbmNEbndlbGwgKyBkbndlbGxFbmNOd2VsbCkpKSA/d2lkdGggKHdlbGxFbmNUYXAgKyBlbmRUYXBXaWR0aCArIG1pblNwYWNlRW5kVGFwU291cmNlKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGFzdFRhcE53ZWxsID9hbGlnbkhhbmRsZSAiY1IiID9yZWZPYmogZW5kVGFwID9yZWZIYW5kbGUgImNSIiA/eFNlcCBtYXgod2VsbEVuY1RhcCBud2VsbEVuY0Rud2VsbCkpIGlmKChkbldlbGwgIT0gbmlsKSB0aGVuIChsYXN0VGFwRG53ZWxsID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGRuV2VsbCA/bGVuZ3RoICh3ICsgKDIgKiAod2VsbEVuY0RyYWluICsgZG53ZWxsRW5jTndlbGwpKSkgP3dpZHRoIChlbmRUYXBXaWR0aCArIG1pblNwYWNlRW5kVGFwU291cmNlKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGFzdFRhcERud2VsbCA/YWxpZ25IYW5kbGUgImNSIiA/cmVmT2JqIGxhc3RUYXBOd2VsbCA/cmVmSGFuZGxlICJjUiIgP3hTZXAgKC0gbndlbGxFbmNEbndlbGwpKSkgZWxzZSAobGFzdFBvbHkgPSBlbmRUYXApKSkpIGlmKChjb250YWN0cyAhPSAibm8gY29udGFjdHMiKSB0aGVuIChudW1Db250YWN0cyA9IChmbG9vciAodyAvIHZpYTBXaWR0aCkpKSB3aGlsZSgoKCgyICogbWluRW5jVmlhMERyblkpICsgKG51bUNvbnRhY3RzICogdmlhMFdpZHRoKSArICgobnVtQ29udGFjdHMgLSAxKSAqIHZpYTBNaW5TcGFjZSkpID4gdykgKG51bUNvbnRhY3RzID0gKG51bUNvbnRhY3RzIC0gMSkpKSAobnVtQ29udGFjdHNXID0gKGZsb29yIChtaW5Ecm5XaWR0aCAvIHZpYTBXaWR0aCkpKSB3aGlsZSgoKCgyICogbWluRW5jVmlhMERyblgpICsgKG51bUNvbnRhY3RzVyAqIHZpYTBXaWR0aCkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhME1pblNwYWNlKSkgPiBlbmRUYXBXaWR0aCkgKG51bUNvbnRhY3RzVyA9IChudW1Db250YWN0c1cgLSAxKSkpICh2aWEwQ29udGFjdHMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgbWV0MExheWVyID93aWR0aCAoKDIgKiBtZXQwRW5jVmlhMFgpICsgKCgobnVtQ29udGFjdHNXIC0gMSkgKiB2aWEwTWluU3BhY2UpICsgKG51bUNvbnRhY3RzVyAqIHZpYTBXaWR0aCkpKSA/bGVuZ3RoICgoMiAqIG1ldDBFbmNWaWEwWSkgKyAoKChudW1Db250YWN0cyAtIDEpICogdmlhME1pblNwYWNlKSArIChudW1Db250YWN0cyAqIHZpYTBXaWR0aCkpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgdmlhMExheWVyID93aWR0aCB2aWEwV2lkdGggP2xlbmd0aCB2aWEwV2lkdGggP3NwYWNlWSB2aWEwTWluU3BhY2UgP3NwYWNlWCB2aWEwTWluU3BhY2UgP2xvd2VyTGVmdE9mZnNldFkgbWV0MEVuY1ZpYTBZID91cHBlclJpZ2h0T2Zmc2V0WSAoLSBtZXQwRW5jVmlhMFkpID9sb3dlckxlZnRPZmZzZXRYIG1ldDBFbmNWaWEwWCA/dXBwZXJSaWdodE9mZnNldFggKC0gbWV0MEVuY1ZpYTBYKSA/Z2FwICJtaW5pbXVtIikpID9waW4gZXZhbCgoY29udGFjdHMgPT0gImZpcnN0IG1ldGFsIikpID90ZXJtTmFtZSAiQiIgP3Rlcm1JT1R5cGUgImlucHV0IiA/cGluQWNjZXNzRGlyIGxpc3QoInRvcCIgImJvdHRvbSIpID9waW5MYWJlbCB0ID9waW5MYWJlbEhlaWdodCAwLjEgP3BpbkxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSA/cGluTGFiZWxGb250ICJyb21hbiIpKSAocm9kQWxpZ24gP2FsaWduT2JqIHZpYTBDb250YWN0cyA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIGVuZFRhcCA/cmVmSGFuZGxlICJjQyIpIGlmKChjb250YWN0cyA9PSAic2Vjb25kIG1ldGFsIikgdGhlbiAobnVtQ29udGFjdHMgPSAoZmxvb3IgKHcgLyB2aWExV2lkdGgpKSkgd2hpbGUoKCgobnVtQ29udGFjdHMgKiB2aWExV2lkdGgpICsgKChudW1Db250YWN0cyAtIDEpICogdmlhMU1pblNwYWNlKSkgPiB3KSAobnVtQ29udGFjdHMgPSAobnVtQ29udGFjdHMgLSAxKSkpIChudW1Db250YWN0c1cgPSAoZmxvb3IgKG1pbkRybldpZHRoIC8gdmlhMVdpZHRoKSkpIHdoaWxlKCgoKG51bUNvbnRhY3RzVyAqIHZpYTFXaWR0aCkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhMU1pblNwYWNlKSkgPiBlbmRUYXBXaWR0aCkgKG51bUNvbnRhY3RzVyA9IChudW1Db250YWN0c1cgLSAxKSkpIChtZXQwRW5jVmlhMSA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQwTGF5ZXIgP3dpZHRoICgoMiAqIG1ldDFFbmNWaWExWCkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhMU1pblNwYWNlKSArIChudW1Db250YWN0c1cgKiB2aWExV2lkdGgpICsgKDIgKiBtZXQwRW5jVmlhMVgpKSA/bGVuZ3RoICgoMiAqIG1ldDFFbmNWaWExWSkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMVdpZHRoKSArICgyICogbWV0MEVuY1ZpYTFZKSkpKSAocm9kQWxpZ24gP2FsaWduT2JqIG1ldDBFbmNWaWExID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogdmlhMENvbnRhY3RzID9yZWZIYW5kbGUgImNDIikgKHZpYTFDb250YWN0cyA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBtZXQxTGF5ZXIgP3dpZHRoICgoMiAqIG1ldDFFbmNWaWExWCkgKyAoKG51bUNvbnRhY3RzVyAtIDEpICogdmlhMU1pblNwYWNlKSArIChudW1Db250YWN0c1cgKiB2aWExV2lkdGgpKSA/bGVuZ3RoICgoMiAqIG1ldDFFbmNWaWExWSkgKyAoKG51bUNvbnRhY3RzIC0gMSkgKiB2aWExTWluU3BhY2UpICsgKG51bUNvbnRhY3RzICogdmlhMVdpZHRoKSkgP3N1YlJlY3RBcnJheSBsaXN0KGxpc3QoP2xheWVyIHZpYTFMYXllciA/d2lkdGggdmlhMVdpZHRoID9sZW5ndGggdmlhMVdpZHRoID9zcGFjZVkgdmlhMU1pblNwYWNlID9zcGFjZVggdmlhMU1pblNwYWNlID9sb3dlckxlZnRPZmZzZXRZIG1ldDFFbmNWaWExWSA/dXBwZXJSaWdodE9mZnNldFkgKC0gbWV0MUVuY1ZpYTFZKSA/bG93ZXJMZWZ0T2Zmc2V0WCBtZXQxRW5jVmlhMVggP3VwcGVyUmlnaHRPZmZzZXRYICgtIG1ldDFFbmNWaWExWCkgP2dhcCAibWluaW11bSIpKSA/cGluIHQgP3Rlcm1OYW1lICJCIiA/dGVybUlPVHlwZSAiaW5wdXQiID9waW5BY2Nlc3NEaXIgbGlzdCgidG9wIiAiYm90dG9tIikgP3BpbkxhYmVsIHQgP3BpbkxhYmVsSGVpZ2h0IDAuMSA/cGluTGFiZWxMYXllciBsaXN0KCJ0ZXh0IiAiZHJhd2luZyIpID9waW5MYWJlbEZvbnQgInJvbWFuIikpIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhMUNvbnRhY3RzID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogbWV0MEVuY1ZpYTEgP3JlZkhhbmRsZSAiY0MiKSkpKSkgKGdhdGVEcmF3aW5nUHJldiA9IGdhdGVEcmF3aW5nKSkgaWYoKHBGZXQgPT0gdCkgdGhlbiAoaHZpSW1wID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGh2aUxheWVyID9mcm9tT2JqIGxpc3QoZmlyc3RQb2x5IGxhc3RQb2x5IHBGZXREcmFpbldlbGwpID9zaXplIGh2aUVuYykpIGVsc2UgKGh2aUltcCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBodmlMYXllciA/ZnJvbU9iaiBsaXN0KGZpcnN0UG9seSBsYXN0UG9seSBiZXZlbERyYWluV2VsbCkgP3NpemUgaHZpRW5jKSkpKQAoc3JjTGF5ZXIgc3JjSW1wbGFudCBzcmNJbXBsYW50RW5jIGRybkxheWVyIGRybkltcGxhbnQgZHJuSW1wbGFudEVuYyBnYXRlTGF5ZXIgZHJhaW5XZWxsIGRuV2VsbCBud2VsbEVuY0Rud2VsbCBkbndlbGxFbmNOd2VsbCB3ZWxsRW5jU3JjIHdlbGxFbmNEcm4gcEZldCB2aWEwTGF5ZXIgdmlhMFdpZHRoIG1ldDBMYXllciB2aWExTGF5ZXIgdmlhMVdpZHRoIG1ldDFMYXllciBodmlMYXllciBodmlFbmMgc25hcEdyaWQgbWluRW5jVmlhMFNyY1ggbWluRW5jVmlhMFNyY1kgbWluRW5jVmlhMERyblggbWluRW5jVmlhMERyblkgdmlhME1pblNwYWNlIG1ldDBFbmNWaWEwWCBtZXQwRW5jVmlhMFkgbWV0MEVuY1ZpYTFYIG1ldDBFbmNWaWExWSB2aWExTWluU3BhY2UgbWV0MUVuY1ZpYTFYIG1ldDFFbmNWaWExWSBpZExheWVyIHdlbGxFbmNEcmFpbiBtaW5TcGFjZVNyY0RybiBtaW5Ecm5XaWR0aCB3ZWxsQmV2ZWwgd2VsbEV4dEhvbGUgZHJuQmV2ZWwgc3JjRXh0RnJvbVBvbHkgcG9seUV4dFNvdXJjZSBtaW5TcGFjZVNyY092ZXJXZWxsIG1pblNwYWNlRW5kVGFwRHJhaW4gbWluU3BhY2VFbmRUYXBTb3VyY2UgZW5kVGFwTGF5ZXIgZW5kVGFwV2lkdGggZW5kVGFwSW1wbGFudCBlbmRUYXBJbXBFbmMgd2VsbEVuY0RpZmZUYXAgd2VsbEVuY1RhcCBzaGFyZWRTcmNXaWR0aCBtIGwgdyBnYXRlRXh0IGNvbnRhY3RzIGVuZFRhcHMgc3JjVW5kZXJQb2x5IG4gc3JjRXh0V2lkdGggZ2F0ZURyYXdpbmcgZ2F0ZURyYXdpbmdQcmV2IHNvdXJjZURpZmYgc291cmNlSW1wbGFudCBmaXJzdFBvbHkgc291cmNlUGluIGxhc3RQb2x5IHdlbGxXaWR0aCBud2VsbEV4dFNvdXJjZSBkbndlbGxXaWR0aCBkbndlbGxFeHRTb3VyY2UgYmV2ZWxEcmFpbldlbGwgY29ybmVyT2ZXZWxsWCBwRmV0RHJhaW5XZWxsIHBGZXREbldlbGwgZXh0ZW5kZWREcmFpbiBudW1Db250YWN0cyBudW1Db250YWN0c1cgdmlhMENvbnRhY3RzIG1ldDBFbmNWaWExIHZpYTFDb250YWN0cyBiZXZlbERyYWluSW1wbGFudCBud2VsbEV4dExhc3QgaWRSZWN0IHJ1blR3aWNlIHJ1bnMgZW5kVGFwIHRhcEltcGxhbnQgZmlyc3RUYXBOd2VsbCBmaXJzdFRhcERud2VsbCBsYXN0VGFwTndlbGwgbGFzdFRhcERud2VsbCBodmlJbXApACgobSAxKSAobCAwLjApICh3IDAuMCkgKGdhdGVFeHQgMC4wKSAoY29udGFjdHMgIm5vIGNvbnRhY3RzIikgKGVuZFRhcHMgIkZBTFNFIikpACgoc3JjTGF5ZXIgImhpbGl0ZSIpIChzcmNJbXBsYW50IG5pbCkgKHNyY0ltcGxhbnRFbmMgMC4wKSAoZHJuTGF5ZXIgImhpbGl0ZSIpIChkcm5JbXBsYW50IG5pbCkgKGRybkltcGxhbnRFbmMgMC4wKSAoZ2F0ZUxheWVyICJoaWxpdGUiKSAoZHJhaW5XZWxsICJoaWxpdGUiKSAoZG5XZWxsIG5pbCkgKG53ZWxsRW5jRG53ZWxsIDAuMCkgKGRud2VsbEVuY053ZWxsIDAuMCkgKHdlbGxFbmNTcmMgMC4wKSAod2VsbEVuY0RybiAwLjApIChwRmV0ICJGQUxTRSIpICh2aWEwTGF5ZXIgImhpbGl0ZSIpICh2aWEwV2lkdGggMC4wKSAobWV0MExheWVyICJoaWxpdGUiKSAodmlhMUxheWVyICJoaWxpdGUiKSAodmlhMVdpZHRoIDAuMCkgKG1ldDFMYXllciAiaGlsaXRlIikgKGh2aUxheWVyICJoaWxpdGUiKSAoaHZpRW5jIDAuMCkgKHNuYXBHcmlkIDAuMCkgKG1pbkVuY1ZpYTBTcmNYIDAuMCkgKG1pbkVuY1ZpYTBTcmNZIDAuMCkgKG1pbkVuY1ZpYTBEcm5YIDAuMCkgKG1pbkVuY1ZpYTBEcm5ZIDAuMCkgKHZpYTBNaW5TcGFjZSAwLjApIChtZXQwRW5jVmlhMFggMC4wKSAobWV0MEVuY1ZpYTBZIDAuMCkgKG1ldDBFbmNWaWExWCAwLjApIChtZXQwRW5jVmlhMVkgMC4wKSAodmlhMU1pblNwYWNlIDAuMCkgKG1ldDFFbmNWaWExWCAwLjApIChtZXQxRW5jVmlhMVkgMC4wKSAoaWRMYXllciBuaWwpICh3ZWxsRW5jRHJhaW4gMC4wKSAobWluU3BhY2VTcmNEcm4gMC4wKSAobWluRHJuV2lkdGggMC4wKSAod2VsbEJldmVsIDAuMCkgKHdlbGxFeHRIb2xlIDAuMCkgKGRybkJldmVsIDAuMCkgKHNyY0V4dEZyb21Qb2x5IDAuMCkgKHBvbHlFeHRTb3VyY2UgMC4wKSAobWluU3BhY2VTcmNPdmVyV2VsbCAwLjApIChtaW5TcGFjZUVuZFRhcERyYWluIDAuMCkgKG1pblNwYWNlRW5kVGFwU291cmNlIDAuMCkgKGVuZFRhcExheWVyICJoaWxpdGUiKSAoZW5kVGFwV2lkdGggMC4wKSAoZW5kVGFwSW1wbGFudCBuaWwpIChlbmRUYXBJbXBFbmMgMC4wKSAod2VsbEVuY0RpZmZUYXAgMC4wKSAod2VsbEVuY1RhcCAwLjApIChzaGFyZWRTcmNXaWR0aCAwLjApKQAoaWYoKChpbldlbGwgPT0gdCkgfHwgKGluV2VsbCA9PSAiVFJVRSIpKSB0aGVuIChpbldlbGwgPSB0KSBlbHNlIChpbldlbGwgPSBuaWwpKSBpZigoKGNlbnRlciA9PSB0KSB8fCAoY2VudGVyID09ICJUUlVFIikpIHRoZW4gKGNlbnRlciA9IHQpIGVsc2UgKGNlbnRlciA9IG5pbCkpIChsYXllcnBhcmFtcyA9IGNhYXIobGF5ZXJwYXJhbXMpKSAobGF5ZXIxcGFyYW1zID0gY2FyKGxheWVycGFyYW1zKSkgKGxheWVyMVJlY3QgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgY2FyKGxheWVyMXBhcmFtcykgP3dpZHRoIHcgP2xlbmd0aCBsKSkgaWYoKGNlbnRlciA9PSB0KSB0aGVuIChyb2RBbGlnbiA/YWxpZ25PYmogbGF5ZXIxUmVjdCA/YWxpZ25IYW5kbGUgImNDIiA/cmVmUG9pbnQgbGlzdCgwIDApKSkgKHJlZlBvaW50ID0gbGF5ZXIxUmVjdCkgKHJlY3RJZCA9IChsYXllcjFSZWN0fj5kYklkKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIChyZWN0SWR+PmxwcCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXJCYm94IiAibGlzdCIgKHJlY3RJZH4+YkJveCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiZGlmZkxheWVyIiAibGlzdCIgKHJlY3RJZH4+bHBwKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJkaWZmTGF5ZXJCYm94IiAibGlzdCIgKHJlY3RJZH4+YkJveCkpIChpc0xheWVyMSA9IHQpIHVubGVzcygobGVuZ3RoKGxheWVyMXBhcmFtcykgPCA4KSBpZihpbldlbGwgdGhlbiAobGF5ZXIxSW1wUGFyYW1zID0gY2FkcihjYWRkZHIoY2RkZGRyKGxheWVyMXBhcmFtcykpKSkgZWxzZSAobGF5ZXIxSW1wUGFyYW1zID0gY2FyKGNhZGRkcihjZGRkZHIobGF5ZXIxcGFyYW1zKSkpKSkgZm9yZWFjaChsYXllcjFJbXAgbGF5ZXIxSW1wUGFyYW1zIChsYXllcjFJbXBSZWN0ID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIGNhcihsYXllcjFJbXApID9mcm9tT2JqIGxheWVyMVJlY3QgP3NpemUgY2FkcihsYXllcjFJbXApKSkpKSB3aGlsZSgobGF5ZXJwYXJhbXMgIT0gbmlsKSBpZigobGVuZ3RoKGxheWVycGFyYW1zKSA9PSAxKSB0aGVuICh0b3BMYXllclBhcmFtcyA9IGNhcihsYXllcnBhcmFtcykpIChsYXllcnBhcmFtcyA9IG5pbCkgKHZpYVBhcmFtcyA9IG5pbCkgKGJvdExheWVyUGFyYW1zID0gbmlsKSBlbHNlIChib3RMYXllclBhcmFtcyA9IGNhcihsYXllcnBhcmFtcykpICh2aWFQYXJhbXMgPSBjYWRyKGxheWVycGFyYW1zKSkgKHRvcExheWVyUGFyYW1zID0gY2FkZHIobGF5ZXJwYXJhbXMpKSAobGF5ZXJwYXJhbXMgPSBjZGRyKGxheWVycGFyYW1zKSkpIGlmKHZpYVBhcmFtcyB0aGVuICh2aWFMYXllciA9IGNhcih2aWFQYXJhbXMpKSAodmlhV2lkdGggPSBjYWRyKHZpYVBhcmFtcykpICh2aWFTcGFjaW5nID0gY2FkZHIodmlhUGFyYW1zKSkgaWYoKGxlbmd0aCh2aWFQYXJhbXMpID4gMykgdGhlbiAodmlhSW1wUGFyYW1zID0gY2FkZGRyKHZpYVBhcmFtcykpICh2aWFJbXBMYXllciA9IGNhcih2aWFJbXBQYXJhbXMpKSAodmlhSW1wRW5jID0gY2Fkcih2aWFJbXBQYXJhbXMpKSBlbHNlICh2aWFJbXBQYXJhbXMgPSBuaWwpKSkgaWYoYm90TGF5ZXJQYXJhbXMgdGhlbiAoYm90TGF5ZXIgPSBjYXIoYm90TGF5ZXJQYXJhbXMpKSAoYm90TGF5ZXJFbmNWaWFYUiA9IGNhZGRkcihjZHIoYm90TGF5ZXJQYXJhbXMpKSkgKGJvdExheWVyRW5jVmlhWEwgPSBjYWRkZHIoY2Rkcihib3RMYXllclBhcmFtcykpKSAoYm90TGF5ZXJFbmNWaWFZID0gY2FkZGRyKGNkZGRyKGJvdExheWVyUGFyYW1zKSkpIGlmKChsZW5ndGgoYm90TGF5ZXJQYXJhbXMpID4gNykgdGhlbiAoYm90TGF5ZXJJbXBQYXJhbXMgPSBjYWRkZHIoY2RkZHIoY2RyKGJvdExheWVyUGFyYW1zKSkpKSBpZihpbldlbGwgdGhlbiAoYm90TGF5ZXJJbXBQYXJhbXMgPSBjYWRyKGJvdExheWVySW1wUGFyYW1zKSkgZWxzZSAoYm90TGF5ZXJJbXBQYXJhbXMgPSBjYXIoYm90TGF5ZXJJbXBQYXJhbXMpKSkpKSAodG9wTGF5ZXIgPSBjYXIodG9wTGF5ZXJQYXJhbXMpKSAodG9wTGF5ZXJFbmNWaWFYUiA9IGNhZHIodG9wTGF5ZXJQYXJhbXMpKSAodG9wTGF5ZXJFbmNWaWFYTCA9IGNhZGRyKHRvcExheWVyUGFyYW1zKSkgKHRvcExheWVyRW5jVmlhWSA9IGNhZGRkcih0b3BMYXllclBhcmFtcykpIGlmKChsZW5ndGgodG9wTGF5ZXJQYXJhbXMpID4gNykgdGhlbiAodG9wTGF5ZXJJbXBQYXJhbXMgPSBjYWRkZHIoY2RkZHIoY2RyKHRvcExheWVyUGFyYW1zKSkpKSBpZihpbldlbGwgdGhlbiAodG9wTGF5ZXJJbXBQYXJhbXMgPSBjYWRyKHRvcExheWVySW1wUGFyYW1zKSkgZWxzZSAodG9wTGF5ZXJJbXBQYXJhbXMgPSBjYXIodG9wTGF5ZXJJbXBQYXJhbXMpKSkpIGlmKHZpYVBhcmFtcyB0aGVuIChudW1WaWFDb250YWN0c1cgPSAoZmxvb3IgKHcgLyB2aWFXaWR0aCkpKSAobnVtVmlhQ29udGFjdHNMID0gKGZsb29yIChsIC8gdmlhV2lkdGgpKSkgaWYoaXNMYXllcjEgdGhlbiB3aGlsZSgobWF4KCgodG9wTGF5ZXJFbmNWaWFYUiArIHRvcExheWVyRW5jVmlhWEwgKyAobnVtVmlhQ29udGFjdHNXICogdmlhV2lkdGgpICsgKChudW1WaWFDb250YWN0c1cgLSAxKSAqIHZpYVNwYWNpbmcpKSAtIDFlLTA2KSAoKGJvdExheWVyRW5jVmlhWFIgKyBib3RMYXllckVuY1ZpYVhMICsgKG51bVZpYUNvbnRhY3RzVyAqIHZpYVdpZHRoKSArICgobnVtVmlhQ29udGFjdHNXIC0gMSkgKiB2aWFTcGFjaW5nKSkgLSAxZS0wNikpID4gdykgKG51bVZpYUNvbnRhY3RzVyA9IChudW1WaWFDb250YWN0c1cgLSAxKSkpIHdoaWxlKChtYXgoKCgoMiAqIHRvcExheWVyRW5jVmlhWSkgKyAobnVtVmlhQ29udGFjdHNMICogdmlhV2lkdGgpICsgKChudW1WaWFDb250YWN0c0wgLSAxKSAqIHZpYVNwYWNpbmcpKSAtIDFlLTA2KSAoKCgyICogYm90TGF5ZXJFbmNWaWFZKSArIChudW1WaWFDb250YWN0c0wgKiB2aWFXaWR0aCkgKyAoKG51bVZpYUNvbnRhY3RzTCAtIDEpICogdmlhU3BhY2luZykpIC0gMWUtMDYpKSA+IGwpIChudW1WaWFDb250YWN0c0wgPSAobnVtVmlhQ29udGFjdHNMIC0gMSkpKSBlbHNlIHdoaWxlKCgoKChudW1WaWFDb250YWN0c1cgKiB2aWFXaWR0aCkgKyAoKG51bVZpYUNvbnRhY3RzVyAtIDEpICogdmlhU3BhY2luZykpIC0gMWUtMDYpID4gdykgKG51bVZpYUNvbnRhY3RzVyA9IChudW1WaWFDb250YWN0c1cgLSAxKSkpIHdoaWxlKChtYXgoKCgoMiAqIHRvcExheWVyRW5jVmlhWSkgKyAobnVtVmlhQ29udGFjdHNMICogdmlhV2lkdGgpICsgKChudW1WaWFDb250YWN0c0wgLSAxKSAqIHZpYVNwYWNpbmcpKSAtIDFlLTA2KSAoKCgyICogYm90TGF5ZXJFbmNWaWFZKSArIChudW1WaWFDb250YWN0c0wgKiB2aWFXaWR0aCkgKyAoKG51bVZpYUNvbnRhY3RzTCAtIDEpICogdmlhU3BhY2luZykpIC0gMWUtMDYpKSA+IGwpIChudW1WaWFDb250YWN0c0wgPSAobnVtVmlhQ29udGFjdHNMIC0gMSkpKSkgaWYoKG51bVZpYUNvbnRhY3RzVyA8IDEpIHRoZW4gZXJyb3IoInNpbXBsZUNvbnRhY3RDbGFzczogV2lkdGggZ2l2ZW4gaXMgdG9vIHNtYWxsIHRvIGZpdCB2aWFzIC0gJUwiICh0Y0NlbGxWaWV3fj5jZWxsTmFtZSkpKSBpZigobnVtVmlhQ29udGFjdHNMIDwgMSkgdGhlbiBlcnJvcigic2ltcGxlQ29udGFjdENsYXNzOiBMZW5ndGggZ2l2ZW4gaXMgdG9vIHNtYWxsIHRvIGZpdCB2aWFzIC0gJUwiICh0Y0NlbGxWaWV3fj5jZWxsTmFtZSkpKSAodmlhQ29udGFjdHMgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgYm90TGF5ZXIgP3dpZHRoIChib3RMYXllckVuY1ZpYVhSICsgYm90TGF5ZXJFbmNWaWFYTCArICgoKG51bVZpYUNvbnRhY3RzVyAtIDEpICogdmlhU3BhY2luZykgKyAobnVtVmlhQ29udGFjdHNXICogdmlhV2lkdGgpKSkgP2xlbmd0aCAoKDIgKiBib3RMYXllckVuY1ZpYVkpICsgKCgobnVtVmlhQ29udGFjdHNMIC0gMSkgKiB2aWFTcGFjaW5nKSArIChudW1WaWFDb250YWN0c0wgKiB2aWFXaWR0aCkpKSA/c3ViUmVjdEFycmF5IGxpc3QobGlzdCg/bGF5ZXIgdmlhTGF5ZXIgP3dpZHRoIHZpYVdpZHRoID9sZW5ndGggdmlhV2lkdGggP3NwYWNlWSB2aWFTcGFjaW5nID9zcGFjZVggdmlhU3BhY2luZyA/bG93ZXJMZWZ0T2Zmc2V0WSBib3RMYXllckVuY1ZpYVkgP3VwcGVyUmlnaHRPZmZzZXRZICgtIGJvdExheWVyRW5jVmlhWSkgP2xvd2VyTGVmdE9mZnNldFggYm90TGF5ZXJFbmNWaWFYTCA/dXBwZXJSaWdodE9mZnNldFggKC0gYm90TGF5ZXJFbmNWaWFYUikgP2dhcCAibWluaW11bSIpKSkpIHVubGVzcygobGVuZ3RoKGJvdExheWVyUGFyYW1zKSA8IDgpIGZvcmVhY2goYm90TGF5ZXJJbXAgYm90TGF5ZXJJbXBQYXJhbXMgKGJvdExheWVySW1wUmVjdCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciBjYXIoYm90TGF5ZXJJbXApID9mcm9tT2JqIHZpYUNvbnRhY3RzID9zaXplIGNhZHIoYm90TGF5ZXJJbXApKSkpKSBpZih2aWFJbXBQYXJhbXMgdGhlbiAodmlhSW1wbGFudCA9IChyb2RDcmVhdGVSZWN0ID9sYXllciB2aWFJbXBMYXllciA/d2lkdGggKCgyICogdmlhSW1wRW5jKSArICgoKG51bVZpYUNvbnRhY3RzVyAtIDEpICogdmlhU3BhY2luZykgKyAobnVtVmlhQ29udGFjdHNXICogdmlhV2lkdGgpKSkgP2xlbmd0aCAoKDIgKiB2aWFJbXBFbmMpICsgKCgobnVtVmlhQ29udGFjdHNMIC0gMSkgKiB2aWFTcGFjaW5nKSArIChudW1WaWFDb250YWN0c0wgKiB2aWFXaWR0aCkpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhSW1wbGFudCA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHZpYUNvbnRhY3RzID9yZWZIYW5kbGUgImNDIiA/eFNlcCAoKGJvdExheWVyRW5jVmlhWEwgLSBib3RMYXllckVuY1ZpYVhSKSAvIDIpKSkgaWYoaXNMYXllcjEgdGhlbiAocm9kQWxpZ24gP2FsaWduT2JqIHZpYUNvbnRhY3RzID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogcmVmUG9pbnQgP3JlZkhhbmRsZSAiY0MiKSBlbHNlIChyb2RBbGlnbiA/YWxpZ25PYmogdmlhQ29udGFjdHMgP2FsaWduSGFuZGxlICJjQyIgP3JlZk9iaiByZWZQb2ludCA/cmVmSGFuZGxlICJjQyIgP3hTZXAgKChib3RMYXllckVuY1ZpYVhMIC0gYm90TGF5ZXJFbmNWaWFYUikgLyAyKSkpIChyZWZQb2ludCA9IHZpYUNvbnRhY3RzKSkgKGxheWVyMlcgPSAoKChudW1WaWFDb250YWN0c1cgLSAxKSAqIHZpYVNwYWNpbmcpICsgKG51bVZpYUNvbnRhY3RzVyAqIHZpYVdpZHRoKSArIHRvcExheWVyRW5jVmlhWFIgKyB0b3BMYXllckVuY1ZpYVhMKSkgKGxheWVyMkwgPSAoKChudW1WaWFDb250YWN0c0wgLSAxKSAqIHZpYVNwYWNpbmcpICsgKG51bVZpYUNvbnRhY3RzTCAqIHZpYVdpZHRoKSArICgyICogdG9wTGF5ZXJFbmNWaWFZKSkpIChsYXllcjJSZWN0ID0gKHJvZENyZWF0ZVJlY3QgP2xheWVyIHRvcExheWVyID93aWR0aCBsYXllcjJXID9sZW5ndGggbGF5ZXIyTCkpIChyb2RBbGlnbiA/YWxpZ25PYmogbGF5ZXIyUmVjdCA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIHJlZlBvaW50ID9yZWZIYW5kbGUgImNDIiA/eFNlcCAoKGJvdExheWVyRW5jVmlhWEwgLSBib3RMYXllckVuY1ZpYVhSKSAvIDIpKSB3aGVuKChsYXllcnBhcmFtcyA9PSBuaWwpIChyZWN0SWQgPSAobGF5ZXIyUmVjdH4+ZGJJZCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiAocmVjdElkfj5scHApKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChyZWN0SWR+PmJCb3gpKSkgdW5sZXNzKChsZW5ndGgobGF5ZXJwYXJhbXMpID09IDEpIChyZWZQb2ludCA9IGxheWVyMlJlY3QpKSB1bmxlc3MoKGxlbmd0aCh0b3BMYXllclBhcmFtcykgPCA4KSBmb3JlYWNoKHRvcExheWVySW1wIHRvcExheWVySW1wUGFyYW1zICh0b3BMYXllckltcFJlY3QgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgY2FyKHRvcExheWVySW1wKSA/ZnJvbU9iaiBsYXllcjJSZWN0ID9zaXplIGNhZHIodG9wTGF5ZXJJbXApKSkpKSAoaXNMYXllcjEgPSBuaWwpKSkAKGxheWVycGFyYW1zIHcgbCBpbldlbGwgY2VudGVyIGxheWVyMXBhcmFtcyBsYXllcjFSZWN0IHJlZlBvaW50IHJlY3RJZCBpc0xheWVyMSBsYXllcjFJbXBQYXJhbXMgbGF5ZXIxSW1wIGxheWVyMUltcFJlY3QgdG9wTGF5ZXJQYXJhbXMgdmlhUGFyYW1zIGJvdExheWVyUGFyYW1zIHZpYUxheWVyIHZpYVdpZHRoIHZpYVNwYWNpbmcgdmlhSW1wUGFyYW1zIHZpYUltcExheWVyIHZpYUltcEVuYyBib3RMYXllciBib3RMYXllckVuY1ZpYVhSIGJvdExheWVyRW5jVmlhWEwgYm90TGF5ZXJFbmNWaWFZIGJvdExheWVySW1wUGFyYW1zIHRvcExheWVyIHRvcExheWVyRW5jVmlhWFIgdG9wTGF5ZXJFbmNWaWFYTCB0b3BMYXllckVuY1ZpYVkgdG9wTGF5ZXJJbXBQYXJhbXMgbnVtVmlhQ29udGFjdHNXIG51bVZpYUNvbnRhY3RzTCB2aWFDb250YWN0cyBib3RMYXllckltcCBib3RMYXllckltcFJlY3QgdmlhSW1wbGFudCBsYXllcjJXIGxheWVyMkwgbGF5ZXIyUmVjdCB0b3BMYXllckltcCB0b3BMYXllckltcFJlY3QpACgodyAwLjApIChsIDAuMCkgKGluV2VsbCAiVFJVRSIpIChjZW50ZXIgIkZBTFNFIikpACgobGF5ZXJwYXJhbXMgbmlsKSkAKChzaGFyZWRDb250YWN0ID0gY29udGFjdHMpIChsYXN0Q29udGFjdCA9IGNvbnRhY3RzKSAoZmlyc3RDb250YWN0ID0gY29udGFjdHMpIChnTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImMwIikpIChkYkNyZWF0ZVRlcm0gZ05ldCAiYzAiICJpbnB1dCIpIChiTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImMxIikpIChkYkNyZWF0ZVRlcm0gYk5ldCAiYzEiICJpbnB1dE91dHB1dCIpIChuZXRMID0gIkIiKSB3aGVuKChtIDwgMSkgKG0gPSAxKSkgKHgxQ29vcmQgPSAwLjApICh5MUNvb3JkID0gMC4wKSAobGFzdFgxQ29vcmQgPSAoLSAoMi4wICogKGRlcFhFbmMgKyBkZXBTcGFjZSkpKSkgd2hlbihkZXBMYXllciAoeTFEZXBDb29yZCA9ICh5MUNvb3JkIC0gZGVwWUVuYykpICh5MkRlcENvb3JkID0gKHkxQ29vcmQgKyB3ICsgZGVwWUVuYykpKSB3aGVuKChmaXJzdENvbnRhY3QgIT0gIiIpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmlyc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGZpcnN0Q29udGFjdCBjb250YWN0IGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIHVubGVzcygoY29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIChvZmZzZXQgPSAoYnVsa09mZnNldCArIGNvbnRhY3RHYXRlU3BhY2UpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCAiYzAiICgoLSBvZmZzZXQpOjApICJNWSIgMSBsaXN0KGxpc3QoImwiICJmbG9hdCIgdykgbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpKSkgdW5sZXNzKGluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgZmlyc3RDb250YWN0KSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgKGZpcnN0Q29uTWFzdGVyID0gbWFzdGVyKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKHlvZmZzZXQgPSAwKSAoYkJveCA9IGxpc3QobGlzdCgoLSAob2Zmc2V0ICsgY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpICh5b2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCgtIChvZmZzZXQgKyBjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpICh5b2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpKSAoZmlyc3RCYm94ID0gYkJveCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gYk5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoeDFEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MVdlbGxDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKHdlbGxFbmNUYXAgKyB4MURpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB4MVRhcENvb3JkKSkpKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFXZWxsQ29vcmQgPSAoLSBtYXgoKHdlbGxFbmNUYXAgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB5MVRhcENvb3JkKSkpKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jVGFwICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkpKSkgd2hlbihpbXBsYW50TGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKHgxRGlmZkNvb3JkID0gY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeDFJbXBDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKHRhcEltcEVuYyArIHgxRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeDFUYXBDb29yZCkpKSkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxSW1wQ29vcmQgPSAoLSBtYXgoKHRhcEltcEVuYyArIHkxRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeTFUYXBDb29yZCkpKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkltcENvb3JkID0gbWF4KCh0YXBJbXBFbmMgKyB5MkRpZmZDb29yZCkgKHRhcEltcEVuYyArIHkyVGFwQ29vcmQpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKCh4MUNvb3JkIC0gdGFwRXh0KTp5MUNvb3JkKSAoeDFDb29yZDp3KSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gYk5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIHdoZW4oKGZpcnN0Q29udGFjdCA9PSAiIikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KCgtICh4MUNvb3JkICsgKHRhcEV4dCAvIDIuMCkpKSAoeTFDb29yZCArICh3IC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciAoeDFXZWxsQ29vcmQgPSAoLSAoeDFDb29yZCArIHRhcEV4dCArIHdlbGxFbmNUYXApKSkgKHkxV2VsbENvb3JkID0gKC0gKHkxQ29vcmQgKyB3ZWxsRW5jVGFwKSkpICh5MldlbGxDb29yZCA9ICh5MUNvb3JkICsgdyArIHdlbGxFbmNUYXApKSkgd2hlbihpbXBsYW50TGF5ZXIgKHgxSW1wQ29vcmQgPSAoLSAoeDFDb29yZCArIHRhcEV4dCArIHRhcEltcEVuYykpKSAoeTFJbXBDb29yZCA9ICgtICh5MUNvb3JkICsgdGFwSW1wRW5jKSkpICh5MkltcENvb3JkID0gKHkxQ29vcmQgKyB3ICsgdGFwSW1wRW5jKSkpKSB3aGVuKChtID4gMSkgd2hlbigoc2hhcmVkQ29udGFjdCA9PSAiIikgZXJyb3IoIk1pc3Npbmcgc2hhcmVkIGNvbnRhY3QgbmFtZSBwcm9wZXJ0eSIpKSAoc2hhcmVkQ29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhzaGFyZWRDb250YWN0SWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gc2hhcmVkIGNvbnRhY3QgY2VsbCBgJXMnIiBzaGFyZWRDb250YWN0KSkpIHVubGVzcygoc2hhcmVkQ29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgc2hhcmVkQ29udGFjdCkpKSkgdW5sZXNzKChnYXRlQ29udGFjdCA9PSAiIikgKGdhdGVDb24gPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZ2F0ZUNvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhnYXRlQ29uIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGdhdGUgY29udGFjdCBjZWxsIGAlcyciIGdhdGVDb24pKSkgdW5sZXNzKChnYXRlQ29ufj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgZ2F0ZUNvbikpKSkgZm9yKG4gMSBtIHdoZW4oKG4gPT0gMSkgKGZpcnN0WCA9IHgxQ29vcmQpKSB3aGVuKChuID09IG0pIChsYXN0WCA9ICh4MUNvb3JkICsgbCkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCAtIGdhdGVFeHQpKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcgKyBnYXRlRXh0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSB3aGVuKHZhckNoYW5uZWxJbXAgKHZhckNoYW5uZWxJbXBJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2YXJDaGFubmVsSW1wIGxpc3QoKCh4MUNvb3JkIC0gdmFyQ2hhbm5lbEltcEVuYyk6KHkxQ29vcmQgLSB2YXJDaGFubmVsSW1wRW5jKSkgKCh4MUNvb3JkICsgbCArIHZhckNoYW5uZWxJbXBFbmMpOih5MUNvb3JkICsgdyArIHZhckNoYW5uZWxJbXBFbmMpKSkpKSkgd2hlbigoZ2F0ZUNvbnRhY3QgPT0gIiIpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCh4MUNvb3JkOih5MUNvb3JkICsgdykpICgoeDFDb29yZCArIGwpOih5MUNvb3JkICsgdyArIGdhdGVFeHQpKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKHgxQ29vcmQ6KHkxQ29vcmQgLSBnYXRlRXh0KSkgKCh4MUNvb3JkICsgbCk6eTFDb29yZCkpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJib3R0b20iKSBhY2Nlc3NEaXIpKSBpZigoKGdhdGVDb250YWN0ICE9ICIiKSAmJiAobiA9PSBtKSkgdGhlbiAoZHVtbXlHYXRlQ29udGFjdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGdhdGVDb24gc3ByaW50ZihuaWwgImR1bSVkIiBuKSAoMDowKSAiUjAiIDEpKSAoYmFzZUdhdGVDb25NYXN0ZXIgPSAoZHVtbXlHYXRlQ29udGFjdH4+bWFzdGVyKSkgKGJhc2VHYXRlQ29uQmJveCA9IChiYXNlR2F0ZUNvbk1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgKGJhc2VHYXRlQ29uVyA9IGFicygoY2FhcihiYXNlR2F0ZUNvbkJib3gpIC0gY2FhZHIoYmFzZUdhdGVDb25CYm94KSkpKSAoYmFzZUdhdGVDb25MID0gYWJzKChjYWRhcihiYXNlR2F0ZUNvbkJib3gpIC0gY2FkYWRyKGJhc2VHYXRlQ29uQmJveCkpKSkgKGRiRGVsZXRlT2JqZWN0IGR1bW15R2F0ZUNvbnRhY3QpIChiaWdHYXRlU2l6ZSA9IG1heChiYXNlR2F0ZUNvblcgKCgyICogYmFzZUdhdGVDb25MKSArIChsYXN0WCAtIGZpcnN0WCkpKSkgKGdhdGVDb25JbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZ2F0ZUNvbiBzcHJpbnRmKG5pbCAiZzAlZCIgbikgKGZpcnN0WDooeTFDb29yZCAtIGdhdGVFeHQpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGJpZ0dhdGVTaXplKSBsaXN0KCJsIiAiZmxvYXQiIGJhc2VHYXRlQ29uTCkpKSkgaWYoZG91YmxlR2F0ZUNvbnRhY3RzIHRoZW4gKGdhdGVDb25JbnN0MiA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGdhdGVDb24gc3ByaW50ZihuaWwgImcxJWQiIG4pIChmaXJzdFg6KHkxQ29vcmQgLSBnYXRlRXh0KSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBiaWdHYXRlU2l6ZSkgbGlzdCgibCIgImZsb2F0IiBiYXNlR2F0ZUNvbkwpKSkpKSB1bmxlc3MoZ2F0ZUNvbkluc3QgZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgZ2F0ZSBjb250YWN0IikpIChnYXRlQ29uTWFzdGVyID0gKGdhdGVDb25JbnN0fj5tYXN0ZXIpKSAoZ2F0ZUNvbk1hc3RlcjEgPSAoZ2F0ZUNvbkluc3R+Pm1hc3RlcikpIChnYXRlQ29uMUJib3ggPSAoZ2F0ZUNvbk1hc3RlcjF+PnRvcExheWVyUGluQmJveCkpIChnYXRlQ29uWU9mZnNldCA9IGNhZGFkcigoZ2F0ZUNvbk1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkpIHNldFNHcShnYXRlQ29uSW5zdCBsaXN0KChmaXJzdFggKyAoKGxhc3RYIC0gZmlyc3RYKSAvIDIpKSAoeTFDb29yZCAtIGdhdGVFeHQgLSBnYXRlQ29uWU9mZnNldCkpIHh5KSB1bmxlc3MoKChnYXRlQ29uTWFzdGVyMX4+dG9wTGF5ZXIpICYmIChnYXRlQ29uTWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIChiQm94ID0gbGlzdChsaXN0KChjYWFyKChnYXRlQ29uTWFzdGVyMX4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjYXIoKGdhdGVDb25JbnN0fj54eSkpKSAoY2FkYXIoKGdhdGVDb25NYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSArIGNhZHIoKGdhdGVDb25JbnN0fj54eSkpKSkgbGlzdCgoY2FhZHIoKGdhdGVDb25NYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSArIGNhcigoZ2F0ZUNvbkluc3R+Pnh5KSkpIChjYWRhZHIoKGdhdGVDb25NYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSArIGNhZHIoKGdhdGVDb25JbnN0fj54eSkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAoZ2F0ZUNvbk1hc3RlcjF+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJib3R0b20iKSBhY2Nlc3NEaXIpIChiQm94MSA9IGxpc3QobGlzdChmaXJzdFggKGNhZGFyKChnYXRlQ29uTWFzdGVyMX4+Ym90TGF5ZXJCYm94KSkgKyBjYWRyKChnYXRlQ29uSW5zdH4+eHkpKSkpIGxpc3QobGFzdFggKGNhZGFkcigoZ2F0ZUNvbk1hc3RlcjF+PmJvdExheWVyQmJveCkpICsgY2FkcigoZ2F0ZUNvbkluc3R+Pnh5KSkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAoZ2F0ZUNvbk1hc3RlcjF+PmJvdExheWVyKSBiQm94MSkgaWYoZG91YmxlR2F0ZUNvbnRhY3RzIHRoZW4gc2V0U0dxKGdhdGVDb25JbnN0MiBsaXN0KChmaXJzdFggKyAoKGxhc3RYIC0gZmlyc3RYKSAvIDIpKSAodyArIHkxQ29vcmQgKyBnYXRlRXh0ICsgZ2F0ZUNvbllPZmZzZXQpKSB4eSkgKGdhdGVDb25NYXN0ZXIyID0gKGdhdGVDb25JbnN0Mn4+bWFzdGVyKSkgKGdhdGVDb24yQmJveCA9IChnYXRlQ29uTWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkgdW5sZXNzKCgoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyKSAmJiAoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAoYkJveCA9IGxpc3QobGlzdCgoY2FhcigoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpICsgY2FyKChnYXRlQ29uSW5zdDJ+Pnh5KSkpIChjYWRhcigoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpICsgY2FkcigoZ2F0ZUNvbkluc3Qyfj54eSkpKSkgbGlzdCgoY2FhZHIoKGdhdGVDb25NYXN0ZXIyfj50b3BMYXllclBpbkJib3gpKSArIGNhcigoZ2F0ZUNvbkluc3Qyfj54eSkpKSAoY2FkYWRyKChnYXRlQ29uTWFzdGVyMn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjYWRyKChnYXRlQ29uSW5zdDJ+Pnh5KSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChnYXRlQ29uTWFzdGVyMn4+dG9wTGF5ZXIpIGJCb3gpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoYkJveDIgPSBsaXN0KGxpc3QoZmlyc3RYIChjYWRhcigoZ2F0ZUNvbk1hc3RlcjJ+PmJvdExheWVyQmJveCkpICsgY2FkcigoZ2F0ZUNvbkluc3Qyfj54eSkpKSkgbGlzdChsYXN0WCAoY2FkYWRyKChnYXRlQ29uTWFzdGVyMn4+Ym90TGF5ZXJCYm94KSkgKyBjYWRyKChnYXRlQ29uSW5zdDJ+Pnh5KSkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAoZ2F0ZUNvbk1hc3RlcjJ+PmJvdExheWVyKSBiQm94MikpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcpKSkpIHdoZW4oZGVwTGF5ZXIgY29uZCgoKCh4MUNvb3JkIC0gbGFzdFgxQ29vcmQgLSAoMi4wICogZGVwWEVuYykpIDwgZGVwU3BhY2UpICh4MURlcENvb3JkID0gKGxhc3RYMUNvb3JkICsgZGVwWEVuYykpKSAodCAoeDFEZXBDb29yZCA9ICh4MUNvb3JkIC0gZGVwWEVuYykpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRlcExheWVyIGxpc3QoKHgxRGVwQ29vcmQ6eTFEZXBDb29yZCkgKCh4MUNvb3JkICsgbCArIGRlcFhFbmMpOnkyRGVwQ29vcmQpKSkpICh4MUNvb3JkID0gKHgxQ29vcmQgKyBsKSkgd2hlbigobiAhPSBtKSAoY29udGFjdElkID0gc2hhcmVkQ29udGFjdElkKSAob2Zmc2V0ID0gKGJ1bGtPZmZzZXQgKyBjb250YWN0R2F0ZVNwYWNlKSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgc3ByaW50ZihuaWwgImMlZCIgbikgKChvZmZzZXQgKyB4MUNvb3JkKTp5MUNvb3JkKSAiUjAiIDEgbGlzdChsaXN0KCJsIiAiZmxvYXQiIHcpIGxpc3QoImluV2VsbCIgImJvb2xlYW4iIHQpKSkpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIChzaGFyZWRDb25NYXN0ZXIgPSBtYXN0ZXIpIHVubGVzcygoKG1hc3Rlcn4+dG9wTGF5ZXIpICYmIChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAoeW9mZnNldCA9IDApIChiQm94ID0gbGlzdChsaXN0KChjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpICsgeDFDb29yZCArIG9mZnNldCkgKHlvZmZzZXQgKyBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpIGxpc3QoKGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpICsgeDFDb29yZCArIG9mZnNldCkgKHlvZmZzZXQgKyBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGJOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTooeTFDb29yZCArIHcpKSkpKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgZGlmZkxheWVyQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIChsYXN0WDFDb29yZCA9IHgxQ29vcmQpICh4MUNvb3JkID0gKCgyLjAgKiBvZmZzZXQpICsgKHgxQ29vcmQgKyAoY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOih5MUNvb3JkICsgdykpKSkpIHdoZW4od2VsbExheWVyICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY1RhcCArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcCArIHkxVGFwQ29vcmQpKSkgeTFXZWxsQ29vcmQpKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jVGFwICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSkgd2hlbihpbXBsYW50TGF5ZXIgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFJbXBDb29yZCA9IG1pbigoLSBtYXgoKHRhcEltcEVuYyArIHkxRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeTFUYXBDb29yZCkpKSB5MUltcENvb3JkKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkltcENvb3JkID0gbWF4KCh0YXBJbXBFbmMgKyB5MkRpZmZDb29yZCkgKHRhcEltcEVuYyArIHkyVGFwQ29vcmQpIHkySW1wQ29vcmQpKSkpKSB3aGVuKChtICE9IDEpIChkYkNsb3NlIHNoYXJlZENvbnRhY3RJZCkpIHdoZW4oKGxhc3RDb250YWN0ICE9ICIiKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGxhc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGxhc3RDb250YWN0IGNvbnRhY3QgY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGxhc3RDb250YWN0KSkpIChvZmZzZXQgPSAoYnVsa09mZnNldCArIGNvbnRhY3RHYXRlU3BhY2UpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCBzcHJpbnRmKG5pbCAiYyVkIiBtKSAoKG9mZnNldCArIHgxQ29vcmQpOnkxQ29vcmQpICJSMCIgMSBsaXN0KGxpc3QoImwiICJmbG9hdCIgdykgbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpKSkgdW5sZXNzKGluc3QgZXJyb3Ioc3ByaW50ZihuaWwgIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgYCVzJyIgbGFzdENvbnRhY3QpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgob2Zmc2V0ICsgeDFDb29yZCk6KHkxQ29vcmQgKyB3KSkpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSAobGFzdENvbk1hc3RlciA9IG1hc3RlcikgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgbGFzdENvbnRhY3QpKSkgKHlvZmZzZXQgPSAwKSAoYkJveCA9IGxpc3QobGlzdCgoY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpICh5b2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KChjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpICh5b2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpKSAobGFzdEJib3ggPSBiQm94KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAobWFzdGVyfj50b3BMYXllcikgYkJveCkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBiTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY1RhcCArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcCArIHkxVGFwQ29vcmQpKSkgeTFXZWxsQ29vcmQpKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jVGFwICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSAoeDJEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MldlbGxDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KCh3ZWxsRW5jVGFwICsgeDJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeDJUYXBDb29yZCkpKSkpIHdoZW4oaW1wbGFudExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTFJbXBDb29yZCA9IG1pbigoLSBtYXgoKHRhcEltcEVuYyArIHkxRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeTFUYXBDb29yZCkpKSB5MUltcENvb3JkKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkltcENvb3JkID0gbWF4KCh0YXBJbXBFbmMgKyB5MkRpZmZDb29yZCkgKHRhcEltcEVuYyArIHkyVGFwQ29vcmQpIHkySW1wQ29vcmQpKSAoeDJEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MkltcENvb3JkID0gKG9mZnNldCArIHgxQ29vcmQgKyBtYXgoKHRhcEltcEVuYyArIHgyRGlmZkNvb3JkKSAodGFwSW1wRW5jICsgeDJUYXBDb29yZCkpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKCh4MUNvb3JkICsgdGFwRXh0KTooeTFDb29yZCArIHcpKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gYk5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKChsYXN0Q29udGFjdCA9PSAiIikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KCh4MUNvb3JkICsgKHRhcEV4dCAvIDIuMCkpICh5MUNvb3JkICsgKHcgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4od2VsbExheWVyICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgdGFwRXh0ICsgd2VsbEVuY1RhcCkpICh5MldlbGxDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyB3ZWxsRW5jVGFwKSB5MldlbGxDb29yZCkpKSB3aGVuKGltcGxhbnRMYXllciAoeDJJbXBDb29yZCA9ICh4MUNvb3JkICsgdGFwRXh0ICsgdGFwSW1wRW5jKSkgKHkySW1wQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyB3ICsgdGFwSW1wRW5jKSB5MldlbGxDb29yZCkpKSkgKHRvcE1ldGFsQm90WSA9IGNhZGFyKGZpcnN0QmJveCkpICh0b3BNZXRhbFRvcFkgPSBjYWRhZHIoZmlyc3RCYm94KSkgd2hlbih0b3BNZXRhbCBpZigoZ2F0ZUNvbnRhY3QgIT0gbmlsKSB0aGVuIGlmKCgoZ2F0ZUNvbk1hc3RlcjF+PnRvcExheWVyKSA9PSB0b3BNZXRhbCkgdGhlbiAodG9wTWV0YWxCb3RZID0gbWF4KGNhYWRyKGZpcnN0QmJveCkgKHRvcE1ldGFsR2F0ZURpc3QgKyBjYWRhZHIoKGdhdGVDb25NYXN0ZXIxfj50b3BMYXllclBpbkJib3gpKSArIGNhZHIoKGdhdGVDb25JbnN0fj54eSkpKSkpIGlmKGRvdWJsZUdhdGVDb250YWN0cyB0aGVuICh0b3BNZXRhbFRvcFkgPSBtaW4oY2FkYWRyKGZpcnN0QmJveCkgKChjYWRhcigoZ2F0ZUNvbk1hc3RlcjJ+PnRvcExheWVyUGluQmJveCkpICsgY2FkcigoZ2F0ZUNvbkluc3Qyfj54eSkpKSAtIHRvcE1ldGFsR2F0ZURpc3QpKSkpKSkgaWYoKChmaXJzdENvbk1hc3Rlcn4+dG9wTGF5ZXIpID09IHRvcE1ldGFsKSB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0b3BNZXRhbCBsaXN0KGxpc3QoY2FhcihmaXJzdEJib3gpIHRvcE1ldGFsQm90WSkgbGlzdChjYWFyKGxhc3RCYm94KSB0b3BNZXRhbFRvcFkpKSkpKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKGdhdGVDb250YWN0ID09ICIiKSAoeTFXZWxsQ29vcmQgPSAoKCh5MUNvb3JkIC0gZ2F0ZUV4dCkgLSB3ZWxsRW5jUG9seSkgLSAoMiAqIGdhdGVDb25ZT2Zmc2V0KSkpIGlmKGRvdWJsZUdhdGVDb250YWN0cyB0aGVuICh5MldlbGxDb29yZCA9ICgoKCh5MUNvb3JkICsgZ2F0ZUV4dCkgKyB3ZWxsRW5jUG9seSkgKyAoMiAqIGdhdGVDb25ZT2Zmc2V0KSkgKyB3KSkgZWxzZSAoeTJXZWxsQ29vcmQgPSAoKCh5MUNvb3JkICsgdykgKyBnYXRlRXh0KSArIHdlbGxFbmNQb2x5KSkpKSBpZigoZ2F0ZUNvbnRhY3QgPT0gIiIpIHRoZW4gKHkxV2VsbENvb3JkID0gKCh5MUNvb3JkIC0gd2VsbEVuY1BvbHkpIC0gZ2F0ZUV4dCkpICh5MldlbGxDb29yZCA9ICgoKHkxQ29vcmQgKyB3ZWxsRW5jUG9seSkgKyBnYXRlRXh0KSArIHcpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkgd2hlbih3ZWxsSW1wTGF5ZXIgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxJbXBMYXllciBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkpIHdoZW4od2VsbEltcExheWVyMiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbEltcExheWVyMiBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkpIHdoZW4od2VsbEltcExheWVyMyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbEltcExheWVyMyBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkpKSB3aGVuKGltcGxhbnRMYXllciAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QobGlzdCh4MUltcENvb3JkIHkxSW1wQ29vcmQpIGxpc3QoeDJJbXBDb29yZCB5MkltcENvb3JkKSkpKSkAKHRhcExheWVyIGdhdGVMYXllciB3ZWxsTGF5ZXIgd2VsbEltcExheWVyIHdlbGxJbXBMYXllcjIgd2VsbEltcExheWVyMyBkZXBMYXllciB0YXBFeHQgd2VsbEVuY1BvbHkgd2VsbEVuY1RhcCBkZXBYRW5jIGRlcFlFbmMgZGVwU3BhY2UgbGFiZWxMYXllciBsYWJlbFdpZHRoIGltcGxhbnRMYXllciB0YXBJbXBFbmMgY29udGFjdEdhdGVTcGFjZSB0b3BNZXRhbCB0b3BNZXRhbEdhdGVEaXN0IHZhckNoYW5uZWxJbXAgdmFyQ2hhbm5lbEltcEVuYyBnYXRlQ29udGFjdCBjb250YWN0cyBnYXRlRXh0IGJ1bGtPZmZzZXQgbSBsIHcgZG91YmxlR2F0ZUNvbnRhY3RzIHNoYXJlZENvbnRhY3QgbGFzdENvbnRhY3QgZmlyc3RDb250YWN0IGdOZXQgYk5ldCBuZXRMIHgxQ29vcmQgeTFDb29yZCBsYXN0WDFDb29yZCB5MURlcENvb3JkIHkyRGVwQ29vcmQgY29udGFjdElkIG9mZnNldCBpbnN0IG1hc3RlciBmaXJzdENvbk1hc3RlciB5b2Zmc2V0IGJCb3ggZmlyc3RCYm94IGRiaWQgcGluaWQgeDFEaWZmQ29vcmQgeDFUYXBDb29yZCB4MVdlbGxDb29yZCB5MURpZmZDb29yZCB5MVRhcENvb3JkIHkxV2VsbENvb3JkIHkyRGlmZkNvb3JkIHkyVGFwQ29vcmQgeTJXZWxsQ29vcmQgeDFJbXBDb29yZCB5MUltcENvb3JkIHkySW1wQ29vcmQgc2hhcmVkQ29udGFjdElkIGdhdGVDb24gbiBmaXJzdFggbGFzdFggdmFyQ2hhbm5lbEltcElkIGR1bW15R2F0ZUNvbnRhY3QgYmFzZUdhdGVDb25NYXN0ZXIgYmFzZUdhdGVDb25CYm94IGJhc2VHYXRlQ29uVyBiYXNlR2F0ZUNvbkwgYmlnR2F0ZVNpemUgZ2F0ZUNvbkluc3QgZ2F0ZUNvbkluc3QyIGdhdGVDb25NYXN0ZXIgZ2F0ZUNvbk1hc3RlcjEgZ2F0ZUNvbjFCYm94IGdhdGVDb25ZT2Zmc2V0IGJCb3gxIGdhdGVDb25NYXN0ZXIyIGdhdGVDb24yQmJveCBiQm94MiB4MURlcENvb3JkIHNoYXJlZENvbk1hc3RlciBsYXN0Q29uTWFzdGVyIGxhc3RCYm94IHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQgeDJXZWxsQ29vcmQgeDJJbXBDb29yZCB0b3BNZXRhbEJvdFkgdG9wTWV0YWxUb3BZKQAoKGdhdGVDb250YWN0ICIiKSAoY29udGFjdHMgIiIpIChnYXRlRXh0IDAuMCkgKGJ1bGtPZmZzZXQgMC4wKSAobSAxKSAobCAwLjApICh3IDAuMCkgKGRvdWJsZUdhdGVDb250YWN0cyAiVFJVRSIpKQAoKHRhcExheWVyICJoaWxpdGUiKSAoZ2F0ZUxheWVyICJtYXJrZXIiKSAod2VsbExheWVyIG5pbCkgKHdlbGxJbXBMYXllciBuaWwpICh3ZWxsSW1wTGF5ZXIyIG5pbCkgKHdlbGxJbXBMYXllcjMgbmlsKSAoZGVwTGF5ZXIgbmlsKSAodGFwRXh0IDAuMCkgKHdlbGxFbmNQb2x5IDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAoZGVwWEVuYyAwLjApIChkZXBZRW5jIDAuMCkgKGRlcFNwYWNlIDAuMCkgKGxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSkgKGxhYmVsV2lkdGggMC40KSAoaW1wbGFudExheWVyIG5pbCkgKHRhcEltcEVuYyAwKSAoY29udGFjdEdhdGVTcGFjZSAwKSAodG9wTWV0YWwgbmlsKSAodG9wTWV0YWxHYXRlRGlzdCAwKSAodmFyQ2hhbm5lbEltcCBuaWwpICh2YXJDaGFubmVsSW1wRW5jIDAuMCkpAAAAAAAAAAAAAAAAAAAAAAAAAAAAKChXMiA9ICh3IC8gMi4wKSkgKEwyID0gKGwgLyAyLjApKSAobmV0SWQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgIkciKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKCgoLSBXMikgLSBnYXRlRXh0KTooLSBMMikpICgoKCgtIFcyKSAtIGdhdGVFeHQpICsgZ2F0ZVBpbldpZHRoKTpMMikpKSkgKGRiSWQgPSAoZGJDcmVhdGVQaW4gbmV0SWQgZGJJZCAiZ2wiKSkgKGRiU2V0cSBkYklkIGxpc3QoImxlZnQiKSBhY2Nlc3NEaXIpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCgoKFcyICsgZ2F0ZUV4dCkgLSBnYXRlUGluV2lkdGgpOigtIEwyKSkgKChXMiArIGdhdGVFeHQpOkwyKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVBpbiBuZXRJZCBkYklkICJnciIpKSAoZGJTZXRxIGRiSWQgbGlzdCgicmlnaHQiKSBhY2Nlc3NEaXIpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCgoKC0gVzIpIC0gZ2F0ZUV4dCk6KC0gTDIpKSAoKFcyICsgZ2F0ZUV4dCk6TDIpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0SWQpIChuZXRJZCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAiUyIpKSBpZihhcmVhU0RQaW4gdGhlbiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzZExheWVyIGxpc3QoKCgtIFcyKTpMMikgKFcyOihMMiArIGFyZWFQaW5IKSkpKSkgZWxzZSAoZGJJZCA9IChkYkNyZWF0ZURvdCB0Y0NlbGxWaWV3IHNkTGF5ZXIgKDA6TDIpKSkpIChkYklkID0gKGRiQ3JlYXRlUGluIG5ldElkIGRiSWQgInMiKSkgKGRiU2V0cSBkYklkIGxpc3QoInRvcCIpIGFjY2Vzc0RpcikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgc2RMYXllciBsaXN0KCgoLSBXMik6MCkgKFcyOihMMiArIHNkRXh0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXRJZCkgKG5ldElkID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJEIikpIGlmKGFyZWFTRFBpbiB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHNkTGF5ZXIgbGlzdCgoKC0gVzIpOigoLSBMMikgLSBhcmVhUGluSCkpIChXMjooLSBMMikpKSkpIGVsc2UgKGRiSWQgPSAoZGJDcmVhdGVEb3QgdGNDZWxsVmlldyBzZExheWVyICgwOigtIEwyKSkpKSkgKGRiSWQgPSAoZGJDcmVhdGVQaW4gbmV0SWQgZGJJZCAiZCIpKSAoZGJTZXRxIGRiSWQgbGlzdCgiYm90dG9tIikgYWNjZXNzRGlyKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzZExheWVyIGxpc3QoKCgtIFcyKTooKC0gTDIpIC0gc2RFeHQpKSAoVzI6MCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXRJZCkgaWYoc2RJbXBMYXllciB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzZEltcExheWVyIGxpc3QoKCgoLSBXMikgLSBzZEltcEVuYyk6KCgtIEwyKSAtIHNkRXh0IC0gc2RJbXBFbmMpKSAoKFcyICsgc2RJbXBFbmMpOihMMiArIHNkRXh0ICsgc2RJbXBFbmMpKSkpKSBpZihzZENvcmVJbXBMYXllciB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzZENvcmVJbXBMYXllciBsaXN0KCgoKC0gVzIpIC0gc2RDb3JlSW1wRW5jKTooKC0gTDIpIC0gc2RFeHQgLSBzZENvcmVJbXBFbmMpKSAoKFcyICsgc2RDb3JlSW1wRW5jKTooTDIgKyBzZEV4dCArIHNkQ29yZUltcEVuYykpKSkpKQAoc2RMYXllciBnYXRlTGF5ZXIgc2RFeHQgc2RJbXBMYXllciBzZEltcEVuYyBzZENvcmVJbXBMYXllciBzZENvcmVJbXBFbmMgZ2F0ZVBpbldpZHRoIGFyZWFTRFBpbiBhcmVhUGluSCB3IGwgZ2F0ZUV4dCBXMiBMMiBuZXRJZCBkYklkKQAoKHcgMC4wKSAobCAwLjApIChnYXRlRXh0IDAuMCkpACgoc2RMYXllciAiaGlsaXRlIikgKGdhdGVMYXllciAiaGlsaXRlIikgKHNkRXh0IDAuMCkgKHNkSW1wTGF5ZXIgbmlsKSAoc2RJbXBFbmMgMC4wKSAoc2RDb3JlSW1wTGF5ZXIgbmlsKSAoc2RDb3JlSW1wRW5jIDAuMCkgKGdhdGVQaW5XaWR0aCAwLjEpIChhcmVhU0RQaW4gbmlsKSAoYXJlYVBpbkggMC4xKSkAKChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChyb3cgPSBtYXgoKHJvdyAtIDEpIDEpKSB3aGVuKCh2aWExSW1wRW5jICE9IDAuMCkgKHZpYTFJbXBFbmNYID0gdmlhMUltcEVuYykgKHZpYTFJbXBFbmNZID0gdmlhMUltcEVuYykpIHdoZW4oKHZpYTFJbXAyRW5jICE9IDAuMCkgKHZpYTFJbXAyRW5jWCA9IHZpYTFJbXAyRW5jKSAodmlhMUltcDJFbmNZID0gdmlhMUltcDJFbmMpKSBjb25kKCgobGF5ZXIxRW5jVmlhMSA9PSAwLjApIChsYXllcjFYID0gbGF5ZXIxWEVuY1ZpYTEpIChsYXllcjFZID0gbGF5ZXIxWUVuY1ZpYTEpKSAodCAobGF5ZXIxWCA9IGxheWVyMUVuY1ZpYTEpIChsYXllcjFZID0gbGF5ZXIxRW5jVmlhMSkpKSAobGF5ZXIxbGVuZ3RoID0gKCgyICogbGF5ZXIxWCkgKyAoY29sdW1uICogdmlhMVdpZHRoKSArICgoY29sdW1uIC0gMSkgKiB2aWExU3BhY2UpKSkgKGwxeE9mZnNldCA9IChsYXllcjFsZW5ndGggLyAyLjApKSAob2RkcChyb3VuZCgobDF4T2Zmc2V0IC8gaGFsZmdyaWQpKSkgJiYgKGwxeE9mZnNldCA9IChsMXhPZmZzZXQgLSBoYWxmZ3JpZCkpKSAobGF5ZXIxd2lkdGggPSAoKDIgKiBsYXllcjFZKSArIChyb3cgKiB2aWExV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTFTcGFjZSkpKSAobDF5T2Zmc2V0ID0gKGxheWVyMXdpZHRoIC8gMi4wKSkgKG9kZHAocm91bmQoKGwxeU9mZnNldCAvIGhhbGZncmlkKSkpICYmIChsMXlPZmZzZXQgPSAobDF5T2Zmc2V0IC0gaGFsZmdyaWQpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxIGxpc3QobGlzdCgoLSBsMXhPZmZzZXQpICgtIGwxeU9mZnNldCkpIGxpc3QoKGxheWVyMWxlbmd0aCAtIGwxeE9mZnNldCkgKGxheWVyMXdpZHRoIC0gbDF5T2Zmc2V0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSB3aGVuKGxheWVyMUltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxSW1wbGFudCBsaXN0KGxpc3QoKCgtIGwxeE9mZnNldCkgKyAoLSBsYXllcjFJbXBFbmMpKSAoKC0gbDF5T2Zmc2V0KSArICgtIGxheWVyMUltcEVuYykpKSBsaXN0KChsYXllcjFsZW5ndGggKyAoLSBsMXhPZmZzZXQpICsgbGF5ZXIxSW1wRW5jKSAobGF5ZXIxd2lkdGggKyAoLSBsMXlPZmZzZXQpICsgbGF5ZXIxSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKGxheWVyMUNvcmVJbXBsYW50IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUNvcmVJbXBsYW50IGxpc3QobGlzdCgoKC0gbDF4T2Zmc2V0KSArICgtIGxheWVyMUNvcmVJbXBFbmMpKSAoKC0gbDF5T2Zmc2V0KSArICgtIGxheWVyMUNvcmVJbXBFbmMpKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgKC0gbDF4T2Zmc2V0KSArIGxheWVyMUNvcmVJbXBFbmMpIChsYXllcjF3aWR0aCArICgtIGwxeU9mZnNldCkgKyBsYXllcjFDb3JlSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoY29udGFjdE9mZnNldCA9ICh2aWExU3BhY2UgKyB2aWExV2lkdGgpKSAodGhlWSA9IChsYXllcjFZICsgKC0gbDF5T2Zmc2V0KSkpIGZvcihyIDEgcm93ICh0aGVYID0gKGxheWVyMVggKyAoLSBsMXhPZmZzZXQpKSkgZm9yKGNvbCAxIGNvbHVtbiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWFMYXllciBsaXN0KGxpc3QodGhlWCB0aGVZKSBsaXN0KCh0aGVYICsgdmlhMVdpZHRoKSAodGhlWSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgY29udGFjdE9mZnNldCkpKSAodGhlWSA9ICh0aGVZICsgY29udGFjdE9mZnNldCkpKSB3aGVuKHZpYTFJbXBsYW50IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIxWCArICgtIGwxeE9mZnNldCkgKyAoLSB2aWExSW1wRW5jWCkpIChsYXllcjFZICsgKC0gbDF5T2Zmc2V0KSArICgtIHZpYTFJbXBFbmNZKSkpIGxpc3QoKGxheWVyMVggKyAoLSBsMXhPZmZzZXQpICsgdmlhMUltcEVuY1ggKyAocm93ICogY29udGFjdE9mZnNldCkgKyAoLSB2aWExU3BhY2UpKSAobGF5ZXIxWSArICgtIGwxeU9mZnNldCkgKyB2aWExSW1wRW5jWSArIChjb2x1bW4gKiBjb250YWN0T2Zmc2V0KSArICgtIHZpYTFTcGFjZSkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4odmlhMUltcGxhbnQyIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFJbXBsYW50MiBsaXN0KGxpc3QoKGxheWVyMVggKyAoLSBsMXhPZmZzZXQpICsgKC0gdmlhMUltcDJFbmNYKSkgKGxheWVyMVkgKyAoLSBsMXlPZmZzZXQpICsgKC0gdmlhMUltcDJFbmNZKSkpIGxpc3QoKGxheWVyMVggKyAoLSBsMXhPZmZzZXQpICsgdmlhMUltcDJFbmNYICsgKHJvdyAqIGNvbnRhY3RPZmZzZXQpICsgKC0gdmlhMVNwYWNlKSkgKGxheWVyMVkgKyAoLSBsMXlPZmZzZXQpICsgdmlhMUltcDJFbmNZICsgKGNvbHVtbiAqIGNvbnRhY3RPZmZzZXQpICsgKC0gdmlhMVNwYWNlKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGxheWVyMmxlbmd0aCA9ICgoMiAqIGxheWVyMlhFbmNWaWExKSArIChjb2x1bW4gKiB2aWExV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTFTcGFjZSkpKSAobGF5ZXIyd2lkdGggPSAoKDIgKiBsYXllcjJZRW5jVmlhMSkgKyAocm93ICogdmlhMVdpZHRoKSArICgocm93IC0gMSkgKiB2aWExU3BhY2UpKSkgY29uZCgoIWxheWVyMyB0KSAodCAobWluTGF5ZXIyd2lkdGggPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSkgKG1pbkxheWVyMmxlbmd0aCA9ICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAoKGxheWVyMmxlbmd0aCA8IG1pbkxheWVyMmxlbmd0aCkgJiYgKGxheWVyMmxlbmd0aCA9IG1pbkxheWVyMmxlbmd0aCkpICgobGF5ZXIyd2lkdGggPCBtaW5MYXllcjJ3aWR0aCkgJiYgKGxheWVyMndpZHRoID0gbWluTGF5ZXIyd2lkdGgpKSkpIChsMnhPZmZzZXQgPSAoKG1heChsYXllcjJYRW5jVmlhMSBsYXllcjJFbmNWaWEyKSAtIGxheWVyMVgpICsgbDF4T2Zmc2V0KSkgKGwyeU9mZnNldCA9ICgobWF4KGxheWVyMllFbmNWaWExIGxheWVyMkVuY1ZpYTIpIC0gbGF5ZXIxWSkgKyBsMXlPZmZzZXQpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KCgtIGwyeE9mZnNldCkgKC0gbDJ5T2Zmc2V0KSkgbGlzdCgobGF5ZXIybGVuZ3RoIC0gbDJ4T2Zmc2V0KSAobGF5ZXIyd2lkdGggLSBsMnlPZmZzZXQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIHdoZW4obGF5ZXIySW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjJJbXBsYW50IGxpc3QobGlzdCgoKC0gbDJ4T2Zmc2V0KSArICgtIGxheWVyMkltcEVuYykpICgoLSBsMnlPZmZzZXQpICsgKC0gbGF5ZXIySW1wRW5jKSkpIGxpc3QoKGxheWVyMmxlbmd0aCArICgtIGwxeE9mZnNldCkgKyBsYXllcjJJbXBFbmMpIChsYXllcjJ3aWR0aCArICgtIGwyeU9mZnNldCkgKyBsYXllcjJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIGNvbmQoKCFsYXllcjMgdCkgKHQgKGMyM3JvdyA9IGZpeCgoKGxheWVyMndpZHRoICsgKC0yICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyU3BhY2UpIC8gKHZpYTJXaWR0aCArIHZpYTJTcGFjZSkpKSkgKGMyM2NvbHVtbiA9IGZpeCgoKGxheWVyMmxlbmd0aCArICgtMiAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMlNwYWNlKSAvICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSkpIChsYXllcjNsZW5ndGggPSAoKDIgKiBsYXllcjNYRW5jVmlhMikgKyAoYzIzY29sdW1uICogdmlhMldpZHRoKSArICgoYzIzY29sdW1uIC0gMSkgKiB2aWEyU3BhY2UpKSkgKHRtcHggPSAoKGxheWVyM1hFbmNWaWEyIC0gbGF5ZXIyRW5jVmlhMikgKyBsMnhPZmZzZXQpKSAodG1weDEgPSAobDJ4T2Zmc2V0IC0gKChsYXllcjJsZW5ndGggLSBsYXllcjNsZW5ndGgpIC8gMi4wKSkpIChvZGRwKHJvdW5kKCh0bXB4MSAvIGhhbGZncmlkKSkpICYmICh0bXB4MSA9ICh0bXB4MSAtIGhhbGZncmlkKSkpIChsYXllcjN3aWR0aCA9ICgoMiAqIGxheWVyM1lFbmNWaWEyKSArIChjMjNyb3cgKiB2aWEyV2lkdGgpICsgKChjMjNyb3cgLSAxKSAqIHZpYTJTcGFjZSkpKSAodG1weSA9ICgobGF5ZXIzWUVuY1ZpYTIgLSBsYXllcjJFbmNWaWEyKSArIGwyeU9mZnNldCkpICh0bXB5MSA9IChsMnlPZmZzZXQgLSAoKGxheWVyMndpZHRoIC0gbGF5ZXIzd2lkdGgpIC8gMi4wKSkpIChvZGRwKHJvdW5kKCh0bXB5MSAvIGhhbGZncmlkKSkpICYmICh0bXB5MSA9ICh0bXB5MSAtIGhhbGZncmlkKSkpIChsM3hPZmZzZXQgPSB0bXB4KSAobDN5T2Zmc2V0ID0gdG1weSkgd2hlbihqdXN0aWZ5IChsM3hPZmZzZXQgPSB0bXB4MSkgKGwzeU9mZnNldCA9IHRtcHkxKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgoLSBsM3hPZmZzZXQpICgtIGwzeU9mZnNldCkpIGxpc3QoKGxheWVyM2xlbmd0aCAtIGwzeE9mZnNldCkgKGxheWVyM3dpZHRoIC0gbDN5T2Zmc2V0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSB3aGVuKGxheWVyM0ltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzSW1wbGFudCBsaXN0KGxpc3QoKCgtIGwzeE9mZnNldCkgKyAoLSBsYXllcjNJbXBFbmMpKSAoKC0gbDN5T2Zmc2V0KSArICgtIGxheWVyM0ltcEVuYykpKSBsaXN0KChsYXllcjNsZW5ndGggKyAoLSBsM3hPZmZzZXQpICsgbGF5ZXIzSW1wRW5jKSAobGF5ZXIxd2lkdGggKyAoLSBsM3lPZmZzZXQpICsgbGF5ZXIzSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoY29udGFjdE9mZnNldCA9ICh2aWEyU3BhY2UgKyB2aWEyV2lkdGgpKSAodGhlWSA9IChsYXllcjNZRW5jVmlhMiArICgtIGwzeU9mZnNldCkpKSBmb3IociAxIGMyM3JvdyAodGhlWCA9IChsYXllcjNYRW5jVmlhMiArICgtIGwzeE9mZnNldCkpKSBmb3IoY29sIDEgYzIzY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVyMiBsaXN0KGxpc3QodGhlWCB0aGVZKSBsaXN0KCh0aGVYICsgdmlhMldpZHRoKSAodGhlWSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgY29udGFjdE9mZnNldCkpKSAodGhlWSA9ICh0aGVZICsgY29udGFjdE9mZnNldCkpKSB3aGVuKHZpYTJJbXBsYW50IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIzWEVuY1ZpYTIgKyAoLSBsM3hPZmZzZXQpICsgKC0gdmlhMkltcEVuYykpIChsYXllcjNZRW5jVmlhMiArICgtIGwzeU9mZnNldCkgKyAoLSB2aWEySW1wRW5jKSkpIGxpc3QoKGxheWVyM1hFbmNWaWEyICsgKC0gbDN4T2Zmc2V0KSArIHZpYTJJbXBFbmMgKyAoYzIzcm93ICogY29udGFjdE9mZnNldCkgKyAoLSB2aWEyU3BhY2UpKSAobGF5ZXIzWUVuY1ZpYTIgKyAoLSBsM3lPZmZzZXQpICsgdmlhMkltcEVuYyArIChjMjNjb2x1bW4gKiBjb250YWN0T2Zmc2V0KSArICgtIHZpYTJTcGFjZSkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSkpAChsYXllcjEgbGF5ZXIyIGxheWVyMyB2aWFMYXllciB2aWFMYXllcjIgbGF5ZXIxSW1wbGFudCBsYXllcjFDb3JlSW1wbGFudCBsYXllcjJJbXBsYW50IGxheWVyM0ltcGxhbnQgdmlhMUltcGxhbnQgdmlhMUltcGxhbnQyIHZpYTJJbXBsYW50IGxheWVyMUltcEVuYyBsYXllcjFDb3JlSW1wRW5jIGxheWVyMkltcEVuYyBsYXllcjNJbXBFbmMgdmlhMUltcEVuYyB2aWExSW1wRW5jWCB2aWExSW1wRW5jWSB2aWExSW1wMkVuYyB2aWExSW1wMkVuY1ggdmlhMUltcDJFbmNZIHZpYTJJbXBFbmMgdmlhMVdpZHRoIHZpYTFTcGFjZSB2aWEyV2lkdGggdmlhMlNwYWNlIGxheWVyMUVuY1ZpYTEgbGF5ZXIxWEVuY1ZpYTEgbGF5ZXIxWUVuY1ZpYTEgbGF5ZXIyWEVuY1ZpYTEgbGF5ZXIyWUVuY1ZpYTEgbGF5ZXIyRW5jVmlhMiBsYXllcjNYRW5jVmlhMiBsYXllcjNZRW5jVmlhMiBoYWxmZ3JpZCByb3cgY29sdW1uIHhQaXRjaCB5UGl0Y2ggdyBsIGp1c3RpZnkgYWxsRGlyIG5ldCBsYXllcjFYIGxheWVyMVkgbGF5ZXIxbGVuZ3RoIGwxeE9mZnNldCBsYXllcjF3aWR0aCBsMXlPZmZzZXQgZGJJZCBwaW5JZCBjb250YWN0T2Zmc2V0IHRoZVkgciB0aGVYIGNvbCBsYXllcjJsZW5ndGggbGF5ZXIyd2lkdGggbWluTGF5ZXIyd2lkdGggbWluTGF5ZXIybGVuZ3RoIGwyeE9mZnNldCBsMnlPZmZzZXQgYzIzcm93IGMyM2NvbHVtbiBsYXllcjNsZW5ndGggdG1weCB0bXB4MSBsYXllcjN3aWR0aCB0bXB5IHRtcHkxIGwzeE9mZnNldCBsM3lPZmZzZXQpACgocm93IDEpIChjb2x1bW4gMSkgKHhQaXRjaCAwLjApICh5UGl0Y2ggMC4wKSAodyAwLjApIChsIDAuMCkgKGp1c3RpZnkgIkZBTFNFIikpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKGxheWVyMyBuaWwpICh2aWFMYXllciAieTUiKSAodmlhTGF5ZXIyIG5pbCkgKGxheWVyMUltcGxhbnQgbmlsKSAobGF5ZXIxQ29yZUltcGxhbnQgbmlsKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjNJbXBsYW50IG5pbCkgKHZpYTFJbXBsYW50IG5pbCkgKHZpYTFJbXBsYW50MiBuaWwpICh2aWEySW1wbGFudCBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIxQ29yZUltcEVuYyAwLjApIChsYXllcjJJbXBFbmMgMC4wKSAobGF5ZXIzSW1wRW5jIDAuMCkgKHZpYTFJbXBFbmMgMC4wKSAodmlhMUltcEVuY1ggMC4wKSAodmlhMUltcEVuY1kgMC4wKSAodmlhMUltcDJFbmMgMC4wKSAodmlhMUltcDJFbmNYIDAuMCkgKHZpYTFJbXAyRW5jWSAwLjApICh2aWEySW1wRW5jIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWExU3BhY2UgMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTJTcGFjZSAwLjApIChsYXllcjFFbmNWaWExIDAuMCkgKGxheWVyMVhFbmNWaWExIDAuMCkgKGxheWVyMVlFbmNWaWExIDAuMCkgKGxheWVyMlhFbmNWaWExIDAuMCkgKGxheWVyMllFbmNWaWExIDAuMCkgKGxheWVyMkVuY1ZpYTIgMC4wKSAobGF5ZXIzWEVuY1ZpYTIgMC4wKSAobGF5ZXIzWUVuY1ZpYTIgMC4wKSAoaGFsZmdyaWQgMC4wMjUpKQAoKG5ldDAgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgIm0wIikpIChkYkNyZWF0ZVRlcm0gbmV0MCAibTAiICJpbnB1dE91dHB1dCIpIChuZXQxID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJtMSIpKSAoZGJDcmVhdGVUZXJtIG5ldDEgIm0xIiAiaW5wdXRPdXRwdXQiKSAobmV0QiA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIHdoZW4oc3RyaW5ncChzaG9ydE9uTGF5ZXIpIChzaG9ydE9uTGF5ZXIgPSBsaXN0KHNob3J0T25MYXllciAiZHJhd2luZyIpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgc2hvcnRPbkxheWVyIGxpc3QoKDAuMDowLjApIChsOncpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0QikgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgc2hvcnRPbkxheWVyIGxpc3QoKCgtIG1pblBpbldpZHRoKTowLjApICgwLjA6dykpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldDAgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzaG9ydE9uTGF5ZXIgbGlzdCgobDowLjApICgobCArIG1pblBpbldpZHRoKTp3KSkpKSAoZGJDcmVhdGVQaW4gbmV0MSBkYmlkKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpICh4MUNvb3JkID0gKChsIC0gbWluU2hvcnRXaWR0aCkgLyAyLjApKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBzaG9ydExheWVyIGxpc3QoKHgxQ29vcmQ6MC4wKSAoKHgxQ29vcmQgKyBtaW5TaG9ydFdpZHRoKTp3KSkpKSkAKHNob3J0T25MYXllciBtaW5QaW5XaWR0aCBzaG9ydExheWVyIG1pblNob3J0V2lkdGggdyBsIG5ldDAgbmV0MSBuZXRCIGRiaWQgcGluaWQgeDFDb29yZCkAKCh3IDAuMCkgKGwgMC4wKSkAKChzaG9ydE9uTGF5ZXIgIm1hcmtlciIpIChtaW5QaW5XaWR0aCAwLjApIChzaG9ydExheWVyIGxpc3QoInNob3J0IiAiZHJhd2luZyIpKSAobWluU2hvcnRXaWR0aCAwLjApKQAod2hlbih3aWR0aEVxTGVuZ3RoIChyaXZldExlbmd0aCA9IHJpdmV0V2lkdGgpKSAoY29ybmVyRXhjbHVkZVdpZHRoID0gbWF4KDAuMCBsbEJldmVsTGVuZ3RoIHVsQmV2ZWxMZW5ndGggbHJCZXZlbExlbmd0aCB1ckJldmVsTGVuZ3RoKSkgKHJpdmV0UGl0Y2hZID0gKHJpdmV0V2lkdGggKyByaXZldFNwYWNlKSkgKHJpdmV0UGl0Y2hYID0gKHJpdmV0TGVuZ3RoICsgcml2ZXRTcGFjZSkpIHdoZW4ocml2ZXQyTGF5ZXIgKHJpdmV0MlBpdGNoTCA9IChyaXZldDJMZW5ndGggKyByaXZldDJTcGFjZSkpIChyaXZldDJBY3RpdmVMID0gKHJpdmV0TGVuZ3RoIC0gKDIgKiByaXZldDJFbmNCeVJpdmV0MUwpKSkgKG51bUNvbDIgPSBmaXgoKCgocml2ZXQyQWN0aXZlTCArIHJpdmV0MlNwYWNlKSAvIHJpdmV0MlBpdGNoTCkgKyAxZS0wNikpKSAocml2ZXQxUmVhbEwgPSAoKG51bUNvbDIgKiByaXZldDJQaXRjaEwpIC0gcml2ZXQyU3BhY2UpKSAocml2ZXQyT2Zmc2V0TCA9ICgocml2ZXQyQWN0aXZlTCAtIHJpdmV0MVJlYWxMKSAvIDIpKSAocml2ZXQyT2Zmc2V0TCA9IChmaXgoKChyaXZldDJPZmZzZXRMIC8gZ3JpZCkgKyAxZS0wNikpICogZ3JpZCkpKSAobnVtQ29scyA9IGZpeCgoKChyaW5nV2lkdGggKyByaXZldFNwYWNlKSAvIHJpdmV0UGl0Y2hZKSArIDFlLTA1KSkpIChyaXZldFdpZHRoR3JpZHMgPSBmaXgoKDAuOTk5ICsgKHJpdmV0V2lkdGggLyBncmlkKSkpKSAocml2ZXRTcGFjZUdyaWRzID0gZml4KCgwLjk5OSArIChyaXZldFNwYWNlIC8gZ3JpZCkpKSkgY29uZCgoKGNvcm5lckV4Y2x1ZGVXaWR0aCA8IChyaXZldFNwYWNlIC8gMi4wKSkgKHhXb3JraW5nV2lkdGggPSAobCAtIHJpdmV0U3BhY2UpKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSAoeFdvcmtpbmdXaWR0aCA9ICh4V29ya2luZ1dpZHRoIC0gZ3JpZCkpKSkgKHQgKHhXb3JraW5nV2lkdGggPSAobCAtICgyICogY29ybmVyRXhjbHVkZVdpZHRoKSkpKSkgKHhXb3JraW5nR3JpZHMgPSBmaXgoKDAuOTk5ICsgKHhXb3JraW5nV2lkdGggLyBncmlkKSkpKSAobnVtUml2ZXRzID0gZml4KCgxZS0wNSArICgoeFdvcmtpbmdXaWR0aCArIHJpdmV0U3BhY2UpIC8gKHJpdmV0TGVuZ3RoICsgcml2ZXRTcGFjZSkpKSkpIChkZWx0YVdpZHRoID0gKHhXb3JraW5nV2lkdGggLSAoKG51bVJpdmV0cyAqIHJpdmV0TGVuZ3RoKSArICgobnVtUml2ZXRzIC0gMSkgKiByaXZldFNwYWNlKSkpKSAoY2VudGVyU3BhY2UgPSByaXZldFNwYWNlKSB3aGVuKGV2ZW5wKG51bVJpdmV0cykgY29uZCgoZXZlbnAoeFdvcmtpbmdHcmlkcykgd2hlbihvZGRwKHJpdmV0U3BhY2VHcmlkcykgY29uZCgoKGRlbHRhV2lkdGggPj0gZ3JpZCkgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSAodCAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSkpKSkgKHQgd2hlbihldmVucChyaXZldFNwYWNlR3JpZHMpIGNvbmQoKChkZWx0YVdpZHRoID49IGdyaWQpIChjZW50ZXJTcGFjZSA9IChjZW50ZXJTcGFjZSArIGdyaWQpKSkgKHQgKG51bVJpdmV0cyA9IChudW1SaXZldHMgLSAxKSkpKSkpKSkgd2hlbihvZGRwKG51bVJpdmV0cykgY29uZCgoZXZlbnAoeFdvcmtpbmdHcmlkcykgd2hlbihvZGRwKHJpdmV0V2lkdGhHcmlkcykgKG51bVJpdmV0cyA9IChudW1SaXZldHMgLSAxKSkgd2hlbihvZGRwKHJpdmV0U3BhY2VHcmlkcykgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSkpICh0IHdoZW4oZXZlbnAocml2ZXRXaWR0aEdyaWRzKSAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSB3aGVuKGV2ZW5wKHJpdmV0U3BhY2VHcmlkcykgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSkpKSkgKHhPcmlnaW4gPSAoKHhPZmZzZXQgKyAobCAvIDIuMCkpIC0gKCgobnVtUml2ZXRzICogcml2ZXRMZW5ndGgpICsgKChudW1SaXZldHMgLSAyKSAqIHJpdmV0U3BhY2UpICsgY2VudGVyU3BhY2UpIC8gMi4wKSkpIHdoZW4oKChudW1SaXZldHMgPT0gMCkgfHwgKG51bUNvbHMgPT0gMCkpIGVycm9yKG5pbCAicml2ZXJSaW5nTWlycm9yQ2xhc3M6IG51bWJlciBvZiB2aWFDb25zIGxlc3MgdGhhbiB6ZXJvIikpIHdoZW4oKHJpdmV0MkxheWVyICYmIChudW1Db2wyID09IDApKSBlcnJvcihuaWwgInJpdmVyUmluZ01pcnJvckNsYXNzOiBudW1iZXIgb2YgdmlhQ29ucyBsZXNzIHRoYW4gemVybyIpKSBmb3Iocm93IDEgbnVtUml2ZXRzICh5T3JpZ2luQm90ID0geU9mZnNldCkgKHlPcmlnaW5Ub3AgPSAoeU9mZnNldCArIHcpKSBmb3IoY29sIDEgbnVtQ29scyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXRMYXllciBsaXN0KCh4T3JpZ2luOnlPcmlnaW5Cb3QpICgoeE9yaWdpbiArIHJpdmV0TGVuZ3RoKTooeU9yaWdpbkJvdCArIHJpdmV0V2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldExheWVyIGxpc3QoKHhPcmlnaW46eU9yaWdpblRvcCkgKCh4T3JpZ2luICsgcml2ZXRMZW5ndGgpOih5T3JpZ2luVG9wIC0gcml2ZXRXaWR0aCkpKSkgd2hlbihyaXZldDJMYXllciAoeU9yaWdpbkJvdDIgPSAoeU9yaWdpbkJvdCArIHJpdmV0MkVuY0J5Uml2ZXQxVykpICh5T3JpZ2luVG9wMiA9ICh5T3JpZ2luVG9wIC0gcml2ZXQyRW5jQnlSaXZldDFXKSkgKHhPcmlnaW4yID0gKHhPcmlnaW4gKyByaXZldDJFbmNCeVJpdmV0MUwgKyByaXZldDJPZmZzZXRMKSkgZm9yKGNvbDIgMSBudW1Db2wyIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldDJMYXllciBsaXN0KCh4T3JpZ2luMjp5T3JpZ2luQm90MikgKCh4T3JpZ2luMiArIHJpdmV0Mkxlbmd0aCk6KHlPcmlnaW5Cb3QyICsgcml2ZXQyV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldDJMYXllciBsaXN0KCh4T3JpZ2luMjp5T3JpZ2luVG9wMikgKCh4T3JpZ2luMiArIHJpdmV0Mkxlbmd0aCk6KHlPcmlnaW5Ub3AyIC0gcml2ZXQyV2lkdGgpKSkpICh4T3JpZ2luMiA9ICh4T3JpZ2luMiArIHJpdmV0MlBpdGNoTCkpKSkgKHlPcmlnaW5Cb3QgPSAoeU9yaWdpbkJvdCArIHJpdmV0UGl0Y2hZKSkgKHlPcmlnaW5Ub3AgPSAoeU9yaWdpblRvcCAtIHJpdmV0UGl0Y2hZKSkpIGNvbmQoKChldmVucChudW1SaXZldHMpICYmIChhYnMoKHJvdyAtIChudW1SaXZldHMgLyAyLjApKSkgPCAxZS0wNSkpICh4T3JpZ2luID0gKHhPcmlnaW4gKyByaXZldExlbmd0aCArIGNlbnRlclNwYWNlKSkpICh0ICh4T3JpZ2luID0gKHhPcmlnaW4gKyByaXZldFBpdGNoWCkpKSkpIGNvbmQoKChjb3JuZXJFeGNsdWRlV2lkdGggPCAobnVtQ29scyAqIHJpdmV0UGl0Y2hZKSkgKHlXb3JraW5nV2lkdGggPSAodyAtICgyICogbnVtQ29scyAqIHJpdmV0UGl0Y2hZKSkpKSAodCAoeVdvcmtpbmdXaWR0aCA9ICh3IC0gKDIgKiBjb3JuZXJFeGNsdWRlV2lkdGgpKSkpKSAoeVdvcmtpbmdHcmlkcyA9IGZpeCgoMC45OTkgKyAoeVdvcmtpbmdXaWR0aCAvIGdyaWQpKSkpIChudW1SaXZldHMgPSBmaXgoKDFlLTA1ICsgKCh5V29ya2luZ1dpZHRoICsgcml2ZXRTcGFjZSkgLyAocml2ZXRMZW5ndGggKyByaXZldFNwYWNlKSkpKSkgKGRlbHRhV2lkdGggPSAoeVdvcmtpbmdXaWR0aCAtICgobnVtUml2ZXRzICogcml2ZXRMZW5ndGgpICsgKChudW1SaXZldHMgLSAxKSAqIHJpdmV0U3BhY2UpKSkpIChjZW50ZXJTcGFjZSA9IHJpdmV0U3BhY2UpIHdoZW4oZXZlbnAobnVtUml2ZXRzKSBjb25kKChldmVucCh5V29ya2luZ0dyaWRzKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSBjb25kKCgoZGVsdGFXaWR0aCA+PSBncmlkKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpICh0IChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpKSkpKSAodCB3aGVuKGV2ZW5wKHJpdmV0U3BhY2VHcmlkcykgY29uZCgoKGRlbHRhV2lkdGggPj0gZ3JpZCkgKGNlbnRlclNwYWNlID0gKGNlbnRlclNwYWNlICsgZ3JpZCkpKSAodCAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSkpKSkpKSB3aGVuKG9kZHAobnVtUml2ZXRzKSBjb25kKChldmVucCh5V29ya2luZ0dyaWRzKSB3aGVuKG9kZHAocml2ZXRXaWR0aEdyaWRzKSAobnVtUml2ZXRzID0gKG51bVJpdmV0cyAtIDEpKSB3aGVuKG9kZHAocml2ZXRTcGFjZUdyaWRzKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpKSkgKHQgd2hlbihldmVucChyaXZldFdpZHRoR3JpZHMpIChudW1SaXZldHMgPSAobnVtUml2ZXRzIC0gMSkpIHdoZW4oZXZlbnAocml2ZXRTcGFjZUdyaWRzKSAoY2VudGVyU3BhY2UgPSAoY2VudGVyU3BhY2UgKyBncmlkKSkpKSkpKSAoeU9yaWdpbiA9ICgoeU9mZnNldCArICh3IC8gMi4wKSkgLSAoKChudW1SaXZldHMgKiByaXZldExlbmd0aCkgKyAoKG51bVJpdmV0cyAtIDIpICogcml2ZXRTcGFjZSkgKyBjZW50ZXJTcGFjZSkgLyAyLjApKSkgZm9yKHJvdyAxIG51bVJpdmV0cyAoeE9yaWdpbkxlZnQgPSB4T2Zmc2V0KSAoeE9yaWdpblJpZ2h0ID0gKHhPZmZzZXQgKyBsKSkgZm9yKGNvbCAxIG51bUNvbHMgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJpdmV0TGF5ZXIgbGlzdCgoeE9yaWdpbkxlZnQ6eU9yaWdpbikgKCh4T3JpZ2luTGVmdCArIHJpdmV0V2lkdGgpOih5T3JpZ2luICsgcml2ZXRMZW5ndGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldExheWVyIGxpc3QoKHhPcmlnaW5SaWdodDp5T3JpZ2luKSAoKHhPcmlnaW5SaWdodCAtIHJpdmV0V2lkdGgpOih5T3JpZ2luICsgcml2ZXRMZW5ndGgpKSkpIHdoZW4ocml2ZXQyTGF5ZXIgKHhPcmlnaW5MZWZ0MiA9ICh4T3JpZ2luTGVmdCArIHJpdmV0MkVuY0J5Uml2ZXQxVykpICh4T3JpZ2luUmlnaHQyID0gKHhPcmlnaW5SaWdodCAtIHJpdmV0MkVuY0J5Uml2ZXQxVykpICh5T3JpZ2luMiA9ICh5T3JpZ2luICsgcml2ZXQyRW5jQnlSaXZldDFMICsgcml2ZXQyT2Zmc2V0TCkpIGZvcihjb2wyIDEgbnVtQ29sMiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcml2ZXQyTGF5ZXIgbGlzdCgoeE9yaWdpbkxlZnQyOnlPcmlnaW4yKSAoKHhPcmlnaW5MZWZ0MiArIHJpdmV0MldpZHRoKTooeU9yaWdpbjIgKyByaXZldDJMZW5ndGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByaXZldDJMYXllciBsaXN0KCh4T3JpZ2luUmlnaHQyOnlPcmlnaW4yKSAoKHhPcmlnaW5SaWdodDIgLSByaXZldDJXaWR0aCk6KHlPcmlnaW4yICsgcml2ZXQyTGVuZ3RoKSkpKSAoeU9yaWdpbjIgPSAoeU9yaWdpbjIgKyByaXZldDJQaXRjaEwpKSkpICh4T3JpZ2luTGVmdCA9ICh4T3JpZ2luTGVmdCArIHJpdmV0UGl0Y2hZKSkgKHhPcmlnaW5SaWdodCA9ICh4T3JpZ2luUmlnaHQgLSByaXZldFBpdGNoWSkpKSBjb25kKCgoZXZlbnAobnVtUml2ZXRzKSAmJiAoYWJzKChyb3cgLSAobnVtUml2ZXRzIC8gMi4wKSkpIDwgMWUtMDUpKSAoeU9yaWdpbiA9ICh5T3JpZ2luICsgcml2ZXRMZW5ndGggKyBjZW50ZXJTcGFjZSkpKSAodCAoeU9yaWdpbiA9ICh5T3JpZ2luICsgcml2ZXRQaXRjaFgpKSkpKSkAKHdpZHRoRXFMZW5ndGggdyBsIHhPZmZzZXQgeU9mZnNldCByaXZldExheWVyIHJpdmV0MkxheWVyIHJpdmV0TGF5ZXIyIHJpbmdXaWR0aCByaXZldFdpZHRoIHJpdmV0TGVuZ3RoIHJpdmV0U3BhY2Ugcml2ZXQyV2lkdGggcml2ZXQyTGVuZ3RoIHJpdmV0MlNwYWNlIHJpdmV0MkVuY0J5Uml2ZXQxTCByaXZldDJFbmNCeVJpdmV0MVcgbGxCZXZlbExlbmd0aCB1bEJldmVsTGVuZ3RoIGxyQmV2ZWxMZW5ndGggdXJCZXZlbExlbmd0aCBhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIGdyaWQgY29ybmVyRXhjbHVkZVdpZHRoIHJpdmV0UGl0Y2hZIHJpdmV0UGl0Y2hYIHJpdmV0MlBpdGNoTCByaXZldDJBY3RpdmVMIG51bUNvbDIgcml2ZXQxUmVhbEwgcml2ZXQyT2Zmc2V0TCBudW1Db2xzIHJpdmV0V2lkdGhHcmlkcyByaXZldFNwYWNlR3JpZHMgeFdvcmtpbmdXaWR0aCB4V29ya2luZ0dyaWRzIG51bVJpdmV0cyBkZWx0YVdpZHRoIGNlbnRlclNwYWNlIHhPcmlnaW4gcm93IHlPcmlnaW5Cb3QgeU9yaWdpblRvcCBjb2wgeU9yaWdpbkJvdDIgeU9yaWdpblRvcDIgeE9yaWdpbjIgY29sMiB5V29ya2luZ1dpZHRoIHlXb3JraW5nR3JpZHMgeU9yaWdpbiB4T3JpZ2luTGVmdCB4T3JpZ2luUmlnaHQgeE9yaWdpbkxlZnQyIHhPcmlnaW5SaWdodDIgeU9yaWdpbjIpACgodyA1MC4wKSAobCA1MC4wKSAoeE9mZnNldCAwLjApICh5T2Zmc2V0IDAuMCkgKHJpdmV0TGF5ZXIgbGlzdCgieTMiICJkcmF3aW5nIikpIChyaXZldDJMYXllciBuaWwpIChyaXZldExheWVyMiBuaWwpIChyaW5nV2lkdGggNi4wKSAocml2ZXRXaWR0aCAwLjYpIChyaXZldExlbmd0aCAxLjApIChyaXZldFNwYWNlIDAuOCkgKHJpdmV0MldpZHRoIDAuMCkgKHJpdmV0Mkxlbmd0aCAwLjApIChyaXZldDJTcGFjZSAwLjApIChyaXZldDJFbmNCeVJpdmV0MUwgMC4wKSAocml2ZXQyRW5jQnlSaXZldDFXIDAuMCkgKGxsQmV2ZWxMZW5ndGggMTAuMCkgKHVsQmV2ZWxMZW5ndGggMTAuMCkgKGxyQmV2ZWxMZW5ndGggMTAuMCkgKHVyQmV2ZWxMZW5ndGggMTAuMCkgKGF1dG9JbmNyZWFzZUJldmVsV2lkdGggIkZBTFNFIikgKGdyaWQgMC4wNSkpACgod2lkdGhFcUxlbmd0aCB0KSkAKChzMiA9IHNxcnQoMi4wKSkgZGVjbGFyZSh0aGlzTGF5ZXJbMl0pICh0aGlzTGF5ZXJbMF0gPSByaXZldExheWVyKSAodGhpc0xheWVyWzFdID0gKHJpdmV0TGF5ZXIyIHx8IHJpdmV0TGF5ZXIpKSAoY29udGFjdE51bSA9IDApIChyaXZldFNwYWNlWSA9IHJpdmV0U3BhY2UpIHdoZW4oKHJpdmV0U3BhY2VYID09IDAuMCkgKHJpdmV0U3BhY2VYID0gcml2ZXRTcGFjZSkpIChyaXZldFBpdGNoWSA9IChyaXZldFdpZHRoICsgcml2ZXRTcGFjZVkpKSAocml2ZXRQaXRjaFggPSAocml2ZXRXaWR0aCArIHJpdmV0U3BhY2VYKSkgKHJpdmV0UGl0Y2hYX29yaWcgPSByaXZldFBpdGNoWCkgKHJpdmV0UGl0Y2hZX29yaWcgPSByaXZldFBpdGNoWSkgKHJpdmV0UGl0Y2hNYXggPSBtYXgocml2ZXRQaXRjaFkgcml2ZXRQaXRjaFgpKSAocml2ZXRQaXRjaE1pbiA9IG1pbihyaXZldFBpdGNoWSByaXZldFBpdGNoWCkpIGlmKChyaXZldFBpdGNoWSA+IHJpdmV0UGl0Y2hYKSB0aGVuIChyaXZldFBpdGNoT2Zmc2V0ID0gKHJpdmV0UGl0Y2hZIC0gcml2ZXRQaXRjaFgpKSBlbHNlIChyaXZldFBpdGNoT2Zmc2V0ID0gKHJpdmV0UGl0Y2hYIC0gcml2ZXRQaXRjaFkpKSkgKHJpdmV0UGl0Y2hPZmZzZXRIYWxmID0gKHJpdmV0UGl0Y2hPZmZzZXQgLyAyKSkgKG51bUNvbHMgPSBmaXgoKCgocmluZ1dpZHRoICsgcml2ZXRTcGFjZVgpIC8gcml2ZXRQaXRjaFgpICsgMWUtMDUpKSkgKHVzZWRSaW5nV2lkdGggPSAoKG51bUNvbHMgKiByaXZldFBpdGNoWCkgLSByaXZldFNwYWNlWCkpIGNvbmQoKCgoYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCA9PSAiVFJVRSIpICYmIChyaW5nV2lkdGggPCAoczIgKiByaXZldFdpZHRoKSkpIChhZGRpdGlvbmFsQmV2ZWxXaWR0aCA9ICgocml2ZXRXaWR0aCArICgoMSAtIHMyKSAqIHVzZWRSaW5nV2lkdGgpKSAvIHMyKSkgKG51bUNvbHNJbkJldmVsID0gbnVtQ29scykpICh0IChhZGRpdGlvbmFsQmV2ZWxXaWR0aCA9IDAuMCkgKG51bUNvbHNJbkJldmVsID0gZml4KCgxZS0wNSArICgoKHJpdmV0U3BhY2VYICsgKHMyICogcmluZ1dpZHRoKSkgLSByaXZldFdpZHRoKSAvIHJpdmV0UGl0Y2hYKSkpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYWRkaXRpb25hbEJldmVsV2lkdGgiICJmbG9hdCIgYWRkaXRpb25hbEJldmVsV2lkdGgpIChtaW5CZXZlbEN1dEZvclJpdmV0ID0gKCgyLjAgKiByaXZldFBpdGNoWCkgLSAxZS0wNSkpIChiZXZlbEluc2lkZU9mZnNldCA9ICgoKHJpbmdXaWR0aCAqIChzMiAtIDEuMCkpICsgKHMyICogYWRkaXRpb25hbEJldmVsV2lkdGgpKSAvIGdyaWQpKSAoZml4ZWRCZXYgPSBmaXgoKDAuOTk5ICsgYmV2ZWxJbnNpZGVPZmZzZXQpKSkgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKGdyaWQgKiBmaXhlZEJldikpIChjYW5ub3RCZXZlbExlbmd0aCA9IChyaW5nV2lkdGggLSBiZXZlbEluc2lkZU9mZnNldCkpIChsbEJldmVsID0gKGxsQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChsckJldmVsID0gKGxyQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpICh1ckJldmVsID0gKHVyQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpICh1bEJldmVsID0gKHVsQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIGNvbmQoKGxsQmV2ZWwgKHhPcmlnaW4gPSAoeE9mZnNldCArIGxsQmV2ZWxMZW5ndGgpKSAoeU9yaWdpbiA9IHlPZmZzZXQpKSAodCAoeE9yaWdpbiA9IHhPZmZzZXQpICh5T3JpZ2luID0geU9mZnNldCkpKSB3aGVuKChsbEJldmVsTGVuZ3RoIDwgKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCkpICh4T3JpZ2luID0gKHhPZmZzZXQgKyBtYXgoKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCkgcml2ZXRQaXRjaFgpKSkpIGNvbmQoKGxyQmV2ZWwgKHhTdG9wID0gKHhPZmZzZXQgKyBsICsgKC0gbHJCZXZlbExlbmd0aCkgKyAoLSByaXZldFdpZHRoKSkpKSAodCAoeFN0b3AgPSAoeE9mZnNldCArIGwgKyAoLSByaXZldFdpZHRoKSkpKSkgd2hlbigobGVzc0Nvbk5lYXJiZXZlbCA9PSAiVFJVRSIpICh4U3RvcCA9ICh4U3RvcCArICgtIHJpdmV0UGl0Y2hYKSkpKSAodGVtcENvbnRhY3ROdW0gPSBjb250YWN0TnVtKSAoeUxvb3BPcmlnaW4gPSB5T3JpZ2luKSBmb3IoY29sIDEgbnVtQ29scyAoY29udGFjdE51bSA9IG1vZCgodGVtcENvbnRhY3ROdW0gKyAxKSAyKSkgKHRlbXBDb250YWN0TnVtID0gY29udGFjdE51bSkgKHhMb29wT3JpZ2luID0geE9yaWdpbikgd2hlbigobGVzc0Nvbk5lYXJiZXZlbCA9PSAiVFJVRSIpICh4TG9vcE9yaWdpbiA9ICh4T3JpZ2luICsgcml2ZXRQaXRjaFkpKSkgd2hpbGUoKHhMb29wT3JpZ2luIDwgeFN0b3ApIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeExvb3BPcmlnaW46eUxvb3BPcmlnaW4pICgoeExvb3BPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSAoeExvb3BPcmlnaW4gPSAoeExvb3BPcmlnaW4gKyByaXZldFBpdGNoWSkpKSAoeUxvb3BPcmlnaW4gPSAoeUxvb3BPcmlnaW4gKyByaXZldFBpdGNoWCkpKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHhMb29wT3JpZ2luID0gKHhMb29wT3JpZ2luICsgcml2ZXRQaXRjaFgpKSkgd2hlbigodXBkYXRlZENsYXNzID09ICJUUlVFIikgKHJpdmV0UGl0Y2hYID0gcml2ZXRQaXRjaE1heCkgKHJpdmV0UGl0Y2hZID0gcml2ZXRQaXRjaE1heCkgKHRoaXNMYXllclswXSA9IHJpdmV0TGF5ZXIpICh0aGlzTGF5ZXJbMV0gPSByaXZldExheWVyMikgKHJpdmV0UGl0Y2hPZmZzZXRIYWxmID0gMC4wKSAocml2ZXRQaXRjaE9mZnNldCA9IDAuMCkpIChudW1Db2xzTFIgPSAobnVtQ29scyArICgtIG51bUNvbHNMZXNzKSkpIChudW1Db2xzSW5CZXZlbExSID0gKG51bUNvbHNJbkJldmVsICsgKC0gbnVtQ29sc0xlc3MpKSkgY29uZCgoKGxyQmV2ZWwgJiYgKGxyQmV2ZWxMZW5ndGggPiBtaW5CZXZlbEN1dEZvclJpdmV0KSkgKHNsYWNrRnJvbUxhc3RSdW4gPSAoeE9mZnNldCArIGwgKyAoLSBsckJldmVsTGVuZ3RoKSArICgtIHhMb29wT3JpZ2luKSArIHJpdmV0U3BhY2VYKSkgY29uZCgoKGxyQmV2ZWxMZW5ndGggPCAodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYKSkgKGRlbHRhID0gbWluKCgoLSBsckJldmVsTGVuZ3RoKSArIHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCkgcml2ZXRQaXRjaFgpKSAodGhlU3RhcnRSb3cgPSAoMSAtIGZpeCgoMWUtMDUgKyAoKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCArICgtIGxyQmV2ZWxMZW5ndGgpKSAvIHJpdmV0UGl0Y2hYKSkpKSkpICh0IChkZWx0YSA9IDAuMCkgKHRoZVN0YXJ0Um93ID0gMSkpKSAodG90YWxTbGFjayA9ICgobHJCZXZlbExlbmd0aCArIGRlbHRhICsgc2xhY2tGcm9tTGFzdFJ1bikgLSAocml2ZXRQaXRjaFggKiBmaXgoKDFlLTA1ICsgKChsckJldmVsTGVuZ3RoICsgZGVsdGEgKyBzbGFja0Zyb21MYXN0UnVuKSAvIHJpdmV0UGl0Y2hYKSkpKSkpIChoYWxmVG90YWxTbGFjayA9ICgwLjUgKiB0b3RhbFNsYWNrKSkgKGZpeGVkSGFsZlNsYWNrID0gZml4KCgwLjk5OSArIChoYWxmVG90YWxTbGFjayAvIGdyaWQpKSkpIChleHRyYU9mZnNldCA9IChmaXhlZEhhbGZTbGFjayAqIGdyaWQpKSAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgbCArICgtIHJpdmV0UGl0Y2hYKSArICgtIHJpdmV0V2lkdGgpICsgKC0gZXh0cmFPZmZzZXQpICsgZGVsdGEgKyByaXZldFBpdGNoT2Zmc2V0SGFsZikpICh5T3JpZ2luID0gKHlPZmZzZXQgKyBsckJldmVsTGVuZ3RoICsgKC0gcml2ZXRQaXRjaFkpICsgKC0gZXh0cmFPZmZzZXQpICsgZGVsdGEgKyAoLSByaXZldFBpdGNoT2Zmc2V0SGFsZikpKSAoeFN0b3AgPSAoeE9mZnNldCArIGwgKyAoLSBsckJldmVsTGVuZ3RoKSArIHJpdmV0U3BhY2VYICsgKC0gc2xhY2tGcm9tTGFzdFJ1bikgKyAtMWUtMDUpKSAoY29sID0gMSkgd2hpbGUoKHhPcmlnaW4gPj0geFN0b3ApIChzdG9wUm93ID0gbWluKGNvbCBudW1Db2xzSW5CZXZlbExSKSkgY29uZCgoKChudW1Db2xzSW5CZXZlbExSID4gbnVtQ29sc0xSKSAmJiAoY29sID49IG51bUNvbHNMUikpIChzdGFydFJvdyA9ICgoc3RvcFJvdyAtIG51bUNvbHNJbkJldmVsTFIpICsgMSkpKSAodCAoc3RhcnRSb3cgPSB0aGVTdGFydFJvdykpKSBmb3Iocm93IHN0YXJ0Um93IHN0b3BSb3cgKHlMb29wT3JpZ2luID0gKHlPcmlnaW4gKyAoKHJvdyAtIDEpICogKC0gcml2ZXRQaXRjaFkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4T3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkgd2hlbigoKHVwZGF0ZWRDbGFzcyA9PSAiVFJVRSIpICYmIChhbHRDb3JDb24gPT0gIlRSVUUiKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSkpICh5T3JpZ2luID0gKHlPcmlnaW4gLSByaXZldFBpdGNoT2Zmc2V0KSkgKGNvbCA9IChjb2wgKyAxKSkgd2hlbigoY29sID4gbnVtQ29sc0luQmV2ZWxMUikgKHlPcmlnaW4gPSAoeU9yaWdpbiAtIHJpdmV0UGl0Y2hZKSkpICh4T3JpZ2luID0gKHhPcmlnaW4gLSByaXZldFBpdGNoWCkpKSB3aGVuKCgobnVtQ29sc0luQmV2ZWxMUiA+IG51bUNvbHNMUikgJiYgKGxyQmV2ZWxMZW5ndGggPiByaW5nV2lkdGgpKSAoeVN0b3AgPSAoeU9mZnNldCArIHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWSkpICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pIHdoaWxlKCh4T3JpZ2luID49ICh4T2Zmc2V0ICsgbCArICgtIGxyQmV2ZWxMZW5ndGgpICsgKC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSkgd2hpbGUoKHlMb29wT3JpZ2luID4geVN0b3ApIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4T3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkgKHlMb29wT3JpZ2luID0gKHlMb29wT3JpZ2luIC0gcml2ZXRQaXRjaFkpKSkgKHlPcmlnaW4gPSAoeU9yaWdpbiAtIHJpdmV0UGl0Y2hZKSkgKHlMb29wT3JpZ2luID0geU9yaWdpbikgKHhPcmlnaW4gPSAoeE9yaWdpbiAtIHJpdmV0UGl0Y2hYKSkpKSAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgbCArICgtIHVzZWRSaW5nV2lkdGgpKSkgKHlPcmlnaW4gPSAoeU9mZnNldCArIGxyQmV2ZWxMZW5ndGgpKSkgKGxyQmV2ZWwgKHhPcmlnaW4gPSAoeE9mZnNldCArIGwgKyAoLSB1c2VkUmluZ1dpZHRoKSkpICh5T3JpZ2luID0gKHlPZmZzZXQgKyBsckJldmVsTGVuZ3RoKSkpICh0ICh4T3JpZ2luID0gKHhPZmZzZXQgKyBsICsgKC0gdXNlZFJpbmdXaWR0aCkpKSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VZKSkpKSB3aGVuKChsckJldmVsTGVuZ3RoIDwgKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWSkpICh5T3JpZ2luID0gKHlPZmZzZXQgKyB1c2VkUmluZ1dpZHRoICsgcml2ZXRTcGFjZVkpKSkgY29uZCgodXJCZXZlbCAoeVN0b3AgPSAoeU9mZnNldCArIHcgKyAoLSB1ckJldmVsTGVuZ3RoKSArICgtIHJpdmV0V2lkdGgpKSkpICh0ICh5U3RvcCA9ICh5T2Zmc2V0ICsgdyArICgtIHJpdmV0V2lkdGgpKSkpKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHlTdG9wID0gKHlTdG9wICsgKC0gcml2ZXRQaXRjaFkpKSkpIHdoZW4oKHVwZGF0ZWRDbGFzcyA9PSAiVFJVRSIpIChyaXZldFBpdGNoWCA9IHJpdmV0UGl0Y2hYX29yaWcpIChyaXZldFBpdGNoWSA9IHJpdmV0UGl0Y2hZX29yaWcpICh0aGlzTGF5ZXJbMF0gPSByaXZldExheWVyKSAodGhpc0xheWVyWzFdID0gKHJpdmV0TGF5ZXIyIHx8IHJpdmV0TGF5ZXIpKSkgKHhMb29wT3JpZ2luID0geE9yaWdpbikgZm9yKGNvbCAxIG51bUNvbHMgKGNvbnRhY3ROdW0gPSBtb2QoKHRlbXBDb250YWN0TnVtICsgMSkgMikpICh0ZW1wQ29udGFjdE51bSA9IGNvbnRhY3ROdW0pICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pIHdoZW4oKGxlc3NDb25OZWFyYmV2ZWwgPT0gIlRSVUUiKSAoeUxvb3BPcmlnaW4gPSAoeU9yaWdpbiArIHJpdmV0UGl0Y2hZKSkpIHdoaWxlKCh5TG9vcE9yaWdpbiA8IHlTdG9wKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhMb29wT3JpZ2luOnlMb29wT3JpZ2luKSAoKHhMb29wT3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkgKHlMb29wT3JpZ2luID0gKHlMb29wT3JpZ2luICsgcml2ZXRQaXRjaFkpKSkgKHhMb29wT3JpZ2luID0gKHhMb29wT3JpZ2luICsgcml2ZXRQaXRjaFgpKSkgd2hlbigobGVzc0Nvbk5lYXJiZXZlbCA9PSAiVFJVRSIpICh5TG9vcE9yaWdpbiA9ICh5TG9vcE9yaWdpbiArIHJpdmV0UGl0Y2hZKSkpIHdoZW4oKHVwZGF0ZWRDbGFzcyA9PSAiVFJVRSIpIChyaXZldFBpdGNoWCA9IHJpdmV0UGl0Y2hNYXgpIChyaXZldFBpdGNoWSA9IHJpdmV0UGl0Y2hNYXgpICh0aGlzTGF5ZXJbMF0gPSByaXZldExheWVyKSAodGhpc0xheWVyWzFdID0gcml2ZXRMYXllcjIpIChyaXZldFBpdGNoT2Zmc2V0SGFsZiA9IDAuMCkgKHJpdmV0UGl0Y2hPZmZzZXQgPSAwLjApKSAobnVtQ29sc1VSID0gKG51bUNvbHMgKyAoLSBudW1Db2xzTGVzcykpKSAobnVtQ29sc0luQmV2ZWxVUiA9IChudW1Db2xzSW5CZXZlbCArICgtIG51bUNvbHNMZXNzKSkpIGNvbmQoKCh1ckJldmVsICYmICh1ckJldmVsTGVuZ3RoID4gbWluQmV2ZWxDdXRGb3JSaXZldCkpIChzbGFja0Zyb21MYXN0UnVuID0gKHlPZmZzZXQgKyB3ICsgKC0gdXJCZXZlbExlbmd0aCkgKyAoLSB5TG9vcE9yaWdpbikgKyByaXZldFNwYWNlWSkpIGNvbmQoKCh1ckJldmVsTGVuZ3RoIDwgKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCkpIChkZWx0YSA9IG1pbigoKC0gdXJCZXZlbExlbmd0aCkgKyB1c2VkUmluZ1dpZHRoICsgcml2ZXRTcGFjZVgpIHJpdmV0UGl0Y2hYKSkgKHRoZVN0YXJ0Um93ID0gKDEgLSBmaXgoKDFlLTA1ICsgKCh1c2VkUmluZ1dpZHRoICsgcml2ZXRTcGFjZVggKyAoLSB1ckJldmVsTGVuZ3RoKSkgLyByaXZldFBpdGNoWCkpKSkpKSAodCAoZGVsdGEgPSAwLjApICh0aGVTdGFydFJvdyA9IDEpKSkgKHRvdGFsU2xhY2sgPSAoKHVyQmV2ZWxMZW5ndGggKyBkZWx0YSkgLSAocml2ZXRQaXRjaFggKiBmaXgoKDFlLTA1ICsgKCh1ckJldmVsTGVuZ3RoICsgZGVsdGEpIC8gcml2ZXRQaXRjaFgpKSkpKSkgY29uZCgoKCh0b3RhbFNsYWNrICsgc2xhY2tGcm9tTGFzdFJ1biArIDFlLTA1KSA+IHJpdmV0UGl0Y2hYKSAodG90YWxTbGFjayA9ICgoLSByaXZldFBpdGNoWCkgKyB0b3RhbFNsYWNrICsgc2xhY2tGcm9tTGFzdFJ1bikpKSAodCAodG90YWxTbGFjayA9ICh0b3RhbFNsYWNrICsgc2xhY2tGcm9tTGFzdFJ1bikpKSkgKGhhbGZUb3RhbFNsYWNrID0gKDAuNSAqIHRvdGFsU2xhY2spKSAoZml4ZWRIYWxmU2xhY2sgPSBmaXgoKDAuOTk5ICsgKGhhbGZUb3RhbFNsYWNrIC8gZ3JpZCkpKSkgKGV4dHJhT2Zmc2V0ID0gKGZpeGVkSGFsZlNsYWNrICogZ3JpZCkpICh4T3JpZ2luID0gKHhPZmZzZXQgKyBsICsgKC0gcml2ZXRXaWR0aCkgKyAoLSByaXZldFBpdGNoWCkgKyAoLSBleHRyYU9mZnNldCkgKyBzbGFja0Zyb21MYXN0UnVuICsgcml2ZXRQaXRjaE9mZnNldEhhbGYpKSAoeU9yaWdpbiA9ICh5TG9vcE9yaWdpbiArIGV4dHJhT2Zmc2V0ICsgcml2ZXRQaXRjaE9mZnNldEhhbGYpKSBjb25kKCgoMC4wID4gKHNsYWNrRnJvbUxhc3RSdW4gKyAoLSBleHRyYU9mZnNldCkpKSAoZHJhd0V4dHJhSW5zaWRlQ29sdW1uID0gdCkpICh0IChkcmF3RXh0cmFJbnNpZGVDb2x1bW4gPSBuaWwpKSkgKHhTdG9wID0gbWluKCh4T2Zmc2V0ICsgbCArICgtIHVyQmV2ZWxMZW5ndGgpICsgcml2ZXRTcGFjZVggKyAtMWUtMDUpICh4T2Zmc2V0ICsgbCArICgtIHVzZWRSaW5nV2lkdGgpICsgLTFlLTA1KSkpIChjb2wgPSAxKSB3aGlsZSgoeE9yaWdpbiA+PSB4U3RvcCkgKHN0b3BSb3cgPSBtaW4oY29sIG51bUNvbHNJbkJldmVsVVIpKSBjb25kKCgoKG51bUNvbHNJbkJldmVsVVIgPiBudW1Db2xzVVIpICYmIChjb2wgPj0gbnVtQ29sc1VSKSkgY29uZCgoZHJhd0V4dHJhSW5zaWRlQ29sdW1uIChzdGFydFJvdyA9ICgoc3RvcFJvdyAtIG51bUNvbHNJbkJldmVsVVIpICsgMSkpKSAodCAoZHJhd0V4dHJhSW5zaWRlQ29sdW1uID0gdCkpKSkgKHQgKHN0YXJ0Um93ID0gdGhlU3RhcnRSb3cpKSkgZm9yKHJvdyBzdGFydFJvdyBzdG9wUm93ICh5TG9vcE9yaWdpbiA9ICh5T3JpZ2luICsgKChyb3cgLSAxKSAqIHJpdmV0UGl0Y2hZKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4T3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkgd2hlbigoKHVwZGF0ZWRDbGFzcyA9PSAiVFJVRSIpICYmIChhbHRDb3JDb24gPT0gIlRSVUUiKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSkpICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldFBpdGNoT2Zmc2V0KSkgKGNvbCA9IChjb2wgKyAxKSkgd2hlbigoY29sID4gbnVtQ29sc0luQmV2ZWxVUikgKHlPcmlnaW4gPSAoeU9yaWdpbiArIHJpdmV0UGl0Y2hZKSkpICh4T3JpZ2luID0gKHhPcmlnaW4gLSByaXZldFBpdGNoWCkpKSB3aGVuKChjb2wgPD0gbnVtQ29sc0luQmV2ZWxVUikgKHlPcmlnaW4gPSAoeU9yaWdpbiArIChzdGFydFJvdyAqIHJpdmV0UGl0Y2hZKSkpKSB3aGVuKCgobnVtQ29sc0luQmV2ZWxVUiA+IG51bUNvbHNVUikgJiYgKHVyQmV2ZWxMZW5ndGggPiByaW5nV2lkdGgpKSAoeVN0b3AgPSAoeU9mZnNldCArIHcgKyAoLSB1c2VkUmluZ1dpZHRoKSArICgtIHJpdmV0UGl0Y2hZKSkpICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pIHdoaWxlKCh4T3JpZ2luID49ICh4T2Zmc2V0ICsgbCArICgtIHVyQmV2ZWxMZW5ndGgpICsgKC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSkgd2hpbGUoKHlMb29wT3JpZ2luIDw9IHlTdG9wKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhPcmlnaW46eUxvb3BPcmlnaW4pICgoeE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpICh5TG9vcE9yaWdpbiA9ICh5TG9vcE9yaWdpbiArIHJpdmV0UGl0Y2hZKSkpICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldFBpdGNoWSkpICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pICh4T3JpZ2luID0gKHhPcmlnaW4gLSByaXZldFBpdGNoWCkpKSkgKHhPcmlnaW4gPSAoeE9mZnNldCArIGwgKyAoLSB1ckJldmVsTGVuZ3RoKSArICgtIHJpdmV0V2lkdGgpKSkgKHlPcmlnaW4gPSAoeU9mZnNldCArIHcgKyAoLSB1c2VkUmluZ1dpZHRoKSkpKSAobHJCZXZlbCAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgbCArICgtIHVyQmV2ZWxMZW5ndGgpICsgKC0gcml2ZXRXaWR0aCkpKSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdyArICgtIHVzZWRSaW5nV2lkdGgpKSkpICh0ICh4T3JpZ2luID0gKHhPZmZzZXQgKyBsICsgKC0gdXNlZFJpbmdXaWR0aCkgKyAoLSByaXZldFNwYWNlWCkpKSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdyArICgtIHVzZWRSaW5nV2lkdGgpKSkpKSB3aGVuKCh4T3JpZ2luID4gKHhPZmZzZXQgKyBsICsgKC0gdXNlZFJpbmdXaWR0aCkgKyAoLSByaXZldFBpdGNoWCkpKSAoeE9yaWdpbiA9ICh4T2Zmc2V0ICsgbCArICgtIHVzZWRSaW5nV2lkdGgpICsgKC0gcml2ZXRQaXRjaFgpKSkpIGNvbmQoKHVsQmV2ZWwgKHhTdG9wID0gKHhPZmZzZXQgKyB1bEJldmVsTGVuZ3RoICsgLTFlLTA1KSkpICh0ICh4U3RvcCA9ICh4T2Zmc2V0ICsgLTFlLTA1KSkpKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHhTdG9wID0gKHhTdG9wICsgcml2ZXRQaXRjaFgpKSkgd2hlbigodXBkYXRlZENsYXNzID09ICJUUlVFIikgKHJpdmV0UGl0Y2hYID0gcml2ZXRQaXRjaFhfb3JpZykgKHJpdmV0UGl0Y2hZID0gcml2ZXRQaXRjaFlfb3JpZykgKHRoaXNMYXllclswXSA9IHJpdmV0TGF5ZXIpICh0aGlzTGF5ZXJbMV0gPSAocml2ZXRMYXllcjIgfHwgcml2ZXRMYXllcikpKSAoeUxvb3BPcmlnaW4gPSB5T3JpZ2luKSBmb3IoY29sIDEgbnVtQ29scyAoY29udGFjdE51bSA9IG1vZCgodGVtcENvbnRhY3ROdW0gKyAxKSAyKSkgKHRlbXBDb250YWN0TnVtID0gY29udGFjdE51bSkgKHhMb29wT3JpZ2luID0geE9yaWdpbikgd2hlbigobGVzc0Nvbk5lYXJiZXZlbCA9PSAiVFJVRSIpICh4TG9vcE9yaWdpbiA9ICh4T3JpZ2luICsgKC0gcml2ZXRQaXRjaFgpKSkpIHdoaWxlKCh4TG9vcE9yaWdpbiA+IHhTdG9wKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhMb29wT3JpZ2luOnlMb29wT3JpZ2luKSAoKHhMb29wT3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkgKHhMb29wT3JpZ2luID0gKHhMb29wT3JpZ2luIC0gcml2ZXRQaXRjaFkpKSkgKHlMb29wT3JpZ2luID0gKHlMb29wT3JpZ2luICsgcml2ZXRQaXRjaFgpKSkgd2hlbigobGVzc0Nvbk5lYXJiZXZlbCA9PSAiVFJVRSIpICh4TG9vcE9yaWdpbiA9ICh4TG9vcE9yaWdpbiArICgtIHJpdmV0UGl0Y2hYKSkpKSB3aGVuKCh1cGRhdGVkQ2xhc3MgPT0gIlRSVUUiKSAocml2ZXRQaXRjaFggPSByaXZldFBpdGNoTWF4KSAocml2ZXRQaXRjaFkgPSByaXZldFBpdGNoTWF4KSAodGhpc0xheWVyWzBdID0gcml2ZXRMYXllcikgKHRoaXNMYXllclsxXSA9IHJpdmV0TGF5ZXIyKSAocml2ZXRQaXRjaE9mZnNldEhhbGYgPSAwLjApIChyaXZldFBpdGNoT2Zmc2V0ID0gMC4wKSkgKG51bUNvbHNVTCA9IChudW1Db2xzICsgKC0gbnVtQ29sc0xlc3MpKSkgKG51bUNvbHNJbkJldmVsVUwgPSAobnVtQ29sc0luQmV2ZWwgKyAoLSBudW1Db2xzTGVzcykpKSBjb25kKCgodWxCZXZlbCAmJiAodWxCZXZlbExlbmd0aCA+IG1pbkJldmVsQ3V0Rm9yUml2ZXQpKSAoc2xhY2tGcm9tTGFzdFJ1biA9ICh4TG9vcE9yaWdpbiArIHJpdmV0UGl0Y2hYICsgKC0geE9mZnNldCkgKyAoLSB1bEJldmVsTGVuZ3RoKSkpIGNvbmQoKCh1bEJldmVsTGVuZ3RoIDwgKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCkpIChkZWx0YSA9IG1pbigoKC0gdWxCZXZlbExlbmd0aCkgKyB1c2VkUmluZ1dpZHRoICsgcml2ZXRTcGFjZVgpIHJpdmV0UGl0Y2hYKSkgKHRoZVN0YXJ0Um93ID0gKDEgLSBmaXgoKDFlLTA1ICsgKCh1c2VkUmluZ1dpZHRoICsgcml2ZXRTcGFjZVggKyAoLSB1bEJldmVsTGVuZ3RoKSkgLyByaXZldFBpdGNoWCkpKSkpKSAodCAoZGVsdGEgPSAwLjApICh0aGVTdGFydFJvdyA9IDEpKSkgKHRvdGFsU2xhY2sgPSAoKHVsQmV2ZWxMZW5ndGggKyBkZWx0YSArIHNsYWNrRnJvbUxhc3RSdW4pIC0gKHJpdmV0UGl0Y2hYICogZml4KCgxZS0wNSArICgodWxCZXZlbExlbmd0aCArIGRlbHRhICsgc2xhY2tGcm9tTGFzdFJ1bikgLyByaXZldFBpdGNoWCkpKSkpKSAoaGFsZlRvdGFsU2xhY2sgPSAoMC41ICogdG90YWxTbGFjaykpIChmaXhlZEhhbGZTbGFjayA9IGZpeCgoMC45OTkgKyAoaGFsZlRvdGFsU2xhY2sgLyBncmlkKSkpKSAoZXh0cmFPZmZzZXQgPSAoZml4ZWRIYWxmU2xhY2sgKiBncmlkKSkgKHhPcmlnaW4gPSAoeE9mZnNldCArIHJpdmV0UGl0Y2hYICsgZXh0cmFPZmZzZXQgKyAoLSBkZWx0YSkgKyAoLSByaXZldFBpdGNoT2Zmc2V0SGFsZikpKSAoeU9yaWdpbiA9ICh5T2Zmc2V0ICsgdyArICgtIHVsQmV2ZWxMZW5ndGgpICsgcml2ZXRTcGFjZVkgKyBleHRyYU9mZnNldCArICgtIGRlbHRhKSArIHJpdmV0UGl0Y2hPZmZzZXRIYWxmKSkgKHhTdG9wID0gKCh4T2Zmc2V0ICsgdWxCZXZlbExlbmd0aCArIHNsYWNrRnJvbUxhc3RSdW4gKyAxZS0wNSkgLSByaXZldFBpdGNoWCkpIChjb2wgPSAxKSB3aGlsZSgoeE9yaWdpbiA8PSB4U3RvcCkgKHN0b3BSb3cgPSBtaW4oY29sIG51bUNvbHNJbkJldmVsVUwpKSBjb25kKCgoKG51bUNvbHNJbkJldmVsVUwgPiBudW1Db2xzVUwpICYmIChjb2wgPj0gbnVtQ29sc1VMKSkgKHN0YXJ0Um93ID0gKChzdG9wUm93IC0gbnVtQ29sc0luQmV2ZWxVTCkgKyAxKSkpICh0IChzdGFydFJvdyA9IHRoZVN0YXJ0Um93KSkpIGZvcihyb3cgc3RhcnRSb3cgc3RvcFJvdyAoeUxvb3BPcmlnaW4gPSAoeU9yaWdpbiArICgocm93IC0gMSkgKiByaXZldFBpdGNoWSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhPcmlnaW46eUxvb3BPcmlnaW4pICgoeE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpIHdoZW4oKCh1cGRhdGVkQ2xhc3MgPT0gIlRSVUUiKSAmJiAoYWx0Q29yQ29uID09ICJUUlVFIikpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4T3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkpKSAoY29sID0gKGNvbCArIDEpKSAoeU9yaWdpbiA9ICh5T3JpZ2luICsgcml2ZXRQaXRjaE9mZnNldCkpIHdoZW4oKGNvbCA+IG51bUNvbHNJbkJldmVsVUwpICh5T3JpZ2luID0gKHlPcmlnaW4gKyByaXZldFBpdGNoWSkpKSAoeE9yaWdpbiA9ICh4T3JpZ2luICsgcml2ZXRQaXRjaFgpKSkgd2hlbigoKG51bUNvbHNJbkJldmVsVUwgPiBudW1Db2xzVUwpICYmICh1bEJldmVsTGVuZ3RoID4gcmluZ1dpZHRoKSkgKHlTdG9wID0gKHlPZmZzZXQgKyB3ICsgKC0gdXNlZFJpbmdXaWR0aCkgKyAoLSByaXZldFBpdGNoWSkpKSAoeUxvb3BPcmlnaW4gPSB5T3JpZ2luKSB3aGlsZSgoeE9yaWdpbiA8PSAoeE9mZnNldCArIHVsQmV2ZWxMZW5ndGggKyBiZXZlbEluc2lkZU9mZnNldCkpIHdoaWxlKCh5TG9vcE9yaWdpbiA8PSB5U3RvcCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSAoeUxvb3BPcmlnaW4gPSAoeUxvb3BPcmlnaW4gKyByaXZldFBpdGNoWSkpKSAoeU9yaWdpbiA9ICh5T3JpZ2luICsgcml2ZXRQaXRjaFkpKSAoeUxvb3BPcmlnaW4gPSB5T3JpZ2luKSAoeE9yaWdpbiA9ICh4T3JpZ2luICsgcml2ZXRQaXRjaFgpKSkpICh4T3JpZ2luID0geE9mZnNldCkgKHlPcmlnaW4gPSAoeU9mZnNldCArIHcgKyAoLSB1bEJldmVsTGVuZ3RoKSArICgtIHJpdmV0V2lkdGgpKSkpICh1bEJldmVsICh4T3JpZ2luID0geE9mZnNldCkgKHlPcmlnaW4gPSAoeU9mZnNldCArIHcgKyAoLSB1bEJldmVsTGVuZ3RoKSArICgtIHJpdmV0V2lkdGgpKSkpICh0ICh4T3JpZ2luID0geE9mZnNldCkgKHlPcmlnaW4gPSAoeU9mZnNldCArIHcgKyAoLSB1c2VkUmluZ1dpZHRoKSArICgtIHJpdmV0UGl0Y2hZKSkpKSkgd2hlbigoeU9yaWdpbiA+ICh5T2Zmc2V0ICsgdyArICgtIHVzZWRSaW5nV2lkdGgpICsgKC0gcml2ZXRQaXRjaFkpKSkgKHlPcmlnaW4gPSAoeU9mZnNldCArIHcgKyAoLSB1c2VkUmluZ1dpZHRoKSArICgtIHJpdmV0UGl0Y2hZKSkpKSBjb25kKChsbEJldmVsICh5U3RvcCA9ICh5T2Zmc2V0ICsgbGxCZXZlbExlbmd0aCkpKSAodCAoeVN0b3AgPSB5T2Zmc2V0KSkpIHdoZW4oKGxlc3NDb25OZWFyYmV2ZWwgPT0gIlRSVUUiKSAoeVN0b3AgPSAoeVN0b3AgKyByaXZldFBpdGNoWSkpKSB3aGVuKCh1cGRhdGVkQ2xhc3MgPT0gIlRSVUUiKSAocml2ZXRQaXRjaFggPSByaXZldFBpdGNoWF9vcmlnKSAocml2ZXRQaXRjaFkgPSByaXZldFBpdGNoWV9vcmlnKSAodGhpc0xheWVyWzBdID0gcml2ZXRMYXllcikgKHRoaXNMYXllclsxXSA9IChyaXZldExheWVyMiB8fCByaXZldExheWVyKSkpICh4TG9vcE9yaWdpbiA9IHhPcmlnaW4pIGZvcihjb2wgMSBudW1Db2xzIChjb250YWN0TnVtID0gbW9kKCh0ZW1wQ29udGFjdE51bSArIDEpIDIpKSAodGVtcENvbnRhY3ROdW0gPSBjb250YWN0TnVtKSAoeUxvb3BPcmlnaW4gPSB5T3JpZ2luKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHlMb29wT3JpZ2luID0gKHlPcmlnaW4gKyAoLSByaXZldFBpdGNoWSkpKSkgd2hpbGUoKHlMb29wT3JpZ2luID4geVN0b3ApIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeExvb3BPcmlnaW46eUxvb3BPcmlnaW4pICgoeExvb3BPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSAoeUxvb3BPcmlnaW4gPSAoeUxvb3BPcmlnaW4gLSByaXZldFBpdGNoWSkpKSAoeExvb3BPcmlnaW4gPSAoeExvb3BPcmlnaW4gKyByaXZldFBpdGNoWCkpKSB3aGVuKChsZXNzQ29uTmVhcmJldmVsID09ICJUUlVFIikgKHlMb29wT3JpZ2luID0gKHlMb29wT3JpZ2luICsgKC0gcml2ZXRQaXRjaFkpKSkpIHdoZW4oKHVwZGF0ZWRDbGFzcyA9PSAiVFJVRSIpIChyaXZldFBpdGNoWCA9IHJpdmV0UGl0Y2hNYXgpIChyaXZldFBpdGNoWSA9IHJpdmV0UGl0Y2hNYXgpICh0aGlzTGF5ZXJbMF0gPSByaXZldExheWVyKSAodGhpc0xheWVyWzFdID0gcml2ZXRMYXllcjIpIChyaXZldFBpdGNoT2Zmc2V0SGFsZiA9IDAuMCkgKHJpdmV0UGl0Y2hPZmZzZXQgPSAwLjApKSAobnVtQ29sc0xMID0gKG51bUNvbHMgKyAoLSBudW1Db2xzTGVzcykpKSAobnVtQ29sc0luQmV2ZWxMTCA9IChudW1Db2xzSW5CZXZlbCArICgtIG51bUNvbHNMZXNzKSkpIGNvbmQoKChsbEJldmVsICYmIChsbEJldmVsTGVuZ3RoID4gbWluQmV2ZWxDdXRGb3JSaXZldCkpIChzbGFja0Zyb21MYXN0UnVuID0gKHlMb29wT3JpZ2luICsgcml2ZXRQaXRjaFggKyAoLSB5T2Zmc2V0KSArICgtIGxsQmV2ZWxMZW5ndGgpKSkgY29uZCgoKGxsQmV2ZWxMZW5ndGggPCAodXNlZFJpbmdXaWR0aCArIHJpdmV0U3BhY2VYKSkgKGRlbHRhID0gbWluKCgoLSBsbEJldmVsTGVuZ3RoKSArIHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCkgcml2ZXRQaXRjaFgpKSAodGhlU3RhcnRSb3cgPSAoMSAtIGZpeCgoMWUtMDUgKyAoKHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWCArICgtIGxsQmV2ZWxMZW5ndGgpKSAvIHJpdmV0UGl0Y2hYKSkpKSkpICh0IChkZWx0YSA9IDAuMCkgKHRoZVN0YXJ0Um93ID0gMSkpKSAodG90YWxTbGFjayA9ICgobGxCZXZlbExlbmd0aCArIGRlbHRhKSAtIChyaXZldFBpdGNoWCAqIGZpeCgoMWUtMDUgKyAoKGxsQmV2ZWxMZW5ndGggKyBkZWx0YSkgLyByaXZldFBpdGNoWCkpKSkpKSBjb25kKCgoKHRvdGFsU2xhY2sgKyBzbGFja0Zyb21MYXN0UnVuICsgMWUtMDUpID4gcml2ZXRQaXRjaFgpICh0b3RhbFNsYWNrID0gKCgtIHJpdmV0UGl0Y2hYKSArIHRvdGFsU2xhY2sgKyBzbGFja0Zyb21MYXN0UnVuKSkpICh0ICh0b3RhbFNsYWNrID0gKHRvdGFsU2xhY2sgKyBzbGFja0Zyb21MYXN0UnVuKSkpKSAoaGFsZlRvdGFsU2xhY2sgPSAoMC41ICogdG90YWxTbGFjaykpIChmaXhlZEhhbGZTbGFjayA9IGZpeCgoMC45OTkgKyAoaGFsZlRvdGFsU2xhY2sgLyBncmlkKSkpKSAoZXh0cmFPZmZzZXQgPSAoZml4ZWRIYWxmU2xhY2sgKiBncmlkKSkgKHhPcmlnaW4gPSAoeE9mZnNldCArIHJpdmV0UGl0Y2hYICsgKC0gc2xhY2tGcm9tTGFzdFJ1bikgKyBleHRyYU9mZnNldCkpICh5T3JpZ2luID0gKHlMb29wT3JpZ2luICsgKC0gZXh0cmFPZmZzZXQpKSkgY29uZCgoKDAuMCA+IChzbGFja0Zyb21MYXN0UnVuICsgKC0gZXh0cmFPZmZzZXQpKSkgKGRyYXdFeHRyYUluc2lkZUNvbHVtbiA9IHQpKSAodCAoZHJhd0V4dHJhSW5zaWRlQ29sdW1uID0gbmlsKSkpICh4U3RvcCA9IG1heCgoeE9mZnNldCArIGxsQmV2ZWxMZW5ndGggKyAxZS0wNSArICgtIHJpdmV0UGl0Y2hYKSkgKHhPZmZzZXQgKyB1c2VkUmluZ1dpZHRoICsgMWUtMDUgKyAoLSByaXZldFdpZHRoKSkpKSAoY29sID0gMSkgd2hpbGUoKHhPcmlnaW4gPD0geFN0b3ApIChzdG9wUm93ID0gbWluKGNvbCBudW1Db2xzSW5CZXZlbExMKSkgY29uZCgoKChudW1Db2xzSW5CZXZlbExMID4gbnVtQ29sc0xMKSAmJiAoY29sID49IG51bUNvbHNMTCkpIGNvbmQoKGRyYXdFeHRyYUluc2lkZUNvbHVtbiAoc3RhcnRSb3cgPSAoKHN0b3BSb3cgLSBudW1Db2xzSW5CZXZlbExMKSArIDEpKSkgKHQgKGRyYXdFeHRyYUluc2lkZUNvbHVtbiA9IHQpKSkpICh0IChzdGFydFJvdyA9IHRoZVN0YXJ0Um93KSkpIGZvcihyb3cgc3RhcnRSb3cgc3RvcFJvdyAoeUxvb3BPcmlnaW4gPSAoeU9yaWdpbiArICgocm93IC0gMSkgKiAoLSByaXZldFBpdGNoWSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRoaXNMYXllcltjb250YWN0TnVtXSBsaXN0KCh4T3JpZ2luOnlMb29wT3JpZ2luKSAoKHhPcmlnaW4gKyByaXZldFdpZHRoKTooeUxvb3BPcmlnaW4gKyByaXZldFdpZHRoKSkpKSAoY29udGFjdE51bSA9IG1vZCgoY29udGFjdE51bSArIDEpIDIpKSB3aGVuKCgodXBkYXRlZENsYXNzID09ICJUUlVFIikgJiYgKGFsdENvckNvbiA9PSAiVFJVRSIpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGhpc0xheWVyW2NvbnRhY3ROdW1dIGxpc3QoKHhPcmlnaW46eUxvb3BPcmlnaW4pICgoeE9yaWdpbiArIHJpdmV0V2lkdGgpOih5TG9vcE9yaWdpbiArIHJpdmV0V2lkdGgpKSkpIChjb250YWN0TnVtID0gbW9kKChjb250YWN0TnVtICsgMSkgMikpKSkgKGNvbCA9IChjb2wgKyAxKSkgKHlPcmlnaW4gPSAoeU9yaWdpbiAtIHJpdmV0UGl0Y2hPZmZzZXQpKSB3aGVuKChjb2wgPiBudW1Db2xzSW5CZXZlbExMKSAoeU9yaWdpbiA9ICh5T3JpZ2luIC0gcml2ZXRQaXRjaFkpKSkgKHhPcmlnaW4gPSAoeE9yaWdpbiArIHJpdmV0UGl0Y2hYKSkpIHdoZW4oKGNvbCA8PSBudW1Db2xzSW5CZXZlbExMKSAoeU9yaWdpbiA9ICh5T3JpZ2luICsgKCgtIHN0YXJ0Um93KSAqIHJpdmV0UGl0Y2hZKSkpKSB3aGVuKCgobnVtQ29sc0luQmV2ZWxMTCA+IG51bUNvbHNMTCkgJiYgKGxsQmV2ZWxMZW5ndGggPiByaW5nV2lkdGgpKSAoeVN0b3AgPSAoeU9mZnNldCArIHVzZWRSaW5nV2lkdGggKyByaXZldFNwYWNlWSkpICh5TG9vcE9yaWdpbiA9IHlPcmlnaW4pIHdoaWxlKCh4T3JpZ2luIDw9ICh4T2Zmc2V0ICsgbGxCZXZlbExlbmd0aCArIGJldmVsSW5zaWRlT2Zmc2V0KSkgd2hpbGUoKHlMb29wT3JpZ2luID4geVN0b3ApIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0aGlzTGF5ZXJbY29udGFjdE51bV0gbGlzdCgoeE9yaWdpbjp5TG9vcE9yaWdpbikgKCh4T3JpZ2luICsgcml2ZXRXaWR0aCk6KHlMb29wT3JpZ2luICsgcml2ZXRXaWR0aCkpKSkgKGNvbnRhY3ROdW0gPSBtb2QoKGNvbnRhY3ROdW0gKyAxKSAyKSkgKHlMb29wT3JpZ2luID0gKHlMb29wT3JpZ2luIC0gcml2ZXRQaXRjaFkpKSkgKHlPcmlnaW4gPSAoeU9yaWdpbiAtIHJpdmV0UGl0Y2hZKSkgKHlMb29wT3JpZ2luID0geU9yaWdpbikgKHhPcmlnaW4gPSAoeE9yaWdpbiArIHJpdmV0UGl0Y2hYKSkpKSkpKQAodyBsIHhPZmZzZXQgeU9mZnNldCByaXZldExheWVyIHJpdmV0TGF5ZXIyIHJpbmdXaWR0aCByaXZldFdpZHRoIHJpdmV0U3BhY2Ugcml2ZXRTcGFjZVggbGxCZXZlbExlbmd0aCB1bEJldmVsTGVuZ3RoIGxyQmV2ZWxMZW5ndGggdXJCZXZlbExlbmd0aCBhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIGdyaWQgbGVzc0Nvbk5lYXJiZXZlbCBudW1Db2xzTGVzcyB1cGRhdGVkQ2xhc3MgYWx0Q29yQ29uIHMyIHRoaXNMYXllciBjb250YWN0TnVtIHJpdmV0U3BhY2VZIHJpdmV0UGl0Y2hZIHJpdmV0UGl0Y2hYIHJpdmV0UGl0Y2hYX29yaWcgcml2ZXRQaXRjaFlfb3JpZyByaXZldFBpdGNoTWF4IHJpdmV0UGl0Y2hNaW4gcml2ZXRQaXRjaE9mZnNldCByaXZldFBpdGNoT2Zmc2V0SGFsZiBudW1Db2xzIHVzZWRSaW5nV2lkdGggYWRkaXRpb25hbEJldmVsV2lkdGggbnVtQ29sc0luQmV2ZWwgbWluQmV2ZWxDdXRGb3JSaXZldCBiZXZlbEluc2lkZU9mZnNldCBmaXhlZEJldiBjYW5ub3RCZXZlbExlbmd0aCBsbEJldmVsIGxyQmV2ZWwgdXJCZXZlbCB1bEJldmVsIHhPcmlnaW4geU9yaWdpbiB4U3RvcCB0ZW1wQ29udGFjdE51bSB5TG9vcE9yaWdpbiBjb2wgeExvb3BPcmlnaW4gbnVtQ29sc0xSIG51bUNvbHNJbkJldmVsTFIgc2xhY2tGcm9tTGFzdFJ1biBkZWx0YSB0aGVTdGFydFJvdyB0b3RhbFNsYWNrIGhhbGZUb3RhbFNsYWNrIGZpeGVkSGFsZlNsYWNrIGV4dHJhT2Zmc2V0IHN0b3BSb3cgc3RhcnRSb3cgcm93IHlTdG9wIG51bUNvbHNVUiBudW1Db2xzSW5CZXZlbFVSIGRyYXdFeHRyYUluc2lkZUNvbHVtbiBudW1Db2xzVUwgbnVtQ29sc0luQmV2ZWxVTCBudW1Db2xzTEwgbnVtQ29sc0luQmV2ZWxMTCkAKCh3IDUwLjApIChsIDUwLjApICh4T2Zmc2V0IDAuMCkgKHlPZmZzZXQgMC4wKSAocml2ZXRMYXllciBsaXN0KCJoaWxpdGUiICJkcmF3aW5nIikpIChyaXZldExheWVyMiBuaWwpIChyaW5nV2lkdGggNi4wKSAocml2ZXRXaWR0aCAwLjYpIChyaXZldFNwYWNlIDAuOCkgKHJpdmV0U3BhY2VYIDAuMCkgKGxsQmV2ZWxMZW5ndGggMTAuMCkgKHVsQmV2ZWxMZW5ndGggMTAuMCkgKGxyQmV2ZWxMZW5ndGggMTAuMCkgKHVyQmV2ZWxMZW5ndGggMTAuMCkgKGF1dG9JbmNyZWFzZUJldmVsV2lkdGggIkZBTFNFIikgKGdyaWQgKFRFQ0hnZXRQcm9wIHNuYXBHcmlkKSkgKGxlc3NDb25OZWFyYmV2ZWwgIkZBTFNFIikgKG51bUNvbHNMZXNzIDApICh1cGRhdGVkQ2xhc3MgIkZBTFNFIikgKGFsdENvckNvbiAiRkFMU0UiKSkAKGlmKCgodXNlRU9MZW5jID09IHQpIHx8ICh1c2VFT0xlbmMgPT0gIlRSVUUiKSkgdGhlbiAodXNlRU9MZW5jID0gdCkgZWxzZSAodXNlRU9MZW5jID0gbmlsKSkgKHJvb3QyID0gc3FydCgyKSkgKHRhbkNhbCA9IDAuNDE0MjEzNikgKGNlaWxGaXggPSAwLjAwMSkgKGdyaWRNdWx0ID0gcm91bmQoKDEuMCAvIGdyaWQpKSkgKG1pblJpdmV0V2lkdGggPSAoZ3JpZCAqIChjZWlsaW5nICgobWluUml2ZXRXaWR0aCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChtaW5TbG90V2lkdGggPSAoKGdyaWQgKiAoY2VpbGluZyAoKG1pblNsb3RXaWR0aCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkgKyBncmlkKSkgKG1pblNsb3RMZW5ndGggPSAoZ3JpZCAqIChjZWlsaW5nICgobWluU2xvdExlbmd0aCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChtYXhTbG90U3BhY2luZ0ggPSAoZ3JpZCAqIChjZWlsaW5nICgobWF4U2xvdFNwYWNpbmdIICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKG1heFNwYWNpbmd0b0VkZ2UgPSAoZ3JpZCAqIChjZWlsaW5nICgobWF4U3BhY2luZ3RvRWRnZSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChtYXhTbG90U3BhY2luZ1YgPSAoZ3JpZCAqIChjZWlsaW5nICgobWF4U2xvdFNwYWNpbmdWICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKG1pbk92ZXJsYXAgPSAoZ3JpZCAqIChjZWlsaW5nICgobWluT3ZlcmxhcCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh5U2xvdE9mZnNldCA9ICh5U2xvdE9mZnNldCAqIGdyaWQpKSAodmlhVmFsdWVzID0gY2FyKHJpdmV0Q29udGFjdHMpKSAodmlhV2lkdGggPSBjYWRyKHZpYVZhbHVlcykpICh2aWFTcGFjaW5nID0gY2FkZHIodmlhVmFsdWVzKSkgKG1ldDFFbmNWaWEgPSBjYWRkZHIodmlhVmFsdWVzKSkgKG1ldDFFT0xlbmMgPSBpZih1c2VFT0xlbmMgbnRoKDQgdmlhVmFsdWVzKSBuaWwpKSAobnVtTGF5ZXJzID0gbGVuZ3RoKHJpdmV0TGF5ZXJzKSkgKG51bUNvbnRhY3RzID0gbGVuZ3RoKHJpdmV0Q29udGFjdHMpKSAobWluV2lkdGggPSAoKDIgKiBtZXQxRW5jVmlhKSArICgyICogdmlhV2lkdGgpICsgdmlhU3BhY2luZykpIGlmKG1ldDFFT0xlbmMgKG1pbkxlbmd0aCA9ICgoMiAqIG1ldDFFT0xlbmMpICsgdmlhV2lkdGgpKSAobWluTGVuZ3RoID0gKCgyICogbWV0MUVuY1ZpYSkgKyB2aWFXaWR0aCkpKSAodmlhUGl0Y2ggPSAodmlhV2lkdGggKyB2aWFTcGFjaW5nKSkgKHNsYWNrMSA9ICgyICogZ3JpZCkpIChtZXRFeHQgPSAoZ3JpZCAqIChjZWlsaW5nICgoKG1ldEV4dCArIHNsYWNrMSkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoc2xvdEV4dDEgPSAoZ3JpZCAqIChjZWlsaW5nICgoKHNsb3RFeHQgKyBzbGFjazEpICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKG1ldEV4dDFTaWRlID0gKChudW1MYXllcnMgLSAxKSAqIG1ldEV4dCkpIChyaXZldFdpZHRoID0gKHJpdmV0V2lkdGggLSAobWV0RXh0MVNpZGUgKiAyKSkpIHdoZW4oKHJpdmV0V2lkdGggPCBtaW5XaWR0aCkgKHJpdmV0V2lkdGggPSBtaW5XaWR0aCkpIChyaXZldFdpZHRoID0gKGdyaWQgKiAoY2VpbGluZyAoKHJpdmV0V2lkdGggKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAodG90YWxXaWR0aCA9IChyaXZldFdpZHRoICsgKDIgKiBtZXRFeHQxU2lkZSkpKSB3aGVuKChyaXZldExlbmd0aFggPCBtaW5MZW5ndGgpIChyaXZldExlbmd0aFggPSBtaW5MZW5ndGgpKSB3aGVuKChyaXZldExlbmd0aFkgPCBtaW5MZW5ndGgpIChyaXZldExlbmd0aFkgPSBtaW5MZW5ndGgpKSAobWluTGVuZ3RoWiA9ICh0b3RhbFdpZHRoICogcm9vdDIpKSB3aGVuKChyaXZldExlbmd0aFogPCBtaW5MZW5ndGhaKSAocml2ZXRMZW5ndGhaID0gbWluTGVuZ3RoWikpIChyaXZldExlbmd0aFggPSAoZ3JpZCAqIChjZWlsaW5nICgocml2ZXRMZW5ndGhYICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHJpdmV0TGVuZ3RoWSA9IChncmlkICogKGNlaWxpbmcgKChyaXZldExlbmd0aFkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAocml2ZXRMZW5ndGhaID0gKGdyaWQgKiAoY2VpbGluZyAoKHJpdmV0TGVuZ3RoWiAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChkYklkMCA9ICduaWwpIChkYklkMSA9ICduaWwpIHVubGVzcyhtdWx0aUxheWVyIChyaXZldExheWVycyA9IGxpc3QobGF5ZXJOYW1lKSkgKHJpdmV0Q29udGFjdHMgPSAnbmlsKSkgKHJldmVyc2VMYXllcnMgPSByZXZlcnNlKHJpdmV0TGF5ZXJzKSkgaWYobm9CZW50IHRoZW4gKGkgPSAxKSAoeDAgPSAwLjApICh5MCA9IDAuMCkgZm9yZWFjaCh0aGlzTGF5ZXIgcml2ZXRMYXllcnMgKHhsID0geDApICh5bCA9ICh5MCArICgobnVtTGF5ZXJzIC0gaSkgKiBtZXRFeHQpKSkgKHh1ID0gKHgwICsgcml2ZXRMZW5ndGhYKSkgKHl1ID0gKCh5MCArIHRvdGFsV2lkdGgpIC0gKChudW1MYXllcnMgLSBpKSAqIG1ldEV4dCkpKSAoZGJJZDAgPSBjb25zKChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KHRoaXNMYXllciAiZHJhd2luZyIpIGxpc3QoKHhsOnlsKSAoeHU6eXUpKSkgZGJJZDApKSAoaSA9IChpICsgMSkpKSAoeDAgPSAwLjApICh5MCA9IDAuMCkgKGkgPSAwKSBmb3JlYWNoKGNvbnRhY3Qgcml2ZXRDb250YWN0cyAoY29udGFjdFdpZHRoID0gY2Fkcihjb250YWN0KSkgKGNvbnRhY3RTcGFjaW5nID0gY2FkZHIoY29udGFjdCkpIChtZXRFbmNDb24gPSBjYWRkZHIoY29udGFjdCkpIChtZXRFT0xlbmMgPSBpZih1c2VFT0xlbmMgbnRoKDQgY29udGFjdCkgbmlsKSkgKGNvbnRhY3RQaXRjaCA9IChjb250YWN0V2lkdGggKyBjb250YWN0U3BhY2luZykpIChudW1Db250YWN0cyA9IChmbG9vciAoKHJpdmV0TGVuZ3RoWCAvIGNvbnRhY3RQaXRjaCkgLSBpZihtZXRFT0xlbmMgbWV0RU9MZW5jIDAuNSkpKSkgKHgwID0gaWYobWV0RU9MZW5jIG1ldEVPTGVuYyBtZXRFbmNDb24pKSAoeTAgPSAwKSBmb3IoaiAxIDIgZm9yKGsgMSBudW1Db250YWN0cyAoeGwgPSAoeDAgKyAoKGsgLSAxKSAqIGNvbnRhY3RQaXRjaCkpKSAoeWwgPSAoeTAgKyAoKG51bUxheWVycyAtIGkgLSAxKSAqIG1ldEV4dCAqICgyIC0gaikpICsgbWV0RW5jQ29uKSkgKHh1ID0gKHhsICsgY29udGFjdFdpZHRoKSkgKHl1ID0gKHlsICsgY29udGFjdFdpZHRoKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxpc3QoY2FyKGNvbnRhY3QpICJkcmF3aW5nIikgbGlzdCgoeGw6eWwpICh4dTp5dSkpKSkgKHkwID0gKCh5MCArIHRvdGFsV2lkdGgpIC0gKChudW1MYXllcnMgLSBpIC0gMSkgKiBtZXRFeHQpIC0gKCgyICogbWV0RW5jQ29uKSArIGNvbnRhY3RXaWR0aCkpKSkgKGkgPSAoaSArIDEpKSkgZWxzZSAoYmV2ZWxPZmZzZXQgPSAoZ3JpZCAqIChjZWlsaW5nICgodGFuQ2FsICogdG90YWxXaWR0aCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIGlmKChyaXZldExlbmd0aFggPCBiZXZlbE9mZnNldCkgZXJyb3IoInJpdmV0Q2xhc3M6IHJpdmV0TGVuZ3RoWCBtdXN0IGJlID49ICVMIiBiZXZlbE9mZnNldCkpIGlmKCgocml2ZXRMZW5ndGhZIDwgYmV2ZWxPZmZzZXQpICYmICFub0JlbnQpIGVycm9yKCJyaXZldENsYXNzOiByaXZldExlbmd0aFkgbXVzdCBiZSA+PSAlTCIgYmV2ZWxPZmZzZXQpKSAobE9mZnNldCA9IChncmlkICogKGNlaWxpbmcgKCgoKHJpdmV0TGVuZ3RoWiAtICgyICogYmV2ZWxPZmZzZXQpKSAvIHJvb3QyKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh1T2Zmc2V0ID0gKGdyaWQgKiAoY2VpbGluZyAoKChyaXZldExlbmd0aFogLyByb290MikgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoYXJyYXlTaXplID0gOSkgZGVjbGFyZSh0aGVCZW50UG9pbnRzW2FycmF5U2l6ZV0pIGRlY2xhcmUod29ya2luZ0FycmF5W2FycmF5U2l6ZV0pIGRlY2xhcmUoV0FbYXJyYXlTaXplXSkgKHggPSAwKSAoeSA9IDApIGZvcihpIDAgKGFycmF5U2l6ZSAtIDEpIGNvbmQoKChpID09IDApICh4ID0gMCkgKHkgPSAwKSkgKChpID09IDEpICh4ID0gKHggKyAocml2ZXRMZW5ndGhYIC0gYmV2ZWxPZmZzZXQpKSkpICgoaSA9PSAyKSAoeCA9ICh4ICsgbE9mZnNldCkpICh5ID0gKHkgLSBsT2Zmc2V0KSkpICgoaSA9PSAzKSAoeSA9ICh5IC0gKHJpdmV0TGVuZ3RoWSAtIGJldmVsT2Zmc2V0KSkpKSAoKGkgPT0gNCkgKHggPSAoeCArIHRvdGFsV2lkdGgpKSkgKChpID09IDUpICh5ID0gKGNhZHIodGhlQmVudFBvaW50c1syXSkgKyBiZXZlbE9mZnNldCkpKSAoKGkgPT0gNikgKHggPSAoY2FyKHRoZUJlbnRQb2ludHNbMV0pICsgYmV2ZWxPZmZzZXQpKSAoeSA9IHRvdGFsV2lkdGgpKSAoKGkgPT0gNykgKHggPSAwKSkgKChpID09IDgpICh4ID0gMCkgKHkgPSAwKSkpICh0aGVCZW50UG9pbnRzW2ldID0gKHg6eSkpKSAod29ya2luZ0xpc3QgPSAnbmlsKSBmb3IoaiAwIChhcnJheVNpemUgLSAxKSAod29ya2luZ0xpc3QgPSBjb25zKHRoZUJlbnRQb2ludHNbal0gd29ya2luZ0xpc3QpKSkgKGRiSWQxID0gY29ucygoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChjYXIocmV2ZXJzZUxheWVycykgImRyYXdpbmciKSB3b3JraW5nTGlzdCkgZGJJZDEpKSAoaSA9IDEpIGZvcmVhY2godGhpc0xheWVyIGNkcihyZXZlcnNlTGF5ZXJzKSAod29ya2luZ0FycmF5WzBdID0gbGlzdChjYXIodGhlQmVudFBvaW50c1swXSkgKGNhZHIodGhlQmVudFBvaW50c1swXSkgKyAoaSAqIG1ldEV4dCkpKSkgKHggPSAoKGdyaWQgKiByb3VuZCgoKChjYXIodGhlQmVudFBvaW50c1sxXSkgKyAoaSAqIHRhbkNhbCAqIG1ldEV4dCkpICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSArIChpICogZ3JpZCkpKSAod29ya2luZ0FycmF5WzFdID0gbGlzdCh4IChjYWRyKHRoZUJlbnRQb2ludHNbMV0pICsgKGkgKiBtZXRFeHQpKSkpICh5ID0gKChncmlkICogcm91bmQoKCgoY2Fkcih0aGVCZW50UG9pbnRzWzJdKSArIChpICogdGFuQ2FsICogbWV0RXh0KSkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpICsgKGkgKiBncmlkKSkpICh3b3JraW5nQXJyYXlbMl0gPSBsaXN0KChjYXIodGhlQmVudFBvaW50c1syXSkgKyAoaSAqIG1ldEV4dCkpIHkpKSAod29ya2luZ0FycmF5WzNdID0gbGlzdCgoY2FyKHRoZUJlbnRQb2ludHNbM10pICsgKGkgKiBtZXRFeHQpKSBjYWRyKHRoZUJlbnRQb2ludHNbM10pKSkgKHdvcmtpbmdBcnJheVs0XSA9IGxpc3QoKGNhcih0aGVCZW50UG9pbnRzWzRdKSAtIChpICogbWV0RXh0KSkgY2Fkcih0aGVCZW50UG9pbnRzWzRdKSkpICh5ID0gKChncmlkICogcm91bmQoKCgoY2Fkcih0aGVCZW50UG9pbnRzWzVdKSAtIChpICogdGFuQ2FsICogbWV0RXh0KSkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpIC0gKGkgKiBncmlkKSkpICh3b3JraW5nQXJyYXlbNV0gPSBsaXN0KChjYXIodGhlQmVudFBvaW50c1s1XSkgLSAoaSAqIG1ldEV4dCkpIHkpKSAoeCA9ICgoZ3JpZCAqIHJvdW5kKCgoKGNhcih0aGVCZW50UG9pbnRzWzZdKSAtIChpICogdGFuQ2FsICogbWV0RXh0KSkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpIC0gKGkgKiBncmlkKSkpICh3b3JraW5nQXJyYXlbNl0gPSBsaXN0KHggKGNhZHIodGhlQmVudFBvaW50c1s2XSkgLSAoaSAqIG1ldEV4dCkpKSkgKHdvcmtpbmdBcnJheVs3XSA9IGxpc3QoY2FyKHRoZUJlbnRQb2ludHNbN10pIChjYWRyKHRoZUJlbnRQb2ludHNbN10pIC0gKGkgKiBtZXRFeHQpKSkpICh3b3JraW5nQXJyYXlbOF0gPSBsaXN0KGNhcih0aGVCZW50UG9pbnRzWzhdKSAoY2Fkcih0aGVCZW50UG9pbnRzWzhdKSArIChpICogbWV0RXh0KSkpKSAod29ya2luZ0xpc3QgPSAnbmlsKSBmb3IoaiAwIChhcnJheVNpemUgLSAxKSAod29ya2luZ0xpc3QgPSBjb25zKHdvcmtpbmdBcnJheVtqXSB3b3JraW5nTGlzdCkpKSAoZGJJZDEgPSBjb25zKChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsaXN0KHRoaXNMYXllciAiZHJhd2luZyIpIHdvcmtpbmdMaXN0KSBkYklkMSkpIGkrKykgKGkgPSAxKSAocmV2ZXJzZUNvbnRhY3RzID0gcmV2ZXJzZShyaXZldENvbnRhY3RzKSkgZm9yZWFjaCh0aGlzQ29udGFjdCByZXZlcnNlQ29udGFjdHMgKHRoaXNMYXllciA9IGNhcih0aGlzQ29udGFjdCkpIChjb250YWN0V2lkdGggPSBjYWRyKHRoaXNDb250YWN0KSkgKGNvbnRhY3RTcGFjaW5nID0gKGNhZGRyKHRoaXNDb250YWN0KSArIGdyaWQpKSAobWV0RW5jQ29uID0gY2FkZGRyKHRoaXNDb250YWN0KSkgKG1ldEVPTGVuYyA9IGlmKHVzZUVPTGVuYyBudGgoNCB0aGlzQ29udGFjdCkgbmlsKSkgZm9yKGogMSA2IGNvbmQoKChqID09IDEpICh4c3RhcnQgPSAoY2FyKHRoZUJlbnRQb2ludHNbMF0pICsgaWYobWV0RU9MZW5jIG1ldEVPTGVuYyBtZXRFbmNDb24pKSkgKHhlbmQgPSAoY2FyKHRoZUJlbnRQb2ludHNbMV0pIC0gbWV0RW5jQ29uKSkgKHlzdGFydCA9IChjYWRyKHRoZUJlbnRQb2ludHNbMF0pICsgKGkgKiBtZXRFeHQpICsgbWV0RW5jQ29uKSkgKHllbmQgPSB5c3RhcnQpICh4c3RlcCA9IChjb250YWN0V2lkdGggKyBjb250YWN0U3BhY2luZykpICh5c3RlcCA9IDApKSAoKGogPT0gMikgKHhzdGFydCA9IChjYXIodGhlQmVudFBvaW50c1sxXSkgKyAoaSAqIHRhbkNhbCAqIG1ldEV4dCkgKyAoaSAqIG1ldEV4dCkgKyAobWV0RW5jQ29uIC8gcm9vdDIpICsgKDIgKiBncmlkKSkpICh4ZW5kID0gKGNhcih0aGVCZW50UG9pbnRzWzJdKSArIChpICogbWV0RXh0KSArIChtZXRFbmNDb24gLyByb290MikgKyAoMiAqIGdyaWQpKSkgKHlzdGFydCA9IChjYWRyKHRoZUJlbnRQb2ludHNbMV0pICsgKG1ldEVuY0NvbiAvIHJvb3QyKSkpICh5ZW5kID0gKGNhZHIodGhlQmVudFBvaW50c1syXSkgKyAoaSAqIHRhbkNhbCAqIG1ldEV4dCkgKyAobWV0RW5jQ29uIC8gcm9vdDIpKSkgKHhzdGVwID0gKCgoY29udGFjdFdpZHRoICogcm9vdDIpICsgY29udGFjdFNwYWNpbmcgKyBncmlkKSAvIHJvb3QyKSkgKHlzdGVwID0gKC0geHN0ZXApKSkgKChqID09IDMpICh4c3RhcnQgPSAoY2FyKHRoZUJlbnRQb2ludHNbMl0pICsgKGkgKiBtZXRFeHQpICsgbWV0RW5jQ29uKSkgKHhlbmQgPSB4c3RhcnQpICh5c3RhcnQgPSAoY2Fkcih0aGVCZW50UG9pbnRzWzJdKSAtIChjb250YWN0U3BhY2luZyArIGNvbnRhY3RXaWR0aCkpKSAoeWVuZCA9IChjYWRyKHRoZUJlbnRQb2ludHNbM10pICsgKGNvbnRhY3RTcGFjaW5nICsgY29udGFjdFdpZHRoKSkpICh4c3RlcCA9IDApICh5c3RlcCA9ICgtIChjb250YWN0V2lkdGggKyBjb250YWN0U3BhY2luZykpKSkgKChqID09IDQpICh4c3RhcnQgPSAoY2FyKHRoZUJlbnRQb2ludHNbNF0pIC0gKGNvbnRhY3RXaWR0aCArIChpICogbWV0RXh0KSArIG1ldEVuY0NvbikpKSAoeGVuZCA9IHhzdGFydCkgKHlzdGFydCA9IChjYWRyKHRoZUJlbnRQb2ludHNbNF0pICsgaWYobWV0RU9MZW5jIG1ldEVPTGVuYyBtZXRFbmNDb24pKSkgKHllbmQgPSAoY2Fkcih0aGVCZW50UG9pbnRzWzVdKSAtICgoaSAqIHRhbkNhbCAqIG1ldEV4dCkgKyBjb250YWN0U3BhY2luZyArIGNvbnRhY3RXaWR0aCkpKSAoeHN0ZXAgPSAwKSAoeXN0ZXAgPSAoY29udGFjdFdpZHRoICsgY29udGFjdFNwYWNpbmcpKSkgKChqID09IDUpICh4c3RhcnQgPSAoY2FyKHRoZUJlbnRQb2ludHNbNV0pIC0gKChpICogbWV0RXh0ICogKDEgKyB0YW5DYWwpKSArICgyICogKChtZXRFbmNDb24gLyByb290MikgKyBjb250YWN0V2lkdGgpKSArICg0ICogZ3JpZCkpKSkgKHhlbmQgPSAoY2FyKHRoZUJlbnRQb2ludHNbNl0pIC0gKDQgKiBncmlkKSkpICh5c3RhcnQgPSBjYWRyKHRoZUJlbnRQb2ludHNbNV0pKSAoeWVuZCA9IChjYWRyKHRoZUJlbnRQb2ludHNbNl0pIC0gKCgoaSAqIG1ldEV4dCkgKyBtZXRFbmNDb24gKyAoY29udGFjdFdpZHRoICogcm9vdDIpKSAqIHJvb3QyKSkpICh4c3RlcCA9ICgoLSAoKGNvbnRhY3RXaWR0aCAqIHJvb3QyKSArIGNvbnRhY3RTcGFjaW5nICsgZ3JpZCkpIC8gcm9vdDIpKSAoeXN0ZXAgPSAoLSB4c3RlcCkpKSAoKGogPT0gNikgKHhzdGFydCA9IChjYXIodGhlQmVudFBvaW50c1s2XSkgLSAoY29udGFjdFNwYWNpbmcgKyBjb250YWN0V2lkdGggKyAoaSAqIHRhbkNhbCAqIG1ldEV4dCkpKSkgKHhlbmQgPSAoY2FyKHRoZUJlbnRQb2ludHNbN10pICsgaWYobWV0RU9MZW5jIG1ldEVPTGVuYyBtZXRFbmNDb24pKSkgKHlzdGFydCA9IChjYWRyKHRoZUJlbnRQb2ludHNbNl0pIC0gKGNvbnRhY3RXaWR0aCArIChpICogbWV0RXh0KSArIG1ldEVuY0NvbikpKSAoeWVuZCA9IHlzdGFydCkgKHhzdGVwID0gKC0gKGNvbnRhY3RXaWR0aCArIGNvbnRhY3RTcGFjaW5nKSkpICh5c3RlcCA9IDApKSkgKHggPSB4c3RhcnQpICh5ID0geXN0YXJ0KSB3aGlsZSgoKChqIDw9IDMpICYmICh4IDw9IHhlbmQpICYmICh5ID49IHllbmQpKSB8fCAoKGogPiAzKSAmJiAoeCA+PSB4ZW5kKSAmJiAoeSA8PSB5ZW5kKSkpICh4RHJhdyA9IChncmlkICogKGNlaWxpbmcgKCh4ICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHlEcmF3ID0gKGdyaWQgKiAoY2VpbGluZyAoKHkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCh0aGlzTGF5ZXIgImRyYXdpbmciKSBsaXN0KCh4RHJhdzp5RHJhdykgKCh4RHJhdyArIGNvbnRhY3RXaWR0aCk6KHlEcmF3ICsgY29udGFjdFdpZHRoKSkpKSAoeCA9ICh4ICsgeHN0ZXApKSAoeSA9ICh5ICsgeXN0ZXApKSkpIGkrKykpIHdoZW4oKHRvdGFsV2lkdGggPj0gbWluUml2ZXRXaWR0aCkgKHRvbGVyYW5jZSA9IDUpIChzbG90UGl0Y2hWID0gKG1pblNsb3RXaWR0aCArIG1heFNsb3RTcGFjaW5nVikpIChudW1Sb3dzID0gKGNlaWxpbmcgKCgodG90YWxXaWR0aCAtICgyICogbWF4U3BhY2luZ3RvRWRnZSkpICsgbWF4U2xvdFNwYWNpbmdWICsgdG9sZXJhbmNlKSAvIHNsb3RQaXRjaFYpKSkgKHNsb3RTcGFjaW5nVk4gPSAoKHRvdGFsV2lkdGggLSAobnVtUm93cyAqIG1pblNsb3RXaWR0aCkpIC8gKG51bVJvd3MgKyAxKSkpIChzbG90U3BhY2luZ1YgPSAoZ3JpZCAqIChmbG9vciAoKHNsb3RTcGFjaW5nVk4gKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSB3aGVuKCFuZXdBbGcgKG1pblJlcUxlbmd0aFggPSAobWF4U3BhY2luZ3RvRWRnZSArIChyaXZldExlbmd0aFggKiBtaW5TbG90TGVuZ3RoUCkpKSAoc2xvdFBpdGNoSCA9IChtYXhTbG90TGVuZ3RoICsgbWF4U2xvdFNwYWNpbmdIKSkgKG51bVNsb3RzID0gKGZsb29yICgocml2ZXRMZW5ndGhYIC8gc2xvdFBpdGNoSCkgKyAxKSkpIChzbG90TGVuZ3RoID0gKGdyaWQgKiAoZmxvb3IgKCgoKHJpdmV0TGVuZ3RoWCAtICgobnVtU2xvdHMgLSAxKSAqIG1heFNsb3RTcGFjaW5nSCkgLSBtYXhTcGFjaW5ndG9FZGdlKSAvIG51bVNsb3RzKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChzbG90UGl0Y2hIID0gKHNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSB3aGVuKChyaXZldExlbmd0aFggPCBtaW5CdXNMZW5ndGgpIChtYXhTbG90TGVuZ3RoID0gKHJpdmV0TGVuZ3RoWCAqIG1pblNsb3RMZW5ndGhQKSkpIHdoZW4oKChudW1TbG90cyA+IDEpICYmIChzbG90TGVuZ3RoIDwgbWluU2xvdExlbmd0aCkpIChudW1TbG90cyA9IChudW1TbG90cyAtIDEpKSAoc2xvdExlbmd0aCA9IChzbG90TGVuZ3RoICogMikpIChzbG90UGl0Y2hIID0gKHNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSkpIGlmKG5vQmVudCB0aGVuIGlmKG5ld0FsZyB0aGVuIGlmKCFzdGFuZEFsb25lIChtYXhTcGFjaW5ndG9FZGdlID0gMC4wKSkgZGVjbGFyZShzdGFnZ2VyTGVuZ3RoWzJdKSBkZWNsYXJlKHNsb3RQaXRjaEhbMl0pIGRlY2xhcmUoc2xvdExlbmd0aFsyXSkgKG1heFNwYWNpbmd0b0VkZ2VCID0gbWF4U3BhY2luZ3RvRWRnZSkgKG1heFNwYWNpbmd0b0VkZ2VFID0gbWF4U3BhY2luZ3RvRWRnZSkgKHhzdGFnZ2VyID0gbWluT3ZlcmxhcCkgY29uZCgoKHJpdmV0TGVuZ3RoWCA8IG1pbkJ1c0xlbmd0aCkgKG51bVNsb3RzID0gMSkgKHNsb3RMZW5ndGhbMF0gPSAocml2ZXRMZW5ndGhYICogbWluU2xvdExlbmd0aFApKSAobWF4U3BhY2luZ3RvRWRnZUIgPSAoKHJpdmV0TGVuZ3RoWCAtIHNsb3RMZW5ndGhbMF0pIC8gMikpIGlmKChtYXhTcGFjaW5ndG9FZGdlQiA+IG1heFNwYWNpbmd0b0VkZ2UpIHRoZW4gKHNsb3RMZW5ndGhbMF0gPSByaXZldExlbmd0aFgpIChtYXhTcGFjaW5ndG9FZGdlQiA9IG1heFNwYWNpbmd0b0VkZ2UpKSAobWF4U3BhY2luZ3RvRWRnZUUgPSBtYXhTcGFjaW5ndG9FZGdlQikgKHNsb3RQaXRjaEhbMF0gPSBzbG90TGVuZ3RoWzBdKSAoc2xvdFBpdGNoSFsxXSA9IHNsb3RMZW5ndGhbMF0pIChzbG90TGVuZ3RoWzFdID0gc2xvdExlbmd0aFswXSkpIChyYW1UZWNoIChzbG90UGl0Y2hIWzBdID0gKG1pblNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSAoZWZmZWN0aXZlTGVuZ3RoID0gKHJpdmV0TGVuZ3RoWCAtICgyICogbWF4U3BhY2luZ3RvRWRnZSkpKSAobnVtU2xvdHMgPSAoY2VpbGluZyAoKGVmZmVjdGl2ZUxlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkgLyBzbG90UGl0Y2hIWzBdKSkpIChzbG90TGVuZ3RoWzBdID0gKGZsb29yICgoZWZmZWN0aXZlTGVuZ3RoIC0gKChudW1TbG90cyAtIDEpICogbWF4U2xvdFNwYWNpbmdIKSkgLyBudW1TbG90cykpKSAoc2xvdFBpdGNoSFswXSA9IChzbG90TGVuZ3RoWzBdICsgbWF4U2xvdFNwYWNpbmdIKSkgaWYoKChudW1TbG90cyA+IDEpICYmIChzbG90TGVuZ3RoWzBdIDwgbWluU2xvdExlbmd0aCkpIHRoZW4gKG51bVNsb3RzID0gKG51bVNsb3RzIC0gMSkpIChzbG90TGVuZ3RoWzBdID0gKGNlaWxpbmcgKChlZmZlY3RpdmVMZW5ndGggLSAoKG51bVNsb3RzIC0gMSkgKiBtYXhTbG90U3BhY2luZ0gpKSAvIG51bVNsb3RzKSkpIChzbG90UGl0Y2hIWzBdID0gKHNsb3RMZW5ndGhbMF0gKyBtYXhTbG90U3BhY2luZ0gpKSkgKHNsb3RMZW5ndGhbMV0gPSBzbG90TGVuZ3RoWzBdKSAoc2xvdFBpdGNoSFsxXSA9IHNsb3RMZW5ndGhbMF0pIChtYXhTcGFjaW5ndG9FZGdlRSA9IChyaXZldExlbmd0aFggLSAobnVtU2xvdHMgKiBzbG90TGVuZ3RoWzBdKSAtICgobnVtU2xvdHMgLSAxKSAqIG1heFNsb3RTcGFjaW5nSCkgLSBtYXhTcGFjaW5ndG9FZGdlQikpIChzbG90TGVuRW5kID0gKHNsb3RMZW5ndGhbMF0gLSB4c3RhZ2dlcikpIChtaW5TcGFjZVRvRWRnZSA9ICgobGVuZ3RoKHJpdmV0TGF5ZXJzKSAqIHNsb3RFeHQxKSArIHNsb3RFeHQxKSkgKHNsb3RMZW5EaWZmID0gKHNsb3RMZW5ndGhbMF0gLSBzbG90TGVuRW5kKSkgaWYoKHNsb3RMZW5FbmQgPCBtaW5TbG90TGVuZ3RoKSB0aGVuIChtYXhTcGFjaW5ndG9FZGdlQiA9IG1heChtaW5TcGFjZVRvRWRnZSAobWF4U3BhY2luZ3RvRWRnZUIgLSAoc2xvdExlbkRpZmYgLyAyKSkpKSAobWF4U3BhY2luZ3RvRWRnZUUgPSBtYXgobWluU3BhY2VUb0VkZ2UgKG1heFNwYWNpbmd0b0VkZ2VFIC0gKHNsb3RMZW5EaWZmIC8gMikpKSkpKSAodCBmb3IoaSAwIDEgKHN0YWdnZXJMZW5ndGhbaV0gPSAocml2ZXRMZW5ndGhYIC0gKDIgKiB4c3RhZ2dlciAqIG1vZChpIDIpKSkpIChzbG90UGl0Y2hIW2ldID0gKG1pblNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSAoZWZmZWN0aXZlTGVuZ3RoID0gKHN0YWdnZXJMZW5ndGhbaV0gLSAoMiAqIG1heFNwYWNpbmd0b0VkZ2UpKSkgKG51bVNsb3RzID0gKGNlaWxpbmcgKChlZmZlY3RpdmVMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpIC8gc2xvdFBpdGNoSFtpXSkpKSAoc2xvdExlbmd0aFtpXSA9IChmbG9vciAoKGVmZmVjdGl2ZUxlbmd0aCAtICgobnVtU2xvdHMgLSAxKSAqIG1heFNsb3RTcGFjaW5nSCkpIC8gbnVtU2xvdHMpKSkgKHNsb3RQaXRjaEhbaV0gPSAoc2xvdExlbmd0aFtpXSArIG1heFNsb3RTcGFjaW5nSCkpIGlmKCgobnVtU2xvdHMgPiAxKSAmJiAoc2xvdExlbmd0aFtpXSA8IG1pblNsb3RMZW5ndGgpKSB0aGVuIChudW1TbG90cyA9IChudW1TbG90cyAtIDEpKSAoc2xvdExlbmd0aFtpXSA9IChjZWlsaW5nICgoZWZmZWN0aXZlTGVuZ3RoIC0gKChudW1TbG90cyAtIDEpICogbWF4U2xvdFNwYWNpbmdIKSkgLyBudW1TbG90cykpKSAoc2xvdFBpdGNoSFtpXSA9IChzbG90TGVuZ3RoW2ldICsgbWF4U2xvdFNwYWNpbmdIKSkpKSkpIChpID0gMCkgZm9yZWFjaCh0aGlzTGF5ZXIgcmV2ZXJzZUxheWVycyAoY3V0TGF5ZXIgPSAnbmlsKSAoeWwgPSAoKHNsb3RTcGFjaW5nViAtIChpICogc2xvdEV4dDEpKSArIHlTbG90T2Zmc2V0KSkgKHl1ID0gKHlsICsgbWluU2xvdFdpZHRoICsgKDIgKiBpICogc2xvdEV4dDEpKSkgKGR5ID0gKG1pblNsb3RXaWR0aCArIHNsb3RTcGFjaW5nVikpIGZvcihqIDAgKG51bVJvd3MgLSAxKSBpZihzdGFuZEFsb25lIHRoZW4gaWYoKCFyYW1UZWNoICYmIChzdGFnZ2VyTGVuZ3RoW21vZChqIDIpXSA+IG1pbkJ1c0xlbmd0aCkpIHRoZW4gKHhsID0gKChtYXhTcGFjaW5ndG9FZGdlQiAtIChpICogc2xvdEV4dDEpKSArICh4c3RhZ2dlciAqIG1vZChqIDIpKSkpIGVsc2UgKHhsID0gKG1heFNwYWNpbmd0b0VkZ2VCIC0gKGkgKiBzbG90RXh0MSkpKSkgZWxzZSAoeGwgPSAoMC4wIC0gKGkgKiBzbG90RXh0MSkpKSkgKHh1ID0gKHhsICsgc2xvdExlbmd0aFttb2QoaiAyKV0gKyAoMiAqIGkgKiBzbG90RXh0MSkpKSAoZHggPSBzbG90UGl0Y2hIW21vZChqIDIpXSkgKHlsID0gKGdyaWQgKiAoY2VpbGluZyAoKHlsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHl1ID0gKGdyaWQgKiAoY2VpbGluZyAoKHl1ICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgZm9yKGsgMSBudW1TbG90cyAoeGwgPSAoZ3JpZCAqIChjZWlsaW5nICgoeGwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeHUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeHUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSBpZigoIXN0YW5kQWxvbmUgJiYgKGsgPT0gbnVtU2xvdHMpKSAoeHUgPSByaXZldExlbmd0aFgpKSBpZigocmFtVGVjaCAmJiAobW9kKGogMikgPT0gMSkgJiYgKGsgPT0gMSkpICh4dSA9ICh4dSArIHhzdGFnZ2VyKSkpIGlmKChyYW1UZWNoICYmIHN0YW5kQWxvbmUgJiYgKGsgPT0gbnVtU2xvdHMpKSAoeHUgPSAoKHJpdmV0TGVuZ3RoWCAtIG1heFNwYWNpbmd0b0VkZ2VFKSArIChpICogc2xvdEV4dDEpKSkpIChkYklkeTAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgJygieTAiICJkcmF3aW5nIikgbGlzdCgoeGw6eWwpICh4dTp5dSkpKSkgKGN1dExheWVyID0gY29ucyhkYklkeTAgY3V0TGF5ZXIpKSAoeGwgPSAoKHh1ICsgbWF4U2xvdFNwYWNpbmdIKSAtICgyICogaSAqIHNsb3RFeHQxKSkpICh4dSA9ICh4bCArIHNsb3RMZW5ndGhbbW9kKGogMildICsgKDIgKiBpICogc2xvdEV4dDEpKSkpICh5bCA9ICh5bCArIGR5KSkgKHl1ID0gKHl1ICsgZHkpKSkgaSsrIChkYklkTWV0ID0gbGlzdChudGhlbGVtKGkgZGJJZDApKSkgKGxheWVyQW5kTm90IHRjQ2VsbFZpZXcgdGhpc0xheWVyIGRiSWRNZXQgY3V0TGF5ZXIpIGZvcmVhY2godGhpc09iamVjdCBkYklkTWV0IHdoZW4odGhpc09iamVjdCAoZGJEZWxldGVPYmplY3QgdGhpc09iamVjdCkpKSBmb3JlYWNoKHRoaXNPYmplY3QgY3V0TGF5ZXIgKGRiRGVsZXRlT2JqZWN0IHRoaXNPYmplY3QpKSkgZWxzZSAoaSA9IDApIGZvcmVhY2godGhpc0xheWVyIHJldmVyc2VMYXllcnMgKGN1dExheWVyID0gJ25pbCkgKHhzdGFnZ2VyID0gbWluT3ZlcmxhcCkgKHlsID0gKChzbG90U3BhY2luZ1YgLSAoaSAqIHNsb3RFeHQxKSkgKyB5U2xvdE9mZnNldCkpICh5dSA9ICh5bCArIG1pblNsb3RXaWR0aCArICgyICogaSAqIHNsb3RFeHQxKSkpIChkeCA9IHNsb3RQaXRjaEgpIChkeSA9IChtaW5TbG90V2lkdGggKyBzbG90U3BhY2luZ1YpKSBmb3IoaiAxIG51bVJvd3MgKHhsID0gKChtYXhTcGFjaW5ndG9FZGdlIC8gMikgLSAoaSAqIHNsb3RFeHQxKSkpICh4dSA9ICh4bCArIHNsb3RMZW5ndGggKyAoMiAqIGkgKiBzbG90RXh0MSkpKSB3aGVuKChudW1TbG90cyA+IDEpIGlmKCh4c3RhZ2dlciA+IDApIHRoZW4gKHhzdGFnZ2VyID0gMCkgZWxzZSAoeHN0YWdnZXIgPSBtaW5PdmVybGFwKSkpIGZvcihrIDEgbnVtU2xvdHMgd2hlbigobnVtU2xvdHMgPiAxKSBjb25kKCgoayA9PSAxKSAoeGwgPSAoeGwgKyB4c3RhZ2dlcikpICh4dSA9ICh4dSArIHhzdGFnZ2VyKSkpICgoayA9PSBudW1TbG90cykgKHh1ID0gKHh1IC0geHN0YWdnZXIpKSkpKSBjb25kKChzdGFuZEFsb25lIChkcmF3U2xvdCA9ICgobnVtU2xvdHMgPT0gMSkgfHwgKCgoeHUgLSB4bCkgPj0gbWluU2xvdExlbmd0aCkgJiYgKHJpdmV0TGVuZ3RoWCA+PSBtaW5SZXFMZW5ndGhYKSkpKSkgKCFzdGFuZEFsb25lIHdoZW4oKGsgPT0gbnVtU2xvdHMpICh4dSA9IHJpdmV0TGVuZ3RoWCkpIChkcmF3U2xvdCA9IChyaXZldExlbmd0aFggPj0gbWluUmVxTGVuZ3RoWCkpKSkgd2hlbihkcmF3U2xvdCAoeGwgPSAoZ3JpZCAqIChjZWlsaW5nICgoeGwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeHUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeHUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeWwgPSAoZ3JpZCAqIChjZWlsaW5nICgoeWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeXUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeXUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoZGJJZHkwID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3ICcoInkwIiAiZHJhd2luZyIpIGxpc3QoKHhsOnlsKSAoeHU6eXUpKSkpIChjdXRMYXllciA9IGNvbnMoZGJJZHkwIGN1dExheWVyKSkgKHhsID0gKHhsICsgZHgpKSAoeHUgPSAoeHUgKyBkeCkpKSkgKHlsID0gKHlsICsgZHkpKSAoeXUgPSAoeXUgKyBkeSkpKSAoaSA9IChpICsgMSkpIChkYklkTWV0ID0gbGlzdChudGhlbGVtKGkgZGJJZDApKSkgKGxheWVyQW5kTm90IHRjQ2VsbFZpZXcgdGhpc0xheWVyIGRiSWRNZXQgY3V0TGF5ZXIpIGZvcmVhY2godGhpc09iamVjdCBkYklkTWV0IHdoZW4odGhpc09iamVjdCAoZGJEZWxldGVPYmplY3QgdGhpc09iamVjdCkpKSBmb3JlYWNoKHRoaXNPYmplY3QgY3V0TGF5ZXIgKGRiRGVsZXRlT2JqZWN0IHRoaXNPYmplY3QpKSkpIGVsc2UgKGkgPSAwKSAoYWxsb3dhbmNlID0gKDUgKiBncmlkKSkgKGRiSWQxID0gcmV2ZXJzZShkYklkMSkpIHdoZW4obmV3QWxnIChYMCA9ICgocml2ZXRMZW5ndGhYIC0gYmV2ZWxPZmZzZXQpICsgKHNsb3RTcGFjaW5nViAqIHRhbkNhbCkpKSBpZihzdGFuZEFsb25lIHRoZW4gKG1heFNwYWNpbmd0b0VkZ2UgPSBtaW4obWF4U3BhY2luZ3RvRWRnZSBYMCkpIGVsc2UgKG1heFNwYWNpbmd0b0VkZ2UgPSAwLjApKSkgZm9yZWFjaCh0aGlzTGF5ZXIgcmV2ZXJzZUxheWVycyAoZGJJZHkwID0gJ25pbCkgKGRiSWRNZXQgPSAnbmlsKSAoc2xvdENhbFUgPSAobWluU2xvdFdpZHRoICsgKDIgKiBpICogc2xvdEV4dDEpKSkgKHJpdmV0TGVuZ3RoVCA9IChyaXZldExlbmd0aFggKyByaXZldExlbmd0aFkgKyByaXZldExlbmd0aFopKSBmb3IoaiAwIChudW1Sb3dzIC0gMSkgKHNsb3RDYWxMID0gKHNsb3RTcGFjaW5nViArIChqICogKHNsb3RTcGFjaW5nViArIG1pblNsb3RXaWR0aCkpKSkgKGN1cnJlbnRPZmZzZXQgPSAoYmV2ZWxPZmZzZXQgLSAodGFuQ2FsICogc2xvdENhbEwpKSkgKGN1cnJlbnRPZmZzZXQgPSAoZ3JpZCAqIChjZWlsaW5nICgoY3VycmVudE9mZnNldCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChjdXJyZW50TGVuZ3RoWCA9IChyaXZldExlbmd0aFggLSBjdXJyZW50T2Zmc2V0KSkgKGN1cnJlbnRMZW5ndGhaID0gKHJpdmV0TGVuZ3RoWiAtICgyICogY3VycmVudE9mZnNldCkpKSAoY3VycmVudExlbmd0aFkgPSAocml2ZXRMZW5ndGhZIC0gY3VycmVudE9mZnNldCkpIChjdXJyZW50TGVuZ3RoVCA9IChjdXJyZW50TGVuZ3RoWCArIGN1cnJlbnRMZW5ndGhZICsgY3VycmVudExlbmd0aFopKSBpZihuZXdBbGcgdGhlbiAoc3RhZ2dlckxlbmd0aCA9IChjdXJyZW50TGVuZ3RoVCAtICgyICogbWluT3ZlcmxhcCAqIG1vZChqIDIpKSkpIGlmKChzdGFnZ2VyTGVuZ3RoIDwgbWluQnVzTGVuZ3RoKSB0aGVuIChudW1TbG90cyA9IDEpIChzbG90TGVuZ3RoID0gKGN1cnJlbnRMZW5ndGhUIC0gKDIgKiBtYXhTcGFjaW5ndG9FZGdlKSkpIChzbG90UGl0Y2hIID0gc2xvdExlbmd0aCkgZWxzZSAoc2xvdFBpdGNoSCA9IChtaW5TbG90TGVuZ3RoICsgbWF4U2xvdFNwYWNpbmdIKSkgKGVmZmVjdGl2ZUxlbmd0aCA9IChzdGFnZ2VyTGVuZ3RoIC0gKDIgKiBtYXhTcGFjaW5ndG9FZGdlKSkpIChudW1TbG90cyA9IChjZWlsaW5nICgoZWZmZWN0aXZlTGVuZ3RoICsgbWF4U2xvdFNwYWNpbmdIKSAvIHNsb3RQaXRjaEgpKSkgKHNsb3RMZW5ndGggPSAoZmxvb3IgKChlZmZlY3RpdmVMZW5ndGggLSAoKG51bVNsb3RzIC0gMSkgKiBtYXhTbG90U3BhY2luZ0gpKSAvIG51bVNsb3RzKSkpIChzbG90UGl0Y2hIID0gKHNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSkgd2hpbGUoKChudW1TbG90cyA+IDEpICYmIChzbG90TGVuZ3RoIDwgbWluU2xvdExlbmd0aCkpIChudW1TbG90cyA9IChudW1TbG90cyAtIDEpKSAoc2xvdExlbmd0aCA9IChjZWlsaW5nICgoZWZmZWN0aXZlTGVuZ3RoIC0gKChudW1TbG90cyAtIDEpICogbWF4U2xvdFNwYWNpbmdIKSkgLyBudW1TbG90cykpKSAoc2xvdFBpdGNoSCA9IChzbG90TGVuZ3RoICsgbWF4U2xvdFNwYWNpbmdIKSkpIGlmKCgoIXJhbVRlY2ggJiYgc3RhbmRBbG9uZSkgJiYgKHN0YWdnZXJMZW5ndGggPiBtaW5CdXNMZW5ndGgpKSB0aGVuICh4cyA9IChtYXhTcGFjaW5ndG9FZGdlICsgKG1pbk92ZXJsYXAgKiBtb2QoaiAyKSkpKSBlbHNlICh4cyA9IG1heFNwYWNpbmd0b0VkZ2UpKSBlbHNlIChzbG90UGl0Y2hIID0gKG1heFNsb3RMZW5ndGggKyBtYXhTbG90U3BhY2luZ0gpKSAobnVtU2xvdHMgPSAoY2VpbGluZyAoY3VycmVudExlbmd0aFQgLyBzbG90UGl0Y2hIKSkpIChzbG90TGVuZ3RoID0gKGNlaWxpbmcgKChjdXJyZW50TGVuZ3RoVCAtIChudW1TbG90cyAqIG1heFNsb3RTcGFjaW5nSCkpIC8gbnVtU2xvdHMpKSkgKHNsb3RQaXRjaEggPSAoc2xvdExlbmd0aCArIG1heFNsb3RTcGFjaW5nSCkpICh4cyA9ICgobWF4U3BhY2luZ3RvRWRnZSArIChtaW5PdmVybGFwICogbW9kKGogMikpKSAtICg0ICogZ3JpZCkpKSkgKHgxID0gKChyaXZldExlbmd0aFggLSBiZXZlbE9mZnNldCkgKyAodGFuQ2FsICogc2xvdENhbEwpKSkgKHgxID0gKGdyaWQgKiAoY2VpbGluZyAoKHgxICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHkxID0gc2xvdENhbEwpICh4MiA9ICh4MSArICgoKHJpdmV0TGVuZ3RoWiAtICgyICogYmV2ZWxPZmZzZXQpKSArICgyICogdGFuQ2FsICogc2xvdENhbEwpKSAvIHJvb3QyKSkpICh5MiA9ICh5MSAtICgoKHJpdmV0TGVuZ3RoWiAtICgyICogYmV2ZWxPZmZzZXQpKSArICgyICogdGFuQ2FsICogc2xvdENhbEwpKSAvIHJvb3QyKSkpICh4MiA9IChncmlkICogKGNlaWxpbmcgKCh4MiAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh5MiA9IChncmlkICogKGNlaWxpbmcgKCh5MiAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh5cyA9IHNsb3RDYWxMKSAoeGUgPSAoeHMgKyBzbG90TGVuZ3RoKSkgY29uZCgoKHhlIDwgeDEpICh5ZSA9IHNsb3RDYWxMKSkgKCgoeHMgPiB4MSkgJiYgKHNsb3RMZW5ndGggPCBjdXJyZW50TGVuZ3RoWikpICh4cyA9ICh4MSArIGdyaWQpKSAoeGUgPSAoeHMgKyAoc2xvdExlbmd0aCAvIHJvb3QyKSkpICh5cyA9ICh5MSAtIGdyaWQpKSAoeWUgPSAoeXMgLSAoc2xvdExlbmd0aCAvIHJvb3QyKSkpKSAoKCh4cyA+IHgxKSAmJiAoc2xvdExlbmd0aCA+IGN1cnJlbnRMZW5ndGhaKSkgKHhzID0gKHgxICsgZ3JpZCkpICh5cyA9ICh5MSAtIGdyaWQpKSAob2Zmc2V0Q2FsID0gKChjdXJyZW50TGVuZ3RoWiAvIHJvb3QyKSArIChzbG90TGVuZ3RoIC0gY3VycmVudExlbmd0aFopKSkgKHhlID0geDIpICh5ZSA9ICh5cyAtIG9mZnNldENhbCkpKSAoKCh4ZSA+IHgxKSAmJiAoKHhlIC0geDEpIDwgY3VycmVudExlbmd0aFopKSAob2Zmc2V0Q2FsID0gKCh4ZSAtIHgxKSAvIHJvb3QyKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeGUgPSAoeDEgKyBvZmZzZXRDYWwpKSAoeWUgPSAoeTEgLSBvZmZzZXRDYWwpKSkgKCgoeGUgPiB4MSkgJiYgKCh4ZSAtIHgxKSA+IGN1cnJlbnRMZW5ndGhaKSkgKHhlID0geDIpICh5ZSA9ICh5MiAtIChzbG90TGVuZ3RoIC0gKCh4MSAtIHhzKSArIGN1cnJlbnRMZW5ndGhaKSkpKSkpIGZvcihrIDAgKG51bVNsb3RzIC0gMSkgKHdvcmtpbmdMaXN0ID0gJ25pbCkgKG51bVBvaW50cyA9IDApIChmaXJzdFNsb3RFeHQgPSBuaWwpIGlmKG5ld0FsZyB0aGVuIGlmKChrID09IChudW1TbG90cyAtIDEpKSB0aGVuICh4ZSA9IHgyKSAoeWUgPSAoLSAoKGxPZmZzZXQgKyByaXZldExlbmd0aFkpIC0gYmV2ZWxPZmZzZXQpKSkpIGlmKHN0YW5kQWxvbmUgdGhlbiAob2Zmc2V0Q2FsID0gKC0gKChsT2Zmc2V0ICsgcml2ZXRMZW5ndGhZKSAtIGJldmVsT2Zmc2V0KSkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgob2Zmc2V0Q2FsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgaWYocmFtVGVjaCB0aGVuIGlmKChrID09IChudW1TbG90cyAtIDEpKSAoeWUgPSAob2Zmc2V0Q2FsICsgbWF4U3BhY2luZ3RvRWRnZSkpKSBlbHNlIGlmKChzdGFnZ2VyTGVuZ3RoIDwgbWluQnVzTGVuZ3RoKSB0aGVuICh5ZSA9IChvZmZzZXRDYWwgKyBtYXhTcGFjaW5ndG9FZGdlKSkgZWxzZSB3aGVuKChrID09IChudW1TbG90cyAtIDEpKSAoeWUgPSAob2Zmc2V0Q2FsICsgbWF4U3BhY2luZ3RvRWRnZSArIChtaW5PdmVybGFwICogbW9kKGogMikpKSkpKSkgZWxzZSBpZigoayA9PSAwKSAoZmlyc3RTbG90RXh0ID0gdCkpKSBlbHNlIGlmKHN0YW5kQWxvbmUgdGhlbiAob2Zmc2V0Q2FsID0gKC0gKChsT2Zmc2V0ICsgcml2ZXRMZW5ndGhZKSAtIGJldmVsT2Zmc2V0KSkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgob2Zmc2V0Q2FsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgd2hlbigoeWUgPCAob2Zmc2V0Q2FsICsgYWxsb3dhbmNlKSkgKHllID0gKG9mZnNldENhbCArIG1heFNwYWNpbmd0b0VkZ2UgKyBhbGxvd2FuY2UpKSB3aGVuKCgoeXMgLSB5ZSkgPCBtaW5TbG90TGVuZ3RoKSAoeXMgPSAoMiAqIG9mZnNldENhbCkpICh5ZSA9IHlzKSkpIGVsc2Ugd2hlbigoayA9PSAwKSAoZmlyc3RTbG90RXh0ID0gdCkpIHdoZW4oKGsgPT0gKG51bVNsb3RzIC0gMSkpICh4ZSA9IHgyKSAoeWUgPSAoLSAoKGxPZmZzZXQgKyByaXZldExlbmd0aFkpIC0gYmV2ZWxPZmZzZXQpKSkpKSkgY29uZCgoKCh4cyA8IHgxKSAmJiAoeGUgPCB4MSkpIChudW1Qb2ludHMgPSA1KSBpZihmaXJzdFNsb3RFeHQgdGhlbiAoV0FbMF0gPSBsaXN0KDAgKHlzIC0gKGkgKiBzbG90RXh0MSkpKSkgZWxzZSAoV0FbMF0gPSBsaXN0KCh4cyAtIChpICogc2xvdEV4dDEpKSAoeXMgLSAoaSAqIHNsb3RFeHQxKSkpKSkgKFdBWzFdID0gbGlzdCgoeGUgKyAoaSAqIHNsb3RFeHQxKSkgKHllIC0gKGkgKiBzbG90RXh0MSkpKSkgKFdBWzJdID0gbGlzdChjYXIoV0FbMV0pIChjYWRyKFdBWzFdKSArIHNsb3RDYWxVKSkpIChXQVszXSA9IGxpc3QoY2FyKFdBWzBdKSAoY2FkcihXQVswXSkgKyBzbG90Q2FsVSkpKSAoV0FbNF0gPSBXQVswXSkgKHhzID0gKHhzICsgc2xvdFBpdGNoSCkpICh4ZSA9ICh4ZSArIHNsb3RQaXRjaEgpKSBjb25kKCgoKHhlIDwgeDEpICYmICh4cyA8IHgxKSkgKHllID0gc2xvdENhbEwpKSAoKCh4ZSA+IHgxKSAmJiAoKHhlIC0geDEpIDwgY3VycmVudExlbmd0aFopICYmICh4cyA8IHgxKSkgKG9mZnNldENhbCA9ICgoeGUgLSB4MSkgLyByb290MikpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgob2Zmc2V0Q2FsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKHhlID0gKHgxICsgb2Zmc2V0Q2FsKSkgKHllID0gKHkxIC0gb2Zmc2V0Q2FsKSkpICgoKHhlID4geDEpICYmICgoeGUgLSB4MSkgPiBjdXJyZW50TGVuZ3RoWikgJiYgKHhzIDwgeDEpKSAoeGUgPSB4MikgKHllID0gKHkyIC0gKHNsb3RMZW5ndGggLSAoKHgxIC0geHMpICsgY3VycmVudExlbmd0aFopKSkpKSAoKCh4cyA+IHgxKSAmJiAoKCh4cyAtIHgxKSArIHNsb3RMZW5ndGgpIDwgY3VycmVudExlbmd0aFopKSAob2Zmc2V0Q2FsID0gKCh4cyAtIHgxKSAvIHJvb3QyKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeHMgPSAoeDEgKyBvZmZzZXRDYWwpKSAoeGUgPSAoeHMgKyAoc2xvdExlbmd0aCAvIHJvb3QyKSkpICh4ZSA9IChncmlkICogKGNlaWxpbmcgKCh4ZSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh5cyA9ICh5cyAtIG9mZnNldENhbCkpICh5ZSA9ICh5cyAtIChzbG90TGVuZ3RoIC8gcm9vdDIpKSkgKHllID0gKGdyaWQgKiAoY2VpbGluZyAoKHllICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkpICgoKHhzID4geDEpICYmICgoKHhzIC0geDEpICsgc2xvdExlbmd0aCkgPiBjdXJyZW50TGVuZ3RoWikpIChvZmZzZXRDYWwgPSAoKHhzIC0geDEpIC8gcm9vdDIpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKG9mZnNldENhbCAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpICh4cyA9ICh4MSArIG9mZnNldENhbCkpICh4ZSA9IHgyKSAoeXMgPSAoeXMgLSBvZmZzZXRDYWwpKSAoeWUgPSAoeXMgLSAoKHhlIC0geHMpICsgKHNsb3RMZW5ndGggLSAoKHhlIC0geHMpICogcm9vdDIpKSkpKSAoeWUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeWUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSkpKSAoKCh4cyA8IHgxKSAmJiAoeGUgPiB4MSkgJiYgKHllID4geTIpKSAobnVtUG9pbnRzID0gNykgaWYoZmlyc3RTbG90RXh0IHRoZW4gKFdBWzBdID0gbGlzdCgwICh5cyAtIChpICogc2xvdEV4dDEpKSkpIGVsc2UgKFdBWzBdID0gbGlzdCgoeHMgLSAoaSAqIHNsb3RFeHQxKSkgKHlzIC0gKGkgKiBzbG90RXh0MSkpKSkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgoKHgxIC0gKGkgKiBzbG90RXh0MSAqIHRhbkNhbCkpICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKFdBWzFdID0gbGlzdChvZmZzZXRDYWwgKHlzIC0gKGkgKiBzbG90RXh0MSkpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKCgoeWUgLSAoaSAqIHNsb3RFeHQxICogcm9vdDIpKSAqIGdyaWRNdWx0KSAtIGNlaWxGaXgpKSkpIChXQVsyXSA9IGxpc3QoeGUgb2Zmc2V0Q2FsKSkgKG9mZnNldENhbCA9IChzbG90Q2FsVSAvIHJvb3QyKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbM10gPSBsaXN0KChjYXIoV0FbMl0pICsgb2Zmc2V0Q2FsKSAoY2FkcihXQVsyXSkgKyBvZmZzZXRDYWwpKSkgKG9mZnNldENhbCA9IChzbG90Q2FsVSAqIHRhbkNhbCkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgob2Zmc2V0Q2FsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKFdBWzRdID0gbGlzdCgoY2FyKFdBWzFdKSArIG9mZnNldENhbCkgKGNhZHIoV0FbMV0pICsgc2xvdENhbFUpKSkgKFdBWzVdID0gbGlzdChjYXIoV0FbMF0pIChjYWRyKFdBWzBdKSArIHNsb3RDYWxVKSkpIChXQVs2XSA9IFdBWzBdKSAoeEZpbmFsID0gKGNhcihXQVsxXSkgKyAoY2FyKFdBWzJdKSAtIGNhcihXQVsxXSkgLSAoY2FkcihXQVsxXSkgLSBjYWRyKFdBWzJdKSkpKSkgKFdBWzFdID0gbGlzdCh4RmluYWwgY2FkcihXQVsxXSkpKSAoeEZpbmFsID0gKGNhcihXQVs0XSkgKyAoY2FyKFdBWzNdKSAtIGNhcihXQVs0XSkgLSAoY2FkcihXQVs0XSkgLSBjYWRyKFdBWzNdKSkpKSkgKFdBWzRdID0gbGlzdCh4RmluYWwgY2FkcihXQVs0XSkpKSAoeXMgPSAoeWUgLSAobWF4U2xvdFNwYWNpbmdIIC8gcm9vdDIpKSkgKHllID0gKHllIC0gKHNsb3RQaXRjaEggLyByb290MikpKSBjb25kKCgoKHlzID4geTIpICYmICh5ZSA+IHkyKSkgKHhzID0gKHhlICsgKG1heFNsb3RTcGFjaW5nSCAvIHJvb3QyKSkpICh4ZSA9ICh4ZSArIChzbG90UGl0Y2hIIC8gcm9vdDIpKSkpICgoKHlzID4geTIpICYmICh5ZSA8IHkyKSkgKHhzID0gKHhlICsgKG1heFNsb3RTcGFjaW5nSCAvIHJvb3QyKSkpICh4ZSA9IHgyKSAoeWUgPSAoeTIgLSAoc2xvdFBpdGNoSCAtICgoeXMgLSB5MikgKiByb290MikpKSkpICgoKHlzIDwgeTIpICYmICh5ZSA8IHkyKSkgKHhzID0geDIpICh4ZSA9IHgyKSAoeXMgPSB5MikgKHllID0gKHkyICsgc2xvdExlbmd0aCkpKSkpICgoKHhzIDwgeDEpICYmICh4ZSA+PSB4MikgJiYgKHllIDwgeTIpKSAobnVtUG9pbnRzID0gOSkgaWYoZmlyc3RTbG90RXh0IHRoZW4gKFdBWzBdID0gbGlzdCgwICh5cyAtIChpICogc2xvdEV4dDEpKSkpIGVsc2UgKFdBWzBdID0gbGlzdCgoeHMgLSAoaSAqIHNsb3RFeHQxKSkgKHlzIC0gKGkgKiBzbG90RXh0MSkpKSkpIChvZmZzZXRDYWwgPSAoeDEgLSAoaSAqIHNsb3RFeHQxICogdGFuQ2FsKSkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgob2Zmc2V0Q2FsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKFdBWzFdID0gbGlzdChvZmZzZXRDYWwgKHlzIC0gKGkgKiBzbG90RXh0MSkpKSkgKG9mZnNldENhbCA9ICh5MiAtIChpICogc2xvdEV4dDEgKiB0YW5DYWwpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbMl0gPSBsaXN0KCh4MiAtIChpICogc2xvdEV4dDEpKSBvZmZzZXRDYWwpKSAoV0FbM10gPSBsaXN0KCh4MiAtIChpICogc2xvdEV4dDEpKSAoeWUgLSAoaSAqIHNsb3RFeHQxKSkpKSAoV0FbNF0gPSBsaXN0KChjYXIoV0FbM10pICsgc2xvdENhbFUpIGNhZHIoV0FbM10pKSkgKG9mZnNldENhbCA9IChzbG90Q2FsVSAqIHRhbkNhbCkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgob2Zmc2V0Q2FsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKFdBWzVdID0gbGlzdCgoY2FyKFdBWzJdKSArIHNsb3RDYWxVKSAoY2FkcihXQVsyXSkgKyBvZmZzZXRDYWwpKSkgKFdBWzZdID0gbGlzdCgoY2FyKFdBWzFdKSArIG9mZnNldENhbCkgKGNhZHIoV0FbMV0pICsgc2xvdENhbFUpKSkgKFdBWzddID0gbGlzdChjYXIoV0FbMF0pIChjYWRyKFdBWzBdKSArIHNsb3RDYWxVKSkpIChXQVs4XSA9IFdBWzBdKSAoeUZpbmFsID0gKGNhZHIoV0FbMl0pIC0gKGNhcihXQVsyXSkgLSBjYXIoV0FbMV0pIC0gKGNhZHIoV0FbMV0pIC0gY2FkcihXQVsyXSkpKSkpIChXQVsyXSA9IGxpc3QoY2FyKFdBWzJdKSB5RmluYWwpKSAoeUZpbmFsID0gKGNhZHIoV0FbNV0pIC0gKGNhcihXQVs1XSkgLSBjYXIoV0FbNl0pIC0gKGNhZHIoV0FbNl0pIC0gY2FkcihXQVs1XSkpKSkpIChXQVs1XSA9IGxpc3QoY2FyKFdBWzVdKSB5RmluYWwpKSAoeHMgPSB4MikgKHhlID0geDIpICh5cyA9ICh5ZSAtIG1heFNsb3RTcGFjaW5nSCkpICh5ZSA9ICh5ZSAtIHNsb3RQaXRjaEgpKSkgKCgoeHMgPiB4MSkgJiYgKHlzID4geTIpICYmICh5ZSA8IHkyKSkgKG51bVBvaW50cyA9IDcpIChvZmZzZXRDYWwgPSAoeHMgLSAoaSAqIHNsb3RFeHQxICogcm9vdDIpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKChvZmZzZXRDYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbMF0gPSBsaXN0KG9mZnNldENhbCB5cykpIChvZmZzZXRDYWwgPSAoeTIgLSAoaSAqIHNsb3RFeHQxICogdGFuQ2FsKSkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgob2Zmc2V0Q2FsICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKFdBWzFdID0gbGlzdCgoeDIgLSAoaSAqIHNsb3RFeHQxKSkgb2Zmc2V0Q2FsKSkgKFdBWzJdID0gbGlzdCgoeGUgLSAoaSAqIHNsb3RFeHQxKSkgKHllIC0gKGkgKiBzbG90RXh0MSkpKSkgKFdBWzNdID0gbGlzdCgoY2FyKFdBWzJdKSArIHNsb3RDYWxVKSBjYWRyKFdBWzJdKSkpIChvZmZzZXRDYWwgPSAoZ3JpZCAqIChjZWlsaW5nICgoc2xvdENhbFUgKiB0YW5DYWwgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbNF0gPSBsaXN0KChjYXIoV0FbMV0pICsgc2xvdENhbFUpIChjYWRyKFdBWzFdKSArIG9mZnNldENhbCkpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKCgobWluU2xvdFdpZHRoIC8gcm9vdDIpICsgKGkgKiBzbG90RXh0MSAqIHJvb3QyKSkgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbNV0gPSBsaXN0KChjYXIoV0FbMF0pICsgb2Zmc2V0Q2FsKSAoY2FkcihXQVswXSkgKyBvZmZzZXRDYWwpKSkgKFdBWzZdID0gV0FbMF0pICh5RmluYWwgPSAoY2FkcihXQVsxXSkgLSAoY2FyKFdBWzFdKSAtIGNhcihXQVswXSkgLSAoY2FkcihXQVswXSkgLSBjYWRyKFdBWzFdKSkpKSkgKFdBWzFdID0gbGlzdChjYXIoV0FbMV0pIHlGaW5hbCkpICh5RmluYWwgPSAoY2FkcihXQVs0XSkgLSAoY2FyKFdBWzRdKSAtIGNhcihXQVs1XSkgLSAoY2FkcihXQVs1XSkgLSBjYWRyKFdBWzRdKSkpKSkgKFdBWzRdID0gbGlzdChjYXIoV0FbNF0pIHlGaW5hbCkpICh4cyA9IHgyKSAoeGUgPSB4MikgKHlzID0gKHllIC0gbWF4U2xvdFNwYWNpbmdIKSkgKHllID0gKHllIC0gc2xvdFBpdGNoSCkpKSAoKCh4cyA+IHgxKSAmJiAoeGUgPCB4MikgJiYgKHllID4geTIpKSAobnVtUG9pbnRzID0gNSkgKHhlID0gKHhzICsgKHNsb3RMZW5ndGggLyByb290MikpKSAoeGUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeGUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAob2Zmc2V0Q2FsID0gKGdyaWQgKiAoY2VpbGluZyAoKGkgKiBzbG90RXh0MSAqIHJvb3QyICogZ3JpZE11bHQpIC0gY2VpbEZpeCkpKSkgKFdBWzBdID0gbGlzdCgoeHMgLSBvZmZzZXRDYWwpIHlzKSkgKFdBWzFdID0gbGlzdCh4ZSAoeWUgLSBvZmZzZXRDYWwpKSkgKG9mZnNldENhbCA9IChncmlkICogKGNlaWxpbmcgKCgoc2xvdENhbFUgLyByb290MikgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoV0FbMl0gPSBsaXN0KChjYXIoV0FbMV0pICsgb2Zmc2V0Q2FsKSAoY2FkcihXQVsxXSkgKyBvZmZzZXRDYWwpKSkgKFdBWzNdID0gbGlzdCgoY2FyKFdBWzBdKSArIG9mZnNldENhbCkgKGNhZHIoV0FbMF0pICsgb2Zmc2V0Q2FsKSkpIChXQVs0XSA9IFdBWzBdKSAoeXMgPSAoeWUgLSAobWF4U2xvdFNwYWNpbmdIIC8gcm9vdDIpKSkgKHllID0gKHllIC0gKHNsb3RQaXRjaEggLyByb290MikpKSBjb25kKCgoKHlzID4geTIpICYmICh5ZSA+IHkyKSkgKHhzID0gKHhlICsgKG1heFNsb3RTcGFjaW5nSCAvIHJvb3QyKSkpICh4ZSA9ICh4ZSArIChzbG90UGl0Y2hIIC8gcm9vdDIpKSkpICgoKHlzID4geTIpICYmICh5ZSA8IHkyKSkgKHhzID0gKHhlICsgKG1heFNsb3RTcGFjaW5nSCAvIHJvb3QyKSkpICh4ZSA9IHgyKSAoeWUgPSAoeTIgLSAoc2xvdFBpdGNoSCAtICgoeXMgLSB5MikgKiByb290MikpKSkpICgoKHlzIDwgeTIpICYmICh5ZSA8IHkyKSkgKHhzID0geDIpICh4ZSA9IHgyKSAoeXMgPSAoeTIgLSAoKHkyIC0geXMpICogcm9vdDIpKSkgKHllID0gKHlzIC0gc2xvdExlbmd0aCkpKSkpICgoKHlzIDwgeTIpICYmICh5ZSA8IHkyKSkgKG51bVBvaW50cyA9IDUpIChXQVswXSA9IGxpc3QoKHhzIC0gKGkgKiBzbG90RXh0MSkpICh5cyArIChpICogc2xvdEV4dDEpKSkpIChXQVsxXSA9IGxpc3QoKHhzIC0gKGkgKiBzbG90RXh0MSkpICh5ZSAtIChpICogc2xvdEV4dDEpKSkpIChXQVsyXSA9IGxpc3QoKGNhcihXQVsxXSkgKyBzbG90Q2FsVSkgY2FkcihXQVsxXSkpKSAoV0FbM10gPSBsaXN0KChjYXIoV0FbMF0pICsgc2xvdENhbFUpIGNhZHIoV0FbMF0pKSkgKFdBWzRdID0gV0FbMF0pICh5cyA9ICh5cyAtIHNsb3RQaXRjaEgpKSAoeWUgPSAoeWUgLSBzbG90UGl0Y2hIKSkpKSAoeHMgPSAoZ3JpZCAqIChjZWlsaW5nICgoeHMgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeGUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeGUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeXMgPSAoZ3JpZCAqIChjZWlsaW5nICgoeXMgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSAoeWUgPSAoZ3JpZCAqIChjZWlsaW5nICgoeWUgKiBncmlkTXVsdCkgLSBjZWlsRml4KSkpKSB3aGVuKChudW1Qb2ludHMgPj0gNCkgZm9yKHAgMCAobnVtUG9pbnRzIC0gMSkgKHdvcmtpbmdMaXN0ID0gY29ucyhXQVtwXSB3b3JraW5nTGlzdCkpKSAoZGJJZHkwID0gY29ucygoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdCgieTAiICJkcmF3aW5nIikgd29ya2luZ0xpc3QpIGRiSWR5MCkpKSkpIGkrKyAoZGJJZE1ldCA9IGxpc3QobnRoZWxlbShpIGRiSWQxKSkpIChsYXllckFuZE5vdCB0Y0NlbGxWaWV3IHRoaXNMYXllciBkYklkTWV0IGRiSWR5MCkgZm9yZWFjaCh0aGlzT2JqZWN0IGRiSWRNZXQgd2hlbih0aGlzT2JqZWN0IChkYkRlbGV0ZU9iamVjdCB0aGlzT2JqZWN0KSkpIGZvcmVhY2godGhpc09iamVjdCBkYklkeTAgKGRiRGVsZXRlT2JqZWN0IHRoaXNPYmplY3QpKSkpKSkAKHJpdmV0TGF5ZXJzIG1ldEV4dCByaXZldENvbnRhY3RzIGdyaWQgbWluUml2ZXRXaWR0aCBtaW5TbG90V2lkdGggbWluU2xvdExlbmd0aCBtaW5CdXNMZW5ndGggbWF4U2xvdExlbmd0aCBtaW5TbG90TGVuZ3RoUCBtYXhTbG90U3BhY2luZ0ggbWF4U3BhY2luZ3RvRWRnZSBtYXhTbG90U3BhY2luZ1YgbWluT3ZlcmxhcCBzbG90RXh0IG1pbk92ZXJsYXBQIHJhbVRlY2ggbmV3QWxnIHVzZUVPTGVuYyBsYXllck5hbWUgbXVsdGlMYXllciB5U2xvdE9mZnNldCBzdGFuZEFsb25lIG5vQmVudCByaXZldExlbmd0aFogcml2ZXRMZW5ndGhZIHJpdmV0TGVuZ3RoWCByaXZldFdpZHRoIHJvb3QyIHRhbkNhbCBjZWlsRml4IGdyaWRNdWx0IHZpYVZhbHVlcyB2aWFXaWR0aCB2aWFTcGFjaW5nIG1ldDFFbmNWaWEgbWV0MUVPTGVuYyBudW1MYXllcnMgbnVtQ29udGFjdHMgbWluV2lkdGggbWluTGVuZ3RoIHZpYVBpdGNoIHNsYWNrMSBzbG90RXh0MSBtZXRFeHQxU2lkZSB0b3RhbFdpZHRoIG1pbkxlbmd0aFogZGJJZDAgZGJJZDEgcmV2ZXJzZUxheWVycyBpIHgwIHkwIHRoaXNMYXllciB4bCB5bCB4dSB5dSBjb250YWN0IGNvbnRhY3RXaWR0aCBjb250YWN0U3BhY2luZyBtZXRFbmNDb24gbWV0RU9MZW5jIGNvbnRhY3RQaXRjaCBqIGsgYmV2ZWxPZmZzZXQgbE9mZnNldCB1T2Zmc2V0IGFycmF5U2l6ZSB0aGVCZW50UG9pbnRzIHdvcmtpbmdBcnJheSBXQSB4IHkgd29ya2luZ0xpc3QgcmV2ZXJzZUNvbnRhY3RzIHRoaXNDb250YWN0IHhzdGFydCB4ZW5kIHlzdGFydCB5ZW5kIHhzdGVwIHlzdGVwIHhEcmF3IHlEcmF3IHRvbGVyYW5jZSBzbG90UGl0Y2hWIG51bVJvd3Mgc2xvdFNwYWNpbmdWTiBzbG90U3BhY2luZ1YgbWluUmVxTGVuZ3RoWCBzbG90UGl0Y2hIIG51bVNsb3RzIHNsb3RMZW5ndGggc3RhZ2dlckxlbmd0aCBtYXhTcGFjaW5ndG9FZGdlQiBtYXhTcGFjaW5ndG9FZGdlRSB4c3RhZ2dlciBlZmZlY3RpdmVMZW5ndGggc2xvdExlbkVuZCBtaW5TcGFjZVRvRWRnZSBzbG90TGVuRGlmZiBjdXRMYXllciBkeSBkeCBkYklkeTAgZGJJZE1ldCB0aGlzT2JqZWN0IGRyYXdTbG90IGFsbG93YW5jZSBYMCBzbG90Q2FsVSByaXZldExlbmd0aFQgc2xvdENhbEwgY3VycmVudE9mZnNldCBjdXJyZW50TGVuZ3RoWCBjdXJyZW50TGVuZ3RoWiBjdXJyZW50TGVuZ3RoWSBjdXJyZW50TGVuZ3RoVCB4cyB4MSB5MSB4MiB5MiB5cyB4ZSB5ZSBvZmZzZXRDYWwgbnVtUG9pbnRzIGZpcnN0U2xvdEV4dCB4RmluYWwgeUZpbmFsIHApACgodXNlRU9MZW5jICJGQUxTRSIpIChsYXllck5hbWUgIm1ldDEiKSAobXVsdGlMYXllciB0KSAoeVNsb3RPZmZzZXQgMCkgKHN0YW5kQWxvbmUgdCkgKG5vQmVudCB0KSAocml2ZXRMZW5ndGhaIDEwMC4wKSAocml2ZXRMZW5ndGhZIDEwMC4wKSAocml2ZXRMZW5ndGhYIDEwMC4wKSAocml2ZXRXaWR0aCAxMi41KSkAKChyaXZldExheWVycyAnKCJtZXQxIiAibWV0MiIpKSAobWV0RXh0IDIuNSkgKHJpdmV0Q29udGFjdHMgJygnKCJ2aWEiIDAuNSAxLjA1IDAuMjI1KSkpIChncmlkIDAuMDI1KSAobWluUml2ZXRXaWR0aCA2Mi41KSAobWluU2xvdFdpZHRoIDUuNzUpIChtaW5TbG90TGVuZ3RoIDc1MC4wKSAobWluQnVzTGVuZ3RoIDEwMDAuMCkgKG1heFNsb3RMZW5ndGggMTUwMC4wKSAobWluU2xvdExlbmd0aFAgMC43NSkgKG1heFNsb3RTcGFjaW5nSCA2Mi41KSAobWF4U3BhY2luZ3RvRWRnZSA2Mi41KSAobWF4U2xvdFNwYWNpbmdWIDYyLjUpIChtaW5PdmVybGFwIDI1MC4wKSAoc2xvdEV4dCAyLjUpIChtaW5PdmVybGFwUCAwLjIpIChyYW1UZWNoIG5pbCkgKG5ld0FsZyB0KSkAKHdoZW4oKGJldmVsVGhlT3V0c2lkZSA9PSAiRkFMU0UiKSAoYmV2ZWxUaGVPdXRzaWRlID0gbmlsKSkgd2hlbigoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgPT0gIkZBTFNFIikgKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlID0gbmlsKSkgd2hlbigoYnJlYWt1cFBvbHlnb25zID09ICJGQUxTRSIpIChicmVha3VwUG9seWdvbnMgPSBuaWwpKSAoczIgPSBzcXJ0KDIuMCkpIChiZXZlbEluc2lkZU9mZnNldCA9ICgoKHJpbmdXaWR0aCAqIChzMiAtIDEuMCkpICsgKHMyICogYWRkaXRpb25hbFdpZHRoSW5CZXZlbCkpIC8gZ3JpZCkpIChmaXhlZEJldiA9IGZpeCgoMWUtMDYgKyBiZXZlbEluc2lkZU9mZnNldCkpKSBjb25kKCgoKGJldmVsSW5zaWRlT2Zmc2V0IC0gZml4ZWRCZXYpIDwgMWUtMDYpIChiZXZlbEluc2lkZU9mZnNldCA9IChncmlkICogZml4ZWRCZXYpKSkgKHQgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKGdyaWQgKiAoMS4wICsgZml4ZWRCZXYpKSkpKSAoY2Fubm90QmV2ZWxMZW5ndGggPSAocmluZ1dpZHRoIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSBjb25kKCgobGxCZXZlbCA9IChsbEJldmVsTGVuZ3RoID4gY2Fubm90QmV2ZWxMZW5ndGgpKSAoYXJyYXlTaXplID0gNCkpICh0IChhcnJheVNpemUgPSAyKSkpIGNvbmQoKChsckJldmVsID0gKGxyQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgNCkpKSAodCAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDIpKSkpIGNvbmQoKCh1ckJldmVsID0gKHVyQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgNCkpKSAodCAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDIpKSkpIGNvbmQoKCh1bEJldmVsID0gKHVsQmV2ZWxMZW5ndGggPiBjYW5ub3RCZXZlbExlbmd0aCkpIChhcnJheVNpemUgPSAoYXJyYXlTaXplICsgNCkpKSAodCAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDIpKSkpIChpbnNpZGVJbmRleCA9IChhcnJheVNpemUgLyAyKSkgKG91dHNpZGVJbmRleCA9IChpbnNpZGVJbmRleCArIDEpKSAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDMpKSBkZWNsYXJlKHRoZVJpbmdQb2ludHNbYXJyYXlTaXplXSkgKHRoZU91dHNpZGVYID0geE9mZnNldCkgKHRoZU91dHNpZGVZID0geU9mZnNldCkgY29uZCgoIWxsQmV2ZWwgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyByaW5nV2lkdGgpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSArIHJpbmdXaWR0aCkpIChiZWdpbm5pbmdJbnNpZGVQb2ludCA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAoYmVnaW5uaW5nT3V0c2lkZVBvaW50ID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gYmVnaW5uaW5nSW5zaWRlUG9pbnQpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSBiZWdpbm5pbmdPdXRzaWRlUG9pbnQpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVZID0gKHRoZU91dHNpZGVZICsgbGxCZXZlbExlbmd0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZICsgYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIHJpbmdXaWR0aCkpIChiZWdpbm5pbmdJbnNpZGVQb2ludCA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAoYmVnaW5uaW5nT3V0c2lkZVBvaW50ID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZUluc2lkZVkxID0gKHlPZmZzZXQgKyByaW5nV2lkdGgpKSAoYmVnaW5uaW5nSW5zaWRlUG9pbnQxID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWTEpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludDEpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgd2hlbihiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9ICh0aGVPdXRzaWRlWCArIGxsQmV2ZWxMZW5ndGgpKSAodGhlT3V0c2lkZVkgPSB5T2Zmc2V0KSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyByaW5nV2lkdGgpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludDEpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSkgKHQgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh4T2Zmc2V0OnRoZU91dHNpZGVZKSkgKGJlZ2lubmluZ091dHNpZGVQb2ludCA9IHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKCFsckJldmVsICh0aGVPdXRzaWRlWCA9ICh4T2Zmc2V0ICsgbCkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gcmluZ1dpZHRoKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0ICh0aGVPdXRzaWRlWCA9ICh4T2Zmc2V0ICsgbCArICgtIGxyQmV2ZWxMZW5ndGgpKSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSBiZXZlbEluc2lkZU9mZnNldCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVJbnNpZGVYMSA9ICh4T2Zmc2V0ICsgbCArICgtIHJpbmdXaWR0aCkpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDE6dGhlSW5zaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgd2hlbihiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodGhlT3V0c2lkZVggPSAodGhlT3V0c2lkZVggKyBsckJldmVsTGVuZ3RoKSkgKHRoZU91dHNpZGVZID0gKHRoZU91dHNpZGVZICsgbHJCZXZlbExlbmd0aCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYMTp0aGVJbnNpZGVZKSkpICh0ICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gcmluZ1dpZHRoKSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnlPZmZzZXQpKSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgoIXVyQmV2ZWwgKHRoZU91dHNpZGVZID0gKHlPZmZzZXQgKyB3KSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgLSByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVZID0gKHlPZmZzZXQgKyB3ICsgKC0gdXJCZXZlbExlbmd0aCkpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZUluc2lkZVkxID0gKHlPZmZzZXQgKyB3ICsgKC0gcmluZ1dpZHRoKSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYMTp0aGVJbnNpZGVZMSkpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgd2hlbihiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodGhlT3V0c2lkZVkgPSAoeU9mZnNldCArIHcpKSAodGhlT3V0c2lkZVggPSAodGhlT3V0c2lkZVggLSB1ckJldmVsTGVuZ3RoKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlTm9JbnNpZGUgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVgxOnRoZUluc2lkZVkxKSkpICh0ICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSBjb25kKChiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpKSAodCAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKCh4T2Zmc2V0ICsgbCk6dGhlT3V0c2lkZVkpKSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgoIXVsQmV2ZWwgKHRoZU91dHNpZGVYID0geE9mZnNldCkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHQgKHRoZU91dHNpZGVYID0gKHhPZmZzZXQgKyB1bEJldmVsTGVuZ3RoKSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyBiZXZlbEluc2lkZU9mZnNldCkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZU5vSW5zaWRlICh0aGVJbnNpZGVYMSA9ICh4T2Zmc2V0ICsgcmluZ1dpZHRoKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVgxOnRoZUluc2lkZVkxKSkpICh0ICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSB3aGVuKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9IHhPZmZzZXQpICh0aGVPdXRzaWRlWSA9ICh0aGVPdXRzaWRlWSAtIHVsQmV2ZWxMZW5ndGgpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDE6dGhlSW5zaWRlWTEpKSkgKHQgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyByaW5nV2lkdGgpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6KHlPZmZzZXQgKyB3KSkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludDEpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSBiZWdpbm5pbmdPdXRzaWRlUG9pbnQpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludDEpKSAodCAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSBiZWdpbm5pbmdJbnNpZGVQb2ludCkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSkpIGNvbmQoKGJyZWFrdXBQb2x5Z29ucyAoaW5zaWRlSW5kZXggPSAoKGFycmF5U2l6ZSAtIDMpIC8gMikpIChvdXRzaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggKyAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlIGNvbmQoKGxsQmV2ZWwgKHJpbmdMaXN0MSA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDEgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKChsckJldmVsIChyaW5nTGlzdDIgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMikpKSAodCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodXJCZXZlbCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDIpKSkgKHQgKHJpbmdMaXN0MyA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKHVsQmV2ZWwgKHJpbmdMaXN0NCA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDQgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSkgKHQgY29uZCgobGxCZXZlbCAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgobHJCZXZlbCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodXJCZXZlbCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodWxCZXZlbCAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkpKSB3aGVuKHJpbmdMYXllciAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKGRiQ3JlYXRlVGVybSBuZXQgIiIgImlucHV0T3V0cHV0IikgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0MSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QyKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDMpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0NCkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzMSIgImxpc3QiIHJpbmdMaXN0MSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzMiIgImxpc3QiIHJpbmdMaXN0MikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzMyIgImxpc3QiIHJpbmdMaXN0MykgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzNCIgImxpc3QiIHJpbmdMaXN0NCkpICh0IChyaW5nTGlzdCA9IG5pbCkgZm9yKGkgMSBvdXRzaWRlSW5kZXggKHJpbmdMaXN0ID0gY29ucyh0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggLSBpKV0gcmluZ0xpc3QpKSkgd2hlbihyaW5nTGF5ZXIgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICIiICJpbnB1dE91dHB1dCIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdCkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzIiAibGlzdCIgcmluZ0xpc3QpKSkpACh3IGwgeE9mZnNldCB5T2Zmc2V0IHJpbmdMYXllciByaW5nV2lkdGggYWRkaXRpb25hbFdpZHRoSW5CZXZlbCBsbEJldmVsTGVuZ3RoIHVsQmV2ZWxMZW5ndGggbHJCZXZlbExlbmd0aCB1ckJldmVsTGVuZ3RoIGJldmVsVGhlT3V0c2lkZSBiZXZlbFRoZU91dHNpZGVOb0luc2lkZSBncmlkIGJyZWFrdXBQb2x5Z29ucyBzMiBiZXZlbEluc2lkZU9mZnNldCBmaXhlZEJldiBjYW5ub3RCZXZlbExlbmd0aCBsbEJldmVsIGFycmF5U2l6ZSBsckJldmVsIHVyQmV2ZWwgdWxCZXZlbCBpbnNpZGVJbmRleCBvdXRzaWRlSW5kZXggdGhlUmluZ1BvaW50cyB0aGVPdXRzaWRlWCB0aGVPdXRzaWRlWSB0aGVJbnNpZGVYIHRoZUluc2lkZVkgYmVnaW5uaW5nSW5zaWRlUG9pbnQgYmVnaW5uaW5nT3V0c2lkZVBvaW50IHRoZUluc2lkZVkxIGJlZ2lubmluZ0luc2lkZVBvaW50MSB0aGVJbnNpZGVYMSByaW5nTGlzdDEgcmluZ0xpc3QyIHJpbmdMaXN0MyByaW5nTGlzdDQgbmV0IGRiaWQgcmluZ0xpc3QgaSkAKCh3IDUwLjApIChsIDUwLjApICh4T2Zmc2V0IDAuMCkgKHlPZmZzZXQgMC4wKSAocmluZ0xheWVyIGxpc3QoImhpbGl0ZSIgImRyYXdpbmciKSkgKHJpbmdXaWR0aCA0LjApIChhZGRpdGlvbmFsV2lkdGhJbkJldmVsIDAuMCkgKGxsQmV2ZWxMZW5ndGggMC4wKSAodWxCZXZlbExlbmd0aCAwLjApIChsckJldmVsTGVuZ3RoIDAuMCkgKHVyQmV2ZWxMZW5ndGggMC4wKSAoYmV2ZWxUaGVPdXRzaWRlICJGQUxTRSIpIChiZXZlbFRoZU91dHNpZGVOb0luc2lkZSAiRkFMU0UiKSAoZ3JpZCAwLjA1KSAoYnJlYWt1cFBvbHlnb25zICJGQUxTRSIpKQAoaWYoKCh2aWExSW1wbGFudFNpbmdsZSA9PSB0KSB8fCAodmlhMUltcGxhbnRTaW5nbGUgPT0gIlRSVUUiKSkgdGhlbiAodmlhMUltcGxhbnRTaW5nbGUgPSB0KSBlbHNlICh2aWExSW1wbGFudFNpbmdsZSA9IG5pbCkpIGlmKCgod2xEcml2ZW4gPT0gdCkgfHwgKHdsRHJpdmVuID09ICJUUlVFIikpIHRoZW4gKHdsRHJpdmVuID0gdCkgZWxzZSAod2xEcml2ZW4gPSBuaWwpKSB3aGVuKCgoY29udGFjdE9uWFkgPT0gdCkgfHwgKGNvbnRhY3RPblhZID09ICJUUlVFIikpIChjb250YWN0T25YID0gdCkgKGNvbnRhY3RPblkgPSB0KSkgKHVzZVNocmlua0xheWVyMSA9IG5pbCkgaWYoKCgobWluTCAhPSBuaWwpICYmIChtaW5MID4gMC4wKSkgJiYgKChtaW5XICE9IG5pbCkgJiYgKG1pblcgPiAwLjApKSkgdGhlbiAodXNlU2hyaW5rTGF5ZXIxID0gdCkgZWxzZSAodXNlU2hyaW5rTGF5ZXIxID0gbmlsKSkgaWYoKHVzZVNocmlua0xheWVyMSA9PSB0KSB0aGVuIHdoZW4oKG1pbnZpYTFMYXkxWEVuYyAmJiAobm90IHdsRHJpdmVuKSAmJiAoY29sdW1uID09IDEpKSAodmlhMUxheTFYRW5jID0gbWludmlhMUxheTFYRW5jKSkgd2hlbigobWludmlhMkxheTJYRW5jICYmIChub3Qgd2xEcml2ZW4pICYmIChjb2x1bW4gPT0gMSkpICh2aWEyTGF5MlhFbmMgPSBtaW52aWEyTGF5MlhFbmMpKSkgaWYoKHVzZVNocmlua0xheWVyMSA9PSB0KSB0aGVuIHdoZW4oKHdsRHJpdmVuICYmIChtaW5XIHx8IG1pbkwpKSB3aGVuKG1pblcgKFcgPSBtYXgoVyBtaW5XKSkpIHdoZW4obWluTCAoTCA9IG1heChMIG1pbkwpKSkpKSAoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSB3aGVuKHN0cmluZ3AobGF5ZXIxKSAobGF5ZXIxID0gbGlzdChsYXllcjEgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKGxheWVyMykgKGxheWVyMyA9IGxpc3QobGF5ZXIzICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AodmlhMUNvbkxheWVyKSAodmlhMUNvbkxheWVyID0gbGlzdCh2aWExQ29uTGF5ZXIgImRyYXdpbmciKSkpIGlmKCgodmlhMU9mZiA9PSB0KSB8fCAodmlhMU9mZiA9PSAiVFJVRSIpKSB0aGVuICh2aWExT2ZmID0gaWYoKHZpYTFDb25MYXllciAmJiB1c2VWaWExT2ZmKSB0IG5pbCkpIGVsc2UgKHZpYTFPZmYgPSBuaWwpKSBpZigoKHZpYTFEb1JvdXRlID09IHQpIHx8ICh2aWExRG9Sb3V0ZSA9PSAiVFJVRSIpKSB0aGVuICh2aWExRG9Sb3V0ZSA9IHQpICh2aWExRG9Sb3V0ZVcgPSAoVyArICgyICogdmlhMUNvbkxheTFZRXh0KSkpIGVsc2UgKHZpYTFEb1JvdXRlID0gbmlsKSkgaWYoKChjZW50ZXIgPT0gdCkgfHwgKGNlbnRlciA9PSAiVFJVRSIpKSB0aGVuIChjZW50ZXIgPSB0KSBlbHNlIChjZW50ZXIgPSBuaWwpKSBpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgodmlhMUNvbkltcGxhbnRPbiA9PSB0KSB8fCAodmlhMUNvbkltcGxhbnRPbiA9PSAiVFJVRSIpKSB0aGVuICh2aWExQ29uSW1wbGFudE9uID0gdCkgZWxzZSAodmlhMUNvbkltcGxhbnRPbiA9IG5pbCkpIGlmKCgodmlhMUltcGxhbnRPbiA9PSB0KSB8fCAodmlhMUltcGxhbnRPbiA9PSAiVFJVRSIpKSB0aGVuICh2aWExSW1wbGFudE9uID0gdCkgZWxzZSAodmlhMUltcGxhbnRPbiA9IG5pbCkpIHdoZW4obGF5ZXIxSW1wbGFudCBpZigod2VsbExheWVyICYmIGluV2VsbCkgdGhlbiAobGF5ZXIxSW1wbGFudCA9IGlmKGNhZHIobGF5ZXIxSW1wbGFudCkgY2FkcihsYXllcjFJbXBsYW50KSBjYXIobGF5ZXIxSW1wbGFudCkpKSAobGF5ZXIxSW1wRW5jID0gaWYoY2FkcihsYXllcjFJbXBFbmMpIGNhZHIobGF5ZXIxSW1wRW5jKSBjYXIobGF5ZXIxSW1wRW5jKSkpIGVsc2UgKGxheWVyMUltcGxhbnQgPSBjYXIobGF5ZXIxSW1wbGFudCkpIChsYXllcjFJbXBFbmMgPSBjYXIobGF5ZXIxSW1wRW5jKSkpKSBjb25kKCgodmlhMUxheTFFbmMgPT0gMC4wKSAodmlhMUxheTFYRW5jID0gdmlhMUxheTFYRW5jKSAodmlhMUxheTFZRW5jID0gdmlhMUxheTFZRW5jKSkgKHQgKHZpYTFMYXkxWEVuYyA9IHZpYTFMYXkxRW5jKSAodmlhMUxheTFZRW5jID0gdmlhMUxheTFFbmMpKSkgY29uZCgoKHZpYTFMYXkyRW5jID09IDAuMCkgKHZpYTFMYXkyWEVuYyA9IHZpYTFMYXkyWEVuYykgKHZpYTFMYXkyWUVuYyA9IHZpYTFMYXkyWUVuYykpICh0ICh2aWExTGF5MlhFbmMgPSB2aWExTGF5MkVuYykgKHZpYTFMYXkyWUVuYyA9IHZpYTFMYXkyRW5jKSkpIGNvbmQoKCh2aWEyTGF5MkVuYyA9PSAwLjApICh2aWEyTGF5MlhFbmMgPSB2aWEyTGF5MlhFbmMpICh2aWEyTGF5MllFbmMgPSB2aWEyTGF5MllFbmMpKSAodCAodmlhMkxheTJYRW5jID0gdmlhMkxheTJFbmMpICh2aWEyTGF5MllFbmMgPSB2aWEyTGF5MkVuYykpKSBjb25kKCgodmlhMkxheTNFbmMgPT0gMC4wKSAodmlhMkxheTNYRW5jID0gdmlhMkxheTNYRW5jKSAodmlhMkxheTNZRW5jID0gdmlhMkxheTNZRW5jKSkgKHQgKHZpYTJMYXkzWEVuYyA9IHZpYTJMYXkzRW5jKSAodmlhMkxheTNZRW5jID0gdmlhMkxheTNFbmMpKSkgY29uZCgoKHZpYTFDb25FbmMgPT0gMC4wKSAodmlhMUNvblhFbmMgPSB2aWExQ29uWEVuYykgKHZpYTFDb25ZRW5jID0gdmlhMUNvbllFbmMpKSAodCAodmlhMUNvblhFbmMgPSB2aWExQ29uRW5jKSAodmlhMUNvbllFbmMgPSB2aWExQ29uRW5jKSkpIGNvbmQoKCh2aWExQ29uTGF5MUVuYyA9PSAwLjApICh2aWExQ29uTGF5MVhFbmMgPSB2aWExQ29uTGF5MVhFbmMpICh2aWExQ29uTGF5MVlFbmMgPSB2aWExQ29uTGF5MVlFbmMpKSAodCAodmlhMUNvbkxheTFYRW5jID0gdmlhMUNvbkxheTFFbmMpICh2aWExQ29uTGF5MVlFbmMgPSB2aWExQ29uTGF5MUVuYykpKSB3aGVuKHZpYTFDb25MYXllciAodmlhMUxheTFYRW5jID0gaWYodmlhMURvUm91dGUgdmlhMUNvblhFbmMgKHZpYTFDb25MYXkxWEVuYyArIHZpYTFDb25YRW5jKSkpICh2aWExTGF5MVlFbmMgPSBpZih2aWExRG9Sb3V0ZSB2aWExQ29uWUVuYyAodmlhMUNvbkxheTFZRW5jICsgdmlhMUNvbllFbmMpKSkgKHZpYTFMYXkxRW5jU3EgPSBpZih2aWExRG9Sb3V0ZSB2aWExQ29uRW5jU3EgKHZpYTFDb25MYXkxRW5jU3EgKyB2aWExQ29uRW5jU3EpKSkpIHdoZW4oIWxheWVyMyAocm90YXRlTWlkZGxlID0gcm90YXRlVG9wKSAocm90YXRlVG9wID0gbmlsKSkgd2hlbigoKHJvdGF0ZVRvcCA9PSB0KSB8fCAocm90YXRlVG9wID09ICJUUlVFIikpIChzd2FwVGVtcCA9IHZpYTJMYXkzWEVuYykgKHZpYTJMYXkzWEVuYyA9IHZpYTJMYXkzWUVuYykgKHZpYTJMYXkzWUVuYyA9IHN3YXBUZW1wKSkgd2hlbigoKHJvdGF0ZU1pZGRsZSA9PSB0KSB8fCAocm90YXRlTWlkZGxlID09ICJUUlVFIikpIChzd2FwVGVtcCA9IHZpYTFMYXkyWEVuYykgKHZpYTFMYXkyWEVuYyA9IHZpYTFMYXkyWUVuYykgKHZpYTFMYXkyWUVuYyA9IHN3YXBUZW1wKSAoc3dhcFRlbXAgPSB2aWEyTGF5MlhFbmMpICh2aWEyTGF5MlhFbmMgPSB2aWEyTGF5MllFbmMpICh2aWEyTGF5MllFbmMgPSBzd2FwVGVtcCkpIHdoZW4oKChlcUVuYyA9PSB0KSB8fCAoZXFFbmMgPT0gIlRSVUUiKSkgKHNxQm90dG9tID0gdCkgaWYodXNlU3F1YXJlRW5jIHRoZW4gKHZpYTFMYXkyWEVuYyA9IHZpYTFMYXkyRW5jU3EpICh2aWExTGF5MllFbmMgPSB2aWExTGF5MkVuY1NxKSAodmlhMkxheTJYRW5jID0gdmlhMkxheTJFbmNTcSkgKHZpYTJMYXkyWUVuYyA9IHZpYTJMYXkyRW5jU3EpICh2aWEyTGF5M1hFbmMgPSB2aWEyTGF5M0VuY1NxKSAodmlhMkxheTNZRW5jID0gdmlhMkxheTNFbmNTcSkgZWxzZSAodmlhMUxheTJYRW5jID0gbWF4KHZpYTFMYXkyWEVuYyB2aWExTGF5MllFbmMpKSAodmlhMUxheTJZRW5jID0gdmlhMUxheTJYRW5jKSAodmlhMkxheTJYRW5jID0gbWF4KHZpYTJMYXkyWEVuYyB2aWEyTGF5MllFbmMpKSAodmlhMkxheTJZRW5jID0gdmlhMkxheTJYRW5jKSAodmlhMkxheTNYRW5jID0gbWF4KHZpYTJMYXkzWEVuYyB2aWEyTGF5M1lFbmMpKSAodmlhMkxheTNZRW5jID0gdmlhMkxheTNYRW5jKSkpIHdoZW4oKChzcUJvdHRvbSA9PSB0KSB8fCAoc3FCb3R0b20gPT0gIlRSVUUiKSkgaWYodXNlU3F1YXJlRW5jIHRoZW4gKHZpYTFMYXkxRXFYT2ZmID0gKHZpYTFMYXkxRW5jU3EgLSB2aWExTGF5MVhFbmMpKSAodmlhMUxheTFFcVlPZmYgPSAodmlhMUxheTFFbmNTcSAtIHZpYTFMYXkxWUVuYykpICh2aWExTGF5MVhFbmMgPSB2aWExTGF5MUVuY1NxKSAodmlhMUxheTFZRW5jID0gdmlhMUxheTFFbmNTcSkgZWxzZSAodmlhMUxheTFFcVhPZmYgPSBtYXgoMC4wICh2aWExTGF5MVlFbmMgLSB2aWExTGF5MVhFbmMpKSkgKHZpYTFMYXkxRXFZT2ZmID0gbWF4KDAuMCAodmlhMUxheTFYRW5jIC0gdmlhMUxheTFZRW5jKSkpICh2aWExTGF5MVhFbmMgPSBtYXgodmlhMUxheTFYRW5jIHZpYTFMYXkxWUVuYykpICh2aWExTGF5MVlFbmMgPSB2aWExTGF5MVhFbmMpKSkgKHZpYTFQaXRjaFcgPSAodmlhMVdpZHRoICsgdmlhMVNwYWNlWSkpICh2aWExUGl0Y2hMID0gKHZpYTFMZW5ndGggKyB2aWExU3BhY2VYKSkgaWYodmlhMkxheWVyIHRoZW4gKHZpYTJQaXRjaFcgPSAodmlhMldpZHRoICsgdmlhMlNwYWNlWSkpICh2aWEyUGl0Y2hMID0gKHZpYTJMZW5ndGggKyB2aWEyU3BhY2VYKSkgaWYod2xEcml2ZW4gdGhlbiAodmlhVzEgPSAoaWYodmlhMURvUm91dGUgdmlhMURvUm91dGVXIFcpIC0gKDIgKiB2aWExTGF5MVlFbmMpKSkgKHZpYUwxID0gKEwgLSAoMiAqIHZpYTFMYXkxWEVuYykpKSAodmlhVzIgPSAoaWYodmlhMURvUm91dGUgdmlhMURvUm91dGVXIFcpIC0gKDIgKiBtYXgodmlhMkxheTNZRW5jIHZpYTJMYXkyWUVuYykpKSkgKHZpYUwyID0gKEwgLSAoMiAqIG1heCh2aWEyTGF5M1hFbmMgdmlhMkxheTJYRW5jKSkpKSAodmlhMVJvdyA9IG1heCgxIGZpeCgoKCh2aWFXMSArIHZpYTFTcGFjZVkpIC8gdmlhMVBpdGNoVykgKyAxZS0wNikpKSkgKHZpYTFDb2x1bW4gPSBtYXgoMSBmaXgoKCgodmlhTDEgKyB2aWExU3BhY2VYKSAvIHZpYTFQaXRjaEwpICsgMWUtMDYpKSkpICh2aWEyUm93ID0gbWF4KDEgZml4KCgoKHZpYVcyICsgdmlhMlNwYWNlWSkgLyB2aWEyUGl0Y2hXKSArIDFlLTA2KSkpKSAodmlhMkNvbHVtbiA9IG1heCgxIGZpeCgoKCh2aWFMMiArIHZpYTJTcGFjZVgpIC8gdmlhMlBpdGNoTCkgKyAxZS0wNikpKSkgZWxzZSAodmlhVyA9IG1pbigodmlhMVdpZHRoICsgKChyb3cgLSAxKSAqIHZpYTFQaXRjaFcpKSAodmlhMldpZHRoICsgKChyb3cgLSAxKSAqIHZpYTJQaXRjaFcpKSkpICh2aWFMID0gbWluKCh2aWExTGVuZ3RoICsgKChjb2x1bW4gLSAxKSAqIHZpYTFQaXRjaEwpKSAodmlhMkxlbmd0aCArICgoY29sdW1uIC0gMSkgKiB2aWEyUGl0Y2hMKSkpKSAodmlhMVJvdyA9IG1heCgxIGZpeCgoKCh2aWFXICsgdmlhMVNwYWNlWSkgLyB2aWExUGl0Y2hXKSArIDFlLTA2KSkpKSAodmlhMUNvbHVtbiA9IG1heCgxIGZpeCgoKCh2aWFMICsgdmlhMVNwYWNlWCkgLyB2aWExUGl0Y2hMKSArIDFlLTA2KSkpKSAodmlhMlJvdyA9IG1heCgxIGZpeCgoKCh2aWFXICsgdmlhMlNwYWNlWSkgLyB2aWEyUGl0Y2hXKSArIDFlLTA2KSkpKSAodmlhMkNvbHVtbiA9IG1heCgxIGZpeCgoKCh2aWFMICsgdmlhMlNwYWNlWCkgLyB2aWEyUGl0Y2hMKSArIDFlLTA2KSkpKSkgZWxzZSBpZih3bERyaXZlbiB0aGVuICh2aWFXMSA9IChpZih2aWExRG9Sb3V0ZSB2aWExRG9Sb3V0ZVcgVykgLSAoMiAqIHZpYTFMYXkxWUVuYykpKSAodmlhTDEgPSAoTCAtICgyICogdmlhMUxheTFYRW5jKSkpICh2aWExUm93ID0gbWF4KDEgZml4KCgoKHZpYVcxICsgdmlhMVNwYWNlWSkgLyB2aWExUGl0Y2hXKSArIDFlLTA2KSkpKSAodmlhMUNvbHVtbiA9IG1heCgxIGZpeCgoKCh2aWFMMSArIHZpYTFTcGFjZVgpIC8gdmlhMVBpdGNoTCkgKyAxZS0wNikpKSkgZWxzZSAodmlhMVJvdyA9IHJvdykgKHZpYTFDb2x1bW4gPSBjb2x1bW4pKSkgd2hlbih3bERyaXZlbiAodmlhMUxheTFZRW5jID0gKChXIC0gKHZpYTFXaWR0aCArICgodmlhMVJvdyAtIDEpICogdmlhMVBpdGNoVykpKSAvIDIpKSAodmlhMUxheTFYRW5jID0gKChMIC0gKHZpYTFMZW5ndGggKyAoKHZpYTFDb2x1bW4gLSAxKSAqIHZpYTFQaXRjaEwpKSkgLyAyKSkgKHZpYTFMYXkxWUVuYyA9IChmaXgoKCh2aWExTGF5MVlFbmMgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSAodmlhMUxheTFYRW5jID0gKGZpeCgoKHZpYTFMYXkxWEVuYyAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpICh2aWExV1Jlc3QgPSAoVyAtICh2aWExV2lkdGggKyAoKHZpYTFSb3cgLSAxKSAqIHZpYTFQaXRjaFcpICsgKHZpYTFMYXkxWUVuYyAqIDIpKSkpICh2aWExTFJlc3QgPSAoTCAtICh2aWExTGVuZ3RoICsgKCh2aWExQ29sdW1uIC0gMSkgKiB2aWExUGl0Y2hMKSArICh2aWExTGF5MVhFbmMgKiAyKSkpKSkgaWYoY29udGFjdE9uWCAobGF5ZXIxWDEgPSAoLSB2aWExTGF5MVhFbmMpKSAobGF5ZXIxWDEgPSAwLjApKSBpZihjb250YWN0T25ZIChsYXllcjFZMSA9ICgtIHZpYTFMYXkxWUVuYykpIChsYXllcjFZMSA9IDAuMCkpIHdoZW4odmlhMUxheTFFcVhPZmYgKGxheWVyMVgxID0gKGxheWVyMVgxIC0gdmlhMUxheTFFcVhPZmYpKSkgd2hlbih2aWExTGF5MUVxWU9mZiAobGF5ZXIxWTEgPSAobGF5ZXIxWTEgLSB2aWExTGF5MUVxWU9mZikpKSAobGF5ZXIxWE9mZiA9IDAuMCkgKGxheWVyMVlPZmYgPSAwLjApIChsYXllcjFYMiA9IChsYXllcjFYMSArICgyICogdmlhMUxheTFYRW5jKSArIGlmKHZpYTFMUmVzdCB2aWExTFJlc3QgMC4wKSArIHZpYTFMZW5ndGggKyAoKHZpYTFDb2x1bW4gLSAxKSAqIHZpYTFQaXRjaEwpKSkgKGxheWVyMVkyID0gKGxheWVyMVkxICsgKDIgKiB2aWExTGF5MVlFbmMpICsgaWYodmlhMVdSZXN0IHZpYTFXUmVzdCAwLjApICsgdmlhMVdpZHRoICsgKCh2aWExUm93IC0gMSkgKiB2aWExUGl0Y2hXKSkpICh2aWExWDEgPSAobGF5ZXIxWDEgKyB2aWExTGF5MVhFbmMpKSAodmlhMVkxID0gKGxheWVyMVkxICsgdmlhMUxheTFZRW5jKSkgKHZpYTFDb25YT2ZmID0gMC4wKSAodmlhMUNvbllPZmYgPSAwLjApICh0aGVYID0gdmlhMVgxKSBmb3IoY29sIDEgdmlhMUNvbHVtbiAodGhlWSA9IHZpYTFZMSkgZm9yKHIgMSB2aWExUm93ICh2aWExWFkgPSBsaXN0KGxpc3QodGhlWCB0aGVZKSBsaXN0KCh0aGVYICsgdmlhMUxlbmd0aCkgKHRoZVkgKyB2aWExV2lkdGgpKSkpIHdoZW4oIXZpYTFPZmYgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIHZpYTFYWSkpKSB3aGVuKCh2aWExQ29uTGF5ZXIgJiYgKCF2aWExQ29uQWxsICYmICF2aWExQ29uQ29sKSkgKHZpYTFDb25YMSA9IChjYWFyKHZpYTFYWSkgLSB2aWExQ29uWEVuYykpICh2aWExQ29uWTEgPSAoY2FkYXIodmlhMVhZKSAtIHZpYTFDb25ZRW5jKSkgKHZpYTFDb25YMiA9IChjYWFkcih2aWExWFkpICsgdmlhMUNvblhFbmMpKSAodmlhMUNvblkyID0gKGNhZGFkcih2aWExWFkpICsgdmlhMUNvbllFbmMpKSAoZGJJZENvbiA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExQ29uTGF5ZXIgbGlzdChsaXN0KHZpYTFDb25YMSB2aWExQ29uWTEpIGxpc3QodmlhMUNvblgyIHZpYTFDb25ZMikpKSkpIHdoZW4oKCh2aWExSW1wbGFudE9uIHx8IGltcGxhbnQpICYmIHZpYTFMYXllckltcGxhbnQgJiYgdmlhMUltcGxhbnRTaW5nbGUpICh2aWExSW1wWDEgPSAoY2Fhcih2aWExWFkpIC0gdmlhMUxheWVySW1wRW5jKSkgKHZpYTFJbXBZMSA9IChjYWRhcih2aWExWFkpIC0gdmlhMUxheWVySW1wRW5jKSkgKHZpYTFJbXBYMiA9IChjYWFkcih2aWExWFkpICsgdmlhMUxheWVySW1wRW5jKSkgKHZpYTFJbXBZMiA9IChjYWRhZHIodmlhMVhZKSArIHZpYTFMYXllckltcEVuYykpIChkYklkSW1wID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllckltcGxhbnQgbGlzdChsaXN0KHZpYTFJbXBYMSB2aWExSW1wWTEpIGxpc3QodmlhMUltcFgyIHZpYTFJbXBZMikpKSkpICh0aGVZID0gKHRoZVkgKyB2aWExUGl0Y2hXKSkpIHdoZW4oKHZpYTFDb25MYXllciAmJiAoIXZpYTFDb25BbGwgJiYgdmlhMUNvbkNvbCkpICh2aWExQ29uWU9mZiA9IDAuMCkgKHZpYTFDb25YT2ZmID0gMC4wKSAodmlhMUNvblgxID0gKHRoZVggLSB2aWExQ29uWEVuYykpICh2aWExQ29uWTEgPSAodmlhMVkxIC0gdmlhMUNvbllFbmMpKSAodmlhMUNvblgyID0gKGNhYWRyKHZpYTFYWSkgKyB2aWExQ29uWEVuYykpICh2aWExQ29uWTIgPSAoY2FkYWRyKHZpYTFYWSkgKyB2aWExQ29uWUVuYykpICh2aWExQ29uVyA9ICh2aWExQ29uWTIgLSB2aWExQ29uWTEpKSAodmlhMUNvbkwgPSAodmlhMUNvblgyIC0gdmlhMUNvblgxKSkgaWYoKHZpYTFDb25MIDwgdmlhMUNvblcpIHRoZW4gKHZpYTFDb25ZT2ZmID0gbWF4KDAuMCAoKHZpYTFDb25NaW5MIC0gdmlhMUNvblcpIC8gMikpKSB3aGVuKCh2aWExQ29uWU9mZiAhPSAwLjApICh2aWExQ29uWU9mZiA9ICgoY2VpbGluZyAoKHZpYTFDb25ZT2ZmIC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpIGVsc2UgKHZpYTFDb25YT2ZmID0gbWF4KDAuMCAoKHZpYTFDb25NaW5MIC0gdmlhMUNvbkwpIC8gMikpKSB3aGVuKCh2aWExQ29uWE9mZiAhPSAwLjApICh2aWExQ29uWE9mZiA9ICgoY2VpbGluZyAoKHZpYTFDb25YT2ZmIC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpKSAodmlhMUNvblgxID0gKHZpYTFDb25YMSAtIHZpYTFDb25YT2ZmKSkgKHZpYTFDb25ZMSA9IGlmKHZpYTFEb1JvdXRlICgobGF5ZXIxWTEgLSB2aWExQ29uTGF5MVlFeHQpIC0gdmlhMUNvbllPZmYpICh2aWExQ29uWTEgLSB2aWExQ29uWU9mZikpKSAodmlhMUNvblgyID0gKHZpYTFDb25YMiArIHZpYTFDb25YT2ZmKSkgKHZpYTFDb25ZMiA9IGlmKHZpYTFEb1JvdXRlICgobGF5ZXIxWTIgKyB2aWExQ29uTGF5MVlFeHQpICsgdmlhMUNvbllPZmYpICh2aWExQ29uWTIgKyB2aWExQ29uWU9mZikpKSAodmlhMUNvblcgPSAodmlhMUNvblkyIC0gdmlhMUNvblkxKSkgKHZpYTFDb25MID0gKHZpYTFDb25YMiAtIHZpYTFDb25YMSkpIHdoZW4oKCh2aWExQ29uTWF4TCA+IHZpYTFDb25NaW5MKSAmJiAoKHZpYTFDb25XID4gdmlhMUNvbk1heEwpIHx8ICh2aWExQ29uTCA+IHZpYTFDb25NYXhMKSkpIGVycm9yKHNwcmludGYobmlsICJyY0ludGVyQ29uRW5oQ2xhc3M6JUwgbG9uZ2VyIHRoYW4gbWF4IGFsbG93ZWQgKCVMKVxuIiB2aWExQ29uTGF5ZXIgdmlhMUNvbk1heEwpKSkgKGRiSWRDb24gPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUNvbkxheWVyIGxpc3QobGlzdCh2aWExQ29uWDEgdmlhMUNvblkxKSBsaXN0KHZpYTFDb25YMiB2aWExQ29uWTIpKSkpKSAodGhlWCA9ICh0aGVYICsgdmlhMVBpdGNoTCkpKSB3aGVuKCh2aWExQ29uTGF5ZXIgJiYgKHZpYTFDb25BbGwgJiYgIXZpYTFDb25Db2wpKSAodmlhMUNvbllPZmYgPSAwLjApICh2aWExQ29uWE9mZiA9IDAuMCkgKHZpYTFDb25YMSA9ICh2aWExWDEgLSB2aWExQ29uWEVuYykpICh2aWExQ29uWTEgPSAodmlhMVkxIC0gdmlhMUNvbllFbmMpKSAodmlhMUNvblgyID0gKGNhYWRyKHZpYTFYWSkgKyB2aWExQ29uWEVuYykpICh2aWExQ29uWTIgPSAoY2FkYWRyKHZpYTFYWSkgKyB2aWExQ29uWUVuYykpICh2aWExQ29uVyA9ICh2aWExQ29uWTIgLSB2aWExQ29uWTEpKSAodmlhMUNvbkwgPSAodmlhMUNvblgyIC0gdmlhMUNvblgxKSkgaWYoKHZpYTFDb25MIDwgdmlhMUNvblcpIHRoZW4gKHZpYTFDb25ZT2ZmID0gbWF4KDAuMCAoKHZpYTFDb25NaW5MIC0gdmlhMUNvblcpIC8gMikpKSB3aGVuKCh2aWExQ29uWU9mZiAhPSAwLjApICh2aWExQ29uWU9mZiA9ICgoY2VpbGluZyAoKHZpYTFDb25ZT2ZmIC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpIGVsc2UgKHZpYTFDb25YT2ZmID0gbWF4KDAuMCAoKHZpYTFDb25NaW5MIC0gdmlhMUNvbkwpIC8gMikpKSB3aGVuKCh2aWExQ29uWE9mZiAhPSAwLjApICh2aWExQ29uWE9mZiA9ICgoY2VpbGluZyAoKHZpYTFDb25YT2ZmIC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpKSAodmlhMUNvblgxID0gKHZpYTFDb25YMSAtIHZpYTFDb25YT2ZmKSkgKHZpYTFDb25ZMSA9IGlmKHZpYTFEb1JvdXRlICgobGF5ZXIxWTEgLSB2aWExQ29uTGF5MVlFeHQpIC0gdmlhMUNvbllPZmYpICh2aWExQ29uWTEgLSB2aWExQ29uWU9mZikpKSAodmlhMUNvblgyID0gKHZpYTFDb25YMiArIHZpYTFDb25YT2ZmKSkgKHZpYTFDb25ZMiA9IGlmKHZpYTFEb1JvdXRlICgobGF5ZXIxWTIgKyB2aWExQ29uTGF5MVlFeHQpICsgdmlhMUNvbllPZmYpICh2aWExQ29uWTIgKyB2aWExQ29uWU9mZikpKSAodmlhMUNvblcgPSAodmlhMUNvblkyIC0gdmlhMUNvblkxKSkgKHZpYTFDb25MID0gKHZpYTFDb25YMiAtIHZpYTFDb25YMSkpIHdoZW4oKCh2aWExQ29uTWF4TCA+IHZpYTFDb25NaW5MKSAmJiAoKHZpYTFDb25XID4gdmlhMUNvbk1heEwpIHx8ICh2aWExQ29uTCA+IHZpYTFDb25NYXhMKSkpIGVycm9yKHNwcmludGYobmlsICJyY0ludGVyQ29uRW5oQ2xhc3M6JUwgbG9uZ2VyIHRoYW4gbWF4IGFsbG93ZWQgKCVMKVxuIiB2aWExQ29uTGF5ZXIgdmlhMUNvbk1heEwpKSkgKGRiSWRDb24gPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUNvbkxheWVyIGxpc3QobGlzdCh2aWExQ29uWDEgdmlhMUNvblkxKSBsaXN0KHZpYTFDb25YMiB2aWExQ29uWTIpKSkpKSBpZighdmlhMU9mZiB0aGVuIChjb250YWN0QmJveCA9IGxpc3QobGlzdCh2aWExWDEgdmlhMVkxKSBsaXN0KGNhYWRyKHZpYTFYWSkgY2FkYWRyKHZpYTFYWSkpKSkgZWxzZSAoY29udGFjdEJib3ggPSBsaXN0KGxpc3QoKHZpYTFYMSAtIHZpYTFDb25YRW5jKSAodmlhMVkxIC0gdmlhMUNvbllFbmMpKSBsaXN0KGNhYWRyKChkYklkQ29ufj5iQm94KSkgY2FkYWRyKChkYklkQ29ufj5iQm94KSkpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExheWVyQmJveCIgImxpc3QiIGNvbnRhY3RCYm94KSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExlbmd0aCIgImZsb2F0IiB2aWExTGVuZ3RoKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RTcGFjZSIgImZsb2F0IiBtYXgodmlhMVNwYWNlWCB2aWExU3BhY2VZKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0WUVuYyIgImZsb2F0IiB2aWExTGF5MVlFbmMpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdFhFbmMiICJmbG9hdCIgdmlhMUxheTFYRW5jKSB3aGVuKCh2aWExQ29uTGF5ZXIgJiYgKHZpYTFDb25BbGwgfHwgdmlhMUNvbkNvbCkpIGlmKCh2aWExQ29uTCA8IHZpYTFDb25XKSB0aGVuIChsYXllcjFZT2ZmID0gaWYod2xEcml2ZW4gMC4wIHZpYTFDb25ZT2ZmKSkgZWxzZSAobGF5ZXIxWE9mZiA9IGlmKHdsRHJpdmVuIDAuMCB2aWExQ29uWE9mZikpKSkgd2hlbighbGF5ZXIxIChkYkFkZEZpZ1RvTmV0IGRiSWRDb24gbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWRDb24pKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIHZpYTFDb25MYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiBsaXN0KGxpc3QodmlhMVgxIHZpYTFZMSkgbGlzdChjYWFkcigoZGJJZENvbn4+YkJveCkpIGNhZGFkcigoZGJJZENvbn4+YkJveCkpKSkpKSB3aGVuKCgodmlhMUltcGxhbnRPbiB8fCBpbXBsYW50KSAmJiB2aWExTGF5ZXJJbXBsYW50ICYmICF2aWExSW1wbGFudFNpbmdsZSkgKHZpYTFJbXBYMSA9ICh2aWExWDEgLSB2aWExTGF5ZXJJbXBFbmMpKSAodmlhMUltcFkxID0gKHZpYTFZMSAtIHZpYTFMYXllckltcEVuYykpICh2aWExSW1wWDIgPSAoY2FhZHIodmlhMVhZKSArIHZpYTFMYXllckltcEVuYykpICh2aWExSW1wWTIgPSAoY2FkYWRyKHZpYTFYWSkgKyB2aWExTGF5ZXJJbXBFbmMpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXJJbXBsYW50IGxpc3QobGlzdCh2aWExSW1wWDEgdmlhMUltcFkxKSBsaXN0KHZpYTFJbXBYMiB2aWExSW1wWTIpKSkpKSB3aGVuKCgodmlhMUNvbkltcGxhbnRPbiB8fCBpbXBsYW50KSAmJiB2aWExQ29uSW1wbGFudCkgKHZpYTFDb25YWSA9IGxpc3QobGlzdCgodmlhMVgxIC0gdmlhMUNvblhFbmMpICh2aWExWTEgLSB2aWExQ29uWUVuYykpIGxpc3QoKGNhYWRyKHZpYTFYWSkgKyB2aWExQ29uWEVuYykgKGNhZGFkcih2aWExWFkpICsgdmlhMUNvbllFbmMpKSkpICh2aWExQ29uSW1wWDEgPSAoY2Fhcih2aWExQ29uWFkpIC0gKHZpYTFDb25YT2ZmICsgdmlhMUNvbkltcEVuYykpKSAodmlhMUNvbkltcFkxID0gKGNhZGFyKHZpYTFDb25YWSkgLSAodmlhMUNvbllPZmYgKyB2aWExQ29uSW1wRW5jKSkpICh2aWExQ29uSW1wWDIgPSAoY2FhZHIodmlhMUNvblhZKSArIHZpYTFDb25JbXBFbmMgKyB2aWExQ29uWE9mZikpICh2aWExQ29uSW1wWTIgPSAoY2FkYWRyKHZpYTFDb25YWSkgKyB2aWExQ29uSW1wRW5jICsgdmlhMUNvbllPZmYpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExQ29uSW1wbGFudCBsaXN0KGxpc3QodmlhMUNvbkltcFgxIHZpYTFDb25JbXBZMSkgbGlzdCh2aWExQ29uSW1wWDIgdmlhMUNvbkltcFkyKSkpKSkgd2hlbih2aWEyTGF5ZXIgaWYoY2VudGVyIHRoZW4gKHZpYTFXID0gKGNhZGFkcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpIC0gY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSkpICh2aWEyVyA9ICh2aWEyV2lkdGggKyAoKHZpYTJSb3cgLSAxKSAqIHZpYTJQaXRjaFcpKSkgKHZpYTJZT2Zmc2V0ID0gKCh2aWExVyAtIHZpYTJXKSAvIDIpKSAodmlhMllPZmZzZXQgPSAoZml4KCgodmlhMllPZmZzZXQgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSAodmlhMUwgPSAoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSkpICh2aWEyTCA9ICh2aWEyTGVuZ3RoICsgKCh2aWEyQ29sdW1uIC0gMSkgKiB2aWEyUGl0Y2hMKSkpICh2aWEyWE9mZnNldCA9ICgodmlhMUwgLSB2aWEyTCkgLyAyKSkgKHZpYTJYT2Zmc2V0ID0gKGZpeCgoKHZpYTJYT2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkgKHZpYTJYMSA9ICh2aWExWDEgKyB2aWEyWE9mZnNldCkpICh2aWEyWTEgPSAodmlhMVkxICsgdmlhMllPZmZzZXQpKSBlbHNlICh2aWEyWDEgPSB2aWExWDEpICh2aWEyWTEgPSB2aWExWTEpKSAodGhlWCA9IHZpYTJYMSkgZm9yKGNvbCAxIHZpYTJDb2x1bW4gKHRoZVkgPSB2aWEyWTEpIGZvcihyIDEgdmlhMlJvdyAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdChsaXN0KHRoZVggdGhlWSkgbGlzdCgodGhlWCArIHZpYTJMZW5ndGgpICh0aGVZICsgdmlhMldpZHRoKSkpKSkgKHRoZVkgPSAodGhlWSArIHZpYTJQaXRjaFcpKSkgKHRoZVggPSAodGhlWCArIHZpYTJQaXRjaEwpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0MkxheWVyIiAibGlzdCIgdmlhMkxheWVyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3QyTGF5ZXJCYm94IiAibGlzdCIgbGlzdChsaXN0KHZpYTJYMSB2aWEyWTEpIGxpc3QoY2FhZHIoKGRiSWR+PmJCb3gpKSBjYWRhZHIoKGRiSWR+PmJCb3gpKSkpKSB3aGVuKChpbXBsYW50ICYmIHZpYTJMYXllckltcGxhbnQpICh2aWEySW1wWDEgPSAodmlhMlgxIC0gdmlhMkxheWVySW1wRW5jKSkgKHZpYTJJbXBZMSA9ICh2aWEyWTEgLSB2aWEyTGF5ZXJJbXBFbmMpKSAodmlhMkltcFgyID0gKGNhYWRyKChkYklkfj5iQm94KSkgKyB2aWEyTGF5ZXJJbXBFbmMpKSAodmlhMkltcFkyID0gKGNhZGFkcigoZGJJZH4+YkJveCkpICsgdmlhMkxheWVySW1wRW5jKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVySW1wbGFudCBsaXN0KGxpc3QodmlhMkltcFgxIHZpYTJJbXBZMSkgbGlzdCh2aWEySW1wWDIgdmlhMkltcFkyKSkpKSkpIChsYXllcjFYMSA9IChsYXllcjFYMSAtIGxheWVyMVhPZmYpKSAobGF5ZXIxWTEgPSAobGF5ZXIxWTEgLSBsYXllcjFZT2ZmKSkgKGxheWVyMVgyID0gKGxheWVyMVgyICsgbGF5ZXIxWE9mZikpIChsYXllcjFZMiA9IChsYXllcjFZMiArIGxheWVyMVlPZmYpKSB3aGVuKGxheWVyMSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGlzdChsaXN0KGxheWVyMVgxIGxheWVyMVkxKSBsaXN0KGxheWVyMVgyIGxheWVyMVkyKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXIiICJsaXN0IiBsYXllcjEpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXJCYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSkgd2hlbihpZExheWVyIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGlkTGF5ZXIgbGlzdChsaXN0KGxheWVyMVgxIGxheWVyMVkxKSBsaXN0KGxheWVyMVgyIGxheWVyMVkyKSkpKSkgd2hlbigoaW1wbGFudCAmJiBsYXllcjFJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjFJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIxWDEgLSBsYXllcjFJbXBFbmMpIChsYXllcjFZMSAtIGxheWVyMUltcEVuYykpIGxpc3QoKGxheWVyMVgyICsgbGF5ZXIxSW1wRW5jKSAobGF5ZXIxWTIgKyBsYXllcjFJbXBFbmMpKSkpKSkgd2hlbigoaW1wbGFudCAmJiBsYXkxSW1wSW5XZWxsICYmIGluV2VsbCAmJiB3ZWxsTGF5ZXIpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheTFJbXBJbldlbGwgbGlzdChsaXN0KChsYXllcjFYMSAtIGxheTFJbXBJbldlbGxFbmMpIChsYXllcjFZMSAtIGxheTFJbXBJbldlbGxFbmMpKSBsaXN0KChsYXllcjFYMiArIGxheTFJbXBJbldlbGxFbmMpIChsYXllcjFZMiArIGxheTFJbXBJbldlbGxFbmMpKSkpKSkgd2hlbigoaW5XZWxsICYmIHdlbGxMYXllcikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QobGlzdCgobGF5ZXIxWDEgLSB3ZWxsTGF5ZXJFbmMpIChsYXllcjFZMSAtIHdlbGxMYXllckVuYykpIGxpc3QoKGxheWVyMVgyICsgd2VsbExheWVyRW5jKSAobGF5ZXIxWTIgKyB3ZWxsTGF5ZXJFbmMpKSkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgIndlbGxMYXllciIgImxpc3QiIHdlbGxMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ3ZWxsTGF5ZXJCYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSkgaWYoIXZpYTFPZmYgdGhlbiBpZih2aWEyTGF5ZXIgdGhlbiAobGF5ZXIyWDFfSSA9IChjYWFyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgLSB2aWExTGF5MlhFbmMpKSAobGF5ZXIyWTFfSSA9IChjYWRhcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpIC0gdmlhMUxheTJZRW5jKSkgKGxheWVyMlgyX0kgPSAoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSArIHZpYTFMYXkyWEVuYykpIChsYXllcjJZMl9JID0gKGNhZGFkcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpICsgdmlhMUxheTJZRW5jKSkgKGxheWVyMlgxX0lJID0gKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3QyTGF5ZXJCYm94KSkgLSB2aWEyTGF5MlhFbmMpKSAobGF5ZXIyWTFfSUkgPSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3QyTGF5ZXJCYm94KSkgLSB2aWEyTGF5MllFbmMpKSAobGF5ZXIyWDJfSUkgPSAoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3QyTGF5ZXJCYm94KSkgKyB2aWEyTGF5MlhFbmMpKSAobGF5ZXIyWTJfSUkgPSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0MkxheWVyQmJveCkpICsgdmlhMkxheTJZRW5jKSkgKGxheWVyMlgxID0gbWluKGxheWVyMlgxX0kgbGF5ZXIyWDFfSUkpKSAobGF5ZXIyWTEgPSBtaW4obGF5ZXIyWTFfSSBsYXllcjJZMV9JSSkpIChsYXllcjJYMiA9IG1heChsYXllcjJYMl9JIGxheWVyMlgyX0lJKSkgKGxheWVyMlkyID0gbWF4KGxheWVyMlkyX0kgbGF5ZXIyWTJfSUkpKSBlbHNlIChsYXllcjJYMSA9IChjYWFyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgLSB2aWExTGF5MlhFbmMpKSAobGF5ZXIyWTEgPSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYTFMYXkyWUVuYykpIChsYXllcjJYMiA9IChjYWFkcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpICsgdmlhMUxheTJYRW5jKSkgKGxheWVyMlkyID0gKGNhZGFkcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpICsgdmlhMUxheTJZRW5jKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QobGF5ZXIyWDEgbGF5ZXIyWTEpIGxpc3QobGF5ZXIyWDIgbGF5ZXIyWTIpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgaWYoIWxheWVyMyB0aGVuIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSBlbHNlIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAibWlkZGxlTGF5ZXIiICJsaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAibWlkZGxlTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllcklzVmlhIiAiYm9vbGVhbiIgIkZBTFNFIikgd2hlbigoaW1wbGFudCAmJiBsYXllcjJJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjJJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIyWDEgLSBsYXllcjJJbXBFbmMpIChsYXllcjJZMSAtIGxheWVyMkltcEVuYykpIGxpc3QoKGxheWVyMlgyICsgbGF5ZXIySW1wRW5jKSAobGF5ZXIyWTIgKyBsYXllcjJJbXBFbmMpKSkpKSkgZWxzZSAoZGJBZGRGaWdUb05ldCBkYklkQ29uIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkQ29uKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiB2aWExQ29uTGF5ZXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgY29udGFjdEJib3gpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJJc1ZpYSIgImJvb2xlYW4iICJUUlVFIikpIHdoZW4obGF5ZXIzIChsYXllcjNYMSA9IChjYWFyKCh0Y0NlbGxWaWV3fj5jb250YWN0MkxheWVyQmJveCkpIC0gdmlhMkxheTNYRW5jKSkgKGxheWVyM1kxID0gKGNhZGFyKCh0Y0NlbGxWaWV3fj5jb250YWN0MkxheWVyQmJveCkpIC0gdmlhMkxheTNZRW5jKSkgKGxheWVyM1gyID0gKGNhYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0MkxheWVyQmJveCkpICsgdmlhMkxheTNYRW5jKSkgKGxheWVyM1kyID0gKGNhZGFkcigodGNDZWxsVmlld34+Y29udGFjdDJMYXllckJib3gpKSArIHZpYTJMYXkzWUVuYykpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QobGF5ZXIzWDEgbGF5ZXIzWTEpIGxpc3QobGF5ZXIzWDIgbGF5ZXIzWTIpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMykgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4oKGltcGxhbnQgJiYgbGF5ZXIzSW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzSW1wbGFudCBsaXN0KGxpc3QoKGxheWVyM1gxIC0gbGF5ZXIzSW1wRW5jKSAobGF5ZXIzWTEgLSBsYXllcjNJbXBFbmMpKSBsaXN0KChsYXllcjNYMiArIGxheWVyM0ltcEVuYykgKGxheWVyM1kyICsgbGF5ZXIzSW1wRW5jKSkpKSkpKSBpZigodXNlU2hyaW5rTGF5ZXIxID09IHQpIHRoZW4gd2hlbihzcGVjaWFsTGF5ZXIgd2hlbigoKHRjQ2VsbFZpZXd+PnRvcExheWVyKSAmJiAoY2FyKCh0Y0NlbGxWaWV3fj50b3BMYXllcikpID09IGNhcihzcGVjaWFsTGF5ZXIpKSkgaWYoKChhYnMoKGNhYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSAtIGNhYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpKSkgPiBjYWRyKHNwZWNpYWxMYXllcikpICYmIChhYnMoKGNhZGFkcigodGNDZWxsVmlld34+dG9wTGF5ZXJQaW5CYm94KSkgLSBjYWRhcigodGNDZWxsVmlld34+dG9wTGF5ZXJQaW5CYm94KSkpKSA+IGNhZHIoc3BlY2lhbExheWVyKSkpIHRoZW4gZXJyb3Ioc3ByaW50ZihuaWwgInJjSW50ZXJDb25FbmhDbGFzczolTCBsb25nZXIgdGhhbiAoJUwpIG5vdCBtYXggYWxsb3dlZCBcbiIgY2FyKHNwZWNpYWxMYXllcikgY2FkcihzcGVjaWFsTGF5ZXIpKSkpKSB3aGVuKCgodGNDZWxsVmlld34+bWlkZGxlTGF5ZXIpICYmIChjYXIoKHRjQ2VsbFZpZXd+Pm1pZGRsZUxheWVyKSkgPT0gY2FyKHNwZWNpYWxMYXllcikpKSBpZigoKGFicygoY2FhZHIoKHRjQ2VsbFZpZXd+Pm1pZGRsZUxheWVyUGluQmJveCkpIC0gY2FhcigodGNDZWxsVmlld34+bWlkZGxlTGF5ZXJQaW5CYm94KSkpKSA+IGNhZHIoc3BlY2lhbExheWVyKSkgJiYgKGFicygoY2FkYWRyKCh0Y0NlbGxWaWV3fj5taWRkbGVMYXllclBpbkJib3gpKSAtIGNhZGFyKCh0Y0NlbGxWaWV3fj5taWRkbGVMYXllclBpbkJib3gpKSkpID4gY2FkcihzcGVjaWFsTGF5ZXIpKSkgdGhlbiBlcnJvcihzcHJpbnRmKG5pbCAicmNJbnRlckNvbkVuaENsYXNzOiVMIGxvbmdlciB0aGFuICglTCkgbm90IG1heCBhbGxvd2VkIFxuIiBjYXIoc3BlY2lhbExheWVyKSBjYWRyKHNwZWNpYWxMYXllcikpKSkpIHdoZW4oKCh0Y0NlbGxWaWV3fj5ib3RMYXllcikgJiYgKGNhcigodGNDZWxsVmlld34+Ym90TGF5ZXIpKSA9PSBjYXIoc3BlY2lhbExheWVyKSkpIGlmKCgoYWJzKChjYWFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkgLSBjYWFyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkpID4gY2FkcihzcGVjaWFsTGF5ZXIpKSAmJiAoYWJzKChjYWRhZHIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpIC0gY2FkYXIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSkgPiBjYWRyKHNwZWNpYWxMYXllcikpKSB0aGVuIGVycm9yKHNwcmludGYobmlsICJyY0ludGVyQ29uRW5oQ2xhc3M6JUwgbG9uZ2VyIHRoYW4gKCVMKSBub3QgbWF4IGFsbG93ZWQgXG4iIGNhcihzcGVjaWFsTGF5ZXIpIGNhZHIoc3BlY2lhbExheWVyKSkpKSkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hFZmYiICJsaXN0IiBsaXN0KGxpc3QobWluKGNhYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhYXIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSBtaW4oY2FkYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkpIGxpc3QobWF4KGNhYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpIG1heChjYWRhZHIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpKSkpKQAobGF5ZXIxIGxheWVyMiBsYXllcjMgd2VsbExheWVyIHdlbGxMYXllckVuYyBpZExheWVyIHZpYTFMYXllciB2aWEyTGF5ZXIgdmlhMVdpZHRoIHZpYTFMZW5ndGggdmlhMldpZHRoIHZpYTJMZW5ndGggdmlhMUNvbkxheWVyIHZpYTFDb25XaWR0aCB2aWExQ29uTWluTCB2aWExQ29uTWF4TCB2aWExQ29uRW5jIHZpYTFDb25FbmNTcSB2aWExQ29uWEVuYyB2aWExQ29uWUVuYyB2aWExQ29uTGF5MUVuYyB2aWExQ29uTGF5MUVuY1NxIHZpYTFDb25MYXkxWEVuYyB2aWExQ29uTGF5MVlFbmMgdmlhMUNvbkxheTFZRXh0IHZpYTFDb25BbGwgdmlhMUNvbkNvbCB2aWExTGF5MUVuYyB2aWExTGF5MUVuY1NxIHZpYTFMYXkxWEVuYyB2aWExTGF5MVlFbmMgdmlhMUxheTJFbmMgdmlhMUxheTJFbmNTcSB2aWExTGF5MlhFbmMgdmlhMUxheTJZRW5jIHZpYTJMYXkyRW5jIHZpYTJMYXkyRW5jU3EgdmlhMkxheTJYRW5jIHZpYTJMYXkyWUVuYyB2aWEyTGF5M0VuYyB2aWEyTGF5M0VuY1NxIHZpYTJMYXkzWEVuYyB2aWEyTGF5M1lFbmMgbGF5ZXIxSW1wbGFudCBsYXllcjFJbXBFbmMgbGF5MUltcEluV2VsbCBsYXkxSW1wSW5XZWxsRW5jIGxheWVyMkltcGxhbnQgbGF5ZXIySW1wRW5jIGxheWVyM0ltcGxhbnQgbGF5ZXIzSW1wRW5jIHZpYTFMYXllckltcGxhbnQgdmlhMUxheWVySW1wRW5jIHZpYTFJbXBsYW50T24gdmlhMUltcGxhbnRTaW5nbGUgdmlhMUNvbkltcGxhbnQgdmlhMUNvbkltcGxhbnRPbiB2aWExQ29uSW1wRW5jIHZpYTJMYXllckltcGxhbnQgdmlhMkxheWVySW1wRW5jIHNuYXBHcmlkIHVzZVNxdWFyZUVuYyB1c2VWaWExT2ZmIGNvbnRhY3RPblggY29udGFjdE9uWSBjb250YWN0T25YWSBtaW52aWExTGF5MVhFbmMgbWluVyBtaW5MIG1pbnZpYTJMYXkyWEVuYyBzcGVjaWFsTGF5ZXIgaW1wbGFudCB2aWExRG9Sb3V0ZSB2aWExT2ZmIGluV2VsbCBlcUVuYyBzcUJvdHRvbSBjZW50ZXIgdmlhMVNwYWNlWCB2aWExU3BhY2VZIHZpYTJTcGFjZVggdmlhMlNwYWNlWSBXIEwgd2xEcml2ZW4gcm93IGNvbHVtbiByb3RhdGVNaWRkbGUgcm90YXRlVG9wIHVzZVNocmlua0xheWVyMSBhbGxEaXIgbmV0IHZpYTFEb1JvdXRlVyBzd2FwVGVtcCB2aWExTGF5MUVxWE9mZiB2aWExTGF5MUVxWU9mZiB2aWExUGl0Y2hXIHZpYTFQaXRjaEwgdmlhMlBpdGNoVyB2aWEyUGl0Y2hMIHZpYVcxIHZpYUwxIHZpYVcyIHZpYUwyIHZpYTFSb3cgdmlhMUNvbHVtbiB2aWEyUm93IHZpYTJDb2x1bW4gdmlhVyB2aWFMIHZpYTFXUmVzdCB2aWExTFJlc3QgbGF5ZXIxWDEgbGF5ZXIxWTEgbGF5ZXIxWE9mZiBsYXllcjFZT2ZmIGxheWVyMVgyIGxheWVyMVkyIHZpYTFYMSB2aWExWTEgdmlhMUNvblhPZmYgdmlhMUNvbllPZmYgdGhlWCBjb2wgdGhlWSByIHZpYTFYWSBkYklkIHZpYTFDb25YMSB2aWExQ29uWTEgdmlhMUNvblgyIHZpYTFDb25ZMiBkYklkQ29uIHZpYTFJbXBYMSB2aWExSW1wWTEgdmlhMUltcFgyIHZpYTFJbXBZMiBkYklkSW1wIHZpYTFDb25XIHZpYTFDb25MIGNvbnRhY3RCYm94IHBpbklkIHZpYTFDb25YWSB2aWExQ29uSW1wWDEgdmlhMUNvbkltcFkxIHZpYTFDb25JbXBYMiB2aWExQ29uSW1wWTIgdmlhMVcgdmlhMlcgdmlhMllPZmZzZXQgdmlhMUwgdmlhMkwgdmlhMlhPZmZzZXQgdmlhMlgxIHZpYTJZMSB2aWEySW1wWDEgdmlhMkltcFkxIHZpYTJJbXBYMiB2aWEySW1wWTIgbGF5ZXIyWDFfSSBsYXllcjJZMV9JIGxheWVyMlgyX0kgbGF5ZXIyWTJfSSBsYXllcjJYMV9JSSBsYXllcjJZMV9JSSBsYXllcjJYMl9JSSBsYXllcjJZMl9JSSBsYXllcjJYMSBsYXllcjJZMSBsYXllcjJYMiBsYXllcjJZMiBsYXllcjNYMSBsYXllcjNZMSBsYXllcjNYMiBsYXllcjNZMikAKChpbXBsYW50ICJGQUxTRSIpICh2aWExRG9Sb3V0ZSAiRkFMU0UiKSAodmlhMU9mZiAiRkFMU0UiKSAoaW5XZWxsICJGQUxTRSIpIChlcUVuYyAiRkFMU0UiKSAoc3FCb3R0b20gIkZBTFNFIikgKGNlbnRlciAiRkFMU0UiKSAodmlhMVNwYWNlWCAwLjApICh2aWExU3BhY2VZIDAuMCkgKHZpYTJTcGFjZVggMC4wKSAodmlhMlNwYWNlWSAwLjApIChXIDEuMCkgKEwgMS4wKSAod2xEcml2ZW4gIkZBTFNFIikgKHJvdyAxKSAoY29sdW1uIDEpIChyb3RhdGVNaWRkbGUgIkZBTFNFIikgKHJvdGF0ZVRvcCAiRkFMU0UiKSkAKChsYXllcjEgbmlsKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKGxheWVyMyBuaWwpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbExheWVyRW5jIDAuMCkgKGlkTGF5ZXIgbmlsKSAodmlhMUxheWVyICJ5NCIpICh2aWEyTGF5ZXIgbmlsKSAodmlhMVdpZHRoIDAuMCkgKHZpYTFMZW5ndGggMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTJMZW5ndGggMC4wKSAodmlhMUNvbkxheWVyIG5pbCkgKHZpYTFDb25XaWR0aCAwLjApICh2aWExQ29uTWluTCAwLjApICh2aWExQ29uTWF4TCAwLjApICh2aWExQ29uRW5jIDAuMCkgKHZpYTFDb25FbmNTcSAwLjApICh2aWExQ29uWEVuYyAwLjApICh2aWExQ29uWUVuYyAwLjApICh2aWExQ29uTGF5MUVuYyAwLjApICh2aWExQ29uTGF5MUVuY1NxIDAuMCkgKHZpYTFDb25MYXkxWEVuYyAwLjApICh2aWExQ29uTGF5MVlFbmMgMC4wKSAodmlhMUNvbkxheTFZRXh0IDAuMCkgKHZpYTFDb25BbGwgbmlsKSAodmlhMUNvbkNvbCBuaWwpICh2aWExTGF5MUVuYyAwLjApICh2aWExTGF5MUVuY1NxIDAuMCkgKHZpYTFMYXkxWEVuYyAwLjApICh2aWExTGF5MVlFbmMgMC4wKSAodmlhMUxheTJFbmMgMC4wKSAodmlhMUxheTJFbmNTcSAwLjApICh2aWExTGF5MlhFbmMgMC4wKSAodmlhMUxheTJZRW5jIDAuMCkgKHZpYTJMYXkyRW5jIDAuMCkgKHZpYTJMYXkyRW5jU3EgMC4wKSAodmlhMkxheTJYRW5jIDAuMCkgKHZpYTJMYXkyWUVuYyAwLjApICh2aWEyTGF5M0VuYyAwLjApICh2aWEyTGF5M0VuY1NxIDAuMCkgKHZpYTJMYXkzWEVuYyAwLjApICh2aWEyTGF5M1lFbmMgMC4wKSAobGF5ZXIxSW1wbGFudCBuaWwpIChsYXllcjFJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKGxheTFJbXBJbldlbGwgbmlsKSAobGF5MUltcEluV2VsbEVuYyAwLjApIChsYXllcjJJbXBsYW50IG5pbCkgKGxheWVyMkltcEVuYyAwLjApIChsYXllcjNJbXBsYW50IG5pbCkgKGxheWVyM0ltcEVuYyAwLjApICh2aWExTGF5ZXJJbXBsYW50IG5pbCkgKHZpYTFMYXllckltcEVuYyAwLjApICh2aWExSW1wbGFudE9uIG5pbCkgKHZpYTFJbXBsYW50U2luZ2xlIG5pbCkgKHZpYTFDb25JbXBsYW50IG5pbCkgKHZpYTFDb25JbXBsYW50T24gbmlsKSAodmlhMUNvbkltcEVuYyAwLjApICh2aWEyTGF5ZXJJbXBsYW50IG5pbCkgKHZpYTJMYXllckltcEVuYyAwLjApIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAodXNlU3F1YXJlRW5jIG5pbCkgKHVzZVZpYTFPZmYgbmlsKSAoY29udGFjdE9uWCBuaWwpIChjb250YWN0T25ZIG5pbCkgKGNvbnRhY3RPblhZIG5pbCkgKG1pbnZpYTFMYXkxWEVuYyBuaWwpIChtaW5XIG5pbCkgKG1pbkwgbmlsKSAobWludmlhMkxheTJYRW5jIG5pbCkgKHNwZWNpYWxMYXllciBuaWwpKQAoaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKChpbldlbGwgPT0gdCkgfHwgKGluV2VsbCA9PSAiVFJVRSIpKSB0aGVuIChpbldlbGwgPSB0KSBlbHNlIChpbldlbGwgPSBuaWwpKSB3aGVuKGltcGxhbnQgd2hlbihsYXllcjFJbXBsYW50IGlmKGluV2VsbCB0aGVuIChsYXllcjFJbXBsYW50ID0gY2FkcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhZHIobGF5ZXIxSW1wRW5jKSkgZWxzZSAobGF5ZXIxSW1wbGFudCA9IGNhcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhcihsYXllcjFJbXBFbmMpKSkpIHdoZW4obGF5ZXIxQ29yZUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMUNvcmVJbXBsYW50ID0gY2FkcihsYXllcjFDb3JlSW1wbGFudCkpIChsYXllcjFDb3JlSW1wRW5jID0gY2FkcihsYXllcjFDb3JlSW1wRW5jKSkgZWxzZSAobGF5ZXIxQ29yZUltcGxhbnQgPSBjYXIobGF5ZXIxQ29yZUltcGxhbnQpKSAobGF5ZXIxQ29yZUltcEVuYyA9IGNhcihsYXllcjFDb3JlSW1wRW5jKSkpKSB3aGVuKGxheWVyMkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMkltcGxhbnQgPSBjYWRyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FkcihsYXllcjJJbXBFbmMpKSBlbHNlIChsYXllcjJJbXBsYW50ID0gY2FyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FyKGxheWVyMkltcEVuYykpKSkgd2hlbihsYXllcjNJbXBsYW50IGlmKGluV2VsbCB0aGVuIChsYXllcjNJbXBsYW50ID0gY2FkcihsYXllcjNJbXBsYW50KSkgKGxheWVyM0ltcEVuYyA9IGNhZHIobGF5ZXIzSW1wRW5jKSkgZWxzZSAobGF5ZXIzSW1wbGFudCA9IGNhcihsYXllcjNJbXBsYW50KSkgKGxheWVyM0ltcEVuYyA9IGNhcihsYXllcjNJbXBFbmMpKSkpIHdoZW4odmlhMUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHZpYTFJbXBsYW50ID0gY2Fkcih2aWExSW1wbGFudCkpICh2aWExSW1wRW5jID0gY2Fkcih2aWExSW1wRW5jKSkgZWxzZSAodmlhMUltcGxhbnQgPSBjYXIodmlhMUltcGxhbnQpKSAodmlhMUltcEVuYyA9IGNhcih2aWExSW1wRW5jKSkpKSB3aGVuKHZpYTJJbXBsYW50IGlmKGluV2VsbCB0aGVuICh2aWEySW1wbGFudCA9IGNhZHIodmlhMkltcGxhbnQpKSAodmlhMkltcEVuYyA9IGNhZHIodmlhMkltcEVuYykpIGVsc2UgKHZpYTJJbXBsYW50ID0gY2FyKHZpYTJJbXBsYW50KSkgKHZpYTJJbXBFbmMgPSBjYXIodmlhMkltcEVuYykpKSkpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIHdoZW4oc3RyaW5ncChsYXllcjEpIChsYXllcjEgPSBsaXN0KGxheWVyMSAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKGxheWVyMikgKGxheWVyMiA9IGxpc3QobGF5ZXIyICJkcmF3aW5nIikpKSB3aGVuKChsYXllcjMgJiYgc3RyaW5ncChsYXllcjMpKSAobGF5ZXIzID0gbGlzdChsYXllcjMgImRyYXdpbmciKSkpIChsYXllcjFsZW5ndGggPSBtYXgoKCgyICogbGF5ZXIxRW5jVmlhMSkgKyAoY29sdW1uICogdmlhMVdpZHRoKSArICgoY29sdW1uIC0gMSkgKiB2aWExU3BhY2UpKSBsYXllcjFXaWR0aCkpIChsYXllcjF3aWR0aCA9IG1heCgoKDIgKiBsYXllcjFFbmNWaWExKSArIChyb3cgKiB2aWExV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTFTcGFjZSkpIGxheWVyMVdpZHRoKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJvdExheWVyIiAibGlzdCIgbGF5ZXIxKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJvdExheWVyQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgd2hlbihtYXh2TGF5ZXIgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSkgd2hlbigoaW1wbGFudCAmJiBsYXllcjFJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjFJbXBsYW50IGxpc3QobGlzdCgoLSBsYXllcjFJbXBFbmMpICgtIGxheWVyMUltcEVuYykpIGxpc3QoKGxheWVyMWxlbmd0aCArIGxheWVyMUltcEVuYykgKGxheWVyMXdpZHRoICsgbGF5ZXIxSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKChsYXllcjFDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjFDb3JlSW1wbGFudCBsaXN0KGxpc3QoKC0gbGF5ZXIxQ29yZUltcEVuYykgKC0gbGF5ZXIxQ29yZUltcEVuYykpIGxpc3QoKGxheWVyMWxlbmd0aCArIGxheWVyMUNvcmVJbXBFbmMpIChsYXllcjF3aWR0aCArIGxheWVyMUNvcmVJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4oKGltcGxhbnQgJiYgaW5XZWxsICYmIHdlbGxMYXllcikgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QobGlzdCgoLSB3ZWxsTGF5ZXJFbmMpICgtIHdlbGxMYXllckVuYykpIGxpc3QoKGxheWVyMWxlbmd0aCArIHdlbGxMYXllckVuYykgKGxheWVyMXdpZHRoICsgd2VsbExheWVyRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoY29udGFjdFBpdGNoID0gKHZpYTFTcGFjZSArIHZpYTFXaWR0aCkpICh0aGVZID0gbGF5ZXIxRW5jVmlhMSkgZm9yKHIgMSByb3cgKHRoZVggPSBsYXllcjFFbmNWaWExKSBmb3IoY29sIDEgY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QodGhlWCB0aGVZKSBsaXN0KCh0aGVYICsgdmlhMVdpZHRoKSAodGhlWSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgY29udGFjdFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyBjb250YWN0UGl0Y2gpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0V2lkdGgiICJsaXN0IiB2aWExV2lkdGgpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdFNwYWNlIiAibGlzdCIgdmlhMVNwYWNlKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllciIgImxpc3QiIHZpYTFMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgobGF5ZXIxRW5jVmlhMTpsYXllcjFFbmNWaWExKSAoY2FhZHIoKGRiSWR+PmJCb3gpKTpjYWRhZHIoKGRiSWR+PmJCb3gpKSkpKSB3aGVuKChpbXBsYW50ICYmIHZpYTFJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExSW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMUVuY1ZpYTEgLSB2aWExSW1wRW5jKSAobGF5ZXIxRW5jVmlhMSAtIHZpYTFJbXBFbmMpKSBsaXN0KChjYWFkcigoZGJJZH4+YkJveCkpICsgdmlhMUltcEVuYykgKGNhZGFkcigoZGJJZH4+YkJveCkpICsgdmlhMUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QoKGxheWVyMUVuY1ZpYTEgLSBsYXllcjJYRW5jVmlhMSkgKGxheWVyMUVuY1ZpYTEgLSBsYXllcjJZRW5jVmlhMSkpIGxpc3QoKG1heChsYXllcjJXaWR0aCAoKDIgKiBsYXllcjJYRW5jVmlhMSkgKyAoY29sdW1uICogdmlhMVdpZHRoKSArICgoY29sdW1uIC0gMSkgKiB2aWExU3BhY2UpKSkgKyAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMlhFbmNWaWExKSkgKG1heChsYXllcjJXaWR0aCAoKDIgKiBsYXllcjJZRW5jVmlhMSkgKyAocm93ICogdmlhMVdpZHRoKSArICgocm93IC0gMSkgKiB2aWExU3BhY2UpKSkgKyAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkpKSkgKGxheWVyMlgxQ29vcmQgPSBjYWFyKGxheWVyMkJib3gpKSAobGF5ZXIyWTFDb29yZCA9IGNhZGFyKGxheWVyMkJib3gpKSB3aGVuKGxheWVyMyAobGF5ZXIyQmJveCA9IGxpc3QobGlzdChtaW4oY2FhcihsYXllcjJCYm94KSAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMkVuY1ZpYTIpKSBtaW4oY2FkYXIobGF5ZXIyQmJveCkgKGxheWVyMUVuY1ZpYTEgLSBsYXllcjJFbmNWaWEyKSkpIGxpc3QobWF4KGNhYWRyKGxheWVyMkJib3gpICgoMiAqIGxheWVyMkVuY1ZpYTIpICsgKGNvbHVtbiAqIHZpYTJXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMlNwYWNlKSArIGxheWVyMUVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyRW5jVmlhMiBsYXllcjJYRW5jVmlhMSkpKSkgbWF4KGNhZGFkcihsYXllcjJCYm94KSAoKDIgKiBsYXllcjJFbmNWaWEyKSArIChyb3cgKiB2aWEyV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTJTcGFjZSkgKyBsYXllcjFFbmNWaWExICsgKC0gbWF4KGxheWVyMkVuY1ZpYTIgbGF5ZXIyWUVuY1ZpYTEpKSkpKSkpIChsYXllcjJYMUNvb3JkID0gY2FhcihsYXllcjJCYm94KSkgKGxheWVyMlkxQ29vcmQgPSBjYWRhcihsYXllcjJCYm94KSkgKGxheWVyM2xlbmd0aCA9IG1heCgoKDIuMCAqIGxheWVyM1hFbmNWaWEyKSArIChjb2x1bW4gKiB2aWEyV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTJTcGFjZSkpIGxheWVyM1dpZHRoKSkgKGxheWVyM3dpZHRoID0gbWF4KCgoMi4wICogbGF5ZXIzWUVuY1ZpYTIpICsgKHJvdyAqIHZpYTJXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMlNwYWNlKSkgbGF5ZXIzV2lkdGgpKSAoY29udGFjdFBpdGNoID0gKHZpYTJTcGFjZSArIHZpYTJXaWR0aCkpICh0aGVZID0gKGxheWVyMlkxQ29vcmQgKyBsYXllcjJFbmNWaWEyKSkgKHRoZVggPSAobGF5ZXIyWDFDb29yZCArIGxheWVyMkVuY1ZpYTIpKSAobGF5ZXIzWDFDb29yZCA9ICh0aGVYIC0gbGF5ZXIzWEVuY1ZpYTIpKSAobGF5ZXIzWTFDb29yZCA9ICh0aGVZIC0gbGF5ZXIzWUVuY1ZpYTIpKSBmb3IociAxIHJvdyAodGhlWCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIyRW5jVmlhMikpIGZvcihjb2wgMSBjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWEyV2lkdGgpICh0aGVZICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyBjb250YWN0UGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIGNvbnRhY3RQaXRjaCkpKSB3aGVuKChpbXBsYW50ICYmIHZpYTJJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEySW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMlgxQ29vcmQgKyBsYXllcjJFbmNWaWEyICsgKC0gdmlhMkltcEVuYykpIChsYXllcjJZMUNvb3JkICsgbGF5ZXIyRW5jVmlhMiArICgtIHZpYTJJbXBFbmMpKSkgbGlzdCgoY2FhZHIoKGRiSWR+PmJCb3gpKSArIHZpYTJJbXBFbmMpIChjYWRhZHIoKGRiSWR+PmJCb3gpKSArIHZpYTJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSB3aGVuKChpbXBsYW50ICYmIGxheWVyMkltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMkltcGxhbnQgbGlzdChsaXN0KChsYXllcjJYMUNvb3JkIC0gbGF5ZXIySW1wRW5jKSAobGF5ZXIyWTFDb29yZCAtIGxheWVyMkltcEVuYykpIGxpc3QoKGNhYWRyKGxheWVyMkJib3gpICsgbGF5ZXIySW1wRW5jKSAoY2FkYWRyKGxheWVyMkJib3gpICsgbGF5ZXIySW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGF5ZXIyQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgY29uZCgoIWxheWVyMyAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkpICh0IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KChsYXllcjNYMUNvb3JkOmxheWVyM1kxQ29vcmQpIGxpc3QoKGxheWVyM1gxQ29vcmQgKyBsYXllcjNsZW5ndGgpIChsYXllcjNZMUNvb3JkICsgbGF5ZXIzd2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjMpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSB3aGVuKChpbXBsYW50ICYmIGxheWVyM0ltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyM0ltcGxhbnQgbGlzdChsaXN0KChsYXllcjNYMUNvb3JkIC0gbGF5ZXIzSW1wRW5jKSAobGF5ZXIzWTFDb29yZCAtIGxheWVyM0ltcEVuYykpIGxpc3QoKGxheWVyM1gxQ29vcmQgKyBsYXllcjNsZW5ndGggKyBsYXllcjNJbXBFbmMpIChsYXllcjNZMUNvb3JkICsgbGF5ZXIzd2lkdGggKyBsYXllcjNJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSkpAChsYXllcjEgbGF5ZXIyIGxheWVyMyBtYXh2TGF5ZXIgdmlhMUxheWVyIHZpYTJMYXllciB3ZWxsTGF5ZXIgd2VsbExheWVyRW5jIGxheWVyMUltcGxhbnQgbGF5ZXIySW1wbGFudCBsYXllcjNJbXBsYW50IGxheWVyMUNvcmVJbXBsYW50IGxheWVyMUNvcmVJbXBFbmMgdmlhMUltcGxhbnQgdmlhMkltcGxhbnQgbGF5ZXIxV2lkdGggbGF5ZXIyV2lkdGggbGF5ZXIzV2lkdGggdmlhMVdpZHRoIHZpYTFTcGFjZSB2aWEyV2lkdGggdmlhMlNwYWNlIGxheWVyMUVuY1ZpYTEgbGF5ZXIyWEVuY1ZpYTEgbGF5ZXIyWUVuY1ZpYTEgbGF5ZXIyRW5jVmlhMiBsYXllcjNYRW5jVmlhMiBsYXllcjNZRW5jVmlhMiBsYXllcjFJbXBFbmMgbGF5ZXIySW1wRW5jIGxheWVyM0ltcEVuYyB2aWExSW1wRW5jIHZpYTJJbXBFbmMgcm93IGNvbHVtbiBpbXBsYW50IGluV2VsbCBhbGxEaXIgbmV0IGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCBkYklkIHBpbklkIGRiaWQgY29udGFjdFBpdGNoIHRoZVkgciB0aGVYIGNvbCBsYXllcjJCYm94IGxheWVyMlgxQ29vcmQgbGF5ZXIyWTFDb29yZCBsYXllcjNsZW5ndGggbGF5ZXIzd2lkdGggbGF5ZXIzWDFDb29yZCBsYXllcjNZMUNvb3JkKQAoKHJvdyAxKSAoY29sdW1uIDEpIChpbXBsYW50ICJGQUxTRSIpIChpbldlbGwgIkZBTFNFIikpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKGxheWVyMyBuaWwpIChtYXh2TGF5ZXIgbmlsKSAodmlhMUxheWVyICJ5NCIpICh2aWEyTGF5ZXIgbmlsKSAod2VsbExheWVyIG5pbCkgKHdlbGxMYXllckVuYyAwLjApIChsYXllcjFJbXBsYW50IG5pbCkgKGxheWVyMkltcGxhbnQgbmlsKSAobGF5ZXIzSW1wbGFudCBuaWwpIChsYXllcjFDb3JlSW1wbGFudCBuaWwpIChsYXllcjFDb3JlSW1wRW5jIGxpc3QoMC4wIDAuMCkpICh2aWExSW1wbGFudCBuaWwpICh2aWEySW1wbGFudCBuaWwpIChsYXllcjFXaWR0aCAwLjApIChsYXllcjJXaWR0aCAwLjApIChsYXllcjNXaWR0aCAwLjApICh2aWExV2lkdGggMC4wKSAodmlhMVNwYWNlIDAuMCkgKHZpYTJXaWR0aCAwLjApICh2aWEyU3BhY2UgMC4wKSAobGF5ZXIxRW5jVmlhMSAwLjApIChsYXllcjJYRW5jVmlhMSAwLjApIChsYXllcjJZRW5jVmlhMSAwLjApIChsYXllcjJFbmNWaWEyIDAuMCkgKGxheWVyM1hFbmNWaWEyIDAuMCkgKGxheWVyM1lFbmNWaWEyIDAuMCkgKGxheWVyMUltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIySW1wRW5jIGxpc3QoMC4wIDAuMCkpIChsYXllcjNJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTFJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTJJbXBFbmMgbGlzdCgwLjAgMC4wKSkpAChpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSAoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSB3aGVuKHN0cmluZ3AobGF5ZXIxKSAobGF5ZXIxID0gbGlzdChsYXllcjEgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgd2hlbigobGF5ZXIzICYmIHN0cmluZ3AobGF5ZXIzKSkgKGxheWVyMyA9IGxpc3QobGF5ZXIzICJkcmF3aW5nIikpKSAobGF5ZXIxbGVuZ3RoID0gbWF4KCgoMiAqIGxheWVyMUVuY1ZpYTEpICsgKGNvbHVtbiAqIHZpYTFXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMVNwYWNlKSkgbGF5ZXIxV2lkdGgpKSAobGF5ZXIxd2lkdGggPSBtYXgoKCgyICogbGF5ZXIxRW5jVmlhMSkgKyAocm93ICogdmlhMVdpZHRoKSArICgocm93IC0gMSkgKiB2aWExU3BhY2UpKSBsYXllcjFXaWR0aCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMSBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4obWF4dkxheWVyIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpIHdoZW4oKGltcGxhbnQgJiYgbGF5ZXIxSW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxSW1wbGFudCBsaXN0KGxpc3QoKC0gbGF5ZXIxSW1wRW5jKSAoLSBsYXllcjFJbXBFbmMpKSBsaXN0KChsYXllcjFsZW5ndGggKyBsYXllcjFJbXBFbmMpIChsYXllcjFsZW5ndGggKyBsYXllcjFJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChjb250YWN0UGl0Y2ggPSAodmlhMVNwYWNlICsgdmlhMVdpZHRoKSkgKHRoZVkgPSBsYXllcjFFbmNWaWExKSBmb3IociAxIHJvdyAodGhlWCA9IGxheWVyMUVuY1ZpYTEpIGZvcihjb2wgMSBjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWExV2lkdGgpICh0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyBjb250YWN0UGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIGNvbnRhY3RQaXRjaCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RXaWR0aCIgImxpc3QiIHZpYTFXaWR0aCkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0U3BhY2UiICJsaXN0IiB2aWExU3BhY2UpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExheWVyIiAibGlzdCIgdmlhMUxheWVyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllckJib3giICJsaXN0IiBsaXN0KChsYXllcjFFbmNWaWExOmxheWVyMUVuY1ZpYTEpIChjYWFkcigoZGJJZH4+YkJveCkpOmNhZGFkcigoZGJJZH4+YkJveCkpKSkpIHdoZW4oKGltcGxhbnQgJiYgdmlhMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIxRW5jVmlhMSAtIHZpYTFJbXBFbmMpIChsYXllcjFFbmNWaWExIC0gdmlhMUltcEVuYykpIGxpc3QoKGNhYWRyKChkYklkfj5iQm94KSkgKyB2aWExSW1wRW5jKSAoY2FkYWRyKChkYklkfj5iQm94KSkgKyB2aWExSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAobGF5ZXIyQmJveCA9IGxpc3QobGlzdCgobGF5ZXIxRW5jVmlhMSAtIGxheWVyMlhFbmNWaWExKSAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkgbGlzdChtYXgobGF5ZXIyV2lkdGggKCgyICogbGF5ZXIyWEVuY1ZpYTEpICsgKGNvbHVtbiAqIHZpYTFXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMVNwYWNlKSkpIG1heChsYXllcjJXaWR0aCAoKDIgKiBsYXllcjJZRW5jVmlhMSkgKyAocm93ICogdmlhMVdpZHRoKSArICgocm93IC0gMSkgKiB2aWExU3BhY2UpKSkpKSkgKGxheWVyMlgxQ29vcmQgPSBjYWFyKGxheWVyMkJib3gpKSAobGF5ZXIyWTFDb29yZCA9IGNhZGFyKGxheWVyMkJib3gpKSB3aGVuKGxheWVyMyAobGF5ZXIyQmJveCA9IGxpc3QobGlzdChtaW4oY2FhcihsYXllcjJCYm94KSAobGF5ZXIxRW5jVmlhMSAtIGxheWVyMkVuY1ZpYTIpKSBtaW4oY2FkYXIobGF5ZXIyQmJveCkgKGxheWVyMUVuY1ZpYTEgLSBsYXllcjJFbmNWaWEyKSkpIGxpc3QobWF4KGNhYWRyKGxheWVyMkJib3gpICgoMiAqIGxheWVyMkVuY1ZpYTIpICsgKGNvbHVtbiAqIHZpYTJXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMlNwYWNlKSArIGxheWVyMUVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyRW5jVmlhMiBsYXllcjJYRW5jVmlhMSkpKSkgbWF4KGNhZGFkcihsYXllcjJCYm94KSAoKDIgKiBsYXllcjJFbmNWaWEyKSArIChyb3cgKiB2aWEyV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTJTcGFjZSkgKyBsYXllcjFFbmNWaWExICsgKC0gbWF4KGxheWVyMkVuY1ZpYTIgbGF5ZXIyWUVuY1ZpYTEpKSkpKSkpIChsYXllcjJYMUNvb3JkID0gY2FhcihsYXllcjJCYm94KSkgKGxheWVyMlkxQ29vcmQgPSBjYWRhcihsYXllcjJCYm94KSkgKGxheWVyM2xlbmd0aCA9IG1heCgoKDIuMCAqIGxheWVyM1hFbmNWaWEyKSArIChjb2x1bW4gKiB2aWEyV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTJTcGFjZSkpIGxheWVyM1dpZHRoKSkgKGxheWVyM3dpZHRoID0gbWF4KCgoMi4wICogbGF5ZXIzWUVuY1ZpYTIpICsgKHJvdyAqIHZpYTJXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMlNwYWNlKSkgbGF5ZXIzV2lkdGgpKSAoY29udGFjdFBpdGNoID0gKHZpYTJTcGFjZSArIHZpYTJXaWR0aCkpICh0aGVZID0gKGxheWVyMlkxQ29vcmQgKyBsYXllcjJFbmNWaWEyKSkgKHRoZVggPSAobGF5ZXIyWDFDb29yZCArIGxheWVyMkVuY1ZpYTIpKSAobGF5ZXIzWDFDb29yZCA9ICh0aGVYIC0gbGF5ZXIzWEVuY1ZpYTIpKSAobGF5ZXIzWTFDb29yZCA9ICh0aGVZIC0gbGF5ZXIzWUVuY1ZpYTIpKSBmb3IociAxIHJvdyAodGhlWCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIyRW5jVmlhMikpIGZvcihjb2wgMSBjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB2aWEyV2lkdGgpICh0aGVZICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyBjb250YWN0UGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIGNvbnRhY3RQaXRjaCkpKSB3aGVuKChpbXBsYW50ICYmIHZpYTJJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEySW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMlgxQ29vcmQgKyBsYXllcjJFbmNWaWEyICsgKC0gdmlhMkltcEVuYykpIChsYXllcjJZMUNvb3JkICsgbGF5ZXIyRW5jVmlhMiArICgtIHZpYTJJbXBFbmMpKSkgbGlzdCgoY2FhZHIoKGRiSWR+PmJCb3gpKSArIHZpYTJJbXBFbmMpIChjYWRhZHIoKGRiSWR+PmJCb3gpKSArIHZpYTJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSB3aGVuKChpbXBsYW50ICYmIGxheWVyMkltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMkltcGxhbnQgbGlzdChsaXN0KChsYXllcjJYMUNvb3JkIC0gbGF5ZXIySW1wRW5jKSAobGF5ZXIyWTFDb29yZCAtIGxheWVyMkltcEVuYykpIGxpc3QoKGNhYWRyKGxheWVyMkJib3gpICsgbGF5ZXIySW1wRW5jKSAoY2FkYWRyKGxheWVyMkJib3gpICsgbGF5ZXIySW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGF5ZXIyQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgY29uZCgoIWxheWVyMyAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkpICh0IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KChsYXllcjNYMUNvb3JkOmxheWVyM1kxQ29vcmQpIGxpc3QoKGxheWVyM1gxQ29vcmQgKyBsYXllcjNsZW5ndGgpIChsYXllcjNZMUNvb3JkICsgbGF5ZXIzd2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjMpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSB3aGVuKChpbXBsYW50ICYmIGxheWVyM0ltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyM0ltcGxhbnQgbGlzdChsaXN0KChsYXllcjNYMUNvb3JkIC0gbGF5ZXIzSW1wRW5jKSAobGF5ZXIzWTFDb29yZCAtIGxheWVyM0ltcEVuYykpIGxpc3QoKGxheWVyM1gxQ29vcmQgKyBsYXllcjNsZW5ndGggKyBsYXllcjNJbXBFbmMpIChsYXllcjNZMUNvb3JkICsgbGF5ZXIzd2lkdGggKyBsYXllcjNJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSkpAChsYXllcjEgbGF5ZXIyIGxheWVyMyBtYXh2TGF5ZXIgdmlhMUxheWVyIHZpYTJMYXllciBsYXllcjFJbXBsYW50IGxheWVyMkltcGxhbnQgbGF5ZXIzSW1wbGFudCB2aWExSW1wbGFudCB2aWEySW1wbGFudCBsYXllcjFXaWR0aCBsYXllcjJXaWR0aCBsYXllcjNXaWR0aCB2aWExV2lkdGggdmlhMVNwYWNlIHZpYTJXaWR0aCB2aWEyU3BhY2UgbGF5ZXIxRW5jVmlhMSBsYXllcjJYRW5jVmlhMSBsYXllcjJZRW5jVmlhMSBsYXllcjJFbmNWaWEyIGxheWVyM1hFbmNWaWEyIGxheWVyM1lFbmNWaWEyIGxheWVyMUltcEVuYyBsYXllcjJJbXBFbmMgbGF5ZXIzSW1wRW5jIHZpYTFJbXBFbmMgdmlhMkltcEVuYyByb3cgY29sdW1uIGltcGxhbnQgYWxsRGlyIG5ldCBsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGggZGJJZCBwaW5JZCBjb250YWN0UGl0Y2ggdGhlWSByIHRoZVggY29sIGxheWVyMkJib3ggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyM2xlbmd0aCBsYXllcjN3aWR0aCBsYXllcjNYMUNvb3JkIGxheWVyM1kxQ29vcmQpACgocm93IDEpIChjb2x1bW4gMSkgKGltcGxhbnQgIkZBTFNFIikpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKGxheWVyMyBuaWwpIChtYXh2TGF5ZXIgbmlsKSAodmlhMUxheWVyICJ5NCIpICh2aWEyTGF5ZXIgbmlsKSAobGF5ZXIxSW1wbGFudCBuaWwpIChsYXllcjJJbXBsYW50IG5pbCkgKGxheWVyM0ltcGxhbnQgbmlsKSAodmlhMUltcGxhbnQgbmlsKSAodmlhMkltcGxhbnQgbmlsKSAobGF5ZXIxV2lkdGggMC4wKSAobGF5ZXIyV2lkdGggMC4wKSAobGF5ZXIzV2lkdGggMC4wKSAodmlhMVdpZHRoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMlNwYWNlIDAuMCkgKGxheWVyMUVuY1ZpYTEgMC4wKSAobGF5ZXIyWEVuY1ZpYTEgMC4wKSAobGF5ZXIyWUVuY1ZpYTEgMC4wKSAobGF5ZXIyRW5jVmlhMiAwLjApIChsYXllcjNYRW5jVmlhMiAwLjApIChsYXllcjNZRW5jVmlhMiAwLjApIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wRW5jIDAuMCkgKGxheWVyM0ltcEVuYyAwLjApICh2aWExSW1wRW5jIDAuMCkgKHZpYTJJbXBFbmMgMC4wKSkAKChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIHdoZW4oc3RyaW5ncChsYXllcjEpIChsYXllcjEgPSBsaXN0KGxheWVyMSAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKGxheWVyMikgKGxheWVyMiA9IGxpc3QobGF5ZXIyICJkcmF3aW5nIikpKSB3aGVuKChsYXllcjMgJiYgc3RyaW5ncChsYXllcjMpKSAobGF5ZXIzID0gbGlzdChsYXllcjMgImRyYXdpbmciKSkpIChsYXllcjFsZW5ndGggPSBtYXgoKCgyICogbGF5ZXIxRW5jVmlhMSkgKyAoY29sdW1uICogdmlhMVdpZHRoKSArICgoY29sdW1uIC0gMSkgKiB2aWExU3BhY2UpKSBsYXllcjFXaWR0aCkpIChsYXllcjF3aWR0aCA9IG1heCgoKDIgKiBsYXllcjFFbmNWaWExKSArIChyb3cgKiB2aWExV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTFTcGFjZSkpIGxheWVyMVdpZHRoKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSB3aGVuKG1heHZMYXllciAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBtYXh2TGF5ZXIgbGlzdChsaXN0KDAuMCAwLjApIGxpc3QobGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJvdExheWVyIiAibGlzdCIgbGF5ZXIxKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJvdExheWVyQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgKGNvbnRhY3RQaXRjaCA9ICh2aWExU3BhY2UgKyB2aWExV2lkdGgpKSAodGhlWSA9IGxheWVyMUVuY1ZpYTEpIGZvcihyIDEgcm93ICh0aGVYID0gbGF5ZXIxRW5jVmlhMSkgZm9yKGNvbCAxIGNvbHVtbiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KHRoZVggdGhlWSkgbGlzdCgodGhlWCArIHZpYTFXaWR0aCkgKHRoZVkgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIGNvbnRhY3RQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgY29udGFjdFBpdGNoKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExheWVyIiAibGlzdCIgdmlhMUxheWVyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllckJib3giICJsaXN0IiBsaXN0KChsYXllcjFFbmNWaWExOmxheWVyMUVuY1ZpYTEpIChjYWFkcigoZGJJZH4+YkJveCkpOmNhZGFkcigoZGJJZH4+YkJveCkpKSkpIChsYXllcjJsZW5ndGggPSBtYXgoKCgyICogbGF5ZXIyWEVuY1ZpYTEpICsgKGNvbHVtbiAqIHZpYTFXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMVNwYWNlKSkgbGF5ZXIyV2lkdGgpKSAobGF5ZXIyd2lkdGggPSBtYXgoKCgyICogbGF5ZXIyWUVuY1ZpYTEpICsgKHJvdyAqIHZpYTFXaWR0aCkgKyAoKHJvdyAtIDEpICogdmlhMVNwYWNlKSkgbGF5ZXIyV2lkdGgpKSAobGF5ZXIyWDFDb29yZCA9IChsYXllcjFFbmNWaWExIC0gbGF5ZXIyWEVuY1ZpYTEpKSAobGF5ZXIyWTFDb29yZCA9IChsYXllcjFFbmNWaWExIC0gbGF5ZXIyWUVuY1ZpYTEpKSB3aGVuKGxheWVyMyAobGF5ZXIyUmlnaHRFZGdlID0gKGxheWVyMlgxQ29vcmQgKyBsYXllcjJsZW5ndGgpKSAobGF5ZXIyVG9wRWRnZSA9IChsYXllcjJZMUNvb3JkICsgbGF5ZXIyd2lkdGgpKSAobGF5ZXIyTGVmdEVkZ2UgPSBsYXllcjJYMUNvb3JkKSAobGF5ZXIyQm90RWRnZSA9IGxheWVyMlkxQ29vcmQpIChsYXllcjJsZW5ndGggPSAoKDIgKiBsYXllcjJFbmNWaWEyKSArIChjb2x1bW4gKiB2aWEyV2lkdGgpICsgKChjb2x1bW4gLSAxKSAqIHZpYTJTcGFjZSkpKSAobGF5ZXIyd2lkdGggPSAoKDIgKiBsYXllcjJFbmNWaWEyKSArIChyb3cgKiB2aWEyV2lkdGgpICsgKChyb3cgLSAxKSAqIHZpYTJTcGFjZSkpKSAobGF5ZXIyWDFDb29yZCA9IChsYXllcjFFbmNWaWExIC0gbGF5ZXIyRW5jVmlhMikpIChsYXllcjJZMUNvb3JkID0gKGxheWVyMUVuY1ZpYTEgLSBsYXllcjJFbmNWaWEyKSkgKGxheWVyMlJpZ2h0RWRnZSA9IG1heChsYXllcjJSaWdodEVkZ2UgKGxheWVyMlgxQ29vcmQgKyBsYXllcjJsZW5ndGgpKSkgKGxheWVyMlRvcEVkZ2UgPSBtYXgobGF5ZXIyVG9wRWRnZSAobGF5ZXIyWTFDb29yZCArIGxheWVyMndpZHRoKSkpIChsYXllcjJYMUNvb3JkID0gbWluKGxheWVyMkxlZnRFZGdlIGxheWVyMlgxQ29vcmQpKSAobGF5ZXIyWTFDb29yZCA9IG1pbihsYXllcjJCb3RFZGdlIGxheWVyMlkxQ29vcmQpKSAobGF5ZXIybGVuZ3RoID0gKGxheWVyMlJpZ2h0RWRnZSAtIGxheWVyMlgxQ29vcmQpKSAobGF5ZXIyd2lkdGggPSAobGF5ZXIyVG9wRWRnZSAtIGxheWVyMlkxQ29vcmQpKSAobGF5ZXIzbGVuZ3RoID0gbWF4KCgoMi4wICogbGF5ZXIzWEVuY1ZpYTIpICsgKGNvbHVtbiAqIHZpYTJXaWR0aCkgKyAoKGNvbHVtbiAtIDEpICogdmlhMlNwYWNlKSkgbGF5ZXIzV2lkdGgpKSAobGF5ZXIzd2lkdGggPSBtYXgoKCgyLjAgKiBsYXllcjNZRW5jVmlhMikgKyAocm93ICogdmlhMldpZHRoKSArICgocm93IC0gMSkgKiB2aWEyU3BhY2UpKSBsYXllcjNXaWR0aCkpIChjb250YWN0UGl0Y2ggPSAodmlhMlNwYWNlICsgdmlhMldpZHRoKSkgKHRoZVkgPSAobGF5ZXIyWTFDb29yZCArIGxheWVyMkVuY1ZpYTIpKSAodGhlWCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIyRW5jVmlhMikpIChsYXllcjNYMUNvb3JkID0gKHRoZVggLSBsYXllcjNYRW5jVmlhMikpIChsYXllcjNZMUNvb3JkID0gKHRoZVkgLSBsYXllcjNZRW5jVmlhMikpIGZvcihyIDEgcm93ICh0aGVYID0gKGxheWVyMlgxQ29vcmQgKyBsYXllcjJFbmNWaWEyKSkgZm9yKGNvbCAxIGNvbHVtbiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdChsaXN0KHRoZVggdGhlWSkgbGlzdCgodGhlWCArIHZpYTJXaWR0aCkgKHRoZVkgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIGNvbnRhY3RQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgY29udGFjdFBpdGNoKSkpKSAobGF5ZXIyWDJDb29yZCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIybGVuZ3RoKSkgKGxheWVyMlkyQ29vcmQgPSAobGF5ZXIyWTFDb29yZCArIGxheWVyMndpZHRoKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKGxheWVyMlgxQ29vcmQ6bGF5ZXIyWTFDb29yZCkgKGxheWVyMlgyQ29vcmQ6bGF5ZXIyWTJDb29yZCkpKSkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIGNvbmQoKCFsYXllcjMgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpKSAodCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgobGF5ZXIzWDFDb29yZDpsYXllcjNZMUNvb3JkKSAoKGxheWVyM1gxQ29vcmQgKyBsYXllcjNsZW5ndGgpOihsYXllcjNZMUNvb3JkICsgbGF5ZXIzd2lkdGgpKSkpKSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMykgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpKSkpAChsYXllcjEgbGF5ZXIyIGxheWVyMyBtYXh2TGF5ZXIgdmlhMUxheWVyIHZpYTJMYXllciBsYXllcjFXaWR0aCBsYXllcjJXaWR0aCBsYXllcjNXaWR0aCB2aWExV2lkdGggdmlhMVNwYWNlIHZpYTJXaWR0aCB2aWEyU3BhY2UgbGF5ZXIxRW5jVmlhMSBsYXllcjJYRW5jVmlhMSBsYXllcjJZRW5jVmlhMSBsYXllcjJFbmNWaWEyIGxheWVyM1hFbmNWaWEyIGxheWVyM1lFbmNWaWEyIHJvdyBjb2x1bW4gYWxsRGlyIG5ldCBsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGggZGJJZCBwaW5JZCBjb250YWN0UGl0Y2ggdGhlWSByIHRoZVggY29sIGxheWVyMmxlbmd0aCBsYXllcjJ3aWR0aCBsYXllcjJYMUNvb3JkIGxheWVyMlkxQ29vcmQgbGF5ZXIyUmlnaHRFZGdlIGxheWVyMlRvcEVkZ2UgbGF5ZXIyTGVmdEVkZ2UgbGF5ZXIyQm90RWRnZSBsYXllcjNsZW5ndGggbGF5ZXIzd2lkdGggbGF5ZXIzWDFDb29yZCBsYXllcjNZMUNvb3JkIGxheWVyMlgyQ29vcmQgbGF5ZXIyWTJDb29yZCkAKChyb3cgMSkgKGNvbHVtbiAxKSkAKChsYXllcjEgImhpbGl0ZSIpIChsYXllcjIgInByQm91bmRhcnkiKSAobGF5ZXIzIG5pbCkgKG1heHZMYXllciBuaWwpICh2aWExTGF5ZXIgInk0IikgKHZpYTJMYXllciBuaWwpIChsYXllcjFXaWR0aCAwLjApIChsYXllcjJXaWR0aCAwLjApIChsYXllcjNXaWR0aCAwLjApICh2aWExV2lkdGggMC4wKSAodmlhMVNwYWNlIDAuMCkgKHZpYTJXaWR0aCAwLjApICh2aWEyU3BhY2UgMC4wKSAobGF5ZXIxRW5jVmlhMSAwLjApIChsYXllcjJYRW5jVmlhMSAwLjApIChsYXllcjJZRW5jVmlhMSAwLjApIChsYXllcjJFbmNWaWEyIDAuMCkgKGxheWVyM1hFbmNWaWEyIDAuMCkgKGxheWVyM1lFbmNWaWEyIDAuMCkpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaWYoKChpbldlbGwgPT0gdCkgfHwgKGluV2VsbCA9PSAiVFJVRSIpKSB0aGVuIChpbldlbGwgPSB0KSBlbHNlIChpbldlbGwgPSBuaWwpKSBpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKHJvdEwxRW5jVjEgPT0gdCkgfHwgKHJvdEwxRW5jVjEgPT0gIlRSVUUiKSkgdGhlbiAocm90TDFFbmNWMSA9IHQpIGVsc2UgKHJvdEwxRW5jVjEgPSBuaWwpKSBpZigoKHJvdEwyRW5jVjEgPT0gdCkgfHwgKHJvdEwyRW5jVjEgPT0gIlRSVUUiKSkgdGhlbiAocm90TDJFbmNWMSA9IHQpIGVsc2UgKHJvdEwyRW5jVjEgPSBuaWwpKSBpZigoKHJvdEwyRW5jVjIgPT0gdCkgfHwgKHJvdEwyRW5jVjIgPT0gIlRSVUUiKSkgdGhlbiAocm90TDJFbmNWMiA9IHQpIGVsc2UgKHJvdEwyRW5jVjIgPSBuaWwpKSBpZigoKHJvdEwzRW5jVjIgPT0gdCkgfHwgKHJvdEwzRW5jVjIgPT0gIlRSVUUiKSkgdGhlbiAocm90TDNFbmNWMiA9IHQpIGVsc2UgKHJvdEwzRW5jVjIgPSBuaWwpKSBpZigoKG5vTGF5ZXIzID09IHQpIHx8IChub0xheWVyMyA9PSAiVFJVRSIpKSB0aGVuIChub0xheWVyMyA9IHQpIGVsc2UgKG5vTGF5ZXIzID0gbmlsKSkgaWYoKChmdWxsTGF5ZXIyID09IHQpIHx8IChmdWxsTGF5ZXIyID09ICJUUlVFIikpIHRoZW4gKGZ1bGxMYXllcjIgPSB0KSBlbHNlIChmdWxsTGF5ZXIyID0gbmlsKSkgaWYoKChSb3dDb2wgPT0gdCkgfHwgKFJvd0NvbCA9PSAiVFJVRSIpKSB0aGVuIChSb3dDb2wgPSB0KSBlbHNlIChSb3dDb2wgPSBuaWwpKSB3aGVuKHJvdEwxRW5jVjEgKHRlbXAgPSBsYXllcjFYRW5jVmlhMSkgKGxheWVyMVhFbmNWaWExID0gbGF5ZXIxWUVuY1ZpYTEpIChsYXllcjFZRW5jVmlhMSA9IHRlbXApKSB3aGVuKHJvdEwyRW5jVjEgKHRlbXAgPSBsYXllcjJYRW5jVmlhMSkgKGxheWVyMlhFbmNWaWExID0gbGF5ZXIyWUVuY1ZpYTEpIChsYXllcjJZRW5jVmlhMSA9IHRlbXApKSB3aGVuKHJvdEwyRW5jVjIgKHRlbXAgPSBsYXllcjJYRW5jVmlhMikgKGxheWVyMlhFbmNWaWEyID0gbGF5ZXIyWUVuY1ZpYTIpIChsYXllcjJZRW5jVmlhMiA9IHRlbXApKSB3aGVuKHJvdEwzRW5jVjIgKHRlbXAgPSBsYXllcjNYRW5jVmlhMikgKGxheWVyM1hFbmNWaWEyID0gbGF5ZXIzWUVuY1ZpYTIpIChsYXllcjNZRW5jVmlhMiA9IHRlbXApKSB3aGVuKGltcGxhbnQgd2hlbihsYXllcjFJbXBsYW50IGlmKGluV2VsbCB0aGVuIChsYXllcjFJbXBsYW50ID0gY2FkcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhZHIobGF5ZXIxSW1wRW5jKSkgZWxzZSAobGF5ZXIxSW1wbGFudCA9IGNhcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhcihsYXllcjFJbXBFbmMpKSkpIHdoZW4obGF5ZXIySW1wbGFudCBpZihpbldlbGwgdGhlbiAobGF5ZXIySW1wbGFudCA9IGNhZHIobGF5ZXIySW1wbGFudCkpIChsYXllcjJJbXBFbmMgPSBjYWRyKGxheWVyMkltcEVuYykpIGVsc2UgKGxheWVyMkltcGxhbnQgPSBjYXIobGF5ZXIySW1wbGFudCkpIChsYXllcjJJbXBFbmMgPSBjYXIobGF5ZXIySW1wRW5jKSkpKSB3aGVuKGxheWVyM0ltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyM0ltcGxhbnQgPSBjYWRyKGxheWVyM0ltcGxhbnQpKSAobGF5ZXIzSW1wRW5jID0gY2FkcihsYXllcjNJbXBFbmMpKSBlbHNlIChsYXllcjNJbXBsYW50ID0gY2FyKGxheWVyM0ltcGxhbnQpKSAobGF5ZXIzSW1wRW5jID0gY2FyKGxheWVyM0ltcEVuYykpKSkgd2hlbih2aWExSW1wbGFudCBpZihpbldlbGwgdGhlbiAodmlhMUltcGxhbnQgPSBjYWRyKHZpYTFJbXBsYW50KSkgKHZpYTFJbXBFbmMgPSBjYWRyKHZpYTFJbXBFbmMpKSBlbHNlICh2aWExSW1wbGFudCA9IGNhcih2aWExSW1wbGFudCkpICh2aWExSW1wRW5jID0gY2FyKHZpYTFJbXBFbmMpKSkpIHdoZW4odmlhMkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHZpYTJJbXBsYW50ID0gY2Fkcih2aWEySW1wbGFudCkpICh2aWEySW1wRW5jID0gY2Fkcih2aWEySW1wRW5jKSkgZWxzZSAodmlhMkltcGxhbnQgPSBjYXIodmlhMkltcGxhbnQpKSAodmlhMkltcEVuYyA9IGNhcih2aWEySW1wRW5jKSkpKSkgKGFsbERpciA9IGxpc3QoInJpZ2h0IiAibGVmdCIgInRvcCIgImJvdHRvbSIpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKHZpYTFYUGl0Y2ggPSAodmlhMVNwYWNpbmcgKyB2aWExV2lkdGgpKSAodmlhMVlQaXRjaCA9ICh2aWExU3BhY2luZyArIHZpYTFMZW5ndGgpKSAodmlhMlhQaXRjaCA9ICh2aWEyU3BhY2luZyArIHZpYTJXaWR0aCkpICh2aWEyWVBpdGNoID0gKHZpYTJTcGFjaW5nICsgdmlhMkxlbmd0aCkpIGlmKFJvd0NvbCB0aGVuIChyb3dWaWExID0gbWF4KHJvdyAxKSkgKGNvbFZpYTEgPSBtYXgoY29sdW1uIDEpKSAobGF5ZXIxWFNpemUgPSAoKGNvbFZpYTEgKiB2aWExWFBpdGNoKSArICgtIHZpYTFTcGFjaW5nKSArIGxheWVyMVhFbmNWaWExICsgbGF5ZXIxWEVuY1ZpYTEpKSAobGF5ZXIxWVNpemUgPSAoKHJvd1ZpYTEgKiB2aWExWVBpdGNoKSArICgtIHZpYTFTcGFjaW5nKSArIGxheWVyMVlFbmNWaWExICsgbGF5ZXIxWUVuY1ZpYTEpKSBlbHNlIGlmKChsYXllcjFXIDwgbWF4KGxheWVyMVdpZHRoICh2aWExV2lkdGggKyAoMiAqIGxheWVyMVhFbmNWaWExKSkpKSB0aGVuIGVycm9yKCJyYzNJbnRlckNvbkNlblBvbEltcENsYXNzOiBsYXllcjFXICVnIGlzIHRvbyBuYXJyb3cgKG1pbiAlZylcbiIgbGF5ZXIxVyAodmlhMVdpZHRoICsgKDIgKiBsYXllcjFYRW5jVmlhMSkpKSkgaWYoKGxheWVyMUwgPCBtYXgobGF5ZXIxV2lkdGggKHZpYTFMZW5ndGggKyAoMiAqIGxheWVyMVlFbmNWaWExKSkpKSB0aGVuIGVycm9yKCJyYzNJbnRlckNvbkNlblBvbEltcENsYXNzOiBsYXllcjFMICVnIGlzIHRvbyBuYXJyb3cgKG1pbiAlZylcbiIgbGF5ZXIxTCAodmlhMUxlbmd0aCArICgyICogbGF5ZXIxWUVuY1ZpYTEpKSkpIChsYXllcjFYU2l6ZSA9IGxheWVyMVcpIChsYXllcjFZU2l6ZSA9IGxheWVyMUwpKSAocm93VmlhMSA9IG1heChmaXgoKCgobGF5ZXIxWVNpemUgKyB2aWExU3BhY2luZyArICgtICgyICogbGF5ZXIxWUVuY1ZpYTEpKSkgLyB2aWExWVBpdGNoKSArIDFlLTA1KSkgMSkpIChjb2xWaWExID0gbWF4KGZpeCgoKChsYXllcjFYU2l6ZSArIHZpYTFTcGFjaW5nICsgKC0gKDIgKiBsYXllcjFYRW5jVmlhMSkpKSAvIHZpYTFYUGl0Y2gpICsgMWUtMDUpKSAxKSkgKGxheWVyMUJib3ggPSBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFYU2l6ZSBsYXllcjFZU2l6ZSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGF5ZXIxQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiBsYXllcjFCYm94KSB3aGVuKChpbXBsYW50ICYmIGxheWVyMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KCgtIGxheWVyMUltcEVuYykgKC0gbGF5ZXIxSW1wRW5jKSkgbGlzdCgobGF5ZXIxWFNpemUgKyBsYXllcjFJbXBFbmMpIChsYXllcjFZU2l6ZSArIGxheWVyMUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigod2VsbExheWVyICYmIGluV2VsbCAmJiBpbXBsYW50KSAod2VsbExheWVyWDEgPSAoY2FhcihsYXllcjFCYm94KSAtIHdlbGxMYXllckVuYykpICh3ZWxsTGF5ZXJZMSA9IChjYWRhcihsYXllcjFCYm94KSAtIHdlbGxMYXllckVuYykpICh3ZWxsTGF5ZXJYMiA9IChjYWFkcihsYXllcjFCYm94KSArIHdlbGxMYXllckVuYykpICh3ZWxsTGF5ZXJZMiA9IChjYWRhZHIobGF5ZXIxQmJveCkgKyB3ZWxsTGF5ZXJFbmMpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgod2VsbExheWVyWDE6d2VsbExheWVyWTEpICh3ZWxsTGF5ZXJYMjp3ZWxsTGF5ZXJZMikpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKGlkTGF5ZXIgaWYoKHdlbGxMYXllciAmJiBpbldlbGwgJiYgaW1wbGFudCAmJiBpZEVuY1dlbGwpIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaWRMYXllciBsaXN0KGxpc3QoKHdlbGxMYXllclgxIC0gaWRMYXllckVuY1dlbGwpICh3ZWxsTGF5ZXJZMSAtIGlkTGF5ZXJFbmNXZWxsKSkgbGlzdCgod2VsbExheWVyWDIgKyBpZExheWVyRW5jV2VsbCkgKHdlbGxMYXllclkyICsgaWRMYXllckVuY1dlbGwpKSkpKSBlbHNlIChsYXllcjFYd2lkdGggPSBhYnMoKGNhYXIobGF5ZXIxQmJveCkgLSBjYWFkcihsYXllcjFCYm94KSkpKSAobGF5ZXIxWXdpZHRoID0gYWJzKChjYWRhcihsYXllcjFCYm94KSAtIGNhZGFkcihsYXllcjFCYm94KSkpKSAoaWRXaWR0aFggPSAoKDIgKiBpZExheWVyRW5jKSArIGxheWVyMVh3aWR0aCkpIChpZFdpZHRoWSA9ICgoMiAqIGlkTGF5ZXJFbmMpICsgbGF5ZXIxWXdpZHRoKSkgaWYoKGlkV2lkdGhYIDwgaWRMYXllcldpZHRoKSB0aGVuIChpZExheWVyRW5jWCA9ICgoaWRMYXllcldpZHRoIC0gbGF5ZXIxWHdpZHRoKSAvIDIpKSAoaWRMYXllckVuY1ggPSAoKGNlaWxpbmcgKChpZExheWVyRW5jWCAvIHNuYXBHcmlkKSArIC0xZS0wNikpICogc25hcEdyaWQpKSBlbHNlIChpZExheWVyRW5jWCA9IGlkTGF5ZXJFbmMpKSBpZigoaWRXaWR0aFkgPCBpZExheWVyV2lkdGgpIHRoZW4gKGlkTGF5ZXJFbmNZID0gKChpZExheWVyV2lkdGggLSBsYXllcjFZd2lkdGgpIC8gMikpIChpZExheWVyRW5jWSA9ICgoY2VpbGluZyAoKGlkTGF5ZXJFbmNZIC8gc25hcEdyaWQpICsgLTFlLTA2KSkgKiBzbmFwR3JpZCkpIGVsc2UgKGlkTGF5ZXJFbmNZID0gaWRMYXllckVuYykpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGlkTGF5ZXIgbGlzdChsaXN0KChjYWFyKGxheWVyMUJib3gpIC0gaWRMYXllckVuY1gpIChjYWRhcihsYXllcjFCYm94KSAtIGlkTGF5ZXJFbmNZKSkgbGlzdCgoY2FhZHIobGF5ZXIxQmJveCkgKyBpZExheWVyRW5jWCkgKGNhZGFkcihsYXllcjFCYm94KSArIGlkTGF5ZXJFbmNZKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKHZpYTFZb2Zmc2V0ID0gbWF4KDAuMCAoKGxheWVyMVlTaXplICsgKC0yICogbGF5ZXIxWUVuY1ZpYTEpICsgdmlhMVNwYWNpbmcgKyAoKC0gcm93VmlhMSkgKiB2aWExWVBpdGNoKSkgLyAyKSkpICh2aWExWW9mZnNldCA9IChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA1KSkgKiBzbmFwR3JpZCkpICh2aWExWXN0YXJ0ID0gKGNhZGFyKGxheWVyMUJib3gpICsgdmlhMVlvZmZzZXQgKyBsYXllcjFZRW5jVmlhMSkpICh2aWExWG9mZnNldCA9IG1heCgwLjAgKChsYXllcjFYU2l6ZSArICgtMiAqIGxheWVyMVhFbmNWaWExKSArIHZpYTFTcGFjaW5nICsgKCgtIGNvbFZpYTEpICogdmlhMVhQaXRjaCkpIC8gMikpKSAodmlhMVhvZmZzZXQgPSAoZml4KCgodmlhMVhvZmZzZXQgLyBzbmFwR3JpZCkgKyAxZS0wNSkpICogc25hcEdyaWQpKSAodmlhMVhzdGFydCA9ICh2aWExWG9mZnNldCArIGNhYXIobGF5ZXIxQmJveCkgKyBsYXllcjFYRW5jVmlhMSkpICh0aGVZID0gdmlhMVlzdGFydCkgZm9yKHIgMSByb3dWaWExICh0aGVYID0gdmlhMVhzdGFydCkgZm9yKGNvbCAxIGNvbFZpYTEgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHRoZVg6dGhlWSkgKCh0aGVYICsgdmlhMVdpZHRoKToodGhlWSArIHZpYTFMZW5ndGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIHZpYTFYUGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIHZpYTFZUGl0Y2gpKSkgKHZpYTFCYm94ID0gbGlzdChsaXN0KHZpYTFYc3RhcnQgdmlhMVlzdGFydCkgbGlzdChjYWFkcigoZGJJZH4+YkJveCkpIGNhZGFkcigoZGJJZH4+YkJveCkpKSkpIHdoZW4oKGltcGxhbnQgJiYgdmlhMUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFJbXBsYW50IGxpc3QobGlzdCgoY2Fhcih2aWExQmJveCkgLSB2aWExSW1wRW5jKSAoY2FkYXIodmlhMUJib3gpIC0gdmlhMUltcEVuYykpIGxpc3QoKGNhYWRyKHZpYTFCYm94KSArIHZpYTFJbXBFbmMpIChjYWRhZHIodmlhMUJib3gpICsgdmlhMUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QoKHZpYTFYc3RhcnQgLSBsYXllcjJYRW5jVmlhMSkgKHZpYTFZc3RhcnQgLSBsYXllcjJZRW5jVmlhMSkpIGxpc3QoKGNhYWRyKHZpYTFCYm94KSArIGxheWVyMlhFbmNWaWExKSAoY2FkYWRyKHZpYTFCYm94KSArIGxheWVyMllFbmNWaWExKSkpKSB3aGVuKGZ1bGxMYXllcjIgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QobWluKGNhYXIobGF5ZXIyQmJveCkgY2FhcihsYXllcjFCYm94KSkgbWluKGNhZGFyKGxheWVyMkJib3gpIGNhZGFyKGxheWVyMUJib3gpKSkgbGlzdChtYXgoY2FhZHIobGF5ZXIyQmJveCkgY2FhZHIobGF5ZXIxQmJveCkpIG1heChjYWRhZHIobGF5ZXIyQmJveCkgY2FkYWRyKGxheWVyMUJib3gpKSkpKSkgaWYoKCFsYXllcjMgfHwgbm9MYXllcjMpIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgbGF5ZXIyQmJveCkgd2hlbigoaW1wbGFudCAmJiBsYXllcjJJbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjJJbXBsYW50IGxpc3QobGlzdCgoY2FhcihsYXllcjJCYm94KSAtIGxheWVyMkltcEVuYykgKGNhZGFyKGxheWVyMkJib3gpIC0gbGF5ZXIySW1wRW5jKSkgbGlzdCgoY2FhZHIobGF5ZXIyQmJveCkgKyBsYXllcjJJbXBFbmMpIChjYWRhZHIobGF5ZXIyQmJveCkgKyBsYXllcjJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIGVsc2UgKGxheWVyMlhTaXplID0gKGNhYWRyKGxheWVyMkJib3gpIC0gY2FhcihsYXllcjJCYm94KSkpIChsYXllcjJZU2l6ZSA9IChjYWRhZHIobGF5ZXIyQmJveCkgLSBjYWRhcihsYXllcjJCYm94KSkpIChyb3dWaWEyID0gbWF4KGZpeCgoKChsYXllcjJZU2l6ZSArIHZpYTJTcGFjaW5nICsgKC0gKDIgKiBsYXllcjJZRW5jVmlhMikpKSAvIHZpYTJZUGl0Y2gpICsgMWUtMDUpKSAxKSkgKGNvbFZpYTIgPSBtYXgoZml4KCgoKGxheWVyMlhTaXplICsgdmlhMlNwYWNpbmcgKyAoLSAoMiAqIGxheWVyMlhFbmNWaWEyKSkpIC8gdmlhMlhQaXRjaCkgKyAxZS0wNSkpIDEpKSAobGF5ZXIyWVNpemVWMiA9ICgodmlhMllQaXRjaCAqIHJvd1ZpYTIpICsgKDIuMCAqIGxheWVyMllFbmNWaWEyKSArICgtIHZpYTJTcGFjaW5nKSkpIChsYXllcjJZRXh0cmEgPSBtYXgoMC4wIChsYXllcjJZU2l6ZVYyIC0gbGF5ZXIyWVNpemUpKSkgKGxheWVyMllFeHRyYSA9ICgoY2VpbGluZyAoKChsYXllcjJZRXh0cmEgLyAyLjApIC8gc25hcEdyaWQpICsgLTFlLTA1KSkgKiBzbmFwR3JpZCkpIChsYXllcjJYU2l6ZVYyID0gKCh2aWEyWFBpdGNoICogY29sVmlhMikgKyAoMi4wICogbGF5ZXIyWEVuY1ZpYTIpICsgKC0gdmlhMlNwYWNpbmcpKSkgKGxheWVyMlhFeHRyYSA9IG1heCgwLjAgKGxheWVyMlhTaXplVjIgLSBsYXllcjJYU2l6ZSkpKSAobGF5ZXIyWEV4dHJhID0gKChjZWlsaW5nICgoKGxheWVyMlhFeHRyYSAvIDIuMCkgLyBzbmFwR3JpZCkgKyAtMWUtMDUpKSAqIHNuYXBHcmlkKSkgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QoKGNhYXIobGF5ZXIyQmJveCkgLSBsYXllcjJYRXh0cmEpIChjYWRhcihsYXllcjJCYm94KSAtIGxheWVyMllFeHRyYSkpIGxpc3QoKGNhYWRyKGxheWVyMkJib3gpICsgbGF5ZXIyWEV4dHJhKSAoY2FkYWRyKGxheWVyMkJib3gpICsgbGF5ZXIyWUV4dHJhKSkpKSAobGF5ZXIyWFNpemUgPSAoY2FhZHIobGF5ZXIyQmJveCkgLSBjYWFyKGxheWVyMkJib3gpKSkgKGxheWVyMllTaXplID0gKGNhZGFkcihsYXllcjJCYm94KSAtIGNhZGFyKGxheWVyMkJib3gpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIHdoZW4oKGltcGxhbnQgJiYgbGF5ZXIySW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIySW1wbGFudCBsaXN0KGxpc3QoKGNhYXIobGF5ZXIyQmJveCkgLSBsYXllcjJJbXBFbmMpIChjYWRhcihsYXllcjJCYm94KSAtIGxheWVyMkltcEVuYykpIGxpc3QoKGNhYWRyKGxheWVyMkJib3gpICsgbGF5ZXIySW1wRW5jKSAoY2FkYWRyKGxheWVyMkJib3gpICsgbGF5ZXIySW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAodmlhMllvZmZzZXQgPSBtYXgoMC4wICgobGF5ZXIyWVNpemUgKyAoLTIgKiBsYXllcjJZRW5jVmlhMikgKyB2aWEyU3BhY2luZyArICgoLSByb3dWaWEyKSAqIHZpYTJZUGl0Y2gpKSAvIDIpKSkgKHZpYTJZb2Zmc2V0ID0gKGZpeCgoKHZpYTJZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDUpKSAqIHNuYXBHcmlkKSkgKHZpYTJZc3RhcnQgPSAoY2FkYXIobGF5ZXIyQmJveCkgKyB2aWEyWW9mZnNldCArIGxheWVyMllFbmNWaWEyKSkgKHZpYTJYb2Zmc2V0ID0gbWF4KDAuMCAoKGxheWVyMlhTaXplICsgKC0yICogbGF5ZXIyWEVuY1ZpYTIpICsgdmlhMlNwYWNpbmcgKyAoKC0gY29sVmlhMikgKiB2aWEyWFBpdGNoKSkgLyAyKSkpICh2aWEyWG9mZnNldCA9IChmaXgoKCh2aWEyWG9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA1KSkgKiBzbmFwR3JpZCkpICh2aWEyWHN0YXJ0ID0gKHZpYTJYb2Zmc2V0ICsgY2FhcihsYXllcjJCYm94KSArIGxheWVyMlhFbmNWaWEyKSkgKHRoZVkgPSB2aWEyWXN0YXJ0KSBmb3IociAxIHJvd1ZpYTIgKHRoZVggPSB2aWEyWHN0YXJ0KSBmb3IoY29sIDEgY29sVmlhMiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodGhlWDp0aGVZKSAoKHRoZVggKyB2aWEyV2lkdGgpOih0aGVZICsgdmlhMkxlbmd0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgdmlhMlhQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgdmlhMllQaXRjaCkpKSAodmlhMkJib3ggPSBsaXN0KGxpc3QodmlhMlhzdGFydCB2aWEyWXN0YXJ0KSBsaXN0KGNhYWRyKChkYklkfj5iQm94KSkgY2FkYWRyKChkYklkfj5iQm94KSkpKSkgd2hlbigoaW1wbGFudCAmJiB2aWEySW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkltcGxhbnQgbGlzdChsaXN0KChjYWFyKHZpYTJCYm94KSAtIHZpYTJJbXBFbmMpIChjYWRhcih2aWEyQmJveCkgLSB2aWEySW1wRW5jKSkgbGlzdCgoY2FhZHIodmlhMkJib3gpICsgdmlhMkltcEVuYykgKGNhZGFkcih2aWEyQmJveCkgKyB2aWEySW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAobGF5ZXIzQmJveCA9IGxpc3QobGlzdCgodmlhMlhzdGFydCAtIGxheWVyM1hFbmNWaWEyKSAodmlhMllzdGFydCAtIGxheWVyM1lFbmNWaWEyKSkgbGlzdCgoY2FhZHIodmlhMkJib3gpICsgbGF5ZXIzWEVuY1ZpYTIpIChjYWRhZHIodmlhMkJib3gpICsgbGF5ZXIzWUVuY1ZpYTIpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsYXllcjNCYm94KSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIzKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIGxheWVyM0Jib3gpIHdoZW4oKGltcGxhbnQgJiYgbGF5ZXIzSW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzSW1wbGFudCBsaXN0KGxpc3QoKGNhYXIobGF5ZXIzQmJveCkgLSBsYXllcjNJbXBFbmMpIChjYWRhcihsYXllcjNCYm94KSAtIGxheWVyM0ltcEVuYykpIGxpc3QoKGNhYWRyKGxheWVyM0Jib3gpICsgbGF5ZXIzSW1wRW5jKSAoY2FkYWRyKGxheWVyM0Jib3gpICsgbGF5ZXIzSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSkpAChsYXllcjEgbGF5ZXIyIGxheWVyMyB2aWExTGF5ZXIgdmlhMkxheWVyIGxheWVyMVdpZHRoIGxheWVyMVhFbmNWaWExIGxheWVyMVlFbmNWaWExIGxheWVyMlhFbmNWaWExIGxheWVyMllFbmNWaWExIGxheWVyMlhFbmNWaWEyIGxheWVyMllFbmNWaWEyIGxheWVyM1hFbmNWaWEyIGxheWVyM1lFbmNWaWEyIHdlbGxMYXllciB3ZWxsTGF5ZXJFbmMgaWRMYXllciBpZExheWVyRW5jIGlkTGF5ZXJFbmNXZWxsIGlkRW5jV2VsbCBpZExheWVyV2lkdGggbGF5ZXIxSW1wbGFudCBsYXllcjFJbXBFbmMgbGF5ZXIySW1wbGFudCBsYXllcjJJbXBFbmMgbGF5ZXIzSW1wbGFudCBsYXllcjNJbXBFbmMgdmlhMUltcGxhbnQgdmlhMUltcEVuYyB2aWEySW1wbGFudCB2aWEySW1wRW5jIHZpYTFXaWR0aCB2aWExTGVuZ3RoIHZpYTFTcGFjaW5nIHZpYTJXaWR0aCB2aWEyTGVuZ3RoIHZpYTJTcGFjaW5nIHNuYXBHcmlkIHJvdEwxRW5jVjEgcm90TDJFbmNWMSByb3RMMkVuY1YyIHJvdEwzRW5jVjIgbm9MYXllcjMgZnVsbExheWVyMiBSb3dDb2wgaW5XZWxsIGltcGxhbnQgcm93IGNvbHVtbiBsYXllcjFXIGxheWVyMUwgdGVtcCBhbGxEaXIgbmV0IHZpYTFYUGl0Y2ggdmlhMVlQaXRjaCB2aWEyWFBpdGNoIHZpYTJZUGl0Y2ggcm93VmlhMSBjb2xWaWExIGxheWVyMVhTaXplIGxheWVyMVlTaXplIGxheWVyMUJib3ggZGJJZCBwaW5JZCB3ZWxsTGF5ZXJYMSB3ZWxsTGF5ZXJZMSB3ZWxsTGF5ZXJYMiB3ZWxsTGF5ZXJZMiBsYXllcjFYd2lkdGggbGF5ZXIxWXdpZHRoIGlkV2lkdGhYIGlkV2lkdGhZIGlkTGF5ZXJFbmNYIGlkTGF5ZXJFbmNZIHZpYTFZb2Zmc2V0IHZpYTFZc3RhcnQgdmlhMVhvZmZzZXQgdmlhMVhzdGFydCB0aGVZIHIgdGhlWCBjb2wgdmlhMUJib3ggbGF5ZXIyQmJveCBsYXllcjJYU2l6ZSBsYXllcjJZU2l6ZSByb3dWaWEyIGNvbFZpYTIgbGF5ZXIyWVNpemVWMiBsYXllcjJZRXh0cmEgbGF5ZXIyWFNpemVWMiBsYXllcjJYRXh0cmEgdmlhMllvZmZzZXQgdmlhMllzdGFydCB2aWEyWG9mZnNldCB2aWEyWHN0YXJ0IHZpYTJCYm94IGxheWVyM0Jib3gpACgocm90TDFFbmNWMSAiRkFMU0UiKSAocm90TDJFbmNWMSAiRkFMU0UiKSAocm90TDJFbmNWMiAiRkFMU0UiKSAocm90TDNFbmNWMiAiRkFMU0UiKSAobm9MYXllcjMgdCkgKGZ1bGxMYXllcjIgIkZBTFNFIikgKFJvd0NvbCAiRkFMU0UiKSAoaW5XZWxsICJGQUxTRSIpIChpbXBsYW50IHQpIChyb3cgMSkgKGNvbHVtbiAxKSAobGF5ZXIxVyAwLjApIChsYXllcjFMIDAuMCkpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKGxheWVyMyBuaWwpICh2aWExTGF5ZXIgInk0IikgKHZpYTJMYXllciBuaWwpIChsYXllcjFXaWR0aCAwLjApIChsYXllcjFYRW5jVmlhMSAwLjApIChsYXllcjFZRW5jVmlhMSAwLjApIChsYXllcjJYRW5jVmlhMSAwLjApIChsYXllcjJZRW5jVmlhMSAwLjApIChsYXllcjJYRW5jVmlhMiAwLjApIChsYXllcjJZRW5jVmlhMiAwLjApIChsYXllcjNYRW5jVmlhMiAwLjApIChsYXllcjNZRW5jVmlhMiAwLjApICh3ZWxsTGF5ZXIgbmlsKSAod2VsbExheWVyRW5jIDAuMCkgKGlkTGF5ZXIgbmlsKSAoaWRMYXllckVuYyAwLjApIChpZExheWVyRW5jV2VsbCAwLjApIChpZEVuY1dlbGwgbmlsKSAoaWRMYXllcldpZHRoIDAuMCkgKGxheWVyMUltcGxhbnQgbmlsKSAobGF5ZXIxSW1wRW5jIGxpc3QoMC4wIDAuMCkpIChsYXllcjJJbXBsYW50IG5pbCkgKGxheWVyMkltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIzSW1wbGFudCBuaWwpIChsYXllcjNJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTFJbXBsYW50IG5pbCkgKHZpYTFJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTJJbXBsYW50IG5pbCkgKHZpYTJJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYTFXaWR0aCAwLjApICh2aWExTGVuZ3RoIDAuMCkgKHZpYTFTcGFjaW5nIDAuMCkgKHZpYTJXaWR0aCAwLjApICh2aWEyTGVuZ3RoIDAuMCkgKHZpYTJTcGFjaW5nIDAuMCkgKHNuYXBHcmlkIChURUNIZ2V0UHJvcCBzbmFwR3JpZCkpKQAod2hlbigoZGVsdGF3IDwgMCkgZXJyb3IoImRlbHRhdyAoJWcpIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuMFxuIiBkZWx0YXcpKSB3aGVuKChkZWx0YWwgPCAwKSBlcnJvcigiZGVsdGFsICglZykgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4wXG4iIGRlbHRhbCkpIGlmKChsYXllcjJBZGpFbmMgPCBsYXllcjJBbnlFbmMpIHRoZW4gKGxheWVyMkFkakVuYyA9IGxheWVyMkFueUVuYykpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKChyb3RhdGUgPT0gdCkgfHwgKHJvdGF0ZSA9PSAiVFJVRSIpKSB0aGVuIChyb3RhdGUgPSB0KSBlbHNlIChyb3RhdGUgPSBuaWwpKSAoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSB3aGVuKHN0cmluZ3AobGF5ZXIxKSAobGF5ZXIxID0gbGlzdChsYXllcjEgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgd2hlbihpbXBsYW50IHdoZW4obGF5ZXIxSW1wbGFudCBpZihpbldlbGwgdGhlbiAobGF5ZXIxSW1wbGFudCA9IGNhZHIobGF5ZXIxSW1wbGFudCkpIChsYXllcjFJbXBFbmMgPSBjYWRyKGxheWVyMUltcEVuYykpIGVsc2UgKGxheWVyMUltcGxhbnQgPSBjYXIobGF5ZXIxSW1wbGFudCkpIChsYXllcjFJbXBFbmMgPSBjYXIobGF5ZXIxSW1wRW5jKSkpKSB3aGVuKGxheWVyMkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMkltcGxhbnQgPSBjYWRyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FkcihsYXllcjJJbXBFbmMpKSBlbHNlIChsYXllcjJJbXBsYW50ID0gY2FyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FyKGxheWVyMkltcEVuYykpKSkgd2hlbih2aWFMYXllckltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHZpYUxheWVySW1wbGFudCA9IGNhZHIodmlhTGF5ZXJJbXBsYW50KSkgKHZpYUxheWVySW1wRW5jID0gY2Fkcih2aWFMYXllckltcEVuYykpIGVsc2UgKHZpYUxheWVySW1wbGFudCA9IGNhcih2aWFMYXllckltcGxhbnQpKSAodmlhTGF5ZXJJbXBFbmMgPSBjYXIodmlhTGF5ZXJJbXBFbmMpKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWFMYXllciBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdCh2aWFMYXllclggdmlhTGF5ZXJZKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXIiICJsaXN0IiB2aWFMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgoMC4wOjAuMCkgKHZpYUxheWVyWDp2aWFMYXllclkpKSkgd2hlbigodmlhTGF5ZXJJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVySW1wbGFudCBsaXN0KGxpc3QoKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSArIHZpYUxheWVySW1wRW5jKSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWFMYXllckltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgY29uZCgoKGVuY0J5TGF5ZXIxID09IDAuMCkgKGxheWVyMVggPSBsYXllcjFYRW5jKSAobGF5ZXIxWSA9IGxheWVyMVlFbmMpKSAodCAobGF5ZXIxWCA9IGVuY0J5TGF5ZXIxKSAobGF5ZXIxWSA9IGVuY0J5TGF5ZXIxKSkpIGlmKHJvdGF0ZSB0aGVuIChsYXllcjFCYm94ID0gbGlzdChsaXN0KCgtIGxheWVyMVkpICgtIGxheWVyMVgpKSBsaXN0KCh2aWFMYXllclggKyBsYXllcjFZKSAodmlhTGF5ZXJZICsgbGF5ZXIxWCkpKSkgZWxzZSAobGF5ZXIxQmJveCA9IGxpc3QobGlzdCgoLSBsYXllcjFYKSAoLSBsYXllcjFZKSkgbGlzdCgodmlhTGF5ZXJYICsgbGF5ZXIxWCkgKHZpYUxheWVyWSArIGxheWVyMVkpKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGF5ZXIxQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiBsYXllcjFCYm94KSB3aGVuKG1heHZMYXllciAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBtYXh2TGF5ZXIgbGF5ZXIxQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpIHdoZW4oKGxheWVyMUltcGxhbnQgJiYgaW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxSW1wbGFudCBsaXN0KGxpc3QoKGNhYXIobGF5ZXIxQmJveCkgLSBsYXllcjFJbXBFbmMpIChjYWRhcihsYXllcjFCYm94KSAtIGxheWVyMUltcEVuYykpIGxpc3QoKGNhYWRyKGxheWVyMUJib3gpICsgbGF5ZXIxSW1wRW5jKSAoY2FkYWRyKGxheWVyMUJib3gpICsgbGF5ZXIxSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKCh3ZWxsTGF5ZXIgJiYgaW1wbGFudCAmJiBpbldlbGwpICh3ZWxsTGF5ZXJYMSA9IChjYWFyKGxheWVyMUJib3gpIC0gd2VsbExheWVyRW5jKSkgKHdlbGxMYXllclkxID0gKGNhZGFyKGxheWVyMUJib3gpIC0gd2VsbExheWVyRW5jKSkgKHdlbGxMYXllclgyID0gKGNhYWRyKGxheWVyMUJib3gpICsgd2VsbExheWVyRW5jKSkgKHdlbGxMYXllclkyID0gKGNhZGFkcihsYXllcjFCYm94KSArIHdlbGxMYXllckVuYykpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh3ZWxsTGF5ZXJYMTp3ZWxsTGF5ZXJZMSkgKHdlbGxMYXllclgyOndlbGxMYXllclkyKSkpKSkgd2hlbihpZExheWVyIGlmKCh3ZWxsTGF5ZXIgJiYgaW5XZWxsICYmIGltcGxhbnQgJiYgaWRFbmNXZWxsKSB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGlkTGF5ZXIgbGlzdChsaXN0KCh3ZWxsTGF5ZXJYMSAtIGlkTGF5ZXJFbmNXZWxsKSAod2VsbExheWVyWTEgLSBpZExheWVyRW5jV2VsbCkpIGxpc3QoKHdlbGxMYXllclgyICsgaWRMYXllckVuY1dlbGwpICh3ZWxsTGF5ZXJZMiArIGlkTGF5ZXJFbmNXZWxsKSkpKSkgZWxzZSAobGF5ZXIxWHdpZHRoID0gYWJzKChjYWFkcihsYXllcjFCYm94KSAtIGNhYXIobGF5ZXIxQmJveCkpKSkgKGxheWVyMVl3aWR0aCA9IGFicygoY2FkYWRyKGxheWVyMUJib3gpIC0gY2FkYXIobGF5ZXIxQmJveCkpKSkgKGlkV2lkdGhYID0gKCgyICogaWRMYXllckVuYykgKyBsYXllcjFYd2lkdGgpKSAoaWRXaWR0aFkgPSAoKDIgKiBpZExheWVyRW5jKSArIGxheWVyMVl3aWR0aCkpIGlmKChpZFdpZHRoWCA8IGlkTGF5ZXJXaWR0aCkgdGhlbiAoaWRMYXllckVuY1ggPSAoKGlkTGF5ZXJXaWR0aCAtIGxheWVyMVh3aWR0aCkgLyAyKSkgKGlkTGF5ZXJFbmNYID0gKChjZWlsaW5nICgoaWRMYXllckVuY1ggLyBzbmFwR3JpZCkgKyAtMWUtMDYpKSAqIHNuYXBHcmlkKSkgZWxzZSAoaWRMYXllckVuY1ggPSBpZExheWVyRW5jKSkgaWYoKGlkV2lkdGhZIDwgaWRMYXllcldpZHRoKSB0aGVuIChpZExheWVyRW5jWSA9ICgoaWRMYXllcldpZHRoIC0gbGF5ZXIxWXdpZHRoKSAvIDIpKSAoaWRMYXllckVuY1kgPSAoKGNlaWxpbmcgKChpZExheWVyRW5jWSAvIHNuYXBHcmlkKSArIC0xZS0wNikpICogc25hcEdyaWQpKSBlbHNlIChpZExheWVyRW5jWSA9IGlkTGF5ZXJFbmMpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpZExheWVyIGxpc3QobGlzdCgoY2FhcihsYXllcjFCYm94KSAtIGlkTGF5ZXJFbmNYKSAoY2FkYXIobGF5ZXIxQmJveCkgLSBpZExheWVyRW5jWSkpIGxpc3QoKGNhYWRyKGxheWVyMUJib3gpICsgaWRMYXllckVuY1gpIChjYWRhZHIobGF5ZXIxQmJveCkgKyBpZExheWVyRW5jWSkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIGlmKChkZWx0YXcgPCAoKGxheWVyMkFkakVuYyAtIGxheWVyMkFueUVuYykgLSAxZS0wNikpIHRoZW4gKGxheWVyMkRlbHRhWSA9IGxheWVyMkFkakVuYykgZWxzZSAobGF5ZXIyRGVsdGFZID0gbGF5ZXIyQW55RW5jKSkgKGxheWVyMkJib3ggPSBsaXN0KGxpc3QoKC0gKGxheWVyMkFueUVuYyArIGRlbHRhdykpICgtIGxheWVyMkRlbHRhWSkpIGxpc3QoKHZpYUxheWVyWCArIGxheWVyMkFueUVuYyArIGRlbHRhdykgKHZpYUxheWVyWSArIGRlbHRhbCArIGxheWVyMkRlbHRhWSkpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiBsYXllcjJCYm94KSB3aGVuKChsYXllcjJJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMkltcGxhbnQgbGlzdChsaXN0KChjYWFyKGxheWVyMkJib3gpIC0gbGF5ZXIySW1wRW5jKSAoY2FkYXIobGF5ZXIyQmJveCkgLSBsYXllcjJJbXBFbmMpKSBsaXN0KChjYWFkcihsYXllcjJCYm94KSArIGxheWVyMkltcEVuYykgKGNhZGFkcihsYXllcjJCYm94KSArIGxheWVyMkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkpAChsYXllcjEgbGF5ZXIyIHZpYUxheWVyIG1heHZMYXllciB2aWFMYXllclggdmlhTGF5ZXJZIGVuY0J5TGF5ZXIxIGxheWVyMVhFbmMgbGF5ZXIxWUVuYyBsYXllcjJBZGpFbmMgbGF5ZXIyQW55RW5jIGxheWVyMUltcGxhbnQgbGF5ZXIxSW1wRW5jIGxheWVyMkltcGxhbnQgbGF5ZXIySW1wRW5jIHZpYUxheWVySW1wbGFudCB2aWFMYXllckltcEVuYyB3ZWxsTGF5ZXIgd2VsbExheWVyRW5jIGlkTGF5ZXIgaWRMYXllckVuYyBpZExheWVyRW5jV2VsbCBpZEVuY1dlbGwgaWRMYXllcldpZHRoIHNuYXBHcmlkIGRlbHRhdyBkZWx0YWwgaW1wbGFudCBpbldlbGwgcm90YXRlIGFsbERpciBuZXQgZGJJZCBsYXllcjFYIGxheWVyMVkgbGF5ZXIxQmJveCBwaW5JZCB3ZWxsTGF5ZXJYMSB3ZWxsTGF5ZXJZMSB3ZWxsTGF5ZXJYMiB3ZWxsTGF5ZXJZMiBsYXllcjFYd2lkdGggbGF5ZXIxWXdpZHRoIGlkV2lkdGhYIGlkV2lkdGhZIGlkTGF5ZXJFbmNYIGlkTGF5ZXJFbmNZIGxheWVyMkRlbHRhWSBsYXllcjJCYm94KQAoKGRlbHRhdyAwLjApIChkZWx0YWwgMC4wKSAoaW1wbGFudCB0KSAoaW5XZWxsIHQpIChyb3RhdGUgIkZBTFNFIikpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKHZpYUxheWVyICJ5NCIpIChtYXh2TGF5ZXIgbmlsKSAodmlhTGF5ZXJYIDAuMCkgKHZpYUxheWVyWSAwLjApIChlbmNCeUxheWVyMSAwLjApIChsYXllcjFYRW5jIDAuMCkgKGxheWVyMVlFbmMgMC4wKSAobGF5ZXIyQWRqRW5jIDAuMCkgKGxheWVyMkFueUVuYyAwLjApIChsYXllcjFJbXBsYW50IG5pbCkgKGxheWVyMUltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjJJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYUxheWVySW1wbGFudCBuaWwpICh2aWFMYXllckltcEVuYyBsaXN0KDAuMCAwLjApKSAod2VsbExheWVyIG5pbCkgKHdlbGxMYXllckVuYyAwLjApIChpZExheWVyIG5pbCkgKGlkTGF5ZXJFbmMgMC4wKSAoaWRMYXllckVuY1dlbGwgMC4wKSAoaWRFbmNXZWxsIG5pbCkgKGlkTGF5ZXJXaWR0aCAwLjApIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSkAKGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgaWYoKChDZW50ZXJBdE9yaWdpbiA9PSB0KSB8fCAoQ2VudGVyQXRPcmlnaW4gPT0gIlRSVUUiKSkgdGhlbiAoY2VudGVyID0gdCkgZWxzZSAoY2VudGVyID0gbmlsKSkgd2hlbigoKHJvdGF0ZVRvcCA9PSB0KSB8fCAocm90YXRlVG9wID09ICJUUlVFIikpIChzd2FwVGVtcCA9IGxheWVyMlhFbmMpIChsYXllcjJYRW5jID0gbGF5ZXIyWUVuYykgKGxheWVyMllFbmMgPSBzd2FwVGVtcCkpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIHdoZW4oc3RyaW5ncChsYXllcjEpIChsYXllcjEgPSBsaXN0KGxheWVyMSAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKGxheWVyMikgKGxheWVyMiA9IGxpc3QobGF5ZXIyICJkcmF3aW5nIikpKSB3aGVuKGltcGxhbnQgd2hlbihsYXllcjFJbXBsYW50IGlmKGluV2VsbCB0aGVuIChsYXllcjFJbXBsYW50ID0gY2FkcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhZHIobGF5ZXIxSW1wRW5jKSkgZWxzZSAobGF5ZXIxSW1wbGFudCA9IGNhcihsYXllcjFJbXBsYW50KSkgKGxheWVyMUltcEVuYyA9IGNhcihsYXllcjFJbXBFbmMpKSkpIHdoZW4obGF5ZXIxQ29yZUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMUNvcmVJbXBsYW50ID0gY2FkcihsYXllcjFDb3JlSW1wbGFudCkpIChsYXllcjFDb3JlSW1wRW5jID0gY2FkcihsYXllcjFDb3JlSW1wRW5jKSkgZWxzZSAobGF5ZXIxQ29yZUltcGxhbnQgPSBjYXIobGF5ZXIxQ29yZUltcGxhbnQpKSAobGF5ZXIxQ29yZUltcEVuYyA9IGNhcihsYXllcjFDb3JlSW1wRW5jKSkpKSB3aGVuKGxheWVyMkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGxheWVyMkltcGxhbnQgPSBjYWRyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FkcihsYXllcjJJbXBFbmMpKSBlbHNlIChsYXllcjJJbXBsYW50ID0gY2FyKGxheWVyMkltcGxhbnQpKSAobGF5ZXIySW1wRW5jID0gY2FyKGxheWVyMkltcEVuYykpKSkgd2hlbih2aWFMYXllckltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHZpYUxheWVySW1wbGFudCA9IGNhZHIodmlhTGF5ZXJJbXBsYW50KSkgKHZpYUxheWVySW1wRW5jID0gY2Fkcih2aWFMYXllckltcEVuYykpIGVsc2UgKHZpYUxheWVySW1wbGFudCA9IGNhcih2aWFMYXllckltcGxhbnQpKSAodmlhTGF5ZXJJbXBFbmMgPSBjYXIodmlhTGF5ZXJJbXBFbmMpKSkpKSBjb25kKCgoZW5jQnlMYXllcjEgPT0gMC4wKSAobGF5ZXIxWCA9IGxheWVyMVhFbmMpIChsYXllcjFZID0gbGF5ZXIxWUVuYykpICh0IChsYXllcjFYID0gZW5jQnlMYXllcjEpIChsYXllcjFZID0gZW5jQnlMYXllcjEpKSkgKGxheWVyMWxlbmd0aCA9ICgoMiAqIGxheWVyMVgpICsgdyArICgoY29sdW1uIC0gMSkgKiB4UGl0Y2gpKSkgKGxheWVyMXdpZHRoID0gKCgyICogbGF5ZXIxWSkgKyBsICsgKChyb3cgLSAxKSAqIHlQaXRjaCkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjEgbGlzdChsaXN0KDAuMCAwLjApIGxpc3QobGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoKSkpKSBpZihDZW50ZXJBdE9yaWdpbiB0aGVuICh4U2hpZnQgPSAobGF5ZXIxbGVuZ3RoIC8gMikpICh5U2hpZnQgPSAobGF5ZXIxd2lkdGggLyAyKSkgZWxzZSAoeFNoaWZ0ID0gMCkgKHlTaGlmdCA9IDApKSAoZGJJZCA9IChkYk1vdmVGaWcgZGJJZCBuaWwgbGlzdCgoKC0geFNoaWZ0KTooLSB5U2hpZnQpKSAiUjAiKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4obWF4dkxheWVyIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpIChkYklkID0gKGRiTW92ZUZpZyBkYklkIG5pbCBsaXN0KCgoLSB4U2hpZnQpOigtIHlTaGlmdCkpICJSMCIpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSkgd2hlbigobGF5ZXIxSW1wbGFudCAmJiBpbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjFJbXBsYW50IGxpc3QobGlzdCgoLSBsYXllcjFJbXBFbmMpICgtIGxheWVyMUltcEVuYykpIGxpc3QoKGxheWVyMWxlbmd0aCArIGxheWVyMUltcEVuYykgKGxheWVyMXdpZHRoICsgbGF5ZXIxSW1wRW5jKSkpKSkgKGRiSWQgPSAoZGJNb3ZlRmlnIGRiSWQgbmlsIGxpc3QoKCgtIHhTaGlmdCk6KC0geVNoaWZ0KSkgIlIwIikpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4oKGxheWVyMUNvcmVJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUNvcmVJbXBsYW50IGxpc3QobGlzdCgoLSBsYXllcjFDb3JlSW1wRW5jKSAoLSBsYXllcjFDb3JlSW1wRW5jKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgbGF5ZXIxQ29yZUltcEVuYykgKGxheWVyMXdpZHRoICsgbGF5ZXIxQ29yZUltcEVuYykpKSkpIChkYklkID0gKGRiTW92ZUZpZyBkYklkIG5pbCBsaXN0KCgoLSB4U2hpZnQpOigtIHlTaGlmdCkpICJSMCIpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKCh3ZWxsTGF5ZXIgJiYgaW1wbGFudCAmJiBpbldlbGwpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KGxpc3QoKC0gd2VsbExheWVyRW5jKSAoLSB3ZWxsTGF5ZXJFbmMpKSBsaXN0KChsYXllcjFsZW5ndGggKyB3ZWxsTGF5ZXJFbmMpIChsYXllcjF3aWR0aCArIHdlbGxMYXllckVuYykpKSkpIChkYklkID0gKGRiTW92ZUZpZyBkYklkIG5pbCBsaXN0KCgoLSB4U2hpZnQpOigtIHlTaGlmdCkpICJSMCIpKSkpICh0aGVZID0gbGF5ZXIxWSkgZm9yKHIgMSByb3cgKHRoZVggPSBsYXllcjFYKSBmb3IoY29sIDEgY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB3KSAodGhlWSArIGwpKSkpKSAoZGJJZCA9IChkYk1vdmVGaWcgZGJJZCBuaWwgbGlzdCgoKC0geFNoaWZ0KTooLSB5U2hpZnQpKSAiUjAiKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgeFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyB5UGl0Y2gpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXIiICJsaXN0IiB2aWFMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgobGF5ZXIxWDpsYXllcjFZKSAoY2FhZHIoKGRiSWR+PmJCb3gpKTpjYWRhZHIoKGRiSWR+PmJCb3gpKSkpKSAobGF5ZXIybGVuZ3RoID0gKCgyICogbGF5ZXIyWEVuYykgKyB3ICsgKChjb2x1bW4gLSAxKSAqIHhQaXRjaCkpKSAobGF5ZXIyd2lkdGggPSAoKDIgKiBsYXllcjJZRW5jKSArIGwgKyAoKHJvdyAtIDEpICogeVBpdGNoKSkpIChsYXllcjJYMUNvb3JkID0gKGxheWVyMVggLSBsYXllcjJYRW5jKSkgKGxheWVyMlkxQ29vcmQgPSAobGF5ZXIxWSAtIGxheWVyMllFbmMpKSAobGF5ZXIyWDJDb29yZCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIybGVuZ3RoKSkgKGxheWVyMlkyQ29vcmQgPSAobGF5ZXIyWTFDb29yZCArIGxheWVyMndpZHRoKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKGxheWVyMlgxQ29vcmQ6bGF5ZXIyWTFDb29yZCkgKGxheWVyMlgyQ29vcmQ6bGF5ZXIyWTJDb29yZCkpKSkgKGRiSWQgPSAoZGJNb3ZlRmlnIGRiSWQgbmlsIGxpc3QoKCgtIHhTaGlmdCk6KC0geVNoaWZ0KSkgIlIwIikpKSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4oKGxheWVyMkltcGxhbnQgJiYgaW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIySW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMlgxQ29vcmQgLSBsYXllcjJJbXBFbmMpIChsYXllcjJZMUNvb3JkIC0gbGF5ZXIySW1wRW5jKSkgbGlzdCgobGF5ZXIyWDJDb29yZCArIGxheWVyMkltcEVuYykgKGxheWVyMlkyQ29vcmQgKyBsYXllcjJJbXBFbmMpKSkpKSAoZGJJZCA9IChkYk1vdmVGaWcgZGJJZCBuaWwgbGlzdCgoKC0geFNoaWZ0KTooLSB5U2hpZnQpKSAiUjAiKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigodmlhTGF5ZXJJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVySW1wbGFudCBsaXN0KGxpc3QoKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSArIHZpYUxheWVySW1wRW5jKSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWFMYXllckltcEVuYykpKSkpIChkYklkID0gKGRiTW92ZUZpZyBkYklkIG5pbCBsaXN0KCgoLSB4U2hpZnQpOigtIHlTaGlmdCkpICJSMCIpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hFZmYiICJsaXN0IiBsaXN0KGxpc3QobWluKGNhYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhYXIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSBtaW4oY2FkYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkpIGxpc3QobWF4KGNhYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpIG1heChjYWRhZHIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpKSkpKQAobGF5ZXIxIGxheWVyMiB2aWFMYXllciBtYXh2TGF5ZXIgZW5jQnlMYXllcjEgbGF5ZXIxWEVuYyBsYXllcjFZRW5jIGxheWVyMlhFbmMgbGF5ZXIyWUVuYyBsYXllcjFJbXBsYW50IGxheWVyMUltcEVuYyBsYXllcjFDb3JlSW1wbGFudCBsYXllcjFDb3JlSW1wRW5jIGxheWVyMkltcGxhbnQgbGF5ZXIySW1wRW5jIHZpYUxheWVySW1wbGFudCB2aWFMYXllckltcEVuYyB3ZWxsTGF5ZXIgd2VsbExheWVyRW5jIENlbnRlckF0T3JpZ2luIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB3IGwgaW1wbGFudCBpbldlbGwgcm90YXRlVG9wIGNlbnRlciBzd2FwVGVtcCBhbGxEaXIgbmV0IGxheWVyMVggbGF5ZXIxWSBsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGggZGJJZCB4U2hpZnQgeVNoaWZ0IHBpbklkIHRoZVkgciB0aGVYIGNvbCBsYXllcjJsZW5ndGggbGF5ZXIyd2lkdGggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyMlgyQ29vcmQgbGF5ZXIyWTJDb29yZCkAKChyb3cgMSkgKGNvbHVtbiAxKSAoeFBpdGNoIDAuMCkgKHlQaXRjaCAwLjApICh3IDAuMCkgKGwgMC4wKSAoaW1wbGFudCB0KSAoaW5XZWxsIHQpIChyb3RhdGVUb3AgIkZBTFNFIikpACgobGF5ZXIxICJoaWxpdGUiKSAobGF5ZXIyICJwckJvdW5kYXJ5IikgKHZpYUxheWVyICJ5NCIpIChtYXh2TGF5ZXIgbmlsKSAoZW5jQnlMYXllcjEgMC4wKSAobGF5ZXIxWEVuYyAwLjApIChsYXllcjFZRW5jIDAuMCkgKGxheWVyMlhFbmMgMC4wKSAobGF5ZXIyWUVuYyAwLjApIChsYXllcjFJbXBsYW50IG5pbCkgKGxheWVyMUltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIxQ29yZUltcGxhbnQgbmlsKSAobGF5ZXIxQ29yZUltcEVuYyBsaXN0KDAuMCAwLjApKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjJJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHZpYUxheWVySW1wbGFudCBuaWwpICh2aWFMYXllckltcEVuYyBsaXN0KDAuMCAwLjApKSAod2VsbExheWVyIG5pbCkgKHdlbGxMYXllckVuYyAwLjApIChDZW50ZXJBdE9yaWdpbiAiRkFMU0UiKSkAKGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIHdoZW4oKChyb3RhdGVUb3AgPT0gdCkgfHwgKHJvdGF0ZVRvcCA9PSAiVFJVRSIpKSAoc3dhcFRlbXAgPSBsYXllcjJYRW5jKSAobGF5ZXIyWEVuYyA9IGxheWVyMllFbmMpIChsYXllcjJZRW5jID0gc3dhcFRlbXApKSAoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSB3aGVuKHN0cmluZ3AobGF5ZXIxKSAobGF5ZXIxID0gbGlzdChsYXllcjEgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgY29uZCgoKGVuY0J5TGF5ZXIxID09IDAuMCkgKGxheWVyMVggPSBsYXllcjFYRW5jKSAobGF5ZXIxWSA9IGxheWVyMVlFbmMpKSAodCAobGF5ZXIxWCA9IGVuY0J5TGF5ZXIxKSAobGF5ZXIxWSA9IGVuY0J5TGF5ZXIxKSkpIChsYXllcjFsZW5ndGggPSAoKDIgKiBsYXllcjFYKSArIHcgKyAoKGNvbHVtbiAtIDEpICogeFBpdGNoKSkpIChsYXllcjF3aWR0aCA9ICgoMiAqIGxheWVyMVkpICsgbCArICgocm93IC0gMSkgKiB5UGl0Y2gpKSkgKGxheWVyMVhMTCA9ICgtIChsYXllcjFsZW5ndGggLyAyLjApKSkgKGxheWVyMVlMTCA9ICgtIChsYXllcjF3aWR0aCAvIDIuMCkpKSAobGF5ZXIxWFVSID0gKGxheWVyMWxlbmd0aCAvIDIuMCkpIChsYXllcjFZVVIgPSAobGF5ZXIxd2lkdGggLyAyLjApKSBpZihDZW50ZXJBdE9yaWdpbiB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMSBsaXN0KGxpc3QobGF5ZXIxWExMIGxheWVyMVlMTCkgbGlzdChsYXllcjFYVVIgbGF5ZXIxWVVSKSkpKSBlbHNlIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMSBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXIiICJsaXN0IiBsYXllcjEpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYm90TGF5ZXJCYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSB3aGVuKG1heHZMYXllciBpZihDZW50ZXJBdE9yaWdpbiB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KGxpc3QobGF5ZXIxWExMIGxheWVyMVlMTCkgbGlzdChsYXllcjFYVVIgbGF5ZXIxWVVSKSkpKSBlbHNlIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChsYXllcjFsZW5ndGggbGF5ZXIxd2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSB3aGVuKChsYXllcjFJbXBsYW50ICYmIGltcGxhbnQpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxSW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMVhMTCAtIGxheWVyMUltcEVuYykgKGxheWVyMVlMTCAtIGxheWVyMUltcEVuYykpIGxpc3QoKGxheWVyMVhVUiArIGxheWVyMUltcEVuYykgKGxheWVyMVlVUiArIGxheWVyMUltcEVuYykpKSkpIGVsc2UgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxSW1wbGFudCBsaXN0KGxpc3QoKC0gbGF5ZXIxSW1wRW5jKSAoLSBsYXllcjFJbXBFbmMpKSBsaXN0KChsYXllcjFsZW5ndGggKyBsYXllcjFJbXBFbmMpIChsYXllcjF3aWR0aCArIGxheWVyMUltcEVuYykpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKHRoZVkgPSAobGF5ZXIxWUxMICsgbGF5ZXIxWSkpIGVsc2UgKHRoZVkgPSBsYXllcjFZKSkgZm9yKHIgMSByb3cgaWYoQ2VudGVyQXRPcmlnaW4gdGhlbiAodGhlWCA9IChsYXllcjFYTEwgKyBsYXllcjFYKSkgZWxzZSAodGhlWCA9IGxheWVyMVgpKSBmb3IoY29sIDEgY29sdW1uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVyIGxpc3QobGlzdCh0aGVYIHRoZVkpIGxpc3QoKHRoZVggKyB3KSAodGhlWSArIGwpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIHhQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgeVBpdGNoKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExheWVyIiAibGlzdCIgdmlhTGF5ZXIpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXJCYm94IiAibGlzdCIgbGlzdCgoKGxheWVyMVhMTCArIGxheWVyMVgpOihsYXllcjFZTEwgKyBsYXllcjFZKSkgKGNhYWRyKChkYklkfj5iQm94KSk6Y2FkYWRyKChkYklkfj5iQm94KSkpKSkgZWxzZSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllckJib3giICJsaXN0IiBsaXN0KChsYXllcjFYOmxheWVyMVkpIChjYWFkcigoZGJJZH4+YkJveCkpOmNhZGFkcigoZGJJZH4+YkJveCkpKSkpKSAobGF5ZXIybGVuZ3RoID0gKCgyICogbGF5ZXIyWEVuYykgKyB3ICsgKChjb2x1bW4gLSAxKSAqIHhQaXRjaCkpKSAobGF5ZXIyd2lkdGggPSAoKDIgKiBsYXllcjJZRW5jKSArIGwgKyAoKHJvdyAtIDEpICogeVBpdGNoKSkpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGxheWVyMlgxQ29vcmQgPSAobGF5ZXIxWExMICsgKGxheWVyMVggLSBsYXllcjJYRW5jKSkpIChsYXllcjJZMUNvb3JkID0gKGxheWVyMVlMTCArIChsYXllcjFZIC0gbGF5ZXIyWUVuYykpKSBlbHNlIChsYXllcjJYMUNvb3JkID0gKGxheWVyMVggLSBsYXllcjJYRW5jKSkgKGxheWVyMlkxQ29vcmQgPSAobGF5ZXIxWSAtIGxheWVyMllFbmMpKSkgKGxheWVyMlgyQ29vcmQgPSAobGF5ZXIyWDFDb29yZCArIGxheWVyMmxlbmd0aCkpIChsYXllcjJZMkNvb3JkID0gKGxheWVyMlkxQ29vcmQgKyBsYXllcjJ3aWR0aCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KChsYXllcjJYMUNvb3JkOmxheWVyMlkxQ29vcmQpIChsYXllcjJYMkNvb3JkOmxheWVyMlkyQ29vcmQpKSkpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgd2hlbigobGF5ZXIySW1wbGFudCAmJiBpbXBsYW50KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjJJbXBsYW50IGxpc3QobGlzdCgobGF5ZXIyWDFDb29yZCAtIGxheWVyMkltcEVuYykgKGxheWVyMlkxQ29vcmQgLSBsYXllcjJJbXBFbmMpKSBsaXN0KChsYXllcjJYMkNvb3JkICsgbGF5ZXIySW1wRW5jKSAobGF5ZXIyWTJDb29yZCArIGxheWVyMkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigodmlhTGF5ZXJJbXBsYW50ICYmIGltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVySW1wbGFudCBsaXN0KGxpc3QoKGNhYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSAtIHZpYUxheWVySW1wRW5jKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmNvbnRhY3RMYXllckJib3gpKSArIHZpYUxheWVySW1wRW5jKSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWFMYXllckltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJiQm94RWZmIiAibGlzdCIgbGlzdChsaXN0KG1pbihjYWFyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWFyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkgbWluKGNhZGFyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWRhcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpKSBsaXN0KG1heChjYWFkcigodGNDZWxsVmlld34+dG9wTGF5ZXJQaW5CYm94KSkgY2FhZHIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSBtYXgoY2FkYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWRhZHIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSkpKSkAKGxheWVyMSBsYXllcjIgdmlhTGF5ZXIgbWF4dkxheWVyIGVuY0J5TGF5ZXIxIGxheWVyMVhFbmMgbGF5ZXIxWUVuYyBsYXllcjJYRW5jIGxheWVyMllFbmMgbGF5ZXIxSW1wbGFudCBsYXllcjFJbXBFbmMgbGF5ZXIySW1wbGFudCBsYXllcjJJbXBFbmMgdmlhTGF5ZXJJbXBsYW50IHZpYUxheWVySW1wRW5jIENlbnRlckF0T3JpZ2luIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB3IGwgaW1wbGFudCByb3RhdGVUb3Agc3dhcFRlbXAgYWxsRGlyIG5ldCBsYXllcjFYIGxheWVyMVkgbGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoIGxheWVyMVhMTCBsYXllcjFZTEwgbGF5ZXIxWFVSIGxheWVyMVlVUiBkYklkIHBpbklkIHRoZVkgciB0aGVYIGNvbCBsYXllcjJsZW5ndGggbGF5ZXIyd2lkdGggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyMlgyQ29vcmQgbGF5ZXIyWTJDb29yZCkAKChyb3cgMSkgKGNvbHVtbiAxKSAoeFBpdGNoIDAuMCkgKHlQaXRjaCAwLjApICh3IDAuMCkgKGwgMC4wKSAoaW1wbGFudCB0KSAocm90YXRlVG9wICJGQUxTRSIpKQAoKGxheWVyMSAiaGlsaXRlIikgKGxheWVyMiAicHJCb3VuZGFyeSIpICh2aWFMYXllciAieTQiKSAobWF4dkxheWVyIG5pbCkgKGVuY0J5TGF5ZXIxIDAuMCkgKGxheWVyMVhFbmMgMC4wKSAobGF5ZXIxWUVuYyAwLjApIChsYXllcjJYRW5jIDAuMCkgKGxheWVyMllFbmMgMC4wKSAobGF5ZXIxSW1wbGFudCBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjJJbXBFbmMgMC4wKSAodmlhTGF5ZXJJbXBsYW50IG5pbCkgKHZpYUxheWVySW1wRW5jIDAuMCkgKENlbnRlckF0T3JpZ2luICJGQUxTRSIpKQAod2hlbigoKHJvdGF0ZVRvcCA9PSB0KSB8fCAocm90YXRlVG9wID09ICJUUlVFIikpIChzd2FwVGVtcCA9IGxheWVyMlhFbmMpIChsYXllcjJYRW5jID0gbGF5ZXIyWUVuYykgKGxheWVyMllFbmMgPSBzd2FwVGVtcCkpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIHdoZW4oc3RyaW5ncChsYXllcjEpIChsYXllcjEgPSBsaXN0KGxheWVyMSAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKGxheWVyMikgKGxheWVyMiA9IGxpc3QobGF5ZXIyICJkcmF3aW5nIikpKSBjb25kKCgoZW5jQnlMYXllcjEgPT0gMC4wKSAobGF5ZXIxWCA9IGxheWVyMVhFbmMpIChsYXllcjFZID0gbGF5ZXIxWUVuYykpICh0IChsYXllcjFYID0gZW5jQnlMYXllcjEpIChsYXllcjFZID0gZW5jQnlMYXllcjEpKSkgKGxheWVyMWxlbmd0aCA9ICgoMiAqIGxheWVyMVgpICsgdyArICgoY29sdW1uIC0gMSkgKiB4UGl0Y2gpKSkgKGxheWVyMXdpZHRoID0gKCgyICogbGF5ZXIxWSkgKyBsICsgKChyb3cgLSAxKSAqIHlQaXRjaCkpKSAobGF5ZXIxWExMID0gKC0gKGxheWVyMWxlbmd0aCAvIDIuMCkpKSAobGF5ZXIxWUxMID0gKC0gKGxheWVyMXdpZHRoIC8gMi4wKSkpIChsYXllcjFYVVIgPSAobGF5ZXIxbGVuZ3RoIC8gMi4wKSkgKGxheWVyMVlVUiA9IChsYXllcjF3aWR0aCAvIDIuMCkpIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxIGxpc3QobGlzdChsYXllcjFYTEwgbGF5ZXIxWUxMKSBsaXN0KGxheWVyMVhVUiBsYXllcjFZVVIpKSkpIGVsc2UgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIxIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllciIgImxpc3QiIGxheWVyMSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3RMYXllckJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4obWF4dkxheWVyIGlmKENlbnRlckF0T3JpZ2luIHRoZW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QobGlzdChsYXllcjFYTEwgbGF5ZXIxWUxMKSBsaXN0KGxheWVyMVhVUiBsYXllcjFZVVIpKSkpIGVsc2UgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGxheWVyMWxlbmd0aCBsYXllcjF3aWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpIHdoZW4obGF5ZXIxSW1wbGFudCBpZihDZW50ZXJBdE9yaWdpbiB0aGVuIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KChsYXllcjFYTEwgLSBsYXllcjFJbXBFbmMpIChsYXllcjFZTEwgLSBsYXllcjFJbXBFbmMpKSBsaXN0KChsYXllcjFYVVIgKyBsYXllcjFJbXBFbmMpIChsYXllcjFZVVIgKyBsYXllcjFJbXBFbmMpKSkpKSBlbHNlIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMUltcGxhbnQgbGlzdChsaXN0KCgtIGxheWVyMUltcEVuYykgKC0gbGF5ZXIxSW1wRW5jKSkgbGlzdCgobGF5ZXIxbGVuZ3RoICsgbGF5ZXIxSW1wRW5jKSAobGF5ZXIxd2lkdGggKyBsYXllcjFJbXBFbmMpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSkgaWYoQ2VudGVyQXRPcmlnaW4gdGhlbiAodGhlWSA9IChsYXllcjFZTEwgKyBsYXllcjFZKSkgZWxzZSAodGhlWSA9IGxheWVyMVkpKSBmb3IociAxIHJvdyBpZihDZW50ZXJBdE9yaWdpbiB0aGVuICh0aGVYID0gKGxheWVyMVhMTCArIGxheWVyMVgpKSBlbHNlICh0aGVYID0gbGF5ZXIxWCkpIGZvcihjb2wgMSBjb2x1bW4gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhTGF5ZXIgbGlzdChsaXN0KHRoZVggdGhlWSkgbGlzdCgodGhlWCArIHcpICh0aGVZICsgbCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWCA9ICh0aGVYICsgeFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyB5UGl0Y2gpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJjb250YWN0TGF5ZXIiICJsaXN0IiB2aWFMYXllcikgaWYoQ2VudGVyQXRPcmlnaW4gdGhlbiAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImNvbnRhY3RMYXllckJib3giICJsaXN0IiBsaXN0KCgobGF5ZXIxWExMICsgbGF5ZXIxWCk6KGxheWVyMVlMTCArIGxheWVyMVkpKSAoY2FhZHIoKGRiSWR+PmJCb3gpKTpjYWRhZHIoKGRiSWR+PmJCb3gpKSkpKSBlbHNlIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiY29udGFjdExheWVyQmJveCIgImxpc3QiIGxpc3QoKGxheWVyMVg6bGF5ZXIxWSkgKGNhYWRyKChkYklkfj5iQm94KSk6Y2FkYWRyKChkYklkfj5iQm94KSkpKSkpIChsYXllcjJsZW5ndGggPSAoKDIgKiBsYXllcjJYRW5jKSArIHcgKyAoKGNvbHVtbiAtIDEpICogeFBpdGNoKSkpIChsYXllcjJ3aWR0aCA9ICgoMiAqIGxheWVyMllFbmMpICsgbCArICgocm93IC0gMSkgKiB5UGl0Y2gpKSkgaWYoQ2VudGVyQXRPcmlnaW4gdGhlbiAobGF5ZXIyWDFDb29yZCA9IChsYXllcjFYTEwgKyAobGF5ZXIxWCAtIGxheWVyMlhFbmMpKSkgKGxheWVyMlkxQ29vcmQgPSAobGF5ZXIxWUxMICsgKGxheWVyMVkgLSBsYXllcjJZRW5jKSkpIGVsc2UgKGxheWVyMlgxQ29vcmQgPSAobGF5ZXIxWCAtIGxheWVyMlhFbmMpKSAobGF5ZXIyWTFDb29yZCA9IChsYXllcjFZIC0gbGF5ZXIyWUVuYykpKSAobGF5ZXIyWDJDb29yZCA9IChsYXllcjJYMUNvb3JkICsgbGF5ZXIybGVuZ3RoKSkgKGxheWVyMlkyQ29vcmQgPSAobGF5ZXIyWTFDb29yZCArIGxheWVyMndpZHRoKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKGxheWVyMlgxQ29vcmQ6bGF5ZXIyWTFDb29yZCkgKGxheWVyMlgyQ29vcmQ6bGF5ZXIyWTJDb29yZCkpKSkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSB3aGVuKGxheWVyMkltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIySW1wbGFudCBsaXN0KGxpc3QoKGxheWVyMlgxQ29vcmQgLSBsYXllcjJJbXBFbmMpIChsYXllcjJZMUNvb3JkIC0gbGF5ZXIySW1wRW5jKSkgbGlzdCgobGF5ZXIyWDJDb29yZCArIGxheWVyMkltcEVuYykgKGxheWVyMlkyQ29vcmQgKyBsYXllcjJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSB3aGVuKHZpYUxheWVySW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWFMYXllckltcGxhbnQgbGlzdChsaXN0KChjYWFyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgLSB2aWFMYXllckltcEVuYykgKGNhZGFyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgLSB2aWFMYXllckltcEVuYykpIGxpc3QoKGNhYWRyKCh0Y0NlbGxWaWV3fj5jb250YWN0TGF5ZXJCYm94KSkgKyB2aWFMYXllckltcEVuYykgKGNhZGFkcigodGNDZWxsVmlld34+Y29udGFjdExheWVyQmJveCkpICsgdmlhTGF5ZXJJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hFZmYiICJsaXN0IiBsaXN0KGxpc3QobWluKGNhYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhYXIoKHRjQ2VsbFZpZXd+PmJvdExheWVyQmJveCkpKSBtaW4oY2FkYXIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFyKCh0Y0NlbGxWaWV3fj5ib3RMYXllckJib3gpKSkpIGxpc3QobWF4KGNhYWRyKCh0Y0NlbGxWaWV3fj50b3BMYXllclBpbkJib3gpKSBjYWFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpIG1heChjYWRhZHIoKHRjQ2VsbFZpZXd+PnRvcExheWVyUGluQmJveCkpIGNhZGFkcigodGNDZWxsVmlld34+Ym90TGF5ZXJCYm94KSkpKSkpKQAobGF5ZXIxIGxheWVyMiB2aWFMYXllciBtYXh2TGF5ZXIgZW5jQnlMYXllcjEgbGF5ZXIxWEVuYyBsYXllcjFZRW5jIGxheWVyMlhFbmMgbGF5ZXIyWUVuYyBsYXllcjFJbXBsYW50IGxheWVyMUltcEVuYyBsYXllcjJJbXBsYW50IGxheWVyMkltcEVuYyB2aWFMYXllckltcGxhbnQgdmlhTGF5ZXJJbXBFbmMgQ2VudGVyQXRPcmlnaW4gcm93IGNvbHVtbiB4UGl0Y2ggeVBpdGNoIHcgbCByb3RhdGVUb3Agc3dhcFRlbXAgYWxsRGlyIG5ldCBsYXllcjFYIGxheWVyMVkgbGF5ZXIxbGVuZ3RoIGxheWVyMXdpZHRoIGxheWVyMVhMTCBsYXllcjFZTEwgbGF5ZXIxWFVSIGxheWVyMVlVUiBkYklkIHBpbklkIHRoZVkgciB0aGVYIGNvbCBsYXllcjJsZW5ndGggbGF5ZXIyd2lkdGggbGF5ZXIyWDFDb29yZCBsYXllcjJZMUNvb3JkIGxheWVyMlgyQ29vcmQgbGF5ZXIyWTJDb29yZCkAKChyb3cgMSkgKGNvbHVtbiAxKSAoeFBpdGNoIDAuMCkgKHlQaXRjaCAwLjApICh3IDAuMCkgKGwgMC4wKSAocm90YXRlVG9wICJGQUxTRSIpKQAoKGxheWVyMSAiaGlsaXRlIikgKGxheWVyMiAicHJCb3VuZGFyeSIpICh2aWFMYXllciAieTQiKSAobWF4dkxheWVyIG5pbCkgKGVuY0J5TGF5ZXIxIDAuMCkgKGxheWVyMVhFbmMgMC4wKSAobGF5ZXIxWUVuYyAwLjApIChsYXllcjJYRW5jIDAuMCkgKGxheWVyMllFbmMgMC4wKSAobGF5ZXIxSW1wbGFudCBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wbGFudCBuaWwpIChsYXllcjJJbXBFbmMgMC4wKSAodmlhTGF5ZXJJbXBsYW50IG5pbCkgKHZpYUxheWVySW1wRW5jIDAuMCkgKENlbnRlckF0T3JpZ2luICJGQUxTRSIpKQAoaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKChtYXhpbWlzZUNvbnRhY3RzID09IHQpIHx8IChtYXhpbWlzZUNvbnRhY3RzID09ICJUUlVFIikpIHRoZW4gKG1heGltaXNlQ29udGFjdHMgPSB0KSBlbHNlIChtYXhpbWlzZUNvbnRhY3RzID0gbmlsKSkgKGZOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicjAiKSkgKGRiQ3JlYXRlVGVybSBmTmV0ICJyMCIgImlucHV0T3V0cHV0IikgKGxOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicjEiKSkgKGRiQ3JlYXRlVGVybSBsTmV0ICJyMSIgImlucHV0T3V0cHV0IikgKHgxQ29vcmQgPSAwLjApICh4T2Zmc2V0ID0gMC4wKSAoeDFDb29yZDIgPSAwLjApICh5MUNvb3JkID0gMC4wKSB3aGVuKCgocnBvTWF4TGVuZ3RoID4gMC4wKSAmJiAocnBvTWluTGVuZ3RoID4gMC4wKSkgd2hlbigoKHJsID4gcnBvTWF4TGVuZ3RoKSB8fCAocmwgPCBycG9NaW5MZW5ndGgpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWluIHJwbyBMZW5ndGggPSAlZiBhbmQgTWF4IHJwbyBMZW5ndGggPSAlZiBcbiIgcnBvTWluTGVuZ3RoIHJwb01heExlbmd0aCkpKSkgd2hlbigoY29udGFjdE5hbWUgIT0gIiIpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgY29udGFjdE5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhjb250YWN0SWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gYCVzJ1xuIiBjb250YWN0TmFtZSkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJgJXMnIGlzIG5vdCBhIHBjZWxsXG4iIGNvbnRhY3ROYW1lKSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgaWYoKHBhcmFtc34+eVBpdGNoKSB0aGVuIChjb250YWN0UGl0Y2ggPSAocGFyYW1zfj55UGl0Y2gpKSBlbHNlIChjb250YWN0UGl0Y2ggPSAoKGNvbnRhY3RJZH4+Y29udGFjdFdpZHRoKSArIChjb250YWN0SWR+PmNvbnRhY3RTcGFjZSkpKSkgaWYoKHBhcmFtc34+bCkgdGhlbiAoY29udGFjdFNwYWNlID0gKGNvbnRhY3RQaXRjaCAtIChwYXJhbXN+PmwpKSkgZWxzZSAoY29udGFjdFNwYWNlID0gKGNvbnRhY3RJZH4+Y29udGFjdFNwYWNlKSkpIHdoZW4obWF4aW1pc2VDb250YWN0cyAodmlhQmJveCA9IChjb250YWN0SWR+PmNvbnRhY3RMYXllckJib3gpKSAoZWZmZWN0aXZlUncgPSAocncgKyAoLTIuMCAqIGNhZGFyKHZpYUJib3gpKSArIGNvbnRhY3RTcGFjZSkpIChudW1Sb3dzQ29udGFjdHMgPSBtYXgoMSBmaXgoKDFlLTA2ICsgKGVmZmVjdGl2ZVJ3IC8gY29udGFjdFBpdGNoKSkpKSkgKGluc3RQYXJhbXMgPSBsaXN0KGxpc3QoInJvdyIgImludCIgbnVtUm93c0NvbnRhY3RzKSkpKSB1bmxlc3MobWF4aW1pc2VDb250YWN0cyAobnVtUm93cyA9IG1heChmaXgoKChydyAvIGNvbnRhY3RQaXRjaCkgKyAxZS0wNikpIDEpKSAoaW5zdFBhcmFtcyA9IGxpc3QobGlzdCgicm93IiAiaW50IiBudW1Sb3dzKSkpKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgbGlzdCgiY29sdW1uIiAiaW50IiBudW1Db2xzKSkpIHdoZW4oKHBhcmFtc34+aW1wbGFudCkgaWYoaW1wbGFudCB0aGVuIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgdCkpKSBlbHNlIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgIkZBTFNFIikpKSkpIHdoZW4oKHBhcmFtc34+aW5XZWxsKSBpZih3ZWxsTGF5ZXIgdGhlbiAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpKSBlbHNlIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbldlbGwiICJib29sZWFuIiAiRkFMU0UiKSkpKSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgImMwIiAoeDFDb29yZDp5MUNvb3JkKSAiTVkiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGAlcydcbiIgY29udGFjdE5hbWUpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSB1bmxlc3MoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgYm90TGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnXG4iIGNvbnRhY3ROYW1lKSkpIHVubGVzcygobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgY29udGFjdExheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJ1xuIiBjb250YWN0TmFtZSkpKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGluIGAlcydcbiIgY29udGFjdE5hbWUpKSkgKGNvbnRhY3RYT2Zmc2V0ID0gMC4wKSBpZigoKHJ3IC0gKGNhZGFkcigobWFzdGVyfj5ib3RMYXllckJib3gpKSAtIGNhZGFyKChtYXN0ZXJ+PmJvdExheWVyQmJveCkpKSkgPiAtMWUtMDYpIHRoZW4gKGNvbnRhY3RYT2Zmc2V0ID0gY2FhcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkpIGVsc2Ugd2hlbigocGVyY2VudFZhcmlhYmlsaXR5ID4gMWUtMDYpIGVycm9yKHNwcmludGYobmlsICJwZXJjZW50VmFyaWFiaWxpdHkgbXVzdCBiZSAwIHdoZW4gcncgaXMgbGVzcyB0aGFuICVMXG4iIChjYWRhZHIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyfj5ib3RMYXllckJib3gpKSkpKSAocGVyY2VudFZhcmlhYmlsaXR5ID0gMCkpKSAoY29udGFjdFlPZmZzZXQgPSAoKHJ3IC8gMi4wKSAtICgoKGNhZGFkcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkpIC8gMi4wKSArIChjYWRhcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyfj5ib3RMYXllckJib3gpKSkpKSkgKGNvbnRhY3RZT2Zmc2V0ID0gKHJvdW5kKChjb250YWN0WU9mZnNldCAvIHJlc2lzdG9yTGF5ZXJHcmlkKSkgKiByZXNpc3RvckxheWVyR3JpZCkpIChkYk1vdmVGaWcgaW5zdCB0Y0NlbGxWaWV3IGxpc3QoKGNvbnRhY3RYT2Zmc2V0OmNvbnRhY3RZT2Zmc2V0KSAiUjAiKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNvbnRhY3RYT2Zmc2V0IC0gY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KChjb250YWN0WE9mZnNldCAtIGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSAoY29udGFjdFlPZmZzZXQgKyBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKGRiQ3JlYXRlUGluIGZOZXQgZGJpZCkgKHhPZmZzZXQgPSAoY2FhZHIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgLSBjb250YWN0WE9mZnNldCkpICh4MUNvb3JkMiA9ICh4MUNvb3JkIC0geE9mZnNldCkpIHdoZW4od2VsbExheWVyICh4MVdlbGxDb29yZCA9ICh4MUNvb3JkMiAtIHdlbGxFbmMpKSAoeTFXZWxsQ29vcmQgPSAoLSB3ZWxsRW5jKSkgd2hlbigoY29udGFjdFlPZmZzZXQgPCAxZS0wNikgKHkxV2VsbENvb3JkID0gKGNvbnRhY3RZT2Zmc2V0IC0gd2VsbEVuYykpKSkgd2hlbihpbXBsYW50TGF5ZXIgKGltcE9mZnNldCA9IChpbXBTcGFjZUNvbnRhY3QgLSAoY2FhcigobWFzdGVyfj5jb250YWN0TGF5ZXJCYm94KSkgLSBjb250YWN0WE9mZnNldCkpKSB3aGVuKChydyA8IChjYWRhZHIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgLSBjYWRhcigobWFzdGVyfj5ib3RMYXllckJib3gpKSkpIChpbXBPZmZzZXQgPSAoaW1wU3BhY2VSZXNpc3RvckxheWVyICsgY2FhcigobWFzdGVyfj5ib3RMYXllckJib3gpKSkpKSAoeDFJbXBDb29yZCA9ICh4MUNvb3JkICsgaW1wT2Zmc2V0KSkgKHkxSW1wQ29vcmQgPSAoeTFDb29yZCAtIGltcEVuYykpICh4MUNvb3JkID0gKHgxQ29vcmQgKyBpbXBPZmZzZXQpKSAoeE9mZnNldCA9ICh4T2Zmc2V0ICsgaW1wT2Zmc2V0KSkpKSAoeDJDb29yZCA9ICh4MUNvb3JkICsgcmwgKyB4T2Zmc2V0KSkgKHgyQ29vcmQyID0gKHgxQ29vcmQgKyBybCkpIHdoZW4oKHBlcmNlbnRWYXJpYWJpbGl0eSA+IDFlLTA2KSAoSW5jTGVuZ3RoID0gKChybCAqIHBlcmNlbnRWYXJpYWJpbGl0eSkgLyAxMDAuMCkpIChJbmNMZW5ndGggPSAocm91bmQoKEluY0xlbmd0aCAvIHJlc2lzdG9yTGF5ZXJHcmlkKSkgKiByZXNpc3RvckxheWVyR3JpZCkpICh4MkNvb3JkID0gKHhPZmZzZXQgKyB4MUNvb3JkICsgcmwgKyBJbmNMZW5ndGgpKSAoeDJDb29yZDIgPSAoeDFDb29yZCArIHJsICsgbWluKGRlbHRhTGVuZ3RoIEluY0xlbmd0aCkpKSkgKGNlbnRlclggPSAoeDFDb29yZCArICgoeDJDb29yZDIgLSB4MUNvb3JkKSAvIDIuMCkpKSAoYkJveCA9IGxpc3QobGlzdCgoY2VudGVyWCAtIChyZXNDdXRXaWR0aCAvIDIuMCkpIHkxQ29vcmQpIGxpc3QoKGNlbnRlclggKyAocmVzQ3V0V2lkdGggLyAyLjApKSAoeTFDb29yZCArIHJ3KSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzQ3V0TGF5ZXIgYkJveCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgoeDFDb29yZDI6eTFDb29yZCkgKHgyQ29vcmQ6KHkxQ29vcmQgKyBydykpKSkgd2hlbigoZnVsbEltcGxhbnRMYXllciAmJiBpbXBsYW50KSAoZnVsbEltcEJib3ggPSBsaXN0KGxpc3QoKHgxQ29vcmQyIC0gZnVsbEltcEVuYykgKHkxQ29vcmQgLSBmdWxsSW1wRW5jKSkgbGlzdCgoeDJDb29yZCArIGZ1bGxJbXBFbmMpICh5MUNvb3JkICsgZnVsbEltcEVuYyArIHJ3KSkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0lkTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDI6KHkxQ29vcmQgKyBydykpKSkgd2hlbihhcmVhSWRMYXllciAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgYXJlYUlkTGF5ZXIgbGlzdCgoKHgxQ29vcmQgKyAoLSBhcmVhSWRFbmNSZXMpKTooeTFDb29yZCArICgtIGFyZWFJZEVuY1JlcykpKSAoKHgyQ29vcmQyICsgYXJlYUlkRW5jUmVzKTooeTFDb29yZCArIHJ3ICsgYXJlYUlkRW5jUmVzKSkpKSkgd2hlbigoY29udGFjdE5hbWUgPT0gIiIpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyByZXNpc3RvckxheWVyR3JpZCk6KHkxQ29vcmQgKyBydykpKSkpIChkYkNyZWF0ZVBpbiBmTmV0IGRiaWQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgoKHgyQ29vcmQyIC0gcmVzaXN0b3JMYXllckdyaWQpOnkxQ29vcmQpICh4MkNvb3JkMjooeTFDb29yZCArIHJ3KSkpKSkgKGRiQ3JlYXRlUGluIGxOZXQgZGJpZCkgd2hlbih3ZWxsTGF5ZXIgKHgxV2VsbENvb3JkID0gKHgxQ29vcmQgLSB3ZWxsRW5jKSkgKHkxV2VsbENvb3JkID0gKHkxQ29vcmQgLSB3ZWxsRW5jKSkgKHgyV2VsbENvb3JkID0gbWF4KCh4MVdlbGxDb29yZCArIHdlbGxXaWR0aCkgKHgyQ29vcmQgKyB3ZWxsRW5jKSkpICh5MldlbGxDb29yZCA9IG1heCgoeTFXZWxsQ29vcmQgKyB3ZWxsV2lkdGgpICh5MUNvb3JkICsgcncgKyB3ZWxsRW5jKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoeDFXZWxsQ29vcmQ6eTFXZWxsQ29vcmQpICh4MldlbGxDb29yZDp5MldlbGxDb29yZCkpKSkgd2hlbihpbXBsYW50TGF5ZXIgKHgxSW1wQ29vcmQgPSAoeDFDb29yZCAtIGltcEVuYykpICh5MUltcENvb3JkID0gKHkxQ29vcmQgLSBpbXBFbmMpKSAoeDJJbXBDb29yZCA9IG1heCgoeDJDb29yZDIgKyBpbXBFbmMpICh4MUltcENvb3JkICsgaW1wV2lkdGgpKSkgKHkySW1wQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyBydyArIGltcEVuYykgKHkxSW1wQ29vcmQgKyBpbXBXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKHgxSW1wQ29vcmQ6eTFJbXBDb29yZCkgKHgySW1wQ29vcmQ6eTJJbXBDb29yZCkpKSkpIHdoZW4oKGNvbnRhY3ROYW1lICE9ICIiKSAoeDFDb29yZCA9ICh4MkNvb3JkMiArIGNhYXIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkpKSB3aGVuKGltcGxhbnRMYXllciAoeDJJbXBDb29yZCA9IG1heCh4MkNvb3JkMiAoeDFJbXBDb29yZCArIGltcFdpZHRoKSkpICh5MkltcENvb3JkID0gbWF4KCh5MUNvb3JkICsgcncgKyBpbXBFbmMpICh5MUltcENvb3JkICsgaW1wV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGltcGxhbnRMYXllciBsaXN0KCh4MUltcENvb3JkOnkxSW1wQ29vcmQpICh4MkltcENvb3JkOnkySW1wQ29vcmQpKSkgKHgxQ29vcmQgPSAoeDFDb29yZCArIGltcE9mZnNldCkpKSAoY29udGFjdFhPZmZzZXQgPSAoLSBjb250YWN0WE9mZnNldCkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJjMSIgKCh4MUNvb3JkICsgY29udGFjdFhPZmZzZXQpOmNvbnRhY3RZT2Zmc2V0KSAiUjAiIDEgaW5zdFBhcmFtcykpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGAlcydcbiIgY29udGFjdE5hbWUpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSAoYkJveCA9IGxpc3QobGlzdCgoeDFDb29yZCArIGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCh4MUNvb3JkICsgY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpKSB3aGVuKCgocGVyY2VudFZhcmlhYmlsaXR5ID4gMWUtMDYpICYmICgoSW5jTGVuZ3RoIC0gZGVsdGFMZW5ndGgpID4gMWUtMDYpKSAoYkJveCA9IGxpc3QobGlzdCgoeDFDb29yZCArIGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBsaXN0KCh4MUNvb3JkICsgY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyBjb250YWN0WE9mZnNldCArIChJbmNMZW5ndGggLSBkZWx0YUxlbmd0aCkpIChjb250YWN0WU9mZnNldCArIGNhZGFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKGRiQ3JlYXRlUGluIGxOZXQgZGJpZCkgd2hlbih3ZWxsTGF5ZXIgKHgyV2VsbENvb3JkID0gbWF4KCh4MVdlbGxDb29yZCArIHdlbGxXaWR0aCkgKHgyQ29vcmQgKyB3ZWxsRW5jKSkpICh5MldlbGxDb29yZCA9IG1heCgoeTFDb29yZCArIHJ3ICsgd2VsbEVuYykgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PmJvdExheWVyQmJveCkpICsgd2VsbEVuYykgKHkxV2VsbENvb3JkICsgd2VsbFdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoeDFXZWxsQ29vcmQ6eTFXZWxsQ29vcmQpICh4MldlbGxDb29yZDp5MldlbGxDb29yZCkpKSkgd2hlbigoZnVsbEltcGxhbnRMYXllciAmJiBpbXBsYW50KSAoZnVsbEltcEJib3ggPSBsaXN0KGxpc3QobWluKGNhYXIoZnVsbEltcEJib3gpIChjYWFyKChtYXN0ZXJ+PmJvdExheWVyQmJveCkpIC0gZnVsbEltcEVuYykpIG1pbihjYWRhcihmdWxsSW1wQmJveCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYXIoKG1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgKyAoLSBmdWxsSW1wRW5jKSkpKSBsaXN0KG1heChjYWFkcihmdWxsSW1wQmJveCkgKHgyQ29vcmQgKyBmdWxsSW1wRW5jKSkgbWF4KGNhZGFkcihmdWxsSW1wQmJveCkgKGNvbnRhY3RZT2Zmc2V0ICsgY2FkYWRyKChtYXN0ZXJ+PmJvdExheWVyQmJveCkpICsgZnVsbEltcEVuYykpKSkpKSAoZGJDbG9zZSBjb250YWN0SWQpKSB3aGVuKChmdWxsSW1wbGFudExheWVyICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBmdWxsSW1wbGFudExheWVyIGZ1bGxJbXBCYm94KSkpAChyZXNpc3RvckxheWVyIHJlc0lkTGF5ZXIgcmVzQ3V0TGF5ZXIgcmVzQ3V0V2lkdGggYXJlYUlkTGF5ZXIgZnVsbEltcGxhbnRMYXllciBmdWxsSW1wRW5jIHdlbGxMYXllciB3ZWxsRW5jIHdlbGxXaWR0aCBpbXBsYW50TGF5ZXIgaW1wRW5jIGltcFdpZHRoIGltcFNwYWNlQ29udGFjdCBpbXBTcGFjZVJlc2lzdG9yTGF5ZXIgcmVzaXN0b3JMYXllckdyaWQgbWF4aW1pc2VDb250YWN0cyBudW1Db2xzIGFyZWFJZEVuY1JlcyBycG9NYXhMZW5ndGggcnBvTWluTGVuZ3RoIHJ3IHJsIHBlcmNlbnRWYXJpYWJpbGl0eSBkZWx0YUxlbmd0aCBjb250YWN0TmFtZSBpbXBsYW50IGZOZXQgbE5ldCB4MUNvb3JkIHhPZmZzZXQgeDFDb29yZDIgeTFDb29yZCBjb250YWN0SWQgcGFyYW1zIGNvbnRhY3RQaXRjaCBjb250YWN0U3BhY2UgdmlhQmJveCBlZmZlY3RpdmVSdyBudW1Sb3dzQ29udGFjdHMgaW5zdFBhcmFtcyBudW1Sb3dzIGluc3QgbWFzdGVyIGNvbnRhY3RYT2Zmc2V0IGNvbnRhY3RZT2Zmc2V0IGJCb3ggZGJpZCB4MVdlbGxDb29yZCB5MVdlbGxDb29yZCBpbXBPZmZzZXQgeDFJbXBDb29yZCB5MUltcENvb3JkIHgyQ29vcmQgeDJDb29yZDIgSW5jTGVuZ3RoIGNlbnRlclggZnVsbEltcEJib3ggeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQgeDJJbXBDb29yZCB5MkltcENvb3JkKQAoKHJ3IDAuMCkgKHJsIDAuMCkgKHBlcmNlbnRWYXJpYWJpbGl0eSAwKSAoZGVsdGFMZW5ndGggMC4wKSAoY29udGFjdE5hbWUgIiIpIChpbXBsYW50IHQpKQAoKHJlc2lzdG9yTGF5ZXIgInRhcCIpIChyZXNJZExheWVyIGxpc3QoInJlcyIgImRyYXdpbmciKSkgKHJlc0N1dExheWVyIGxpc3QoInJlcyIgImN1dCIpKSAocmVzQ3V0V2lkdGggMC4wKSAoYXJlYUlkTGF5ZXIgbmlsKSAoZnVsbEltcGxhbnRMYXllciBuaWwpIChmdWxsSW1wRW5jIDAuMCkgKHdlbGxMYXllciBuaWwpICh3ZWxsRW5jIDAuMCkgKHdlbGxXaWR0aCAwLjApIChpbXBsYW50TGF5ZXIgbmlsKSAoaW1wRW5jIDAuMCkgKGltcFdpZHRoIDAuMCkgKGltcFNwYWNlQ29udGFjdCAwLjApIChpbXBTcGFjZVJlc2lzdG9yTGF5ZXIgMC4wKSAocmVzaXN0b3JMYXllckdyaWQgMC4wKSAobWF4aW1pc2VDb250YWN0cyAiRkFMU0UiKSAobnVtQ29scyAxKSAoYXJlYUlkRW5jUmVzIDAuMCkgKHJwb01heExlbmd0aCAwLjApIChycG9NaW5MZW5ndGggMC4wKSkAKHdoZW4oKHcgPiBtb2RlbFdtYXgpIGVycm9yKCIlZiBpcyBncmVhdGVyIHRoYW4gYWxsb3dhYmxlIG1heGltdW0gd2lkdGggJWYgZm9yIG1vZGVsICVMIiB3IG1vZGVsV21heCBtb2RlbFRleHQpKSB3aGVuKCh3IDwgbW9kZWxXbWluKSBlcnJvcigiJWYgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHdpZHRoICVmIGZvciBtb2RlbCAlTCIgdyBtb2RlbFdtaW4gbW9kZWxUZXh0KSkgd2hlbigobCA+IG1vZGVsTG1heCkgZXJyb3IoIiVmIGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2FibGUgbGVuZ3RoICVmIGZvciBtb2RlbCAlTCIgbCBtb2RlbExtYXggbW9kZWxUZXh0KSkgd2hlbigobCA8IG1vZGVsTG1pbikgZXJyb3IoIiVmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSBsZW5ndGggJWYgZm9yIG1vZGVsICVMIiBsIG1vZGVsTG1pbiBtb2RlbFRleHQpKSAoZ05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJnIikpIChkYkNyZWF0ZVRlcm0gZ05ldCAiZyIgImlucHV0IikgKHNOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicyIpKSAoZGJDcmVhdGVUZXJtIHNOZXQgInMiICJpbnB1dE91dHB1dCIpIChkTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImQiKSkgKGRiQ3JlYXRlVGVybSBkTmV0ICJkIiAiaW5wdXRPdXRwdXQiKSAoaXJOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiaXIiKSkgKGRiQ3JlYXRlVGVybSBpck5ldCAiaXIiICJpbnB1dE91dHB1dCIpIChvck5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJvciIpKSAoZGJDcmVhdGVUZXJtIG9yTmV0ICJvciIgImlucHV0T3V0cHV0IikgY29uZCgoKHNocmlua1BlcmNlbnQgPT0gMC4wKSAoc2NhbGVNdWx0ID0gMS4wKSkgKHQgKHNjYWxlTXVsdCA9ICgxMDAuMCAvICgxMDAuMCAtIHNocmlua1BlcmNlbnQpKSkgKHZpYTFQb2x5R3JpZCA9IG1heCh2aWExZ3JpZCBwb2x5R3JpZCkpIGZvcmVhY2goc2l6ZUFuZEdyaWQgbGlzdChsaXN0KCdzcmNWaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIHZpYTFncmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhQm90IHZpYTFncmlkKSBsaXN0KCdpbm5lclJpbmdUYXBXaWR0aCB0YXBHcmlkKSBsaXN0KCdvdXRlclJpbmdUYXBXaWR0aCB0YXBHcmlkKSBsaXN0KCdpbm5lclJpbmdNZXRhbFdpZHRoIGxheWVyMmdyaWQpIGxpc3QoJ3ZpYTFWaWEyU3BhY2UgdmlhMWdyaWQpIGxpc3QoJ2xheWVyMldpZHRoIGxheWVyMmdyaWQpIGxpc3QoJ2xheWVyM1dpZHRoIGxheWVyM2dyaWQpIGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCkgbGlzdCgnbWluVyBkaWZmR3JpZCkgbGlzdCgnbWF4VyBkaWZmR3JpZCkgbGlzdCgnbWluVG90YWxXIGRpZmZHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSBmb3JlYWNoKGtsdWRnZSBsaXN0KGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCB2aWEyV2lkdGggdmlhMmdyaWQpIGxpc3QoJ291dGVyUmluZ1RhcFdpZHRoIHRhcEdyaWQgdmlhMVdpZHRoIHZpYTFncmlkKSkgKHRtcE9yTGF5ZXJXaWR0aCA9IG50aCgwIGtsdWRnZSkpICh0bXBPckxheWVyR3JpZCA9IG50aCgxIGtsdWRnZSkpICh0bXBWaWFXaWR0aCA9IG50aCgyIGtsdWRnZSkpICh0bXBWaWFHcmlkID0gbnRoKDMga2x1ZGdlKSkgKHRlbXBTaXplID0gKHRtcFZpYVdpZHRoIC8gdG1wVmlhR3JpZCkpIGNvbmQoKG9kZHAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4oZXZlbnAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpIHNldCh0bXBPckxheWVyV2lkdGggKGV2YWwodG1wT3JMYXllcldpZHRoKSArIGxheWVyM2dyaWQpKSkpICh0ICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4ob2RkcChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgc2V0KHRtcE9yTGF5ZXJXaWR0aCAoZXZhbCh0bXBPckxheWVyV2lkdGgpICsgbGF5ZXIzZ3JpZCkpKSkpKSAodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh2aWEyUGl0Y2ggPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKHRhcmdldFJvd3MgPSAoKHcgKyAoLTIuMCAqIHZpYUV4dERpZmYpICsgdmlhMVNwYWNlKSAvIHZpYTFQaXRjaCkpIChyb3dzT2ZDb250YWN0cyA9IGZpeCgoMC45OTkgKyB0YXJnZXRSb3dzKSkpIHdoZW4oKGFicygocm93c09mQ29udGFjdHMgLSB0YXJnZXRSb3dzKSkgPiAwLjAwMDEpIGVycm9yKCJwRXNkVHJhbkltcENhc2NvZGVDbGFzczogdyAoJWYpIGRvZXMgbm90IHNhdGlzZnkgdmlhIHBpdGNoIHJlcXVpcmVtZW50cy4gIFRyeSBlaXRoZXIgJWYgb3IgJWZcbiIgdyAoKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkgKyAoMi4wICogdmlhRXh0RGlmZikpICgoKHJvd3NPZkNvbnRhY3RzIC0gMSkgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSArICgyLjAgKiB2aWFFeHREaWZmKSkpKSB3aGVuKCgodyAtIDFlLTA2KSA8IG1pblcpIGVycm9yKCJwRXNkVHJhbkltcENhc2NvZGVDbGFzczogIHcgKCVmKSBpcyBsZXNzIHRoYW4gbWluaW11bSBhbGxvd2FibGUgd2lkdGggcGVyIGxlZyAoJWYpXG4iIHcgbWluVykpIHdoZW4oKCh3IC0gMWUtMDYpID4gbWF4VykgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgdyAoJWYpIGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIGFsbG93YWJsZSB3aWR0aCBwZXIgbGVnICglZilcbiIgdyBtYXhXKSkgd2hlbigoKHcgKiBtKSA8IG1pblRvdGFsVykgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgdG90YWwgdyAoJWYpIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSB0b3RhbCB3aWR0aCAoJWYpXG4iICh3ICogbSkgbWluVG90YWxXKSkgdW5sZXNzKCghZmxvYXRwKG0pICYmIG51bWJlcnAobSkpIGVycm9yKCJwRXNkVHJhbkltcENhc2NvZGVDbGFzczogIG0gbXVzdCBiZSBhbiBldmVuIGludGVnZXIsIG5vdCBhIGZsb2F0XG4iKSkgd2hlbihvZGRwKG0pIGVycm9yKCJwRXNkVHJhbkltcENhc2NvZGVDbGFzczogIG0gKG51bWJlciBvZiBsZWdzKSBtdXN0IGJlIGFuIGV2ZW4gaW50ZWdlclxuIikpIChmbGFyZWRHYXRlSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmxhcmVkR2F0ZU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhmbGFyZWRHYXRlSWQgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBmbGFyZWQgZ2F0ZSAlc1xuIiBmbGFyZWRHYXRlTmFtZSkpIHVubGVzcygoZmxhcmVkR2F0ZUlkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgRmxhcmVkIGdhdGUgJXMgaXMgbm90IGEgcGNlbGxcbiIgZmxhcmVkR2F0ZU5hbWUpKSAocmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGdlbmVyaWNSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpbmdJZCBlcnJvcigicEVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigicEVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBSaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaW5nTmFtZSkpIChyaXZldGVkUmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHJpdmV0ZWRSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpdmV0ZWRSaW5nSWQgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiByaXZldGVkIHJpbmcgJXNcbiIgcml2ZXRlZFJpbmdOYW1lKSkgdW5sZXNzKChyaXZldGVkUmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBFc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgUml2ZXRlZCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIChzcmNWaWFUb1NyY1RhcFNwYWNlID0gbWF4KDAuMCAodmlhMVNwYWNlIC0gKCh0YXBXaWR0aCAtIHZpYTFXaWR0aCkgLyAyLjApKSBzcmNWaWFUYXBTcGFjZSkpIChkaWZmWG9yaWdpbiA9ICgoLSB0YXBXaWR0aCkgKyAoLSBzcmNWaWFUb1NyY1RhcFNwYWNlKSArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFHYXRlU3BhY2UpICsgKC0gZXh0cmFTcmNTcGFjZSkpKSAoZGlmZllvcmlnaW4gPSAwLjApICh0b3RhbERybkxlbmd0aCA9ICgoMi4wICogKGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSArIHZpYTFXaWR0aCkpIChoYWxmU3JjRGlmZkxlbmd0aCA9IChzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgdmlhMVdpZHRoICsgc3JjVmlhVG9TcmNUYXBTcGFjZSkpICh0b3RhbFNyY0RpZmZMZW5ndGggPSAoMi4wICogaGFsZlNyY0RpZmZMZW5ndGgpKSAoaGFsZkwgPSAobCArIChHYXRlVG9HYXRlU3BhY2UgLyAyLjApKSkgKGRpZmZZZW5kID0gdykgKGRpZmZJbXBZZW5kID0gKGRpZmZZZW5kICsgZGlmZkltcEVuYykpIChkaWZmSW1wWW9yaWdpbiA9IChkaWZmWW9yaWdpbiAtIGRpZmZJbXBFbmMpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KChkaWZmWG9yaWdpbjpkaWZmWW9yaWdpbikgKChkaWZmWG9yaWdpbiArIHRhcFdpZHRoKTpkaWZmWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBXZWxsSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gdGFwV2VsbEltcEVuYykgKGRpZmZZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIGxpc3QoKGRpZmZYb3JpZ2luICsgdGFwV2lkdGgpIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkaWZmWGxvb3AgPSAoZGlmZlhvcmlnaW4gKyB0YXBXaWR0aCkpIGZvcihzZWN0aW9uIDEgKG0gLyAyKSAoc3JjRGlmZlhlbmQgPSAoZGlmZlhsb29wICsgaGFsZlNyY0RpZmZMZW5ndGggKyBoYWxmTCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChkaWZmWGxvb3A6ZGlmZllvcmlnaW4pIChzcmNEaWZmWGVuZDpkaWZmWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoZGlmZlhsb29wIGRpZmZJbXBZb3JpZ2luKSBsaXN0KHNyY0RpZmZYZW5kIGRpZmZJbXBZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkaWZmWGxvb3AgPSBzcmNEaWZmWGVuZCkgKGRybkRpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsRHJuTGVuZ3RoICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZHJuRGlmZlhlbmQ6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KGRpZmZYbG9vcCBkaWZmSW1wWW9yaWdpbikgbGlzdChkcm5EaWZmWGVuZCBkaWZmSW1wWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAoZGlmZlhsb29wID0gZHJuRGlmZlhlbmQpIChzcmNEaWZmWGVuZCA9IChkaWZmWGxvb3AgKyBoYWxmU3JjRGlmZkxlbmd0aCArIGhhbGZMKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKHNyY0RpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChkaWZmWGxvb3AgZGlmZkltcFlvcmlnaW4pIGxpc3Qoc3JjRGlmZlhlbmQgZGlmZkltcFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRpZmZYbG9vcCA9IChzcmNEaWZmWGVuZCArIHRhcFdpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoc3JjRGlmZlhlbmQ6ZGlmZllvcmlnaW4pIChkaWZmWGxvb3A6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgaWYoKHNlY3Rpb24gPT0gKG0gLyAyKSkgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBXZWxsSW1wbGFudCBsaXN0KGxpc3Qoc3JjRGlmZlhlbmQgKGRpZmZZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIGxpc3QoKGRpZmZYbG9vcCArIHRhcFdlbGxJbXBFbmMpIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcFdlbGxJbXBsYW50IGxpc3QobGlzdChzcmNEaWZmWGVuZCAoZGlmZllvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgbGlzdChkaWZmWGxvb3AgKGRpZmZZZW5kICsgdGFwV2VsbEltcEVuYykpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaWRMYXllciBsaXN0KChkaWZmWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpkaWZmWWVuZCkpKSB3aGVuKGRpZmZDb3JlSW1wbGFudCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QoKChkaWZmWG9yaWdpbiArIHRhcFdpZHRoICsgKC0gZGlmZkNvcmVJbXBFbmMpKTooZGlmZllvcmlnaW4gKyAoLSBkaWZmQ29yZUltcEVuYykpKSAoKGRpZmZYbG9vcCArICgtIHRhcFdpZHRoKSArIGRpZmZDb3JlSW1wRW5jKTooZGlmZlllbmQgKyBkaWZmQ29yZUltcEVuYykpKSkpIChkaWZmWGVuZCA9IGRpZmZYbG9vcCkgKGdhdGVYb2Zmc2V0ID0gMC4wKSBmb3IoZ2F0ZU51bSAxIG0gKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBmbGFyZWRHYXRlSWQgc3ByaW50ZihuaWwgImclZCIgZ2F0ZU51bSkgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoImdhdGVMYXllciIgImxpc3QiIG5pbCkgbGlzdCgiZ2F0ZVJlY29nbml0aW9uTGF5ZXIiICJsaXN0IiByZ2F0ZUxheWVyKSBsaXN0KCJ3IiAiZmxvYXQiIHcpIGxpc3QoImwiICJmbG9hdCIgbCkgbGlzdCgiZmxhcmVBbW91bnRfb3V0IiAiZmxvYXQiIGZsYXJlWWFtb3VudF9vdXQpIGxpc3QoImZsYXJlQW1vdW50X2luIiAiZmxvYXQiIGZsYXJlWWFtb3VudF9pbikgbGlzdCgiZmxhcmVFeHRlbnNpb24iICJmbG9hdCIgZmxhcmVZZXh0ZW5zaW9uKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGdhdGVYb2Zmc2V0KSBsaXN0KCJnYXRlVG9HYXRlU3BhY2UiICJmbG9hdCIgR2F0ZVRvR2F0ZVNwYWNlKSkpKSB1bmxlc3MoaW5zdCBlcnJvcigicEVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGZsYXJlZCBnYXRlICVzIiBmbGFyZWRHYXRlTmFtZSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAobW9kZWxUZXh0WCA9IChnYXRlWG9mZnNldCArICgoY2FhZHIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpIC0gY2FhcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpKSAobW9kZWxUZXh0WSA9ICgoY2FkYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpIC0gY2FkYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSkgLyAyKSkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBtb2RlbFRleHRMYXllciBsaXN0KG1vZGVsVGV4dFggbW9kZWxUZXh0WSkgbW9kZWxUZXh0ICJjZW50ZXJDZW50ZXIiICJSMCIgInN0aWNrIiBtb2RlbFRleHRMYXllclNpemUpIChtb2RlbFRleHRYID0gKChHYXRlVG9HYXRlU3BhY2UgKyBsKSArIChnYXRlWG9mZnNldCArICgoY2FhZHIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpIC0gY2FhcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpKSkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBtb2RlbFRleHRMYXllciBsaXN0KG1vZGVsVGV4dFggbW9kZWxUZXh0WSkgbW9kZWxUZXh0ICJjZW50ZXJDZW50ZXIiICJSMCIgInN0aWNrIiBtb2RlbFRleHRMYXllclNpemUpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ub2ZsYXJlUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGdOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj50b3BGbGFyZVBvaW50cykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGdOZXQpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+dG9wRmxhcmVQb2ludHMxKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+Ym90dG9tRmxhcmVQb2ludHMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIChtYXN0ZXJ+PmJvdHRvbUZsYXJlUG9pbnRzMSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgY29uZCgoKG1vZChnYXRlTnVtIDIpID09IDEpIChnYXRlWG9mZnNldCA9IChnYXRlWG9mZnNldCArIGwgKyBsICsgR2F0ZVRvR2F0ZVNwYWNlICsgdG90YWxEcm5MZW5ndGgpKSkgKHQgKGdhdGVYb2Zmc2V0ID0gKGdhdGVYb2Zmc2V0ICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UgKyB0b3RhbFNyY0RpZmZMZW5ndGggKyB0YXBXaWR0aCkpKSkpIChkcm5fdmlhMVhvcmlnaW4gPSAwLjApIChkcm5fdmlhMVhlbmQgPSB2aWExV2lkdGgpIGNvbmQoKCgoZHJuX2xheWVyMkwgPSAobGF5ZXIyRW5jVmlhMSArIHZpYTFXaWR0aCArIGxheWVyMkVuY1ZpYTEpKSA+IChkcm5fbGF5ZXIyTGEgPSAobGF5ZXIyRW5jVmlhMiArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSkgKGRybl9sYXllcjJEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSkgKHQgKGRlbHRhID0gKChkcm5fbGF5ZXIyTGEgLSBkcm5fbGF5ZXIyTCkgLyAyLjApKSAoZHJuX2xheWVyMkRlbHRhVmlhMSA9IChsYXllcjJFbmNWaWExICsgKGZpeCgoMWUtMDYgKyAoZGVsdGEgLyBsYXllcjJncmlkKSkpICogbGF5ZXIyZ3JpZCkpKSAoZHJuX2xheWVyMkwgPSBkcm5fbGF5ZXIyTGEpKSkgKGxheWVyMlcgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkpKSAobGF5ZXIyV2EgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpIC0gdmlhMlNwYWNlKSkgKHJvd3NPZkNvbnRhY3RzMiA9IDApIHdoaWxlKCgobGF5ZXIyV2EgLSAxZS0wNSkgPCBsYXllcjJXKSAobGF5ZXIyV2EgPSAobGF5ZXIyV2EgKyB2aWEyUGl0Y2gpKSAocm93c09mQ29udGFjdHMyID0gKHJvd3NPZkNvbnRhY3RzMiArIDEpKSkgKGxheWVyMldhID0gKGxheWVyMldhIC0gdmlhMlBpdGNoKSkgKHJvd3NPZkNvbnRhY3RzMiA9IChyb3dzT2ZDb250YWN0czIgLSAxKSkgKGxheWVyMllEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSAoZXNfZHZpYTFYb3JpZ2luID0gc3JjVmlhVG9TcmNUYXBTcGFjZSkgKGVzX2R2aWExWGVuZCA9IChlc19kdmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSAoZXNfdHZpYTFYb3JpZ2luID0gKGVzX2R2aWExWG9yaWdpbiAtIHZpYTFQaXRjaCkpIChlc190dmlhMVhlbmQgPSAoZXNfdHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgY29uZCgoKChlc19sYXllcjJMID0gKCgyLjAgKiAobGF5ZXIyRW5jVmlhMSArIHZpYTFXaWR0aCkpICsgdmlhMVNwYWNlKSkgPiAoZXNfbGF5ZXIyTGEgPSAoKDIuMCAqIChsYXllcjJFbmNWaWEyICsgdmlhMldpZHRoKSkgKyB2aWEyU3BhY2UpKSkgKGVzX2xheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKGVzX2xheWVyMkxhIC0gZXNfbGF5ZXIyTCkgLyAyLjApKSAoZXNfbGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAoZml4KCgxZS0wNiArIChkZWx0YSAvIGxheWVyMmdyaWQpKSkgKiBsYXllcjJncmlkKSkpIChlc19sYXllcjJMID0gZXNfbGF5ZXIyTGEpKSkgKGVzX3R2aWEyWG9yaWdpbiA9IChlc190dmlhMVhvcmlnaW4gLSBlc19sYXllcjJEZWx0YVZpYTEpKSAoZXNfdHZpYTJYZW5kID0gKGVzX3R2aWEyWG9yaWdpbiArIHZpYTJXaWR0aCkpIChlc19kdmlhMlhvcmlnaW4gPSAoZXNfdHZpYTJYZW5kICsgdmlhMlNwYWNlKSkgKGVzX2R2aWEyWGVuZCA9IChlc19kdmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSBjb25kKCgoKHNzX2xheWVyMkwgPSAoKDIuMCAqIChsYXllcjJFbmNWaWExICsgdmlhMVNwYWNlKSkgKyAoMy4wICogdmlhMVdpZHRoKSkpID4gKHNzX2xheWVyMkxhID0gKCgyLjAgKiAobGF5ZXIyRW5jVmlhMiArIHZpYTJTcGFjZSkpICsgKDMuMCAqIHZpYTJXaWR0aCkpKSkgKHNzX2xheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKHNzX2xheWVyMkxhIC0gc3NfbGF5ZXIyTCkgLyAyLjApKSAoc3NfbGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAocm91bmQoKDFlLTA2ICsgKGRlbHRhIC8gbGF5ZXIyZ3JpZCkpKSAqIGxheWVyMmdyaWQpKSkgKHNzX2xheWVyMkwgPSBzc19sYXllcjJMYSkpKSAoY29udGFjdFhsb29wID0gKGRpZmZYb3JpZ2luICsgdGFwV2lkdGgpKSAodmlhMVlvcmlnaW4gPSB2aWFFeHREaWZmKSAobGF5ZXIyWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGxheWVyMllEZWx0YVZpYTEpKSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSAobGF5ZXIyWWVuZCA9IChsYXllcjJZb3JpZ2luICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSBmb3IocmVnaW9uIDAgbSAodmlhMVlsb29wID0gdmlhMVlvcmlnaW4pIGNvbmQoKChyZWdpb24gPT0gMCkgKGR2eG8gPSAoY29udGFjdFhsb29wICsgc3JjVmlhVG9TcmNUYXBTcGFjZSkpIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSAodHZ4byA9IChkdnhvICsgKC0gdmlhMVBpdGNoKSkpICh0dnhlID0gKHR2eG8gKyB2aWExV2lkdGgpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKGR2eG86dmlhMVlsb29wKSAoZHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodHZ4bzp2aWExWWxvb3ApICh0dnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3AgPSAodmlhMVlsb29wICsgdmlhMVBpdGNoKSkpIGlmKGVuZFRhcE1ldEluc2lkZU91dCB0aGVuIChlbmRUYXBMYXllcjJYT2Zmc2V0ID0gKC0gbWF4KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsYXllcjJXaWR0aCkgMC4wKSkpIGVsc2UgKGVuZFRhcExheWVyMlhPZmZzZXQgPSAwLjApKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGwyYnZsQ250cmwgPSAobGF5ZXIyV2lkdGggLyAzLjApKSAobDJidmxDbnRybCA9IChyb3VuZCgoKGwyYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgbDJidmxDbnRybCArIGVuZFRhcExheWVyMlhPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZZW5kKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsMmJ2bENudHJsICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgodHZ4byArIGVuZFRhcExheWVyMlhPZmZzZXQgKyAoLSBsYXllcjJFbmNWaWExKSArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSBsYXllcjJZZW5kKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGVuZFRhcExheWVyMlhPZmZzZXQpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eG8gKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpIGxheWVyMlllbmQpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCgodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkpOmxheWVyMllvcmlnaW4pICgodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkgKyBlc19sYXllcjJMKTpsYXllcjJZZW5kKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSB1bmxlc3MoKHZpYTFWaWEyU3BhY2UgPiAwLjApICh0dnhvID0gKHR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpICsgbGF5ZXIyRW5jVmlhMikpICh0dnhlID0gKHR2eG8gKyB2aWEyV2lkdGgpKSkgaWYoKHZpYTFWaWEyU3BhY2UgPiAwLjApIHRoZW4gKGR2eG8gPSAoZHZ4ZSArIHZpYTFWaWEyU3BhY2UpKSBlbHNlIChkdnhvID0gKHR2eGUgKyB2aWEyU3BhY2UpKSkgKGR2eGUgPSAoZHZ4byArIHZpYTJXaWR0aCkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChkdnhvOnZpYTJZbG9vcCkgKGR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgdW5sZXNzKCh2aWExVmlhMlNwYWNlID4gMC4wKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodHZ4bzp2aWEyWWxvb3ApICh0dnhlOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAodmlhMllsb29wID0gKHZpYTJZbG9vcCArIHZpYTJQaXRjaCkpKSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gaWYoKGxheWVyM1dpZHRoX291dHNpZGUgPiAwLjApIHRoZW4gKHdpZHRoVG9iZURyYXduID0gbWF4KGxheWVyM1dpZHRoX291dHNpZGUgKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVNwYWNlICsgdmlhMVZpYTJTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjNFbmNWaWEyKSkpIGVsc2UgKHdpZHRoVG9iZURyYXduID0gbWF4KGxheWVyM1dpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFTcGFjZSArIHZpYTFWaWEyU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIzRW5jVmlhMikpKSkgaWYoZW5kVGFwTWV0SW5zaWRlT3V0IHRoZW4gKGVuZFRhcExheWVyM1hPZmZzZXQgPSAobGF5ZXIyV2lkdGggKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSkgZWxzZSAoZW5kVGFwTGF5ZXIzWE9mZnNldCA9IDAuMCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsM2J2bENudHJsID0gKHdpZHRoVG9iZURyYXduIC8gMy4wKSkgKGwzYnZsQ250cmwgPSAocm91bmQoKChsM2J2bENudHJsIC8gbGF5ZXIzZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIzZ3JpZCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGwzYnZsQ250cmwgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsM2J2bENudHJsICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIHdpZHRoVG9iZURyYXduICsgKC0gbDNidmxDbnRybCkgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgd2lkdGhUb2JlRHJhd24gKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyB3aWR0aFRvYmVEcmF3biArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgd2lkdGhUb2JlRHJhd24gKyAoLSBsM2J2bENudHJsKSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgd2lkdGhUb2JlRHJhd24gKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KCh0dnhvIC0gbGF5ZXIzRW5jVmlhMikgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChkdnhlICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSkgKChyZWdpb24gPT0gbSkgKGNvbnRhY3RYbG9vcCA9IChjb250YWN0WGxvb3AgKyB2aWExV2lkdGggKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgc3JjVmlhR2F0ZVNwYWNlICsgdmlhMVdpZHRoICsgc3JjVmlhVG9TcmNUYXBTcGFjZSkpIChkdnhvID0gKGNvbnRhY3RYbG9vcCArICgtIHNyY1ZpYVRvU3JjVGFwU3BhY2UpICsgKC0gdmlhMVdpZHRoKSkpIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSAodHZ4byA9IChkdnhvICsgdmlhMVBpdGNoKSkgKHR2eGUgPSAodHZ4byArIHZpYTFXaWR0aCkpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0cyAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoZHZ4bzp2aWExWWxvb3ApIChkdnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh0dnhvOnZpYTFZbG9vcCkgKHR2eGU6KHZpYTFZbG9vcCArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSkgaWYoZW5kVGFwTWV0SW5zaWRlT3V0IHRoZW4gKGVuZFRhcExheWVyMlhPZmZzZXQgPSBtYXgoKCgobSAqIGwpICsgKChtIC8gMikgKiB0b3RhbERybkxlbmd0aCkgKyAoKChtIC8gMikgLSAxKSAqICh0YXBXaWR0aCArIHRvdGFsU3JjRGlmZkxlbmd0aCkpKSAtICh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIGxheWVyMldpZHRoKSkpIDAuMCkpIGVsc2UgKGVuZFRhcExheWVyMlhPZmZzZXQgPSAwLjApKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsMmJ2bENudHJsKSArIGVuZFRhcExheWVyMlhPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyMlhPZmZzZXQpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgbGF5ZXIyWWVuZCkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsMmJ2bENudHJsKSArIGVuZFRhcExheWVyMlhPZmZzZXQpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KCh0dnhlICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArIGxheWVyMkVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpKSBsYXllcjJZZW5kKSBsaXN0KCh0dnhlICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArIGxheWVyMkVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpKSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhlICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArIGxheWVyMkVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpICsgbDJidmxDbnRybCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhlICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArIGxheWVyMkVuY1ZpYTEgKyAoLSBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpKSBsYXllcjJZZW5kKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgoKGR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpKTpsYXllcjJZb3JpZ2luKSAoKGR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpICsgZXNfbGF5ZXIyTCk6bGF5ZXIyWWVuZCkpKSkpIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChkdnhvID0gKGR2eG8gLSAodmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSkpKSBlbHNlIChkdnhvID0gKGR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpICsgbGF5ZXIyRW5jVmlhMikpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkgdW5sZXNzKCh2aWExVmlhMlNwYWNlID4gMC4wKSAodHZ4byA9IChkdnhlICsgdmlhMlNwYWNlKSkgKHR2eGUgPSAodHZ4byArIHZpYTJXaWR0aCkpKSAodmlhMllsb29wID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyKSkgZm9yKHJvdyAxIHJvd3NPZkNvbnRhY3RzMiAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgoZHZ4bzp2aWEyWWxvb3ApIChkdnhlOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIHVubGVzcygodmlhMVZpYTJTcGFjZSA+IDAuMCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wKSAodHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSkgKHZpYTJZbG9vcCA9ICh2aWEyWWxvb3AgKyB2aWEyUGl0Y2gpKSkgaWYoKGxheWVyM1dpZHRoID4gMC4wKSB0aGVuIGlmKChsYXllcjNXaWR0aF9vdXRzaWRlID4gMC4wKSB0aGVuICh3aWR0aFRvYmVEcmF3biA9IG1heChsYXllcjNXaWR0aF9vdXRzaWRlICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFTcGFjZSArIHZpYTFWaWEyU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIzRW5jVmlhMikpKSBlbHNlICh3aWR0aFRvYmVEcmF3biA9IG1heChsYXllcjNXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExU3BhY2UgKyB2aWExVmlhMlNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyM0VuY1ZpYTIpKSkpIGlmKGVuZFRhcE1ldEluc2lkZU91dCB0aGVuIChlbmRUYXBMYXllcjNYT2Zmc2V0ID0gKCgtIGxheWVyMldpZHRoKSArIHdpZHRoVG9iZURyYXduICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkpIGVsc2UgKGVuZFRhcExheWVyM1hPZmZzZXQgPSAwLjApKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobDNidmxDbnRybCA9ICh3aWR0aFRvYmVEcmF3biAvIDMuMCkpIChsM2J2bENudHJsID0gKHJvdW5kKCgobDNidmxDbnRybCAvIGxheWVyM2dyaWQpICsgMC4wMDEpKSAqIGxheWVyM2dyaWQpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIHdpZHRoVG9iZURyYXduKSArIGwzYnZsQ250cmwgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgKC0gd2lkdGhUb2JlRHJhd24pICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBsM2J2bENudHJsICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgKC0gbDNidmxDbnRybCkgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsM2J2bENudHJsKSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgKC0gd2lkdGhUb2JlRHJhd24pICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KCgoZHZ4byAtIGxheWVyM0VuY1ZpYTIpOihsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKCh0dnhlICsgbGF5ZXIzRW5jVmlhMik6KHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0RpcikpICgoMSA9PSBtb2QocmVnaW9uIDIpKSAoY29udGFjdFhsb29wID0gKGNvbnRhY3RYbG9vcCArIHNyY1ZpYVRvU3JjVGFwU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UgKyBleHRyYURyblNwYWNlICsgZHJuVmlhR2F0ZVNwYWNlKSkgKGR2eG8gPSBjb250YWN0WGxvb3ApIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKGR2eG86dmlhMVlsb29wKSAoZHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAodmlhMVlsb29wID0gKHZpYTFZbG9vcCArIHZpYTFQaXRjaCkpKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYoKGxheWVyMldpZHRoID4gKCgyLjAgKiB2aWExVmlhMlNwYWNlKSArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkgdGhlbiAobGF5ZXIyWG9yaWdpbl9kciA9IChkdnhvIC0gKChsYXllcjJXaWR0aCAtIHZpYTFXaWR0aCkgKiAwLjUpKSkgKGxheWVyMlhvcmlnaW5fZHIgPSAocm91bmQoKChsYXllcjJYb3JpZ2luX2RyIC8gbGF5ZXIyZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIyZ3JpZCkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsMmJ2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkgbGlzdChsYXllcjJYb3JpZ2luX2RyIGxheWVyMllvcmlnaW4pIGxpc3QobGF5ZXIyWG9yaWdpbl9kciBsYXllcjJZZW5kKSBsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbDJidmxDbnRybCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgobGF5ZXIyWG9yaWdpbl9kciArIGxheWVyMldpZHRoICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsYXllcjJXaWR0aCkgbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbl9kciArIGxheWVyMldpZHRoKSBsYXllcjJZb3JpZ2luKSBsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbGF5ZXIyV2lkdGggKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYb3JpZ2luX2RyIGxheWVyMllvcmlnaW4pIGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsYXllcjJXaWR0aCkgbGF5ZXIyWWVuZCkpKSkpIGVsc2UgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgoKGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSArIGwyYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KChkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgoZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMlllbmQpIGxpc3QoKChkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KChkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgoZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZZW5kKSBsaXN0KChkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpIGxheWVyMllvcmlnaW4pIGxpc3QoKGR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMiArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KChkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgoZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZZW5kKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKChkdnhvIC0gZHJuX2xheWVyMkRlbHRhVmlhMSk6bGF5ZXIyWW9yaWdpbikgKChkdnhlICsgZHJuX2xheWVyMkRlbHRhVmlhMSk6bGF5ZXIyWWVuZCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgaWYoKHZpYTFWaWEyU3BhY2UgPiAwLjApIHRoZW4gKGR2eG8gPSAoZHZ4byArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSkpIGVsc2UgKGR2eG8gPSAoZHZ4byArICgtIGRybl9sYXllcjJEZWx0YVZpYTEpICsgbGF5ZXIyRW5jVmlhMikpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkgKHZpYTJZbG9vcCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMikpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0czIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKGR2eG86dmlhMllsb29wKSAoZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSB3aGVuKCh2aWExVmlhMlNwYWNlID4gMC4wKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgoKGR2eG8gKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyB2aWEyV2lkdGgpOnZpYTJZbG9vcCkgKChkdnhvICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTJXaWR0aCkpOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGROZXQpKSAodmlhMllsb29wID0gKHZpYTJZbG9vcCArIHZpYTJQaXRjaCkpKSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gKGwzYnZsQ250cmwgPSAobGF5ZXIzV2lkdGggLyAzLjApKSAobDNidmxDbnRybCA9IChyb3VuZCgoKGwzYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgaWYoKGxheWVyM1dpZHRoID4gKCgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgKDIuMCAqIGxheWVyM0VuY1ZpYTIpKSkgdGhlbiAobGF5ZXIzWG9yaWdpbl9kciA9IChjb250YWN0WGxvb3AgLSAoKGxheWVyM1dpZHRoIC0gdmlhMldpZHRoKSAqIDAuNSkpKSAobGF5ZXIzWG9yaWdpbl9kciA9IChyb3VuZCgoKGxheWVyM1hvcmlnaW5fZHIgLyBsYXllcjNncmlkKSArIDAuMDAxKSkgKiBsYXllcjNncmlkKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGwzYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KGxheWVyM1hvcmlnaW5fZHIgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KGxheWVyM1hvcmlnaW5fZHIgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGwzYnZsQ250cmwpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChsYXllcjNYb3JpZ2luX2RyICsgbGF5ZXIzV2lkdGggKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsYXllcjNXaWR0aCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGxheWVyM1dpZHRoKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsYXllcjNXaWR0aCArICgtIGwzYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1hvcmlnaW5fZHIgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChsYXllcjNYb3JpZ2luX2RyICsgbGF5ZXIzV2lkdGgpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpKSBlbHNlIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKGR2eG8gKyAoLSBsYXllcjNFbmNWaWEyKSArIGwzYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KChkdnhvICsgKC0gbGF5ZXIzRW5jVmlhMikpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgoZHZ4byArICgtIGxheWVyM0VuY1ZpYTIpKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KChkdnhvICsgKC0gbGF5ZXIzRW5jVmlhMikgKyBsM2J2bENudHJsKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArICgtIGwzYnZsQ250cmwpKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChkdnhvICsgKDIuMCAqIHZpYTJXaWR0aCkgKyB2aWExV2lkdGggKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgKC0gbDNidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKGR2eG8gKyAoLSBsYXllcjNFbmNWaWEyKSkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChkdnhvICsgKDIuMCAqIHZpYTJXaWR0aCkgKyB2aWExV2lkdGggKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKChkdnhvIC0gbGF5ZXIzRW5jVmlhMik6KGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAoKGR2eGUgKyBsYXllcjNFbmNWaWEyKToodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZE5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIpIGFjY2Vzc0RpcikpICh0IChjb250YWN0WGxvb3AgPSAoY29udGFjdFhsb29wICsgdmlhMVdpZHRoICsgZHJuVmlhR2F0ZVNwYWNlICsgZXh0cmFEcm5TcGFjZSArIGwgKyBsICsgR2F0ZVRvR2F0ZVNwYWNlICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSArIHZpYTFXaWR0aCArIHNyY1ZpYVRvU3JjVGFwU3BhY2UgKyB0YXBXaWR0aCkpIChyZHZ4byA9IChjb250YWN0WGxvb3AgKyBzcmNWaWFUb1NyY1RhcFNwYWNlKSkgKHJkdnhlID0gKHJkdnhvICsgdmlhMVdpZHRoKSkgaWYoKHRhcFdpZHRoID4gKHZpYTFXaWR0aCArICgyLjAgKiB0YXBFbmNWaWExKSkpIHRoZW4gKHR2eG8gPSAoKChyZHZ4byAtICgwLjUgKiAodGFwV2lkdGggLSB2aWExV2lkdGgpKSkgLSB2aWExV2lkdGgpIC0gc3JjVmlhVGFwU3BhY2UpKSAodHZ4byA9IChyb3VuZCgoKHR2eG8gLyB2aWExZ3JpZCkgKyAwLjAwMSkpICogdmlhMWdyaWQpKSBlbHNlICh0dnhvID0gKHJkdnhvICsgKC0gdmlhMVBpdGNoKSkpKSAodHZ4ZSA9ICh0dnhvICsgdmlhMVdpZHRoKSkgKGxkdnhvID0gbWluKCh0dnhvICsgKC0gdmlhMVBpdGNoKSkgKGNvbnRhY3RYbG9vcCArICgtIHRhcFdpZHRoKSArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFUYXBTcGFjZSkpKSkgKGxkdnhlID0gKGxkdnhvICsgdmlhMVdpZHRoKSkgZm9yKHJvdyAxIHJvd3NPZkNvbnRhY3RzIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChyZHZ4bzp2aWExWWxvb3ApIChyZHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodHZ4bzp2aWExWWxvb3ApICh0dnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChsZHZ4bzp2aWExWWxvb3ApIChsZHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAodmlhMVlsb29wID0gKHZpYTFZbG9vcCArIHZpYTFQaXRjaCkpKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgoKGxkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkgbGlzdCgobGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSBsYXllcjJZb3JpZ2luKSBsaXN0KChsZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMlllbmQpIGxpc3QoKChsZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpICsgbDJidmxDbnRybCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgocmR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMiArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZZW5kKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZb3JpZ2luKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKGxkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgocmR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikgbGF5ZXIyWWVuZCkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKChsZHZ4byAtIHNzX2xheWVyMkRlbHRhVmlhMSk6bGF5ZXIyWW9yaWdpbikgKChsZHZ4byArICgtIHNzX2xheWVyMkRlbHRhVmlhMSkgKyBzc19sYXllcjJMKTpsYXllcjJZZW5kKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSBpZigodmlhMVZpYTJTcGFjZSA+IDAuMCkgdGhlbiAobGR2eG8gPSAobGR2eG8gKyAoLSB2aWExVmlhMlNwYWNlKSArICgtIHZpYTJXaWR0aCkpKSBlbHNlIChsZHZ4byA9IChsZHZ4byArICgtIHNzX2xheWVyMkRlbHRhVmlhMSkgKyBsYXllcjJFbmNWaWEyKSkpIChsZHZ4ZSA9IChsZHZ4byArIHZpYTJXaWR0aCkpICh0dnhvID0gKGxkdnhlICsgdmlhMlNwYWNlKSkgKHR2eGUgPSAodHZ4byArIHZpYTJXaWR0aCkpIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChyZHZ4byA9IChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UpKSBlbHNlIChyZHZ4byA9ICh0dnhlICsgdmlhMlNwYWNlKSkpIChyZHZ4ZSA9IChyZHZ4byArIHZpYTJXaWR0aCkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChsZHZ4bzp2aWEyWWxvb3ApIChsZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSB1bmxlc3MoKHZpYTFWaWEyU3BhY2UgPiAwLjApIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh0dnhvOnZpYTJZbG9vcCkgKHR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChyZHZ4bzp2aWEyWWxvb3ApIChyZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAodmlhMllsb29wID0gKHZpYTJZbG9vcCArIHZpYTJQaXRjaCkpKSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgoKGxkdnhvIC0gbGF5ZXIzRW5jVmlhMikgKyBsM2J2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGxkdnhvIC0gbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgoKGxkdnhvIC0gbGF5ZXIzRW5jVmlhMikgKyBsM2J2bENudHJsKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgocmR2eGUgKyBsYXllcjNFbmNWaWEyICsgKC0gbDNidmxDbnRybCkpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChyZHZ4ZSArIGxheWVyM0VuY1ZpYTIpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMikgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChyZHZ4ZSArIGxheWVyM0VuY1ZpYTIgKyAoLSBsM2J2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKChsZHZ4byAtIGxheWVyM0VuY1ZpYTIpOihsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKChyZHZ4ZSArIGxheWVyM0VuY1ZpYTIpOih2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBzTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIikgYWNjZXNzRGlyKSkpKSAodGFwV2lkdGhJbklSID0gbWF4KGlubmVyUmluZ1RhcFdpZHRoICh2aWExV2lkdGggKyAoMi4wICogdGFwRW5jVmlhMSkpKSkgKGlyVGFwWG9yaWdpbiA9IChkaWZmWG9yaWdpbiAtIG1pbkRpZmZUYXBSaW5nU3BhY2UgLSBleHRyYUxlZnRTcGFjZSAtIHRhcFdpZHRoSW5JUikpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpclZpYU9mZnNldCA9IChmaXgoKCgoKGlubmVyUmluZ01ldGFsV2lkdGggLyAyLjApIC0gKHZpYTFXaWR0aCAvIDIuMCkpIC8gdmlhMWdyaWQpICsgMC45OTkpKSAqIHZpYTFncmlkKSkgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSBpclZpYU9mZnNldCkpIGVsc2UgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSB0YXBFbmNWaWExKSkpIChpclRhcEwgPSAoKGRpZmZYZW5kICsgbWluRGlmZlRhcFJpbmdTcGFjZSArIGV4dHJhUmlnaHRTcGFjZSArIHRhcFdpZHRoSW5JUikgLSBpclRhcFhvcmlnaW4pKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJUYXBXID0gKCh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCArIHZpYTFXaWR0aCArIGlyVmlhT2Zmc2V0KSAtIGlyVGFwWW9yaWdpbikpIGVsc2UgKGlyVGFwVyA9ICgodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKyB2aWExV2lkdGggKyB0YXBFbmNWaWExKSAtIGlyVGFwWW9yaWdpbikpKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbklSKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlyVGFwVykgbGlzdCgibCIgImZsb2F0IiBpclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXJUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlyVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbklSKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSB3aGVuKHRhcFdlbGxJbXBsYW50IChpdHJpWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgKGl0cmlZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSAoaXRyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluSVIgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChpdHJpVyA9IChpclRhcFcgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChpdHJpTCA9IChpclRhcEwgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpdHJpVykgbGlzdCgibCIgImZsb2F0IiBpdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwV2VsbEltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpKSAod2VsbFhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luIC0gd2VsbEVuY1RhcCkpICh3ZWxsWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gLSB3ZWxsRW5jVGFwKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh3ZWxsWG9yaWdpbjp3ZWxsWW9yaWdpbikgKCh3ZWxsWG9yaWdpbiArIGlyVGFwTCArICgyLjAgKiB3ZWxsRW5jVGFwKSk6KHdlbGxZb3JpZ2luICsgaXJUYXBXICsgKDIuMCAqIHdlbGxFbmNUYXApKSkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoeENvb3JkID0gKGlyVGFwWG9yaWdpbiArIG1heChpclZpYU9mZnNldCB0YXBFbmNWaWExKSkpICh5Q29vcmQgPSAoaXJUYXBZb3JpZ2luICsgbWF4KGlyVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkgKG1vZFcgPSAoaXJUYXBXIC0gKDIuMCAqIG1heChpclZpYU9mZnNldCB0YXBFbmNWaWExKSkpKSAobW9kTCA9IChpclRhcEwgLSAoMi4wICogbWF4KGlyVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkpIGVsc2UgKHhDb29yZCA9IChpclRhcFhvcmlnaW4gKyB0YXBFbmNWaWExKSkgKHlDb29yZCA9IChpclRhcFlvcmlnaW4gKyB0YXBFbmNWaWExKSkgKG1vZFcgPSAoaXJUYXBXIC0gKDIuMCAqIHRhcEVuY1ZpYTEpKSkgKG1vZEwgPSAoaXJUYXBMIC0gKDIuMCAqIHRhcEVuY1ZpYTEpKSkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWExU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMVNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWExU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTFTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSB3aGVuKGZpbGxlZFJpbmdzICh2aWExRW5jID0gbWF4KGxheWVyMkVuY1ZpYTEgdGFwRW5jVmlhMSkpICh2aWExV2lkdGhJbklSID0gKHRhcFdpZHRoSW5JUiAtICgyLjAgKiB2aWExRW5jKSkpICh2aWExWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gKyB2aWExRW5jKSkgKHZpYTFZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiArIHZpYTFFbmMpKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAiaXYxciIgaWYoZmlsbGVkUmluZ3MgKDA6MCkgKHhDb29yZDp5Q29vcmQpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChpclRhcFcgLSAoMi4wICogdmlhMUVuYykpIG1vZFcpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChpclRhcEwgLSAoMi4wICogdmlhMUVuYykpIG1vZEwpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFYb3JpZ2luIDAuMCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVlvcmlnaW4gMC4wKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFXaWR0aEluSVIgdmlhMVdpZHRoKSkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpIChpckwydyA9IChpclRhcFcgKyAoLTIuMCAqIHRhcEVuY1ZpYTEpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKGlyTDJsID0gKGlyVGFwTCArICgtMi4wICogdGFwRW5jVmlhMSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnhEZWx0YSA9IChpclRhcFhvcmlnaW4gKyB0YXBFbmNWaWExICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnlEZWx0YSA9IChpclRhcFlvcmlnaW4gKyB0YXBFbmNWaWExICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIGlubmVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChpckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gaXJMMnJpbmdXKSAodXBwZXJMZWZ0QkwgPSBpckwycmluZ1cpIChsb3dlclJpZ2h0QkwgPSBpckwycmluZ1cpICh1cHBlclJpZ2h0QkwgPSBpckwycmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaWwyciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBXIGlyTDJ3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcEwgaXJMMmwpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwWG9yaWdpbiBpckwyeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFlvcmlnaW4gaXJMMnlEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiBpckwycmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IGlyTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKGl2MnJFbmMgPSAoKGlyTDJyaW5nVyAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAoaXYyckVuYyAvIHZpYTJncmlkKSkgKGl2MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSB1bmxlc3MoZmlsbGVkUmluZ3MgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAiaXYyciIgKChpckwyeERlbHRhICsgaXYyckVuYyk6KGlyTDJ5RGVsdGEgKyBpdjJyRW5jKSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAoaXJMMncgLSAoMi4wICogaXYyckVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChpckwybCAtICgyLjAgKiBpdjJyRW5jKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSB3aGVuKGZpbGxlZFJpbmdzICh2aWEyRW5jID0gbWF4KGxheWVyMkVuY1ZpYTIgbGF5ZXIzRW5jVmlhMikpICh2aWEyV2lkdGhJbklSID0gKHRhcFdpZHRoSW5JUiAtICgyLjAgKiB2aWEyRW5jKSkpICh2aWEyWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gKyB2aWEyRW5jKSkgKHZpYTJZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiArIHZpYTJFbmMpKSAodmlhMkJldmVsID0gKHZpYTJXaWR0aEluSVIgKyAoMi4wICogdmlhMkVuYykpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJpdjJyIiAoMDowKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChpclRhcFcgLSAoMi4wICogdmlhMkVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChpclRhcEwgLSAoMi4wICogdmlhMkVuYykpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIHZpYTJYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIHZpYTJZb3JpZ2luKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMldpZHRoSW5JUikgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCZXZlbCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQmV2ZWwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJldmVsKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCZXZlbCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMmdyaWQpKSkpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpckwzdyA9IGlyTDJ3KSAoaXJMM2wgPSBpckwybCkgKGlyTDN4RGVsdGEgPSBpckwyeERlbHRhKSAoaXJMM3lEZWx0YSA9IGlyTDJ5RGVsdGEpIChpckwzcmluZ1cgPSBtYXgoKCgyLjAgKiBpckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSBpbm5lclJpbmdNZXRhbFdpZHRoKSkgZWxzZSAoaXJMM3cgPSAoaXJMMncgKyAoLTIuMCAqIGl2MnJFbmMpICsgKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM2wgPSAoaXJMMmwgKyAoLTIuMCAqIGl2MnJFbmMpICsgKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3hEZWx0YSA9IChpckwyeERlbHRhICsgaXYyckVuYyArICgtIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3lEZWx0YSA9IChpckwyeURlbHRhICsgaXYyckVuYyArICgtIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3JpbmdXID0gKCgyLjAgKiBpckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkpICh0b3BMYXllciA9IGxheWVyMykgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gaXJMM3JpbmdXKSAodXBwZXJMZWZ0QkwgPSBpckwzcmluZ1cpIChsb3dlclJpZ2h0QkwgPSBpckwzcmluZ1cpICh1cHBlclJpZ2h0QkwgPSBpckwzcmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaWwzciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBXIGlyTDN3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcEwgaXJMM2wpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwWG9yaWdpbiBpckwzeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFlvcmlnaW4gaXJMM3lEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiBpckwzcmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgbG93ZXJMZWZ0QkwpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiB1cHBlckxlZnRCTCkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdGFwV2lkdGhJbklSIGxvd2VyUmlnaHRCTCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdGFwV2lkdGhJbklSIHVwcGVyUmlnaHRCTCkpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIzZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgdCkpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IGlyTmV0KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQyKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQzKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHRhcFdpZHRoSW5PUiA9IG1heChvdXRlclJpbmdUYXBXaWR0aCAoKDIuMCAqIHRhcEVuY1ZpYTEpICsgdmlhMVdpZHRoKSkpIChvdXRlclRhcERlbHRhID0gKHdlbGxUYXBTcGFjZSArIHRhcFdpZHRoSW5PUikpIChvclRhcFhvcmlnaW4gPSAod2VsbFhvcmlnaW4gLSBvdXRlclRhcERlbHRhKSkgKG9yVGFwWW9yaWdpbiA9ICh3ZWxsWW9yaWdpbiAtIG91dGVyVGFwRGVsdGEpKSAob3JUYXBXID0gKGlyVGFwVyArICgyLjAgKiAob3V0ZXJUYXBEZWx0YSArIHdlbGxFbmNUYXApKSkpIChvclRhcEwgPSAoaXJUYXBMICsgKDIuMCAqIChvdXRlclRhcERlbHRhICsgd2VsbEVuY1RhcCkpKSkgd2hlbigobGF5ZXIzICYmIGZ1bGx5U3RyYXAgJiYgKGZ1bGx5U3RyYXAgIT0gIkZBTFNFIikpIChvckxheWVyM1hvcmlnaW5BID0gKGlyTDN4RGVsdGEgLSBvcmlyTGF5ZXIzU3BhY2UgLSBvckxheWVyM1dpZHRoKSkgKG9yTGF5ZXIzWG9yaWdpbkIgPSAob3JUYXBYb3JpZ2luICsgKHRhcFdpZHRoSW5PUiAvIDIuMCkgKyAob3JMYXllcjNXaWR0aCAvIC0yLjApKSkgd2hlbigob3JMYXllcjNYb3JpZ2luQSA8IG9yTGF5ZXIzWG9yaWdpbkIpIChleHRyYVNwYWNlID0gKG9yTGF5ZXIzWG9yaWdpbkIgLSBvckxheWVyM1hvcmlnaW5BKSkgKHRlbXBTaXplID0gKGV4dHJhU3BhY2UgLyB0YXBHcmlkKSkgKGV4dHJhU3BhY2UgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB0YXBHcmlkKSkgKG9yVGFwWG9yaWdpbiA9IChvclRhcFhvcmlnaW4gLSBleHRyYVNwYWNlKSkgKG9yVGFwWW9yaWdpbiA9IChvclRhcFlvcmlnaW4gLSBleHRyYVNwYWNlKSkgKG9yVGFwVyA9IChvclRhcFcgKyAoMi4wICogZXh0cmFTcGFjZSkpKSAob3JUYXBMID0gKG9yVGFwTCArICgyLjAgKiBleHRyYVNwYWNlKSkpKSkgaWYodGFwRWRnZXNBdDQ1IHRoZW4gKGJldmVsTGVuZ3RoID0gKDAuNiAqIHRhcFdpZHRoSW5PUikpIChiZXZlbExlbmd0aCA9IChyb3VuZCgoKGJldmVsTGVuZ3RoIC8gdGFwR3JpZCkgKyAwLjAwMSkpICogdGFwR3JpZCkpIChsb3dlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJMZWZ0QkwgPSBiZXZlbExlbmd0aCkgKGxvd2VyUmlnaHRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3RyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBvclRhcFcpIGxpc3QoImwiICJmbG9hdCIgb3JUYXBMKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIG9yVGFwWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBvclRhcFlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHRhcFdpZHRoSW5PUikgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBvck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBvck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBvck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBvck5ldCkgd2hlbih0YXBTdWJJbXBsYW50IChvdHJpWG9yaWdpbiA9IChvclRhcFhvcmlnaW4gLSB0YXBTdWJJbXBFbmMpKSAob3RyaVlvcmlnaW4gPSAob3JUYXBZb3JpZ2luIC0gdGFwU3ViSW1wRW5jKSkgKG90cmlSaW5nV2lkdGggPSAodGFwV2lkdGhJbk9SICsgdGFwU3ViSW1wRW5jICsgdGFwU3ViSW1wRW5jKSkgKG90cmlXID0gKG9yVGFwVyArIHRhcFN1YkltcEVuYyArIHRhcFN1YkltcEVuYykpIChvdHJpTCA9IChvclRhcEwgKyB0YXBTdWJJbXBFbmMgKyB0YXBTdWJJbXBFbmMpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3RyaSIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgb3RyaVcpIGxpc3QoImwiICJmbG9hdCIgb3RyaUwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgb3RyaVhvcmlnaW4pIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgb3RyaVlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIHRhcFN1YkltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBvdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpKSAob3JWaWFPZmZzZXQgPSAoZml4KCgoKCh0YXBXaWR0aEluT1IgLyAyLjApIC0gKHZpYTFXaWR0aCAvIDIuMCkpIC8gdmlhMWdyaWQpICsgMC45OTkpKSAqIHZpYTFncmlkKSkgKHhDb29yZCA9IChvclRhcFhvcmlnaW4gKyBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSAoeUNvb3JkID0gKG9yVGFwWW9yaWdpbiArIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpIChsb3dlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIHdoZW4oZmlsbGVkUmluZ3MgKG9yVGFwRW5jVmlhMSA9ICh0YXBXaWR0aEluT1IgLSBvckxheWVyM1dpZHRoKSkgKHZpYTFXaWR0aEluT1IgPSAob3JMYXllcjNXaWR0aCAtICgyLjAgKiB2aWExRW5jKSkpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjFyIiBpZihmaWxsZWRSaW5ncyAob3JUYXBYb3JpZ2luOm9yVGFwWW9yaWdpbikgKHhDb29yZDp5Q29vcmQpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFcgLSAoMi4wICogKG9yVGFwRW5jVmlhMSArIHZpYTFFbmMpKSkgKG9yVGFwVyAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSkpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwTCAtICgyLjAgKiAob3JUYXBFbmNWaWExICsgdmlhMUVuYykpKSAob3JUYXBMIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBFbmNWaWExICsgdmlhMUVuYykgMC4wKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBFbmNWaWExICsgdmlhMUVuYykgMC4wKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFXaWR0aEluT1IgdmlhMVdpZHRoKSkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCBsb3dlckxlZnRCTCkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIHVwcGVyTGVmdEJMKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgbG93ZXJSaWdodEJMKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgdXBwZXJSaWdodEJMKSkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMWdyaWQpKSkgdW5sZXNzKChmaWxsZWRSaW5ncyB8fCBsYXllcjJFZGdlc0F0NDUgfHwgdGFwRWRnZXNBdDQ1KSAoZXh0cmFWaWExUmlnaHRPcmlnaW4gPSAoeENvb3JkICsgKG9yVGFwTCAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSArICgtIHZpYTFXaWR0aCkpKSAoZXh0cmFWaWExVG9wT3JpZ2luID0gKHlDb29yZCArIChvclRhcFcgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkgKyAoLSB2aWExV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoeENvb3JkIHlDb29yZCkgbGlzdCgoeENvb3JkICsgdmlhMVdpZHRoKSAoeUNvb3JkICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdChleHRyYVZpYTFSaWdodE9yaWdpbiB5Q29vcmQpIGxpc3QoKGV4dHJhVmlhMVJpZ2h0T3JpZ2luICsgdmlhMVdpZHRoKSAoeUNvb3JkICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh4Q29vcmQgZXh0cmFWaWExVG9wT3JpZ2luKSBsaXN0KCh4Q29vcmQgKyB2aWExV2lkdGgpIChleHRyYVZpYTFUb3BPcmlnaW4gKyB2aWExV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KGV4dHJhVmlhMVJpZ2h0T3JpZ2luIGV4dHJhVmlhMVRvcE9yaWdpbikgbGlzdCgoZXh0cmFWaWExUmlnaHRPcmlnaW4gKyB2aWExV2lkdGgpIChleHRyYVZpYTFUb3BPcmlnaW4gKyB2aWExV2lkdGgpKSkpKSBpZihsYXllcjMgdGhlbiAob3JMYXllcjNFbmNWaWEyID0gKChvckxheWVyM1dpZHRoIC0gdmlhMldpZHRoKSAvIDIuMCkpICh0ZW1wU2l6ZSA9IChvckxheWVyM0VuY1ZpYTIgLyBsYXllcjNncmlkKSkgKG9yTGF5ZXIzRW5jVmlhMiA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIGxheWVyM2dyaWQpKSAob3V0ZXJSaW5nTWV0YWxXaWR0aCA9ICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpIChvckwydyA9IChvclRhcFcgKyAoLSB0YXBXaWR0aEluT1IpICsgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIChvckwybCA9IChvclRhcEwgKyAoLSB0YXBXaWR0aEluT1IpICsgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIChvckwyeERlbHRhID0gKG9yVGFwWG9yaWdpbiArICgodGFwV2lkdGhJbk9SICsgKC0gb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIC8gMi4wKSkpIChvckwyeERlbHRhID0gKGZpeCgoKG9yTDJ4RGVsdGEgLyBsYXllcjJncmlkKSArIDAuOTk5KSkgKiBsYXllcjJncmlkKSkgKG9yTDJ5RGVsdGEgPSAob3JUYXBZb3JpZ2luICsgKCh0YXBXaWR0aEluT1IgKyAoLSBvdXRlclJpbmdNZXRhbFdpZHRoKSkgLyAyLjApKSkgKG9yTDJ5RGVsdGEgPSAoZml4KCgob3JMMnlEZWx0YSAvIGxheWVyMmdyaWQpICsgMC45OTkpKSAqIGxheWVyMmdyaWQpKSAob3JMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIG91dGVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChvckwydyA9IChvclRhcFcgKyAoLTIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAob3JMMmwgPSAob3JUYXBMICsgKC0yLjAgKiBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJ4RGVsdGEgPSAoeENvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAob3JMMnlEZWx0YSA9ICh5Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChvckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gb3JMMnJpbmdXKSAodXBwZXJMZWZ0QkwgPSBvckwycmluZ1cpIChsb3dlclJpZ2h0QkwgPSBvckwycmluZ1cpICh1cHBlclJpZ2h0QkwgPSBvckwycmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib2wyciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiBvclRhcEVuY1ZpYTEpKSBvckwydykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwTCAtICgyLjAgKiBvclRhcEVuY1ZpYTEpKSBvckwybCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWG9yaWdpbiArIG9yVGFwRW5jVmlhMSkgb3JMMnhEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWW9yaWdpbiArIG9yVGFwRW5jVmlhMSkgb3JMMnlEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIG9yTGF5ZXIzV2lkdGggb3JMMnJpbmdXKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIGxvd2VyTGVmdEJMKSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgdXBwZXJMZWZ0QkwpKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCBsb3dlclJpZ2h0QkwpKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCB1cHBlclJpZ2h0QkwpKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IG9yTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKG92MnJFbmMgPSAoKG9yTDJyaW5nVyAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAob3YyckVuYyAvIHZpYTJncmlkKSkgKG92MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gdmlhMlNwYWNlKSAodXBwZXJMZWZ0QkwgPSB2aWEyU3BhY2UpIChsb3dlclJpZ2h0QkwgPSB2aWEyU3BhY2UpICh1cHBlclJpZ2h0QkwgPSB2aWEyU3BhY2UpKSB3aGVuKGZpbGxlZFJpbmdzICh2aWEyV2lkdGhJbk9SID0gKG9yTGF5ZXIzV2lkdGggLSAoMi4wICogdmlhMkVuYykpKSkgd2hlbihmaWxsZWRSaW5ncyAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjJyIiAob3JUYXBYb3JpZ2luOm9yVGFwWW9yaWdpbikgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JUYXBXIC0gKDIuMCAqICh2aWEyRW5jICsgb3JUYXBFbmNWaWExKSkpKSBsaXN0KCJsIiAiZmxvYXQiIChvclRhcEwgLSAoMi4wICogKHZpYTJFbmMgKyBvclRhcEVuY1ZpYTEpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgKG9yVGFwRW5jVmlhMSArIHZpYTJFbmMpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIChvclRhcEVuY1ZpYTEgKyB2aWEyRW5jKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aEluT1IpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAodmlhMkVuYyArICgtMC41ICsgb3JMYXllcjNXaWR0aCkpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiICh2aWEyRW5jICsgKC0wLjUgKyBvckxheWVyM1dpZHRoKSkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgKHZpYTJFbmMgKyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAodmlhMkVuYyArICgtMC41ICsgb3JMYXllcjNXaWR0aCkpKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgdW5sZXNzKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MnIiICgob3JMMnhEZWx0YSArIG92MnJFbmMpOihvckwyeURlbHRhICsgb3YyckVuYykpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKG9yTDJ3IC0gKDIuMCAqIG92MnJFbmMpKSkgbGlzdCgibCIgImZsb2F0IiAob3JMMmwgLSAoMi4wICogb3YyckVuYykpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWEyTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgKG9yTDN3ID0gKG9yTDJ3ICsgKC0yLjAgKiBvdjJyRW5jKSArICgyLjAgKiBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDNsID0gKG9yTDJsICsgKC0yLjAgKiBvdjJyRW5jKSArICgyLjAgKiBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDN4RGVsdGEgPSAob3JMMnhEZWx0YSArIG92MnJFbmMgKyAoLSBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDN5RGVsdGEgPSAob3JMMnlEZWx0YSArIG92MnJFbmMgKyAoLSBvckxheWVyM0VuY1ZpYTIpKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkgKHVwcGVyTGVmdEJMID0gKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkgKGxvd2VyUmlnaHRCTCA9ICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpICh1cHBlclJpZ2h0QkwgPSAoKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm9sM3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFcgLSAoMi4wICogb3JUYXBFbmNWaWExKSkgb3JMM3cpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEwgLSAoMi4wICogb3JUYXBFbmNWaWExKSkgb3JMM2wpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFhvcmlnaW4gKyBvclRhcEVuY1ZpYTEpIG9yTDN4RGVsdGEpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFlvcmlnaW4gKyBvclRhcEVuY1ZpYTEpIG9yTDN5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBvckxheWVyM1dpZHRoICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpIGxvd2VyTGVmdEJMKSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpIHVwcGVyTGVmdEJMKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpIGxvd2VyUmlnaHRCTCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKC0wLjUgKyBvckxheWVyM1dpZHRoKSB1cHBlclJpZ2h0QkwpKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyM2dyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iIHQpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBvck5ldCkpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDEpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQyKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkMykpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSkAKGRpZmZMYXllciBnYXRlTGF5ZXIgcmdhdGVMYXllciB3ZWxsTGF5ZXIgdGFwTGF5ZXIgdmlhMUxheWVyIGxheWVyMiB2aWEyTGF5ZXIgbGF5ZXIzIGlkTGF5ZXIgZGlmZkltcGxhbnQgZGlmZkltcEVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBFbmMgdGFwV2VsbEltcGxhbnQgdGFwV2VsbEltcEVuYyB0YXBTdWJJbXBsYW50IHRhcFN1YkltcEVuYyB0YXBXaWR0aCBzcmNWaWFHYXRlU3BhY2Ugc3JjVmlhVGFwU3BhY2UgZHJuVmlhR2F0ZVNwYWNlIHZpYUV4dERpZmYgbWluRGlmZlRhcFJpbmdTcGFjZSBHYXRlVG9HYXRlU3BhY2UgZmxhcmVZYW1vdW50X291dCBmbGFyZVlhbW91bnRfaW4gZmxhcmVZZXh0ZW5zaW9uIHZpYTFXaWR0aCB2aWExU3BhY2UgdGFwRW5jVmlhMSB3ZWxsRW5jVGFwIGlubmVyUmluZ1RhcFdpZHRoIG91dGVyUmluZ1RhcFdpZHRoIHdlbGxUYXBTcGFjZSBsYXllcjJFbmNWaWExIHZpYTJXaWR0aCB2aWEyU3BhY2UgdmlhMVZpYTJTcGFjZSBsYXllcjJFbmNWaWEyIGxheWVyMldpZHRoIGxheWVyM0VuY1ZpYTIgbGF5ZXIzV2lkdGggbGF5ZXIzV2lkdGhfb3V0c2lkZSBpbm5lclJpbmdNZXRhbFdpZHRoIGlyTGF5ZXIzRW5jVmlhMiBvckxheWVyM1dpZHRoIG1pblcgbWF4VyBtaW5Ub3RhbFcgZ2VuZXJpY1JpbmdOYW1lIHJpdmV0ZWRSaW5nTmFtZSBmbGFyZWRHYXRlTmFtZSBkaWZmR3JpZCB0YXBHcmlkIHdlbGxHcmlkIHBvbHlHcmlkIHZpYTFncmlkIGxheWVyMmdyaWQgdmlhMmdyaWQgbGF5ZXIzZ3JpZCB0YXBFZGdlc0F0NDUgbGF5ZXIyRWRnZXNBdDQ1IGxheWVyM0VkZ2VzQXQ0NSBlbmRUYXBNZXRJbnNpZGVPdXQgbW9kZWxUZXh0TGF5ZXIgbW9kZWxUZXh0TGF5ZXJTaXplIG1vZGVsVGV4dCBtb2RlbFdtYXggbW9kZWxXbWluIG1vZGVsTG1heCBtb2RlbExtaW4gZmlsbGVkUmluZ3MgdyBsIG0gZXh0cmFMZWZ0U3BhY2UgZXh0cmFSaWdodFNwYWNlIHNocmlua1BlcmNlbnQgZXh0cmFTcmNTcGFjZSBleHRyYURyblNwYWNlIGZ1bGx5U3RyYXAgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCBkcm5WaWFZc3BhY2VSaW5nVmlhQm90IG9yaXJMYXllcjNTcGFjZSBnTmV0IHNOZXQgZE5ldCBpck5ldCBvck5ldCBzY2FsZU11bHQgdmlhMVBvbHlHcmlkIHNpemVBbmRHcmlkIHRoZVNpemUgdGhlR3JpZCB0ZW1wU2l6ZSBrbHVkZ2UgdG1wT3JMYXllcldpZHRoIHRtcE9yTGF5ZXJHcmlkIHRtcFZpYVdpZHRoIHRtcFZpYUdyaWQgdmlhMVBpdGNoIHZpYTJQaXRjaCB0YXJnZXRSb3dzIHJvd3NPZkNvbnRhY3RzIGZsYXJlZEdhdGVJZCByaW5nSWQgcml2ZXRlZFJpbmdJZCBzcmNWaWFUb1NyY1RhcFNwYWNlIGRpZmZYb3JpZ2luIGRpZmZZb3JpZ2luIHRvdGFsRHJuTGVuZ3RoIGhhbGZTcmNEaWZmTGVuZ3RoIHRvdGFsU3JjRGlmZkxlbmd0aCBoYWxmTCBkaWZmWWVuZCBkaWZmSW1wWWVuZCBkaWZmSW1wWW9yaWdpbiBkYmlkIGRpZmZYbG9vcCBzZWN0aW9uIHNyY0RpZmZYZW5kIGRybkRpZmZYZW5kIGRpZmZYZW5kIGdhdGVYb2Zmc2V0IGdhdGVOdW0gaW5zdCBtYXN0ZXIgbW9kZWxUZXh0WCBtb2RlbFRleHRZIHBpbmlkIGRybl92aWExWG9yaWdpbiBkcm5fdmlhMVhlbmQgZHJuX2xheWVyMkwgZHJuX2xheWVyMkxhIGRybl9sYXllcjJEZWx0YVZpYTEgZGVsdGEgbGF5ZXIyVyBsYXllcjJXYSByb3dzT2ZDb250YWN0czIgbGF5ZXIyWURlbHRhVmlhMSBlc19kdmlhMVhvcmlnaW4gZXNfZHZpYTFYZW5kIGVzX3R2aWExWG9yaWdpbiBlc190dmlhMVhlbmQgZXNfbGF5ZXIyTCBlc19sYXllcjJMYSBlc19sYXllcjJEZWx0YVZpYTEgZXNfdHZpYTJYb3JpZ2luIGVzX3R2aWEyWGVuZCBlc19kdmlhMlhvcmlnaW4gZXNfZHZpYTJYZW5kIHNzX2xheWVyMkwgc3NfbGF5ZXIyTGEgc3NfbGF5ZXIyRGVsdGFWaWExIGNvbnRhY3RYbG9vcCB2aWExWW9yaWdpbiBsYXllcjJZb3JpZ2luIHZpYTJZb3JpZ2luIGxheWVyMlllbmQgcmVnaW9uIHZpYTFZbG9vcCBkdnhvIGR2eGUgdHZ4byB0dnhlIHJvdyBlbmRUYXBMYXllcjJYT2Zmc2V0IGwyYnZsQ250cmwgdmlhMllsb29wIHdpZHRoVG9iZURyYXduIGVuZFRhcExheWVyM1hPZmZzZXQgbDNidmxDbnRybCBsYXllcjJYb3JpZ2luX2RyIGxheWVyM1hvcmlnaW5fZHIgcmR2eG8gcmR2eGUgbGR2eG8gbGR2eGUgdGFwV2lkdGhJbklSIGlyVGFwWG9yaWdpbiBpclZpYU9mZnNldCBpclRhcFlvcmlnaW4gaXJUYXBMIGlyVGFwVyBiZXZlbExlbmd0aCBsb3dlckxlZnRCTCB1cHBlckxlZnRCTCBsb3dlclJpZ2h0QkwgdXBwZXJSaWdodEJMIHRoZU1hc3RlciBpdHJpWG9yaWdpbiBpdHJpWW9yaWdpbiBpdHJpUmluZ1dpZHRoIGl0cmlXIGl0cmlMIHdlbGxYb3JpZ2luIHdlbGxZb3JpZ2luIHhDb29yZCB5Q29vcmQgbW9kVyBtb2RMIHZpYTFFbmMgdmlhMVdpZHRoSW5JUiB2aWExWG9yaWdpbiBpckwydyBpckwybCBpckwyeERlbHRhIGlyTDJ5RGVsdGEgaXJMMnJpbmdXIGRiaWQxIGRiaWQyIGRiaWQzIGRiaWQ0IGl2MnJFbmMgdmlhMkVuYyB2aWEyV2lkdGhJbklSIHZpYTJYb3JpZ2luIHZpYTJCZXZlbCBpckwzdyBpckwzbCBpckwzeERlbHRhIGlyTDN5RGVsdGEgaXJMM3JpbmdXIHRvcExheWVyIHRhcFdpZHRoSW5PUiBvdXRlclRhcERlbHRhIG9yVGFwWG9yaWdpbiBvclRhcFlvcmlnaW4gb3JUYXBXIG9yVGFwTCBvckxheWVyM1hvcmlnaW5BIG9yTGF5ZXIzWG9yaWdpbkIgZXh0cmFTcGFjZSBvdHJpWG9yaWdpbiBvdHJpWW9yaWdpbiBvdHJpUmluZ1dpZHRoIG90cmlXIG90cmlMIG9yVmlhT2Zmc2V0IG9yVGFwRW5jVmlhMSB2aWExV2lkdGhJbk9SIGV4dHJhVmlhMVJpZ2h0T3JpZ2luIGV4dHJhVmlhMVRvcE9yaWdpbiBvckxheWVyM0VuY1ZpYTIgb3V0ZXJSaW5nTWV0YWxXaWR0aCBvckwydyBvckwybCBvckwyeERlbHRhIG9yTDJ5RGVsdGEgb3JMMnJpbmdXIG92MnJFbmMgdmlhMldpZHRoSW5PUiBvckwzdyBvckwzbCBvckwzeERlbHRhIG9yTDN5RGVsdGEgcGluKQAoKHcgMC4wKSAobCAwLjApIChtIDApIChleHRyYUxlZnRTcGFjZSAwLjApIChleHRyYVJpZ2h0U3BhY2UgMC4wKSAoc2hyaW5rUGVyY2VudCAwLjApIChleHRyYVNyY1NwYWNlIDAuMCkgKGV4dHJhRHJuU3BhY2UgMC4wKSAoZnVsbHlTdHJhcCAiRkFMU0UiKSAoZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCAwLjApIChkcm5WaWFZc3BhY2VSaW5nVmlhQm90IDAuMCkgKG9yaXJMYXllcjNTcGFjZSAwLjApKQAoKGRpZmZMYXllciAieTAiKSAoZ2F0ZUxheWVyICJ5MSIpIChyZ2F0ZUxheWVyICJ5MiIpICh3ZWxsTGF5ZXIgInkzIikgKHRhcExheWVyICJ5NCIpICh2aWExTGF5ZXIgInk1IikgKGxheWVyMiAieTYiKSAodmlhMkxheWVyICJ5NyIpIChsYXllcjMgInk4IikgKGlkTGF5ZXIgInk5IikgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgMC4wKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wRW5jIDAuMCkgKHRhcFdlbGxJbXBsYW50IG5pbCkgKHRhcFdlbGxJbXBFbmMgMC4wKSAodGFwU3ViSW1wbGFudCBuaWwpICh0YXBTdWJJbXBFbmMgMC4wKSAodGFwV2lkdGggMC4wKSAoc3JjVmlhR2F0ZVNwYWNlIDAuMCkgKHNyY1ZpYVRhcFNwYWNlIDAuMCkgKGRyblZpYUdhdGVTcGFjZSAwLjApICh2aWFFeHREaWZmIDAuMCkgKG1pbkRpZmZUYXBSaW5nU3BhY2UgMC4wKSAoR2F0ZVRvR2F0ZVNwYWNlIDAuMCkgKGZsYXJlWWFtb3VudF9vdXQgMC4wKSAoZmxhcmVZYW1vdW50X2luIDAuMCkgKGZsYXJlWWV4dGVuc2lvbiAwLjApICh2aWExV2lkdGggMC4wKSAodmlhMVNwYWNlIDAuMCkgKHRhcEVuY1ZpYTEgMC4wKSAod2VsbEVuY1RhcCAwLjApIChpbm5lclJpbmdUYXBXaWR0aCAwLjApIChvdXRlclJpbmdUYXBXaWR0aCAwLjApICh3ZWxsVGFwU3BhY2UgMC4wKSAobGF5ZXIyRW5jVmlhMSAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMlNwYWNlIDAuMCkgKHZpYTFWaWEyU3BhY2UgMC4wKSAobGF5ZXIyRW5jVmlhMiAwLjApIChsYXllcjJXaWR0aCAwLjApIChsYXllcjNFbmNWaWEyIDAuMCkgKGxheWVyM1dpZHRoIDAuMCkgKGxheWVyM1dpZHRoX291dHNpZGUgMC4wKSAoaW5uZXJSaW5nTWV0YWxXaWR0aCAwLjApIChpckxheWVyM0VuY1ZpYTIgMC4wKSAob3JMYXllcjNXaWR0aCAwLjApIChtaW5XIDAuMCkgKG1heFcgMC4wKSAobWluVG90YWxXIDAuMCkgKGdlbmVyaWNSaW5nTmFtZSAicmluZyIpIChyaXZldGVkUmluZ05hbWUgInJpdmV0UmluZyIpIChmbGFyZWRHYXRlTmFtZSAiZmxhcmVkR2F0ZSIpIChkaWZmR3JpZCAwLjApICh0YXBHcmlkIDAuMCkgKHdlbGxHcmlkIDAuMCkgKHBvbHlHcmlkIDAuMCkgKHZpYTFncmlkIDAuMCkgKGxheWVyMmdyaWQgMC4wKSAodmlhMmdyaWQgMC4wKSAobGF5ZXIzZ3JpZCAwLjApICh0YXBFZGdlc0F0NDUgbmlsKSAobGF5ZXIyRWRnZXNBdDQ1IG5pbCkgKGxheWVyM0VkZ2VzQXQ0NSBuaWwpIChlbmRUYXBNZXRJbnNpZGVPdXQgbmlsKSAobW9kZWxUZXh0TGF5ZXIgbGlzdCgiaGlsaXRlIiAiZHJhd2luZyIpKSAobW9kZWxUZXh0TGF5ZXJTaXplIDAuMikgKG1vZGVsVGV4dCAiIikgKG1vZGVsV21heCAwLjApIChtb2RlbFdtaW4gMC4wKSAobW9kZWxMbWF4IDAuMCkgKG1vZGVsTG1pbiAwLjApIChmaWxsZWRSaW5ncyB0KSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACh3aGVuKCh3ID4gbW9kZWxXbWF4KSBlcnJvcigiJWYgaXMgZ3JlYXRlciB0aGFuIGFsbG93YWJsZSBtYXhpbXVtIHdpZHRoICVmIGZvciBtb2RlbCAlTCIgdyBtb2RlbFdtYXggbW9kZWxUZXh0KSkgd2hlbigodyA8IG1vZGVsV21pbikgZXJyb3IoIiVmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSB3aWR0aCAlZiBmb3IgbW9kZWwgJUwiIHcgbW9kZWxXbWluIG1vZGVsVGV4dCkpIHdoZW4oKGwgPiBtb2RlbExtYXgpIGVycm9yKCIlZiBpcyBncmVhdGVyIHRoYW4gYWxsb3dhYmxlIGxlbmd0aCAlZiBmb3IgbW9kZWwgJUwiIGwgbW9kZWxMbWF4IG1vZGVsVGV4dCkpIHdoZW4oKGwgPCBtb2RlbExtaW4pIGVycm9yKCIlZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gbGVuZ3RoICVmIGZvciBtb2RlbCAlTCIgbCBtb2RlbExtaW4gbW9kZWxUZXh0KSkgKGdOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZyIpKSAoZGJDcmVhdGVUZXJtIGdOZXQgImciICJpbnB1dCIpIChzTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInMiKSkgKGRiQ3JlYXRlVGVybSBzTmV0ICJzIiAiaW5wdXRPdXRwdXQiKSAoZE5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJkIikpIChkYkNyZWF0ZVRlcm0gZE5ldCAiZCIgImlucHV0T3V0cHV0IikgKGlyTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImlyIikpIChkYkNyZWF0ZVRlcm0gaXJOZXQgImlyIiAiaW5wdXRPdXRwdXQiKSAob3JOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAib3IiKSkgKGRiQ3JlYXRlVGVybSBvck5ldCAib3IiICJpbnB1dE91dHB1dCIpIGNvbmQoKChzaHJpbmtQZXJjZW50ID09IDAuMCkgKHNjYWxlTXVsdCA9IDEuMCkpICh0IChzY2FsZU11bHQgPSAoMTAwLjAgLyAoMTAwLjAgLSBzaHJpbmtQZXJjZW50KSkpICh2aWExUG9seUdyaWQgPSBtYXgodmlhMWdyaWQgcG9seUdyaWQpKSBmb3JlYWNoKHNpemVBbmRHcmlkIGxpc3QobGlzdCgnc3JjVmlhR2F0ZVNwYWNlIHZpYTFQb2x5R3JpZCkgbGlzdCgnZHJuVmlhR2F0ZVNwYWNlIHZpYTFQb2x5R3JpZCkgbGlzdCgnZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCB2aWExZ3JpZCkgbGlzdCgnZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCB2aWExZ3JpZCkgbGlzdCgnRVNEbndFbmNWaWExIHRhcEdyaWQpIGxpc3QoJ0VTRG53R2F0ZVNwIHRhcEdyaWQpIGxpc3QoJ2lubmVyUmluZ1RhcFdpZHRoIHRhcEdyaWQpIGxpc3QoJ291dGVyUmluZ1RhcFdpZHRoIHRhcEdyaWQpIGxpc3QoJ2lubmVyUmluZ01ldGFsV2lkdGggbGF5ZXIyZ3JpZCkgbGlzdCgndmlhMVZpYTJTcGFjZSB2aWExZ3JpZCkgbGlzdCgnbGF5ZXIyV2lkdGggbGF5ZXIyZ3JpZCkgbGlzdCgnbGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCkgbGlzdCgnb3JMYXllcjNXaWR0aCBsYXllcjNncmlkKSBsaXN0KCdtaW5XIGRpZmZHcmlkKSBsaXN0KCdtYXhXIGRpZmZHcmlkKSBsaXN0KCdtaW5Ub3RhbFcgZGlmZkdyaWQpIGxpc3QoJ3ZpYUV4dERpZmZZIGRpZmZHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSBmb3JlYWNoKGtsdWRnZSBsaXN0KGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCB2aWEyV2lkdGggdmlhMmdyaWQpIGxpc3QoJ291dGVyUmluZ1RhcFdpZHRoIHRhcEdyaWQgdmlhMVdpZHRoIHZpYTFncmlkKSkgKHRtcE9yTGF5ZXJXaWR0aCA9IG50aCgwIGtsdWRnZSkpICh0bXBPckxheWVyR3JpZCA9IG50aCgxIGtsdWRnZSkpICh0bXBWaWFXaWR0aCA9IG50aCgyIGtsdWRnZSkpICh0bXBWaWFHcmlkID0gbnRoKDMga2x1ZGdlKSkgKHRlbXBTaXplID0gKHRtcFZpYVdpZHRoIC8gdG1wVmlhR3JpZCkpIGNvbmQoKG9kZHAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4oZXZlbnAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpIHNldCh0bXBPckxheWVyV2lkdGggKGV2YWwodG1wT3JMYXllcldpZHRoKSArIGxheWVyM2dyaWQpKSkpICh0ICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4ob2RkcChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgc2V0KHRtcE9yTGF5ZXJXaWR0aCAoZXZhbCh0bXBPckxheWVyV2lkdGgpICsgbGF5ZXIzZ3JpZCkpKSkpKSAodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh0YXJnZXRSb3dzID0gKCh3ICsgKC0yLjAgKiB2aWFFeHREaWZmWSkgKyB2aWExU3BhY2UpIC8gdmlhMVBpdGNoKSkgKHJvd3NPZkNvbnRhY3RzID0gZml4KCgwLjk5OSArIHRhcmdldFJvd3MpKSkgd2hlbigoYWJzKChyb3dzT2ZDb250YWN0cyAtIHRhcmdldFJvd3MpKSA+IDAuMDAwMSkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiB3ICglZikgZG9lcyBub3Qgc2F0aXNmeSB2aWEgcGl0Y2ggcmVxdWlyZW1lbnRzLiAgVHJ5IGVpdGhlciAlZiBvciAlZlxuIiB3ICgocm93c09mQ29udGFjdHMgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSArICgyLjAgKiB2aWFFeHREaWZmWSkpICgoKHJvd3NPZkNvbnRhY3RzIC0gMSkgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSArICgyLjAgKiB2aWFFeHREaWZmWSkpKSkgd2hlbigoKHcgLSAxZS0wNikgPCBtaW5XKSBlcnJvcigibkVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICB3ICglZikgaXMgbGVzcyB0aGFuIG1pbmltdW0gYWxsb3dhYmxlIHdpZHRoIHBlciBsZWcgKCVmKVxuIiB3IG1pblcpKSB3aGVuKCgodyAtIDFlLTA2KSA+IG1heFcpIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIHcgKCVmKSBpcyBncmVhdGVyIHRoYW4gbWF4aW11bSBhbGxvd2FibGUgd2lkdGggcGVyIGxlZyAoJWYpXG4iIHcgbWF4VykpIHdoZW4oKCh3ICogbSkgPCBtaW5Ub3RhbFcpIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIHRvdGFsIHcgKCVmKSBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gdG90YWwgd2lkdGggKCVmKVxuIiAodyAqIG0pIG1pblRvdGFsVykpIHdoZW4oKGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgPCAoc3JjVmlhR2F0ZVNwYWNlICsgZHJuVmlhR2F0ZVNwYWNlICsgbCArIGV4dHJhRHJuU3BhY2UgKyBleHRyYVNyY1NwYWNlKSkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCAoJWYpIGlzIGxlc3MgdGhhbiBtaW5pbXVtIGFsbG93YWJsZSAoJWYpXG4iIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpKSB3aGVuKChkcm5WaWFZc3BhY2VSaW5nVmlhQm90IDwgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgKCVmKSBpcyBsZXNzIHRoYW4gbWluaW11bSBhbGxvd2FibGUgKCVmKVxuIiBkcm5WaWFZc3BhY2VSaW5nVmlhQm90IChzcmNWaWFHYXRlU3BhY2UgKyBkcm5WaWFHYXRlU3BhY2UgKyBsICsgZXh0cmFEcm5TcGFjZSArIGV4dHJhU3JjU3BhY2UpKSkgdW5sZXNzKCghZmxvYXRwKG0pICYmIG51bWJlcnAobSkpIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIG0gbXVzdCBiZSBhbiBldmVuIGludGVnZXIsIG5vdCBhIGZsb2F0XG4iKSkgd2hlbihvZGRwKG0pIGVycm9yKCJuRXNkVHJhbkltcENhc2NvZGVDbGFzczogIG0gKG51bWJlciBvZiBsZWdzKSBtdXN0IGJlIGFuIGV2ZW4gaW50ZWdlclxuIikpIChmbGFyZWRHYXRlSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmxhcmVkR2F0ZU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhmbGFyZWRHYXRlSWQgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBmbGFyZWQgZ2F0ZSAlc1xuIiBmbGFyZWRHYXRlTmFtZSkpIHVubGVzcygoZmxhcmVkR2F0ZUlkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgRmxhcmVkIGdhdGUgJXMgaXMgbm90IGEgcGNlbGxcbiIgZmxhcmVkR2F0ZU5hbWUpKSAocmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGdlbmVyaWNSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpbmdJZCBlcnJvcigibkVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigibkVzZFRyYW5JbXBDYXNjb2RlQ2xhc3M6ICBSaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaW5nTmFtZSkpIChyaXZldGVkUmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHJpdmV0ZWRSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpdmV0ZWRSaW5nSWQgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiByaXZldGVkIHJpbmcgJXNcbiIgcml2ZXRlZFJpbmdOYW1lKSkgdW5sZXNzKChyaXZldGVkUmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgUml2ZXRlZCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIGlmKG5vVGFwTndlbGwgKGRpZmZYb3JpZ2luID0gKCgtIHZpYUV4dERpZmZYKSArICgtIHZpYTFXaWR0aCkgKyAoLSB2aWExV2lkdGgpICsgKC0gdmlhMVNwYWNlKSArICgtIHNyY1ZpYUdhdGVTcGFjZSkgKyAoLSBleHRyYVNyY1NwYWNlKSkpIChkaWZmWG9yaWdpbiA9ICgoLSB2aWFFeHREaWZmWCkgKyAoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpKSkpIChkaWZmWW9yaWdpbiA9IDAuMCkgaWYobm9UYXBOd2VsbCB0aGVuICh0b3RhbERybkxlbmd0aCA9ICgoMi4wICogKGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSArICgyLjAgKiB2aWExV2lkdGgpICsgdmlhMVNwYWNlKSkgKHRvdGFsU3JjTGVuZ3RoID0gKCgyLjAgKiAoc3JjVmlhR2F0ZVNwYWNlICsgZXh0cmFTcmNTcGFjZSkpICsgKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWExU3BhY2UpKSBlbHNlICh0b3RhbERybkxlbmd0aCA9ICgoMi4wICogKGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSArIHZpYTFXaWR0aCkpICh0b3RhbFNyY0xlbmd0aCA9ICgoMi4wICogKHNyY1ZpYUdhdGVTcGFjZSArIGV4dHJhU3JjU3BhY2UpKSArIHZpYTFXaWR0aCkpKSAoZGlmZlhlbmQgPSAoZGlmZlhvcmlnaW4gKyAoLTIuMCAqIGRpZmZYb3JpZ2luKSArIChsICogbSkgKyAoKEdhdGVUb0dhdGVTcGFjZSArIGwpICogbSkgKyAoKG0gLyAyKSAqIHRvdGFsRHJuTGVuZ3RoKSArICgoKG0gLyAyKSAtIDEpICogdG90YWxTcmNMZW5ndGgpKSkgKGRpZmZZZW5kID0gdykgd2hlbigoKEVTRG53RW5jVmlhMSA+IDAuMCkgJiYgKEVTRG53R2F0ZVNwID4gMC4wKSkgaWYobm9UYXBOd2VsbCB0aGVuIChFU0Rud1RXaWR0aERybiA9ICgoKDIuMCAqIGRyblZpYUdhdGVTcGFjZSkgKyAoMi4wICogdmlhMVdpZHRoKSArIHZpYTFTcGFjZSkgLSAoMi4wICogRVNEbndHYXRlU3ApKSkgKEVTRG53VFdpZHRoU3JjID0gKCgoMi4wICogc3JjVmlhR2F0ZVNwYWNlKSArICgyLjAgKiB2aWExV2lkdGgpICsgdmlhMVNwYWNlKSAtICgyLjAgKiBFU0Rud0dhdGVTcCkpKSBlbHNlIChFU0Rud1RXaWR0aERybiA9ICgoKDIuMCAqIGRyblZpYUdhdGVTcGFjZSkgKyB2aWExV2lkdGgpIC0gKDIuMCAqIEVTRG53R2F0ZVNwKSkpIChFU0Rud1RXaWR0aFNyYyA9ICgoKDIuMCAqIHNyY1ZpYUdhdGVTcGFjZSkgKyB2aWExV2lkdGgpIC0gKDIuMCAqIEVTRG53R2F0ZVNwKSkpKSAoRVNEbndUWG9yaWdpbiA9ICgoLSBFU0Rud0dhdGVTcCkgKyAoLSBFU0Rud1RXaWR0aFNyYykpKSAoRVNEbndUWW9yaWdpbiA9ICh2aWFFeHREaWZmWSAtIEVTRG53RW5jVmlhMSkpIChFU0Rud1RZZW5kID0gKHZpYUV4dERpZmZZICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVdpZHRoKSArICgocm93c09mQ29udGFjdHMgLSAxKSAqIHZpYTFTcGFjZSkgKyBFU0Rud0VuY1ZpYTEpKSkgaWYoKChFU0Rud0VuY1ZpYTEgPiAwLjApICYmIChFU0Rud0dhdGVTcCA+IDAuMCkpIHRoZW4gKGRpZmZYbG9vcCA9IChsICsgKEdhdGVUb0dhdGVTcGFjZSAvIDIuMCkpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhvcmlnaW46ZGlmZllvcmlnaW4pIChkaWZmWG9yaWdpbjpkaWZmWWVuZCkgKGRpZmZYbG9vcDpkaWZmWWVuZCkgKGRpZmZYbG9vcDpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOmRpZmZZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpKTpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6RVNEbndUWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSBpZihub1RhcE53ZWxsIHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkgKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkgKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSBmb3Ioc2VjdGlvbiAxIChtIC8gMikgKGRybkRpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsRHJuTGVuZ3RoICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOmRpZmZZZW5kKSAoZHJuRGlmZlhlbmQ6ZGlmZlllbmQpIChkcm5EaWZmWGVuZDpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRybkRpZmZYZW5kOmRpZmZZb3JpZ2luKSAoZHJuRGlmZlhlbmQ6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhEcm4pOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoRHJuKTpFU0Rud1RZb3JpZ2luKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGROZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhEcm4pOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhEcm4pOkVTRG53VFllbmQpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aERybiArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIGV4dHJhU3JjU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKGRpZmZYbG9vcCA9IGRybkRpZmZYZW5kKSB1bmxlc3MoKHNlY3Rpb24gPT0gKG0gLyAyKSkgKHNyY0RpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsU3JjTGVuZ3RoICsgbCArIGwgKyBHYXRlVG9HYXRlU3BhY2UpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOmRpZmZZZW5kKSAoc3JjRGlmZlhlbmQ6ZGlmZlllbmQpIChzcmNEaWZmWGVuZDpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikgKHNyY0RpZmZYZW5kOmRpZmZZb3JpZ2luKSAoc3JjRGlmZlhlbmQ6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZb3JpZ2luKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIGlmKG5vVGFwTndlbGwgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSkpKSkgKEVTRG53VFhvcmlnaW4gPSAoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjICsgZXh0cmFTcmNTcGFjZSArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSAoZGlmZlhsb29wID0gc3JjRGlmZlhlbmQpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpkaWZmWWVuZCkgKGRpZmZYZW5kOmRpZmZZZW5kKSAoZGlmZlhlbmQ6RVNEbndUWWVuZCkgKEVTRG53VFhvcmlnaW46RVNEbndUWWVuZCkgKEVTRG53VFhvcmlnaW46ZGlmZllvcmlnaW4pKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46ZGlmZllvcmlnaW4pIChkaWZmWGVuZDpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWW9yaWdpbikgKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSBpZihub1RhcE53ZWxsIHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZZW5kKSkpKSAoRVNEbndUWG9yaWdpbiA9IChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMgKyAoMi4wICogRVNEbndHYXRlU3ApICsgbCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGlkTGF5ZXIgbGlzdCgoZGlmZlhvcmlnaW46ZGlmZllvcmlnaW4pIChkaWZmWGVuZDpkaWZmWWVuZCkpKSB3aGVuKGRpZmZJbXBsYW50IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gZGlmZkltcEVuYykgKGRpZmZZb3JpZ2luIC0gZGlmZkltcEVuYykpIGxpc3QoKGRpZmZYZW5kICsgZGlmZkltcEVuYykgKGRpZmZZZW5kICsgZGlmZkltcEVuYykpKSkpIHdoZW4oZGlmZkNvcmVJbXBsYW50IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZDb3JlSW1wRW5jKSAoZGlmZllvcmlnaW4gLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKGRpZmZYZW5kICsgZGlmZkNvcmVJbXBFbmMpIChkaWZmWWVuZCArIGRpZmZDb3JlSW1wRW5jKSkpKSkgd2hlbihodkxheWVyIChodmxseCA9IChkaWZmWG9yaWdpbiAtIGh2RGlmZkVuY2xvc3VyZSkpIChodmxseSA9IChkaWZmWW9yaWdpbiAtIGh2RGlmZkVuY2xvc3VyZSkpIChodnVyeCA9IChkaWZmWGVuZCArIGh2RGlmZkVuY2xvc3VyZSkpIChodnVyeSA9IChkaWZmWWVuZCArIGh2RGlmZkVuY2xvc3VyZSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBodkxheWVyIGxpc3QoKGh2bGx4Omh2bGx5KSAoaHZ1cng6aHZ1cnkpKSkpIChnYXRlWG9mZnNldCA9IDAuMCkgZm9yKGdhdGVOdW0gMSBtIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZmxhcmVkR2F0ZUlkIHNwcmludGYobmlsICJnJWQiIGdhdGVOdW0pICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJnYXRlTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoImdhdGVSZWNvZ25pdGlvbkxheWVyIiAibGlzdCIgcmdhdGVMYXllcikgbGlzdCgidyIgImZsb2F0IiB3KSBsaXN0KCJsIiAiZmxvYXQiIGwpIGxpc3QoImZsYXJlQW1vdW50X291dCIgImZsb2F0IiBmbGFyZVlhbW91bnRfb3V0KSBsaXN0KCJmbGFyZUFtb3VudF9pbiIgImZsb2F0IiBmbGFyZVlhbW91bnRfaW4pIGxpc3QoImZsYXJlRXh0ZW5zaW9uIiAiZmxvYXQiIGZsYXJlWWV4dGVuc2lvbikgbGlzdCgieE9mZnNldCIgImZsb2F0IiBnYXRlWG9mZnNldCkgbGlzdCgiZ2F0ZVRvR2F0ZVNwYWNlIiAiZmxvYXQiIEdhdGVUb0dhdGVTcGFjZSkpKSkgdW5sZXNzKGluc3QgZXJyb3IoIm5Fc2RUcmFuSW1wQ2FzY29kZUNsYXNzOiAgRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBmbGFyZWQgZ2F0ZSAlcyIgZmxhcmVkR2F0ZU5hbWUpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKG1vZGVsVGV4dFggPSAoZ2F0ZVhvZmZzZXQgKyAoKGNhYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpKSAvIDIpKSkgKG1vZGVsVGV4dFkgPSAoKGNhZGFyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhZGFkcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbW9kZWxUZXh0TGF5ZXIgbGlzdChtb2RlbFRleHRYIG1vZGVsVGV4dFkpIG1vZGVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbW9kZWxUZXh0TGF5ZXJTaXplKSAobW9kZWxUZXh0WCA9ICgoR2F0ZVRvR2F0ZVNwYWNlICsgbCkgKyAoZ2F0ZVhvZmZzZXQgKyAoKGNhYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpKSAvIDIpKSkpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbW9kZWxUZXh0TGF5ZXIgbGlzdChtb2RlbFRleHRYIG1vZGVsVGV4dFkpIG1vZGVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbW9kZWxUZXh0TGF5ZXJTaXplKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+bm9mbGFyZVBvaW50czEpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+dG9wRmxhcmVQb2ludHMpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj50b3BGbGFyZVBvaW50czEpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ib3R0b21GbGFyZVBvaW50cykpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIChtYXN0ZXJ+PmJvdHRvbUZsYXJlUG9pbnRzMSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgY29uZCgob2RkcChnYXRlTnVtKSAoZ2F0ZVhvZmZzZXQgPSAoZ2F0ZVhvZmZzZXQgKyBsICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIHRvdGFsRHJuTGVuZ3RoKSkpICh0IChnYXRlWG9mZnNldCA9IChnYXRlWG9mZnNldCArIGwgKyBsICsgR2F0ZVRvR2F0ZVNwYWNlICsgdG90YWxTcmNMZW5ndGgpKSkpKSBpZihub1RhcE53ZWxsICh2aWExWG9yaWdpbiA9ICgoLSBzcmNWaWFHYXRlU3BhY2UpICsgKC0gZXh0cmFTcmNTcGFjZSkgKyAoLSB2aWExV2lkdGgpICsgKC0gdmlhMVdpZHRoKSArICgtIHZpYTFTcGFjZSkpKSAodmlhMVhvcmlnaW4gPSAoKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpICsgKC0gdmlhMVdpZHRoKSkpKSAodmlhMVlvcmlnaW4gPSB2aWFFeHREaWZmWSkgaWYobm9UYXBOd2VsbCAodmlhMVhkZWx0YSA9ICh2aWExV2lkdGggKyB2aWExV2lkdGggKyB2aWExU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgc3JjVmlhR2F0ZVNwYWNlICsgbCArIEdhdGVUb0dhdGVTcGFjZSArIGwgKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKHZpYTFYZGVsdGEgPSAodmlhMVdpZHRoICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSArIGwgKyBHYXRlVG9HYXRlU3BhY2UgKyBsICsgZHJuVmlhR2F0ZVNwYWNlICsgZXh0cmFEcm5TcGFjZSkpKSAodGhlTmV0ID0gc05ldCkgY29uZCgoKChsYXllcjJMID0gKGxheWVyMkVuY1ZpYTEgKyB2aWExV2lkdGggKyBsYXllcjJFbmNWaWExKSkgPiAobGF5ZXIyTGEgPSAobGF5ZXIyRW5jVmlhMiArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSkgKGxheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKGxheWVyMkxhIC0gbGF5ZXIyTCkgLyAyLjApKSAobGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAoZml4KCgwLjk5OSArIChkZWx0YSAvIGxheWVyMmdyaWQpKSkgKiBsYXllcjJncmlkKSkpIChsYXllcjJMID0gbGF5ZXIyTGEpKSkgKHZpYTJQaXRjaCA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSAobGF5ZXIyVyA9ICgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyAocm93c09mQ29udGFjdHMgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSkpIChsYXllcjJXYSA9ICgoMi4wICogbGF5ZXIyRW5jVmlhMikgLSB2aWEyU3BhY2UpKSAocm93c09mQ29udGFjdHMyID0gMCkgd2hpbGUoKChsYXllcjJXYSAtIDFlLTA1KSA8IGxheWVyMlcpIChsYXllcjJXYSA9IChsYXllcjJXYSArIHZpYTJQaXRjaCkpIChyb3dzT2ZDb250YWN0czIgPSAocm93c09mQ29udGFjdHMyICsgMSkpKSAobGF5ZXIyV2EgPSAobGF5ZXIyV2EgLSB2aWEyUGl0Y2gpKSAocm93c09mQ29udGFjdHMyID0gKHJvd3NPZkNvbnRhY3RzMiAtIDEpKSAobGF5ZXIyWURlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpIGZvcihjb2x1bW4gMCBtIGNvbmQoKGV2ZW5wKGNvbHVtbikgKHRoZU5ldCA9IHNOZXQpKSAodCAodGhlTmV0ID0gZE5ldCkpKSAodmlhMVhlbmQgPSAodmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSAodmlhMVlsb29wID0gdmlhMVlvcmlnaW4pIGZvcihyb3cgMSByb3dzT2ZDb250YWN0cyBpZihub1RhcE53ZWxsIHRoZW4gKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOnZpYTFZbG9vcCkgKHZpYTFYZW5kOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoKHZpYTFYZW5kICsgdmlhMVNwYWNlKTp2aWExWWxvb3ApICgodmlhMVhlbmQgKyB2aWExU3BhY2UgKyB2aWExV2lkdGgpOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh2aWExWG9yaWdpbjp2aWExWWxvb3ApICh2aWExWGVuZDoodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpICh2aWExWWxvb3AgPSAodmlhMVlsb29wICsgdmlhMVBpdGNoKSkpKSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobm9UYXBOd2VsbCAobGF5ZXIyWG9yaWdpbiA9IG1pbigoKHZpYTFYb3JpZ2luICsgKDAuNSAqIHZpYTFTcGFjZSkgKyB2aWExV2lkdGgpIC0gKDAuNSAqIGxheWVyMldpZHRoKSkgKHZpYTFYb3JpZ2luICsgKC0gbGF5ZXIyRW5jVmlhMikpKSkgKGxheWVyMlhvcmlnaW4gPSBtaW4oKCh2aWExWG9yaWdpbiAtICgwLjUgKiBsYXllcjJXaWR0aCkpICsgKDAuNSAqIHZpYTFXaWR0aCkpICh2aWExWG9yaWdpbiArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSArICgtIGxheWVyMkVuY1ZpYTIpKSkpKSAobGF5ZXIyWG9yaWdpbiA9IChyb3VuZCgoKGxheWVyMlhvcmlnaW4gLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgZWxzZSAobGF5ZXIyWG9yaWdpbiA9ICh2aWExWG9yaWdpbiAtIGxheWVyMkRlbHRhVmlhMSkpKSAobGF5ZXIyWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGxheWVyMllEZWx0YVZpYTEpKSAobGF5ZXIyWWVuZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyVykpIGlmKChsYXllcjJXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobDJidmxDbnRybCA9IChsYXllcjJXaWR0aCAvIDMuMCkpIChsMmJ2bENudHJsID0gKHJvdW5kKCgobDJidmxDbnRybCAvIGxheWVyMmdyaWQpICsgMC4wMDEpKSAqIGxheWVyMmdyaWQpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KChsYXllcjJYb3JpZ2luICsgbDJidmxDbnRybCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpIGxpc3QobGF5ZXIyWG9yaWdpbiBsYXllcjJZb3JpZ2luKSBsaXN0KGxheWVyMlhvcmlnaW4gbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIGwyYnZsQ250cmwpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGxheWVyMlhvcmlnaW4gKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWEyV2lkdGgpICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSkgbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYb3JpZ2luIGxheWVyMllvcmlnaW4pIGxpc3QoKGxheWVyMlhvcmlnaW4gKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWEyV2lkdGgpICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgobGF5ZXIyWG9yaWdpbjpsYXllcjJZb3JpZ2luKSAoKGxheWVyMlhvcmlnaW4gKyBsYXllcjJMKTpsYXllcjJZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkpIGlmKG5vVGFwTndlbGwgdGhlbiAodmlhMlhvcmlnaW4gPSAoKHZpYTFYb3JpZ2luICsgKDAuNSAqIHZpYTFTcGFjZSkgKyB2aWExV2lkdGgpIC0gKCgwLjUgKiB2aWEyU3BhY2UpICsgdmlhMldpZHRoKSkpIGVsc2UgaWYoKHZpYTFWaWEyU3BhY2UgPiAwLjApIHRoZW4gKHZpYTJYb3JpZ2luID0gKHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoICsgdmlhMVZpYTJTcGFjZSkpIGVsc2UgKHZpYTJYb3JpZ2luID0gKGxheWVyMlhvcmlnaW4gKyBsYXllcjJFbmNWaWEyKSkpKSAodmlhMlhlbmQgPSAodmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSAodmlhMllsb29wID0gdmlhMllvcmlnaW4pIGZvcihyb3cgMSByb3dzT2ZDb250YWN0czIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHZpYTJYb3JpZ2luOnZpYTJZbG9vcCkgKHZpYTJYZW5kOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgaWYobm9UYXBOd2VsbCB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCgodmlhMlhvcmlnaW4gKyB2aWEyU3BhY2UgKyB2aWEyV2lkdGgpOnZpYTJZbG9vcCkgKCh2aWEyWG9yaWdpbiArIHZpYTJTcGFjZSArIHZpYTJXaWR0aCArIHZpYTJXaWR0aCk6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIGVsc2Ugd2hlbigodmlhMVZpYTJTcGFjZSA+IDAuMCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKCh2aWExWG9yaWdpbiArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSk6dmlhMllsb29wKSAoKHZpYTFYb3JpZ2luICsgKC0gdmlhMVZpYTJTcGFjZSkpOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSAodmlhMllsb29wID0gKHZpYTJZbG9vcCArIHZpYTJQaXRjaCkpKSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gaWYobm9UYXBOd2VsbCAobGF5ZXIzWG9yaWdpbiA9ICgodmlhMVhvcmlnaW4gLSAoMC41ICogbGF5ZXIzV2lkdGgpKSArICgwLjUgKiB2aWExU3BhY2UpICsgdmlhMVdpZHRoKSkgKGxheWVyM1hvcmlnaW4gPSAoKHZpYTFYb3JpZ2luIC0gKDAuNSAqIGxheWVyM1dpZHRoKSkgKyAoMC41ICogdmlhMVdpZHRoKSkpKSAobGF5ZXIzWG9yaWdpbiA9IChyb3VuZCgoKGxheWVyM1hvcmlnaW4gLyBsYXllcjNncmlkKSArIDAuMDAxKSkgKiBsYXllcjNncmlkKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGwzYnZsQ250cmwgPSAobGF5ZXIzV2lkdGggLyAzLjApKSAobDNidmxDbnRybCA9IChyb3VuZCgoKGwzYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgobGF5ZXIzWG9yaWdpbiArIGwzYnZsQ250cmwpICh2aWEyWW9yaWdpbiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KGxheWVyM1hvcmlnaW4gKHZpYTJZb3JpZ2luICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KGxheWVyM1hvcmlnaW4gKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgobGF5ZXIzWG9yaWdpbiArIGwzYnZsQ250cmwpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGggKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsYXllcjNXaWR0aCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgobGF5ZXIzWG9yaWdpbiArIGxheWVyM1dpZHRoKSAodmlhMllvcmlnaW4gKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsYXllcjNXaWR0aCArICgtIGwzYnZsQ250cmwpKSAodmlhMllvcmlnaW4gKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1hvcmlnaW4gKHZpYTJZb3JpZ2luICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGgpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgoKHZpYTJYb3JpZ2luIC0gbGF5ZXIzRW5jVmlhMik6KHZpYTJZb3JpZ2luIC0gbGF5ZXIzRW5jVmlhMikpICgodmlhMlhlbmQgKyBsYXllcjNFbmNWaWEyKToodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHRoZU5ldCBkYmlkKSkgY29uZCgoKGNvbHVtbiA9PSAwKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIpIGFjY2Vzc0RpcikpICgoY29sdW1uID09IG0pIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0RpcikpICh0IHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iKSBhY2Nlc3NEaXIpKSkgKHZpYTFYb3JpZ2luID0gKHZpYTFYb3JpZ2luICsgdmlhMVhkZWx0YSkpKSAodGFwV2lkdGhJbklSID0gbWF4KGlubmVyUmluZ1RhcFdpZHRoICh2aWExV2lkdGggKyAoMi4wICogaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSkgKGlyVmlhT2Zmc2V0ID0gKGZpeCgoKCgodGFwV2lkdGhJbklSIC8gMi4wKSAtICh2aWExV2lkdGggLyAyLjApKSAvIHZpYTFncmlkKSArIDAuOTk5KSkgKiB2aWExZ3JpZCkpIChpclRhcFhvcmlnaW4gPSAoZGlmZlhvcmlnaW4gLSBtaW5EaWZmVGFwUmluZ1NwYWNlIC0gZXh0cmFMZWZ0U3BhY2UgLSB0YXBXaWR0aEluSVIpKSAoaXJUYXBZb3JpZ2luID0gKHZpYTFZb3JpZ2luIC0gZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCAtIHZpYTFXaWR0aCAtIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkpIChpclRhcEwgPSAoKGRpZmZYZW5kICsgbWluRGlmZlRhcFJpbmdTcGFjZSArIGV4dHJhUmlnaHRTcGFjZSArIHRhcFdpZHRoSW5JUikgLSBpclRhcFhvcmlnaW4pKSAoaXJUYXBXID0gKCh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCArIHZpYTFXaWR0aCArIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkgLSBpclRhcFlvcmlnaW4pKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbklSKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlyVGFwVykgbGlzdCgibCIgImZsb2F0IiBpclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXJUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlyVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB0YXBXaWR0aEluSVIpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgdGFwR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgaXJOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgaXJOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgaXJOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgaXJOZXQpIHdoZW4odGFwU3ViSW1wbGFudCAoaXRyaVhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luIC0gdGFwU3ViSW1wRW5jKSkgKGl0cmlZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiAtIHRhcFN1YkltcEVuYykpIChpdHJpUmluZ1dpZHRoID0gKHRhcFdpZHRoSW5JUiArIHRhcFN1YkltcEVuYyArIHRhcFN1YkltcEVuYykpIChpdHJpVyA9IChpclRhcFcgKyB0YXBTdWJJbXBFbmMgKyB0YXBTdWJJbXBFbmMpKSAoaXRyaUwgPSAoaXJUYXBMICsgdGFwU3ViSW1wRW5jICsgdGFwU3ViSW1wRW5jKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpdHJpVykgbGlzdCgibCIgImZsb2F0IiBpdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwU3ViSW1wbGFudCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGl0cmlSaW5nV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgbmlsKSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHhDb29yZCA9IChpclRhcFhvcmlnaW4gKyBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSAoeUNvb3JkID0gKGlyVGFwWW9yaWdpbiArIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSB3aGVuKGZpbGxlZFJpbmdzICh2aWExV2lkdGhJbklSID0gKHRhcFdpZHRoSW5JUiAtIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSAodmlhMVhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luICsgaW5uZXJSaW5nVGFwRW5jVmlhMSkpICh2aWExWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gKyBpbm5lclJpbmdUYXBFbmNWaWExKSkpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIml2MXIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChpclRhcFcgLSAoMi4wICogaW5uZXJSaW5nVGFwRW5jVmlhMSkpIChpclRhcFcgLSAoMi4wICogbWF4KGlyVmlhT2Zmc2V0IGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChpclRhcEwgLSAoMi4wICogaW5uZXJSaW5nVGFwRW5jVmlhMSkpIChpclRhcEwgLSAoMi4wICogbWF4KGlyVmlhT2Zmc2V0IGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFYb3JpZ2luIHhDb29yZCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVlvcmlnaW4geUNvb3JkKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFXaWR0aEluSVIgdmlhMVdpZHRoKSkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpckwydyA9IGlyVGFwVykgKGlyTDJsID0gaXJUYXBMKSAoaXJMMnhEZWx0YSA9IGlyVGFwWG9yaWdpbikgKGlyTDJ5RGVsdGEgPSBpclRhcFlvcmlnaW4pIChpckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkgaW5uZXJSaW5nTWV0YWxXaWR0aCkpIGVsc2UgKGlyTDJ3ID0gKGlyVGFwVyArICgtMi4wICogbWF4KGlyVmlhT2Zmc2V0IGlubmVyUmluZ1RhcEVuY1ZpYTEpKSArICgyLjAgKiBsYXllcjJFbmNWaWExKSkpIChpckwybCA9IChpclRhcEwgKyAoLTIuMCAqIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnhEZWx0YSA9ICh4Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChpckwyeURlbHRhID0gKHlDb29yZCArICgtIGxheWVyMkVuY1ZpYTEpKSkgKGlyTDJyaW5nVyA9IG1heCgoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgdmlhMVdpZHRoKSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSkpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSBpckwycmluZ1cpICh1cHBlckxlZnRCTCA9IGlyTDJyaW5nVykgKGxvd2VyUmlnaHRCTCA9IGlyTDJyaW5nVykgKHVwcGVyUmlnaHRCTCA9IGlyTDJyaW5nVykgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpbDJyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFcgaXJMMncpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwTCBpckwybCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBYb3JpZ2luIGlyTDJ4RGVsdGEpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwWW9yaWdpbiBpckwyeURlbHRhKSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdGFwV2lkdGhJbklSIGlyTDJyaW5nVykpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIyZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgaXJOZXQpIHdoZW4oKGxheWVyMyAmJiBmdWxseVN0cmFwICYmIChmdWxseVN0cmFwICE9ICJGQUxTRSIpKSB3aGVuKGZpbGxlZFJpbmdzICh2aWEyRW5jID0gbWF4KGxheWVyMkVuY1ZpYTIgbGF5ZXIzRW5jVmlhMikpICh2aWEyV2lkdGhJUiA9IChpbm5lclJpbmdNZXRhbFdpZHRoIC0gKDIuMCAqIHZpYTJFbmMpKSkgKHZpYTJCTCA9ICh2aWEyV2lkdGhJUiArIHZpYTJTcGFjZSkpKSAoaXYyckVuYyA9ICgoaXJMMnJpbmdXIC0gaWYoZmlsbGVkUmluZ3MgdmlhMldpZHRoSVIgdmlhMldpZHRoKSkgLyAyLjApKSAodGVtcFNpemUgPSAoaXYyckVuYyAvIHZpYTJncmlkKSkgKGl2MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJpdjJyIiAoKGlyTDJ4RGVsdGEgKyBpdjJyRW5jKTooaXJMMnlEZWx0YSArIGl2MnJFbmMpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChpckwydyAtICgyLjAgKiBpdjJyRW5jKSkpIGxpc3QoImwiICJmbG9hdCIgKGlyTDJsIC0gKDIuMCAqIGl2MnJFbmMpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMldpZHRoSVIgdmlhMldpZHRoKSkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTJCTCBsb3dlckxlZnRCTCkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMkJMIHVwcGVyTGVmdEJMKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWEyQkwgbG93ZXJSaWdodEJMKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWEyQkwgdXBwZXJSaWdodEJMKSkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMmdyaWQpKSkgaWYoKGlubmVyUmluZ01ldGFsV2lkdGggPiAwLjApIHRoZW4gKGlyTDN3ID0gaXJMMncpIChpckwzbCA9IGlyTDJsKSAoaXJMM3hEZWx0YSA9IGlyTDJ4RGVsdGEpIChpckwzeURlbHRhID0gaXJMMnlEZWx0YSkgKGlyTDNyaW5nVyA9IG1heCgoKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpIGlubmVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChpckwzdyA9IChpckwydyArICgtMi4wICogaXYyckVuYykgKyAoMi4wICogaXJMYXllcjNFbmNWaWEyKSkpIChpckwzbCA9IChpckwybCArICgtMi4wICogaXYyckVuYykgKyAoMi4wICogaXJMYXllcjNFbmNWaWEyKSkpIChpckwzeERlbHRhID0gKGlyTDJ4RGVsdGEgKyBpdjJyRW5jICsgKC0gaXJMYXllcjNFbmNWaWEyKSkpIChpckwzeURlbHRhID0gKGlyTDJ5RGVsdGEgKyBpdjJyRW5jICsgKC0gaXJMYXllcjNFbmNWaWEyKSkpIChpckwzcmluZ1cgPSAoKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gaXJMM3JpbmdXKSAodXBwZXJMZWZ0QkwgPSBpckwzcmluZ1cpIChsb3dlclJpZ2h0QkwgPSBpckwzcmluZ1cpICh1cHBlclJpZ2h0QkwgPSBpckwzcmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaWwzciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaXJMM3cpIGxpc3QoImwiICJmbG9hdCIgaXJMM2wpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXJMM3hEZWx0YSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpckwzeURlbHRhKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpckwzcmluZ1cpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIzZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgdCkpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IGlyTmV0KSkgKHBpbiA9IChkYkNyZWF0ZVBpbiBpck5ldCBkYmlkMSkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDIpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQzKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBpck5ldCBkYmlkNCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpICh0YXBXaWR0aEluT1IgPSBtYXgob3V0ZXJSaW5nVGFwV2lkdGggKCgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSArIHZpYTFXaWR0aCkpKSAob3V0ZXJUYXBEZWx0YSA9ICh3ZWxsVGFwU3BhY2UgKyB3ZWxsRW5jVGFwICsgdGFwV2lkdGhJbk9SKSkgKG9yVGFwWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gLSBvdXRlclRhcERlbHRhKSkgKG9yVGFwWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gLSBvdXRlclRhcERlbHRhKSkgKG9yVGFwVyA9IChpclRhcFcgKyAoMi4wICogb3V0ZXJUYXBEZWx0YSkpKSAob3JUYXBMID0gKGlyVGFwTCArICgyLjAgKiBvdXRlclRhcERlbHRhKSkpIHdoZW4oKGxheWVyMyAmJiBmdWxseVN0cmFwICYmIChmdWxseVN0cmFwICE9ICJGQUxTRSIpKSAob3JMYXllcjNYb3JpZ2luQSA9IChpckwzeERlbHRhIC0gb3JpckxheWVyM1NwYWNlIC0gb3JMYXllcjNXaWR0aCkpIChvckxheWVyM1hvcmlnaW5CID0gKG9yVGFwWG9yaWdpbiArICh0YXBXaWR0aEluT1IgLyAyLjApICsgKG9yTGF5ZXIzV2lkdGggLyAtMi4wKSkpIHdoZW4oKG9yTGF5ZXIzWG9yaWdpbkEgPCBvckxheWVyM1hvcmlnaW5CKSAoZXh0cmFTcGFjZSA9IChvckxheWVyM1hvcmlnaW5CIC0gb3JMYXllcjNYb3JpZ2luQSkpICh0ZW1wU2l6ZSA9IChleHRyYVNwYWNlIC8gdGFwR3JpZCkpIChleHRyYVNwYWNlID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdGFwR3JpZCkpIChvclRhcFhvcmlnaW4gPSAob3JUYXBYb3JpZ2luIC0gZXh0cmFTcGFjZSkpIChvclRhcFlvcmlnaW4gPSAob3JUYXBZb3JpZ2luIC0gZXh0cmFTcGFjZSkpIChvclRhcFcgPSAob3JUYXBXICsgKDIuMCAqIGV4dHJhU3BhY2UpKSkgKG9yVGFwTCA9IChvclRhcEwgKyAoMi4wICogZXh0cmFTcGFjZSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvd3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChvclRhcFcgKyAoMi4wICogd2VsbEVuY1RhcCkpKSBsaXN0KCJsIiAiZmxvYXQiIChvclRhcEwgKyAoMi4wICogd2VsbEVuY1RhcCkpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIChvclRhcFhvcmlnaW4gLSB3ZWxsRW5jVGFwKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAob3JUYXBZb3JpZ2luIC0gd2VsbEVuY1RhcCkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiICh0YXBXaWR0aEluT1IgKyAoMi4wICogd2VsbEVuY1RhcCkpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgd2VsbEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgd2VsbExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB3ZWxsTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgd2VsbExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIGlmKHRhcEVkZ2VzQXQ0NSB0aGVuIChiZXZlbExlbmd0aCA9ICgwLjYgKiB0YXBXaWR0aEluT1IpKSAoYmV2ZWxMZW5ndGggPSAocm91bmQoKChiZXZlbExlbmd0aCAvIHRhcEdyaWQpICsgMC4wMDEpKSAqIHRhcEdyaWQpKSAobG93ZXJMZWZ0QkwgPSBiZXZlbExlbmd0aCkgKHVwcGVyTGVmdEJMID0gYmV2ZWxMZW5ndGgpIChsb3dlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgKHVwcGVyUmlnaHRCTCA9IGJldmVsTGVuZ3RoKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm90ciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgb3JUYXBXKSBsaXN0KCJsIiAiZmxvYXQiIG9yVGFwTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBvclRhcFhvcmlnaW4pIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgb3JUYXBZb3JpZ2luKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB0YXBXaWR0aEluT1IpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgdGFwR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgb3JOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgb3JOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgb3JOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRhcExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgb3JOZXQpIHdoZW4odGFwV2VsbEltcGxhbnQgKG90cmlYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSAob3RyaVlvcmlnaW4gPSAob3JUYXBZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIChvdHJpUmluZ1dpZHRoID0gKHRhcFdpZHRoSW5PUiArIHRhcFdlbGxJbXBFbmMgKyB0YXBXZWxsSW1wRW5jKSkgKG90cmlXID0gKG9yVGFwVyArIHRhcFdlbGxJbXBFbmMgKyB0YXBXZWxsSW1wRW5jKSkgKG90cmlMID0gKG9yVGFwTCArIHRhcFdlbGxJbXBFbmMgKyB0YXBXZWxsSW1wRW5jKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm90cmkiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIG90cmlXKSBsaXN0KCJsIiAiZmxvYXQiIG90cmlMKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIG90cmlYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIG90cmlZb3JpZ2luKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiB0YXBXZWxsSW1wbGFudCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIG90cmlSaW5nV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgbmlsKSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkpIChvclZpYU9mZnNldCA9IChmaXgoKCgoKHRhcFdpZHRoSW5PUiAvIDIuMCkgLSAodmlhMVdpZHRoIC8gMi4wKSkgLyB2aWExZ3JpZCkgKyAwLjk5OSkpICogdmlhMWdyaWQpKSAoeENvb3JkID0gKG9yVGFwWG9yaWdpbiArIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkpICh5Q29vcmQgPSAob3JUYXBZb3JpZ2luICsgbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkgKGxvd2VyTGVmdEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpICh1cHBlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAobG93ZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpICh1cHBlclJpZ2h0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgdW5sZXNzKChmaWxsZWRSaW5ncyB8fCBsYXllcjJFZGdlc0F0NDUgfHwgdGFwRWRnZXNBdDQ1KSAoZXh0cmFWaWExUmlnaHRPcmlnaW4gPSAoeENvb3JkICsgKG9yVGFwTCAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpKSArICgtIHZpYTFXaWR0aCkpKSAoZXh0cmFWaWExVG9wT3JpZ2luID0gKHlDb29yZCArIChvclRhcFcgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkgKyAoLSB2aWExV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoeENvb3JkIHlDb29yZCkgbGlzdCgoeENvb3JkICsgdmlhMVdpZHRoKSAoeUNvb3JkICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdChleHRyYVZpYTFSaWdodE9yaWdpbiB5Q29vcmQpIGxpc3QoKGV4dHJhVmlhMVJpZ2h0T3JpZ2luICsgdmlhMVdpZHRoKSAoeUNvb3JkICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh4Q29vcmQgZXh0cmFWaWExVG9wT3JpZ2luKSBsaXN0KCh4Q29vcmQgKyB2aWExV2lkdGgpIChleHRyYVZpYTFUb3BPcmlnaW4gKyB2aWExV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KGV4dHJhVmlhMVJpZ2h0T3JpZ2luIGV4dHJhVmlhMVRvcE9yaWdpbikgbGlzdCgoZXh0cmFWaWExUmlnaHRPcmlnaW4gKyB2aWExV2lkdGgpIChleHRyYVZpYTFUb3BPcmlnaW4gKyB2aWExV2lkdGgpKSkpKSBpZihsYXllcjMgdGhlbiAob3JMYXllcjNFbmNWaWEyID0gKChvckxheWVyM1dpZHRoIC0gdmlhMldpZHRoKSAvIDIuMCkpICh0ZW1wU2l6ZSA9IChvckxheWVyM0VuY1ZpYTIgLyBsYXllcjNncmlkKSkgKG9yTGF5ZXIzRW5jVmlhMiA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIGxheWVyM2dyaWQpKSAob3V0ZXJSaW5nTWV0YWxXaWR0aCA9ICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpIChvckwydyA9IChvclRhcFcgKyAoLSB0YXBXaWR0aEluT1IpICsgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIChvckwybCA9IChvclRhcEwgKyAoLSB0YXBXaWR0aEluT1IpICsgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIChvckwyeERlbHRhID0gKG9yVGFwWG9yaWdpbiArICgodGFwV2lkdGhJbk9SICsgKC0gb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIC8gMi4wKSkpIChvckwyeERlbHRhID0gKGZpeCgoKG9yTDJ4RGVsdGEgLyBsYXllcjJncmlkKSArIDAuOTk5KSkgKiBsYXllcjJncmlkKSkgKG9yTDJ5RGVsdGEgPSAob3JUYXBZb3JpZ2luICsgKCh0YXBXaWR0aEluT1IgKyAoLSBvdXRlclJpbmdNZXRhbFdpZHRoKSkgLyAyLjApKSkgKG9yTDJ5RGVsdGEgPSAoZml4KCgob3JMMnlEZWx0YSAvIGxheWVyMmdyaWQpICsgMC45OTkpKSAqIGxheWVyMmdyaWQpKSAob3JMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIG9yTGF5ZXIzV2lkdGgpKSBlbHNlIChvckwydyA9IChvclRhcFcgKyAoLTIuMCAqIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAob3JMMmwgPSAob3JUYXBMICsgKC0yLjAgKiBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJ4RGVsdGEgPSAoeENvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAob3JMMnlEZWx0YSA9ICh5Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChvckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkgdW5sZXNzKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MXIiICh4Q29vcmQ6eUNvb3JkKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChvclRhcFcgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoImwiICJmbG9hdCIgKG9yVGFwTCAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMUxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMVdpZHRoKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWExU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMWdyaWQpKSkpIHdoZW4oZmlsbGVkUmluZ3MgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAib3YxciIgKDA6MCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JUYXBXIC0gKDIuMCAqIG91dGVyUmluZ1RhcEVuY1ZpYTEpIC0gKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkgbGlzdCgibCIgImZsb2F0IiAob3JUYXBMIC0gKDIuMCAqIG91dGVyUmluZ1RhcEVuY1ZpYTEpIC0gKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAob3JUYXBYb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSArIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIChvclRhcFlvcmlnaW4gKyBvdXRlclJpbmdUYXBFbmNWaWExICsgaW5uZXJSaW5nVGFwRW5jVmlhMSkpIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWExTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiAodGFwV2lkdGhJbk9SIC0gb3V0ZXJSaW5nVGFwRW5jVmlhMSAtICgyLjAgKiBpbm5lclJpbmdUYXBFbmNWaWExKSkpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMVdpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTFTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSBvckwycmluZ1cpICh1cHBlckxlZnRCTCA9IG9yTDJyaW5nVykgKGxvd2VyUmlnaHRCTCA9IG9yTDJyaW5nVykgKHVwcGVyUmlnaHRCTCA9IG9yTDJyaW5nVykgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvbDJyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBXIC0gKDIuMCAqIG91dGVyUmluZ1RhcEVuY1ZpYTEpKSBvckwydykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwTCAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSkgb3JMMmwpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFhvcmlnaW4gKyBvdXRlclJpbmdUYXBFbmNWaWExKSBvckwyeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBZb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSkgb3JMMnlEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIGxheWVyMikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzICh0YXBXaWR0aEluT1IgLSBvdXRlclJpbmdUYXBFbmNWaWExKSBvckwycmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IG9yTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKG92MnJFbmMgPSAoKG9yTDJyaW5nVyAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAob3YyckVuYyAvIHZpYTJncmlkKSkgKG92MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gdmlhMlNwYWNlKSAodXBwZXJMZWZ0QkwgPSB2aWEyU3BhY2UpIChsb3dlclJpZ2h0QkwgPSB2aWEyU3BhY2UpICh1cHBlclJpZ2h0QkwgPSB2aWEyU3BhY2UpKSB3aGVuKGZpbGxlZFJpbmdzICh2aWEyV2lkdGhPUiA9IChvckxheWVyM1dpZHRoIC0gKDIuMCAqIHZpYTJFbmMpKSkgKHZpYTJCTCA9ICh2aWEyV2lkdGhPUiArIHZpYTJTcGFjZSkpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MnIiICgwOjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKG9yVGFwVyAtICgyLjAgKiAodmlhMkVuYyArIG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoImwiICJmbG9hdCIgKG9yVGFwTCAtICgyLjAgKiAodmlhMkVuYyArIG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgKG9yVGFwWG9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEgKyB2aWEyRW5jKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAob3JUYXBZb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSArIHZpYTJFbmMpKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMldpZHRoT1IpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSB1bmxlc3MoZmlsbGVkUmluZ3MgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAib3YyciIgKChvckwyeERlbHRhICsgb3YyckVuYyk6KG9yTDJ5RGVsdGEgKyBvdjJyRW5jKSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JMMncgLSAoMi4wICogb3YyckVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChvckwybCAtICgyLjAgKiBvdjJyRW5jKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSAob3JMM3cgPSAob3JMMncgKyAoLTIuMCAqIG92MnJFbmMpICsgKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM2wgPSAob3JMMmwgKyAoLTIuMCAqIG92MnJFbmMpICsgKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM3hEZWx0YSA9IChvckwyeERlbHRhICsgb3YyckVuYyArICgtIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM3lEZWx0YSA9IChvckwyeURlbHRhICsgb3YyckVuYyArICgtIG9yTGF5ZXIzRW5jVmlhMikpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSBvckxheWVyM1dpZHRoKSAodXBwZXJMZWZ0QkwgPSBvckxheWVyM1dpZHRoKSAobG93ZXJSaWdodEJMID0gb3JMYXllcjNXaWR0aCkgKHVwcGVyUmlnaHRCTCA9IG9yTGF5ZXIzV2lkdGgpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib2wzciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSkgb3JMM3cpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEwgLSAoMi4wICogb3V0ZXJSaW5nVGFwRW5jVmlhMSkpIG9yTDNsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBYb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSkgb3JMM3hEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWW9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEpIG9yTDN5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBvckxheWVyM1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyM2dyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iIHQpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBvck5ldCkpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDEpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQyKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkMykpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSkAKGRpZmZMYXllciBnYXRlTGF5ZXIgcmdhdGVMYXllciB3ZWxsTGF5ZXIgdGFwTGF5ZXIgdmlhMUxheWVyIGxheWVyMiB2aWEyTGF5ZXIgbGF5ZXIzIGlkTGF5ZXIgZGlmZkltcGxhbnQgZGlmZkltcEVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBFbmMgdGFwV2VsbEltcGxhbnQgdGFwV2VsbEltcEVuYyB0YXBTdWJJbXBsYW50IHRhcFN1YkltcEVuYyBzcmNWaWFHYXRlU3BhY2UgZHJuVmlhR2F0ZVNwYWNlIHZpYUV4dERpZmZZIG1pbkRpZmZUYXBSaW5nU3BhY2UgR2F0ZVRvR2F0ZVNwYWNlIGZsYXJlWWFtb3VudF9vdXQgZmxhcmVZYW1vdW50X2luIGZsYXJlWWV4dGVuc2lvbiB2aWExV2lkdGggdmlhMVNwYWNlIHRhcEVuY1ZpYTEgaW5uZXJSaW5nVGFwRW5jVmlhMSBvdXRlclJpbmdUYXBFbmNWaWExIHdlbGxFbmNUYXAgRVNEbndFbmNWaWExIEVTRG53R2F0ZVNwIGlubmVyUmluZ1RhcFdpZHRoIG91dGVyUmluZ1RhcFdpZHRoIHdlbGxUYXBTcGFjZSBsYXllcjJFbmNWaWExIHZpYTJXaWR0aCB2aWEyU3BhY2UgdmlhMVZpYTJTcGFjZSBsYXllcjJFbmNWaWEyIGxheWVyMldpZHRoIGxheWVyM0VuY1ZpYTIgbGF5ZXIzV2lkdGggaW5uZXJSaW5nTWV0YWxXaWR0aCBpckxheWVyM0VuY1ZpYTIgb3JMYXllcjNXaWR0aCBtaW5XIG1heFcgbWluVG90YWxXIGdlbmVyaWNSaW5nTmFtZSByaXZldGVkUmluZ05hbWUgZmxhcmVkR2F0ZU5hbWUgZGlmZkdyaWQgdGFwR3JpZCB3ZWxsR3JpZCBwb2x5R3JpZCB2aWExZ3JpZCBsYXllcjJncmlkIHZpYTJncmlkIGxheWVyM2dyaWQgdGFwRWRnZXNBdDQ1IGxheWVyMkVkZ2VzQXQ0NSBsYXllcjNFZGdlc0F0NDUgbm9UYXBOd2VsbCBodkxheWVyIGh2RGlmZkVuY2xvc3VyZSBtb2RlbFRleHRMYXllciBtb2RlbFRleHRMYXllclNpemUgbW9kZWxUZXh0IG1vZGVsV21heCBtb2RlbFdtaW4gbW9kZWxMbWF4IG1vZGVsTG1pbiBmaWxsZWRSaW5ncyB3IGwgbSBleHRyYUxlZnRTcGFjZSBleHRyYVJpZ2h0U3BhY2Ugc2hyaW5rUGVyY2VudCBleHRyYVNyY1NwYWNlIGV4dHJhRHJuU3BhY2UgZnVsbHlTdHJhcCBkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgdmlhRXh0RGlmZlggb3JpckxheWVyM1NwYWNlIGdOZXQgc05ldCBkTmV0IGlyTmV0IG9yTmV0IHNjYWxlTXVsdCB2aWExUG9seUdyaWQgc2l6ZUFuZEdyaWQgdGhlU2l6ZSB0aGVHcmlkIHRlbXBTaXplIGtsdWRnZSB0bXBPckxheWVyV2lkdGggdG1wT3JMYXllckdyaWQgdG1wVmlhV2lkdGggdG1wVmlhR3JpZCB2aWExUGl0Y2ggdGFyZ2V0Um93cyByb3dzT2ZDb250YWN0cyBmbGFyZWRHYXRlSWQgcmluZ0lkIHJpdmV0ZWRSaW5nSWQgZGlmZlhvcmlnaW4gZGlmZllvcmlnaW4gdG90YWxEcm5MZW5ndGggdG90YWxTcmNMZW5ndGggZGlmZlhlbmQgZGlmZlllbmQgRVNEbndUV2lkdGhEcm4gRVNEbndUV2lkdGhTcmMgRVNEbndUWG9yaWdpbiBFU0Rud1RZb3JpZ2luIEVTRG53VFllbmQgZGlmZlhsb29wIGRiaWQgc2VjdGlvbiBkcm5EaWZmWGVuZCBzcmNEaWZmWGVuZCBodmxseCBodmxseSBodnVyeCBodnVyeSBnYXRlWG9mZnNldCBnYXRlTnVtIGluc3QgbWFzdGVyIG1vZGVsVGV4dFggbW9kZWxUZXh0WSBwaW5pZCB2aWExWG9yaWdpbiB2aWExWW9yaWdpbiB2aWExWGRlbHRhIHRoZU5ldCBsYXllcjJMIGxheWVyMkxhIGxheWVyMkRlbHRhVmlhMSBkZWx0YSB2aWEyUGl0Y2ggbGF5ZXIyVyBsYXllcjJXYSByb3dzT2ZDb250YWN0czIgbGF5ZXIyWURlbHRhVmlhMSBjb2x1bW4gdmlhMVhlbmQgdmlhMVlsb29wIHJvdyBsYXllcjJYb3JpZ2luIGxheWVyMllvcmlnaW4gbGF5ZXIyWWVuZCBsMmJ2bENudHJsIHZpYTJYb3JpZ2luIHZpYTJYZW5kIHZpYTJZb3JpZ2luIHZpYTJZbG9vcCBsYXllcjNYb3JpZ2luIGwzYnZsQ250cmwgdGFwV2lkdGhJbklSIGlyVmlhT2Zmc2V0IGlyVGFwWG9yaWdpbiBpclRhcFlvcmlnaW4gaXJUYXBMIGlyVGFwVyBiZXZlbExlbmd0aCBsb3dlckxlZnRCTCB1cHBlckxlZnRCTCBsb3dlclJpZ2h0QkwgdXBwZXJSaWdodEJMIHRoZU1hc3RlciBpdHJpWG9yaWdpbiBpdHJpWW9yaWdpbiBpdHJpUmluZ1dpZHRoIGl0cmlXIGl0cmlMIHhDb29yZCB5Q29vcmQgdmlhMVdpZHRoSW5JUiBpckwydyBpckwybCBpckwyeERlbHRhIGlyTDJ5RGVsdGEgaXJMMnJpbmdXIGRiaWQxIGRiaWQyIGRiaWQzIGRiaWQ0IHZpYTJFbmMgdmlhMldpZHRoSVIgdmlhMkJMIGl2MnJFbmMgaXJMM3cgaXJMM2wgaXJMM3hEZWx0YSBpckwzeURlbHRhIGlyTDNyaW5nVyBwaW4gdGFwV2lkdGhJbk9SIG91dGVyVGFwRGVsdGEgb3JUYXBYb3JpZ2luIG9yVGFwWW9yaWdpbiBvclRhcFcgb3JUYXBMIG9yTGF5ZXIzWG9yaWdpbkEgb3JMYXllcjNYb3JpZ2luQiBleHRyYVNwYWNlIG90cmlYb3JpZ2luIG90cmlZb3JpZ2luIG90cmlSaW5nV2lkdGggb3RyaVcgb3RyaUwgb3JWaWFPZmZzZXQgZXh0cmFWaWExUmlnaHRPcmlnaW4gZXh0cmFWaWExVG9wT3JpZ2luIG9yTGF5ZXIzRW5jVmlhMiBvdXRlclJpbmdNZXRhbFdpZHRoIG9yTDJ3IG9yTDJsIG9yTDJ4RGVsdGEgb3JMMnlEZWx0YSBvckwycmluZ1cgb3YyckVuYyB2aWEyV2lkdGhPUiBvckwzdyBvckwzbCBvckwzeERlbHRhIG9yTDN5RGVsdGEpACgodyAwLjApIChsIDAuMCkgKG0gMCkgKGV4dHJhTGVmdFNwYWNlIDAuMCkgKGV4dHJhUmlnaHRTcGFjZSAwLjApIChzaHJpbmtQZXJjZW50IDAuMCkgKGV4dHJhU3JjU3BhY2UgMC4wKSAoZXh0cmFEcm5TcGFjZSAwLjApIChmdWxseVN0cmFwICJGQUxTRSIpIChkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIDAuMCkgKGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgMC4wKSAodmlhRXh0RGlmZlggMC4wKSAob3JpckxheWVyM1NwYWNlIDAuMCkpACgoZGlmZkxheWVyICJ5MCIpIChnYXRlTGF5ZXIgInkxIikgKHJnYXRlTGF5ZXIgInkyIikgKHdlbGxMYXllciAieTMiKSAodGFwTGF5ZXIgInk0IikgKHZpYTFMYXllciAieTUiKSAobGF5ZXIyICJ5NiIpICh2aWEyTGF5ZXIgInk3IikgKGxheWVyMyAieTgiKSAoaWRMYXllciAieTkiKSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyAwLjApIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBFbmMgMC4wKSAodGFwV2VsbEltcGxhbnQgbmlsKSAodGFwV2VsbEltcEVuYyAwLjApICh0YXBTdWJJbXBsYW50IG5pbCkgKHRhcFN1YkltcEVuYyAwLjApIChzcmNWaWFHYXRlU3BhY2UgMC4wKSAoZHJuVmlhR2F0ZVNwYWNlIDAuMCkgKHZpYUV4dERpZmZZIDAuMCkgKG1pbkRpZmZUYXBSaW5nU3BhY2UgMC4wKSAoR2F0ZVRvR2F0ZVNwYWNlIDAuMCkgKGZsYXJlWWFtb3VudF9vdXQgMC4wKSAoZmxhcmVZYW1vdW50X2luIDAuMCkgKGZsYXJlWWV4dGVuc2lvbiAwLjApICh2aWExV2lkdGggMC4wKSAodmlhMVNwYWNlIDAuMCkgKHRhcEVuY1ZpYTEgMC4wKSAoaW5uZXJSaW5nVGFwRW5jVmlhMSAwLjApIChvdXRlclJpbmdUYXBFbmNWaWExIDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAoRVNEbndFbmNWaWExIDAuMCkgKEVTRG53R2F0ZVNwIDAuMCkgKGlubmVyUmluZ1RhcFdpZHRoIDAuMCkgKG91dGVyUmluZ1RhcFdpZHRoIDAuMCkgKHdlbGxUYXBTcGFjZSAwLjApIChsYXllcjJFbmNWaWExIDAuMCkgKHZpYTJXaWR0aCAwLjApICh2aWEyU3BhY2UgMC4wKSAodmlhMVZpYTJTcGFjZSAwLjApIChsYXllcjJFbmNWaWEyIDAuMCkgKGxheWVyMldpZHRoIDAuMCkgKGxheWVyM0VuY1ZpYTIgMC4wKSAobGF5ZXIzV2lkdGggMC4wKSAoaW5uZXJSaW5nTWV0YWxXaWR0aCAwLjApIChpckxheWVyM0VuY1ZpYTIgMC4wKSAob3JMYXllcjNXaWR0aCAwLjApIChtaW5XIDAuMCkgKG1heFcgMC4wKSAobWluVG90YWxXIDAuMCkgKGdlbmVyaWNSaW5nTmFtZSAicmluZyIpIChyaXZldGVkUmluZ05hbWUgInJpdmV0UmluZyIpIChmbGFyZWRHYXRlTmFtZSAiZmxhcmVkR2F0ZSIpIChkaWZmR3JpZCAwLjApICh0YXBHcmlkIDAuMCkgKHdlbGxHcmlkIDAuMCkgKHBvbHlHcmlkIDAuMCkgKHZpYTFncmlkIDAuMCkgKGxheWVyMmdyaWQgMC4wKSAodmlhMmdyaWQgMC4wKSAobGF5ZXIzZ3JpZCAwLjApICh0YXBFZGdlc0F0NDUgbmlsKSAobGF5ZXIyRWRnZXNBdDQ1IG5pbCkgKGxheWVyM0VkZ2VzQXQ0NSBuaWwpIChub1RhcE53ZWxsIG5pbCkgKGh2TGF5ZXIgbmlsKSAoaHZEaWZmRW5jbG9zdXJlIDAuMCkgKG1vZGVsVGV4dExheWVyIGxpc3QoImhpbGl0ZSIgImRyYXdpbmciKSkgKG1vZGVsVGV4dExheWVyU2l6ZSAwLjIpIChtb2RlbFRleHQgIiIpIChtb2RlbFdtYXggMC4wKSAobW9kZWxXbWluIDAuMCkgKG1vZGVsTG1heCAwLjApIChtb2RlbExtaW4gMC4wKSAoZmlsbGVkUmluZ3MgbmlsKSkAKChuZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICJuIiAiaW5wdXRPdXRwdXQiKSAocmluZ0lkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGdlbmVyaWNSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpbmdJZCBlcnJvcigicGx1Z2dlZFBhZENsYXNzU2xvdDogIENhbm5vdCBmaW5kL29wZW4gZ2VuZXJpYyByaW5nICVzXG4iIGdlbmVyaWNSaW5nTmFtZSkpIHVubGVzcygocmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBsdWdnZWRQYWRDbGFzc1Nsb3Q6ICBSaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaW5nTmFtZSkpIChzMiA9IHNxcnQoMi4wKSkgKHZpYTFfNlJvd3MgPSBjYWFyKHZpYUFycmF5U2l6ZSkpICh2aWExXzZDb2xzID0gY2FkYXIodmlhQXJyYXlTaXplKSkgKHZpYTdSb3dzID0gY2FhZHIodmlhQXJyYXlTaXplKSkgKHZpYTdDb2xzID0gY2FkYWRyKHZpYUFycmF5U2l6ZSkpICh0b3BWaWFMYXllck5hbWUgPSBjYXIodG9wVmlhTGF5ZXIpKSAodG9wVmlhV2lkdGggPSBudGgoMiB0b3BWaWFMYXllcikpICh0b3BWaWFTcGFjZSA9IG50aCgxIHRvcFZpYUxheWVyKSkgKGJldmVsQ3V0TGVuZ3RoID0gKGJldmVsQ3V0TGVuZ3RoIC8gczIpKSAobWF4QmV2ZWxDdXRMZW5ndGggPSAobWF4QmV2ZWxDdXRMZW5ndGggLyBzMikpIChlbmNQYWQgPSB0b3BMYXllckVuY1BhZCkgKEFycmF5X2xlbmd0aCA9IChsIC0gKDIgKiAobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSkpKSAoQXJyYXlfd2lkdGggPSAodyAtICgyICogKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkpKSkgKG1ldExpbmVQaXRjaCA9IChtZXRMaW5lV2lkdGggKyBtZXRMaW5lU3BhY2UpKSAobnVtVmVyTGluZXMgPSAoZmxvb3IgKChBcnJheV9sZW5ndGggLSBlbmRNZXRMaW5lU3BhY2UpIC8gbWV0TGluZVBpdGNoKSkpIChudW1Ib3JMaW5lcyA9IChmbG9vciAoKEFycmF5X3dpZHRoIC0gZW5kTWV0TGluZVNwYWNlKSAvIG1ldExpbmVQaXRjaCkpKSAoYWRkU3BhY2VWZXIgPSAoKChBcnJheV9sZW5ndGggLSAobnVtVmVyTGluZXMgKiBtZXRMaW5lUGl0Y2gpKSArIG1ldExpbmVTcGFjZSkgLyAyKSkgKGFkZFNwYWNlSG9yID0gKCgoQXJyYXlfd2lkdGggLSAobnVtSG9yTGluZXMgKiBtZXRMaW5lUGl0Y2gpKSArIG1ldExpbmVTcGFjZSkgLyAyKSkgY29uZCgoKHNocmlua1BlcmNlbnQgPT0gMC4wKSAoc2NhbGVNdWx0ID0gMS4wKSkgKHQgKHNjYWxlTXVsdCA9ICgxMDAuMCAvICgxMDAuMCAtIHNocmlua1BlcmNlbnQpKSkgZm9yZWFjaChzaXplQW5kR3JpZCBsaXN0KGxpc3QoJ3cgcGFkR3JpZCkgbGlzdCgnbCBwYWRHcmlkKSBsaXN0KCd0b3BMYXllckVuY1BhZCB0b3BMYXllckdyaWQpIGxpc3QoJ21ldFJpbmdXaWR0aCBwYWRHcmlkKSBsaXN0KCdtZXRMaW5lV2lkdGggcGFkR3JpZCkgbGlzdCgnbWV0TGluZVNwYWNlIHBhZEdyaWQpIGxpc3QoJ2VuZE1ldExpbmVTcGFjZSBwYWRHcmlkKSBsaXN0KCd0b3BWaWFXaWR0aCBwYWRHcmlkKSBsaXN0KCd0b3BWaWFTcGFjZSBwYWRHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSAoYmV2ZWxDdXRMZW5ndGggPSAocGFkR3JpZCAqIGZpeCgoMC45OTkgKyAoKGJldmVsQ3V0TGVuZ3RoICogc2NhbGVNdWx0KSAvIHBhZEdyaWQpKSkpKSB3aGVuKChiZXZlbEN1dExlbmd0aCA+IG1heEJldmVsQ3V0TGVuZ3RoKSAoYmV2ZWxDdXRMZW5ndGggPSAocGFkR3JpZCAqIGZpeCgoMWUtMDUgKyAobWF4QmV2ZWxDdXRMZW5ndGggLyBwYWRHcmlkKSkpKSkpIChwYWRYc2lkZSA9IChsIC0gKDIuMCAqIGJldmVsQ3V0TGVuZ3RoKSkpIChwYWRZc2lkZSA9ICh3IC0gKDIuMCAqIGJldmVsQ3V0TGVuZ3RoKSkpIChwYWRQb2ludHMgPSBsaXN0KChiZXZlbEN1dExlbmd0aDowLjApICgocGFkWHNpZGUgKyBiZXZlbEN1dExlbmd0aCk6MC4wKSAobDpiZXZlbEN1dExlbmd0aCkgKGw6KGJldmVsQ3V0TGVuZ3RoICsgcGFkWXNpZGUpKSAoKHBhZFhzaWRlICsgYmV2ZWxDdXRMZW5ndGgpOncpIChiZXZlbEN1dExlbmd0aDp3KSAoMC4wOihiZXZlbEN1dExlbmd0aCArIHBhZFlzaWRlKSkgKDAuMDpiZXZlbEN1dExlbmd0aCkpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcGFkTGF5ZXIgcGFkUG9pbnRzKSAodGhpc0xheWVyID0gdG9wTGF5ZXIpIChleHRyYU9mZnNldCA9ICgoZW5jUGFkICogKDIuMCAtIHMyKSkgLyB0b3BMYXllckdyaWQpKSAoZXh0cmFPZmZzZXQgPSAodG9wTGF5ZXJHcmlkICogZml4KCgwLjk5OSArIGV4dHJhT2Zmc2V0KSkpKSAoZXh0cmFPZmZzZXQgPSAoZXh0cmFPZmZzZXQgLSB0b3BMYXllckdyaWQpKSAodGhlTGVuZ3RoID0gKGwgKyAoMi4wICogZW5jUGFkKSkpIChsZW5ndGhTaWRlID0gKHRoZUxlbmd0aCAtICgyLjAgKiBiZXZlbEN1dExlbmd0aCkpKSAodGhlV2lkdGggPSAodyArICgyLjAgKiBlbmNQYWQpKSkgKHdpZHRoU2lkZSA9ICh0aGVXaWR0aCAtICgyLjAgKiBiZXZlbEN1dExlbmd0aCkpKSAodGhlQmV2ZWwgPSAoYmV2ZWxDdXRMZW5ndGggKyBleHRyYU9mZnNldCkpICh0aGVQb2ludHMgPSBsaXN0KCgoKC0gZW5jUGFkKSArIGJldmVsQ3V0TGVuZ3RoKTooLSBlbmNQYWQpKSAoKCgtIGVuY1BhZCkgKyBiZXZlbEN1dExlbmd0aCArIGxlbmd0aFNpZGUpOigtIGVuY1BhZCkpICgoKC0gZW5jUGFkKSArIHRoZUxlbmd0aCk6KCgtIGVuY1BhZCkgKyBiZXZlbEN1dExlbmd0aCkpICgoKC0gZW5jUGFkKSArIHRoZUxlbmd0aCk6KCgtIGVuY1BhZCkgKyBiZXZlbEN1dExlbmd0aCArIHdpZHRoU2lkZSkpICgoKC0gZW5jUGFkKSArIGJldmVsQ3V0TGVuZ3RoICsgbGVuZ3RoU2lkZSk6KCgtIGVuY1BhZCkgKyB0aGVXaWR0aCkpICgoKC0gZW5jUGFkKSArIGJldmVsQ3V0TGVuZ3RoKTooKC0gZW5jUGFkKSArIHRoZVdpZHRoKSkgKCgtIGVuY1BhZCk6KCgtIGVuY1BhZCkgKyBiZXZlbEN1dExlbmd0aCArIHdpZHRoU2lkZSkpICgoLSBlbmNQYWQpOigoLSBlbmNQYWQpICsgYmV2ZWxDdXRMZW5ndGgpKSkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRoaXNMYXllciB0aGVQb2ludHMpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImJvdFJpbmciICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRoZVdpZHRoKSBsaXN0KCJsIiAiZmxvYXQiIHRoZUxlbmd0aCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAoLSB0b3BMYXllckVuY1BhZCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKC0gdG9wTGF5ZXJFbmNQYWQpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB0b3BMYXllckVuY1BhZCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgYmV2ZWxDdXRMZW5ndGgpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgYmV2ZWxDdXRMZW5ndGgpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgYmV2ZWxDdXRMZW5ndGgpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgYmV2ZWxDdXRMZW5ndGgpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iICJUUlVFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB0b3BMYXllckdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoTWV0TGF5ZXJzID0gYXBwZW5kKG9kZE1ldExheWVycyBldmVuTWV0TGF5ZXJzKSkgZm9yZWFjaChsYXllciBNZXRMYXllcnMgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsaXN0KGxheWVyICJkcmF3aW5nIikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QobGF5ZXIgImRyYXdpbmciKSAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImJvdFJpbmcxIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiB3KSBsaXN0KCJsIiAiZmxvYXQiIGwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgKG1ldFJpbmdXaWR0aCArICgtIHRvcExheWVyRW5jUGFkKSkpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJncmlkIiAiZmxvYXQiIHRvcExheWVyR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIGZvcmVhY2gobGF5ZXIgTWV0TGF5ZXJzIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QobGF5ZXIgImRyYXdpbmciKSAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsaXN0KGxheWVyICJkcmF3aW5nIikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QobGF5ZXIgImRyYXdpbmciKSAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIChkYkNsb3NlIHJpbmdJZCkgKEFycmF5X2xlbmd0aCA9IChsIC0gKDIgKiAobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSkpKSAoQXJyYXlfd2lkdGggPSAodyAtICgyICogKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkpKSkgKG1ldExpbmVQaXRjaCA9IChtZXRMaW5lV2lkdGggKyBtZXRMaW5lU3BhY2UpKSAobnVtVmVyTGluZXMgPSAoZmxvb3IgKChBcnJheV9sZW5ndGggLSBlbmRNZXRMaW5lU3BhY2UpIC8gbWV0TGluZVBpdGNoKSkpIChudW1Ib3JMaW5lcyA9IChmbG9vciAoKEFycmF5X3dpZHRoIC0gZW5kTWV0TGluZVNwYWNlKSAvIG1ldExpbmVQaXRjaCkpKSAoYWRkU3BhY2VWZXIgPSAoKChBcnJheV9sZW5ndGggLSAobnVtVmVyTGluZXMgKiBtZXRMaW5lUGl0Y2gpKSArIG1ldExpbmVTcGFjZSkgLyAyKSkgKGFkZFNwYWNlSG9yID0gKCgoQXJyYXlfd2lkdGggLSAobnVtSG9yTGluZXMgKiBtZXRMaW5lUGl0Y2gpKSArIG1ldExpbmVTcGFjZSkgLyAyKSkgKGFkZFNwYWNlSG9yX3RtcCA9ICgoYWRkU3BhY2VIb3IgKiBzY2FsZU11bHQpIC8gcGFkR3JpZCkpIChhZGRTcGFjZUhvciA9IChmaXgoKGFkZFNwYWNlSG9yX3RtcCArIDAuOTk5KSkgKiBwYWRHcmlkKSkgKGFkZFNwYWNlVmVyX3RtcCA9ICgoYWRkU3BhY2VWZXIgKiBzY2FsZU11bHQpIC8gcGFkR3JpZCkpIChhZGRTcGFjZVZlciA9IChmaXgoKGFkZFNwYWNlVmVyX3RtcCArIDAuOTk5KSkgKiBwYWRHcmlkKSkgKHRoZVggPSAoKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkgKyBhZGRTcGFjZVZlcikpICh0aGVZID0gKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkpIGZvcihudW1iZXIgMSBudW1WZXJMaW5lcyBmb3JlYWNoKGxheWVyIG9kZE1ldExheWVycyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpIGxpc3QoKHRoZVg6dGhlWSkgKCh0aGVYICsgbWV0TGluZVdpZHRoKToodGhlWSArIEFycmF5X3dpZHRoKSkpKSkgKHRoZVggPSAodGhlWCArIG1ldExpbmVQaXRjaCkpKSAodGhlWSA9ICgobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSArIGFkZFNwYWNlSG9yKSkgKHRoZVggPSAobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSkgZm9yKG51bWJlciAxIG51bUhvckxpbmVzIGZvcmVhY2gobGF5ZXIgZXZlbk1ldExheWVycyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChsYXllciAiZHJhd2luZyIpIGxpc3QoKHRoZVg6dGhlWSkgKCh0aGVYICsgQXJyYXlfbGVuZ3RoKToodGhlWSArIG1ldExpbmVXaWR0aCkpKSkpICh0aGVZID0gKHRoZVkgKyBtZXRMaW5lUGl0Y2gpKSkgZm9yZWFjaCh2aWFMYXllciB2aWFMYXllcnMgKHZpYUxheWVyTmFtZSA9IGNhcih2aWFMYXllcikpICh2aWFTcGFjZSA9IG50aCgxIHZpYUxheWVyKSkgKHZpYVdpZHRoID0gbnRoKDIgdmlhTGF5ZXIpKSAoZW5jbFZpYXNNZXQgPSAoKG1ldExpbmVXaWR0aCAtICgodmlhMV82Um93cyAtIDEpICogdmlhU3BhY2UpIC0gKHZpYTFfNlJvd3MgKiB2aWFXaWR0aCkpIC8gMikpICh0aGVYID0gKChtZXRSaW5nV2lkdGggLSBlbmNQYWQpICsgYWRkU3BhY2VWZXIgKyBlbmNsVmlhc01ldCkpICh0aGVZID0gKChtZXRSaW5nV2lkdGggLSBlbmNQYWQpICsgYWRkU3BhY2VIb3IgKyBlbmNsVmlhc01ldCkpIGZvcihtIDEgbnVtSG9yTGluZXMgZm9yKGsgMSBudW1WZXJMaW5lcyAodGhlWTEgPSB0aGVZKSBmb3IoaSAxIHZpYTFfNlJvd3MgKHRoZVgxID0gdGhlWCkgZm9yKGogMSB2aWExXzZDb2xzIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KHZpYUxheWVyTmFtZSAiZHJhd2luZyIpIGxpc3QoKHRoZVgxOnRoZVkxKSAoKHRoZVgxICsgdmlhV2lkdGgpOih0aGVZMSArIHZpYVdpZHRoKSkpKSAodGhlWDEgPSAodGhlWDEgKyB2aWFXaWR0aCArIHZpYVNwYWNlKSkpICh0aGVZMSA9ICh0aGVZMSArIHZpYVdpZHRoICsgdmlhU3BhY2UpKSkgKHRoZVggPSAodGhlWCArIG1ldExpbmVQaXRjaCkpKSAodGhlWSA9ICh0aGVZICsgbWV0TGluZVBpdGNoKSkgKHRoZVggPSAoKG1ldFJpbmdXaWR0aCAtIGVuY1BhZCkgKyBhZGRTcGFjZVZlciArIGVuY2xWaWFzTWV0KSkpKSAoZW5jbFRvcFZpYU1ldCA9ICgobWV0TGluZVdpZHRoIC0gKCh2aWE3Um93cyAtIDEpICogdG9wVmlhU3BhY2UpIC0gKHZpYTdSb3dzICogdG9wVmlhV2lkdGgpKSAvIDIpKSAodGhlWHRvcFZpYSA9ICgobWV0UmluZ1dpZHRoIC0gZW5jUGFkKSArIGFkZFNwYWNlVmVyICsgZW5jbFRvcFZpYU1ldCkpICh0aGVZdG9wVmlhID0gKChtZXRSaW5nV2lkdGggLSBlbmNQYWQpICsgYWRkU3BhY2VIb3IgKyBlbmNsVG9wVmlhTWV0KSkgZm9yKG0gMSBudW1Ib3JMaW5lcyBmb3IoayAxIG51bVZlckxpbmVzICh0aGVZdG9wVmlhMSA9IHRoZVl0b3BWaWEpIGZvcihpIDEgdmlhN1Jvd3MgKHRoZVh0b3BWaWExID0gdGhlWHRvcFZpYSkgZm9yKGogMSB2aWE3Q29scyAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCh0b3BWaWFMYXllck5hbWUgImRyYXdpbmciKSBsaXN0KCh0aGVYdG9wVmlhMTp0aGVZdG9wVmlhMSkgKCh0aGVYdG9wVmlhMSArIHRvcFZpYVdpZHRoKToodGhlWXRvcFZpYTEgKyB0b3BWaWFXaWR0aCkpKSkgKHRoZVh0b3BWaWExID0gKHRoZVh0b3BWaWExICsgdG9wVmlhV2lkdGggKyB0b3BWaWFTcGFjZSkpKSAodGhlWXRvcFZpYTEgPSAodGhlWXRvcFZpYTEgKyB0b3BWaWFXaWR0aCArIHRvcFZpYVNwYWNlKSkpICh0aGVYdG9wVmlhID0gKHRoZVh0b3BWaWEgKyBtZXRMaW5lUGl0Y2gpKSkgKHRoZVl0b3BWaWEgPSAodGhlWXRvcFZpYSArIG1ldExpbmVQaXRjaCkpICh0aGVYdG9wVmlhID0gKChtZXRSaW5nV2lkdGggLSBlbmNQYWQpICsgYWRkU3BhY2VWZXIgKyBlbmNsVG9wVmlhTWV0KSkpKQAocGFkTGF5ZXIgdG9wVmlhTGF5ZXIgdG9wTGF5ZXIgb2RkTWV0TGF5ZXJzIGV2ZW5NZXRMYXllcnMgdmlhTGF5ZXJzIHZpYUFycmF5U2l6ZSBiZXZlbEN1dExlbmd0aCBtYXhCZXZlbEN1dExlbmd0aCB0b3BMYXllckVuY1BhZCBtZXRSaW5nV2lkdGggbWV0TGluZVdpZHRoIG1ldExpbmVTcGFjZSBlbmRNZXRMaW5lU3BhY2UgcGFkR3JpZCBnZW5lcmljUmluZ05hbWUgdG9wTGF5ZXJHcmlkIHcgbCBzaHJpbmtQZXJjZW50IG5ldCByaW5nSWQgczIgdmlhMV82Um93cyB2aWExXzZDb2xzIHZpYTdSb3dzIHZpYTdDb2xzIHRvcFZpYUxheWVyTmFtZSB0b3BWaWFXaWR0aCB0b3BWaWFTcGFjZSBlbmNQYWQgQXJyYXlfbGVuZ3RoIEFycmF5X3dpZHRoIG1ldExpbmVQaXRjaCBudW1WZXJMaW5lcyBudW1Ib3JMaW5lcyBhZGRTcGFjZVZlciBhZGRTcGFjZUhvciBzY2FsZU11bHQgc2l6ZUFuZEdyaWQgdGhlU2l6ZSB0aGVHcmlkIHRlbXBTaXplIHBhZFhzaWRlIHBhZFlzaWRlIHBhZFBvaW50cyB0aGlzTGF5ZXIgZXh0cmFPZmZzZXQgdGhlTGVuZ3RoIGxlbmd0aFNpZGUgdGhlV2lkdGggd2lkdGhTaWRlIHRoZUJldmVsIHRoZVBvaW50cyBkYmlkIHBpbmlkIHRoZU1hc3RlciBNZXRMYXllcnMgbGF5ZXIgYWRkU3BhY2VIb3JfdG1wIGFkZFNwYWNlVmVyX3RtcCB0aGVYIHRoZVkgbnVtYmVyIHZpYUxheWVyIHZpYUxheWVyTmFtZSB2aWFTcGFjZSB2aWFXaWR0aCBlbmNsVmlhc01ldCBtIGsgdGhlWTEgaSB0aGVYMSBqIGVuY2xUb3BWaWFNZXQgdGhlWHRvcFZpYSB0aGVZdG9wVmlhIHRoZVl0b3BWaWExIHRoZVh0b3BWaWExKQAoKHcgMC4wKSAobCAwLjApIChzaHJpbmtQZXJjZW50IDAuMCkpACgocGFkTGF5ZXIgbGlzdCgieTAiICJkcmF3aW5nIikpICh0b3BWaWFMYXllciAnKCJ5MSIgMC4wIDAuMCAwLjApKSAodG9wTGF5ZXIgbGlzdCgieTIiICJkcmF3aW5nIikpIChvZGRNZXRMYXllcnMgbGlzdChuaWwgbmlsIG5pbCBuaWwpKSAoZXZlbk1ldExheWVycyBsaXN0KG5pbCBuaWwgbmlsKSkgdmlhTGF5ZXJzKGAoJygieTMiIDAuMSAwLjEpICcoInk0IiAwLjEgMC4xKSAnKCJ5NSIgMC4xIDAuMSkpKSAodmlhQXJyYXlTaXplIGxpc3QobGlzdCgzIDMpIGxpc3QoMiAyKSkpIChiZXZlbEN1dExlbmd0aCAwLjApIChtYXhCZXZlbEN1dExlbmd0aCAwLjApICh0b3BMYXllckVuY1BhZCAwLjApIChtZXRSaW5nV2lkdGggMC4wKSAobWV0TGluZVdpZHRoIDAuMCkgKG1ldExpbmVTcGFjZSAwLjApIChlbmRNZXRMaW5lU3BhY2UgMC4wKSAocGFkR3JpZCAwLjApIChnZW5lcmljUmluZ05hbWUgImdlbkRMcmluZyIpICh0b3BMYXllckdyaWQgMC4wKSkAKHBhZExheWVyIHRvcExheWVyIGJvdExheWVyIHN1YkxheWVyIHNoaWVsZExheWVyIHZpYUxheWVyIHZpYVNwYWNlIHZpYVdpZHRoIHN1YlZpYUxheWVyIHN1YlZpYVdpZHRoIHN1YlZpYVNwYWNlIGJldmVsQ3V0TGVuZ3RoIG1heEJldmVsQ3V0TGVuZ3RoIHRvcExheWVyRW5jUGFkIGJvdExheWVyU3BhY2VQYWQgc3ViTGF5ZXJTcGFjZVBhZCBnZW5lcmljUmluZ05hbWUgcml2ZXRlZFJpbmdOYW1lIGJldmVsVmlhTmFtZSBib3RMYXllckluc2lkZUVuY1ZpYSBib3RMYXllck91dHNpZGVFbmNWaWEgYm90TGF5ZXJJbnNpZGVFbmNTdWJWaWEgYm90TGF5ZXJPdXRzaWRlRW5jU3ViVmlhIG1pbldpZHRoIG1pbkxlbmd0aCBwYWRHcmlkIHRvcExheWVyR3JpZCBib3RMYXllckdyaWQgc3ViTGF5ZXJHcmlkIHZpYUdyaWQgc29saWRUb3BWaWEgZmlsbGVkVmlhcyB0b3BWaWFMYXllciB0b3BMYXllckVuY1RvcFZpYSBsYWJlbExheWVyIGxhYmVsV2lkdGggc2lnbmFsTGF5ZXIgc2lnbmFsVmlhTGF5ZXIgcGFkVHlwZSBwYWRDZW50ZXIgcGFkQ2VudGVyV2lkdGggd09mZnNldCBsT2Zmc2V0IHNpZ25hbFVuZGVyUGFkIHNoaWVsZGVkUGFkIHNoaWVsZEVuY2xvc3VyZSBwbGFzdGljUGFja2FnZSBoZXJtZXRpY1BhY2thZ2UgdyBsIHNocmlua1BlcmNlbnQgY2VudGVyUGFkIG5ldCByaW5nSWQgcml2ZXRJZCBmaWxsSWQgczIgc2NhbGVNdWx0IHNpemVBbmRHcmlkIHRoZVNpemUgdGhlR3JpZCB0ZW1wU2l6ZSBwYWRYc2lkZSBwYWRZc2lkZSBwYWRQb2ludHMgdG9wTGF5ZXJzIGVuY1BhZCBleHRyYU9mZnNldCB0aGVMZW5ndGggbGVuZ3RoU2lkZSB0aGVXaWR0aCB3aWR0aFNpZGUgdGhlQmV2ZWwgdGhlUG9pbnRzIHRvcExheSBkYmlkIHBpbmlkIHNoaWVsZEVuY1BhZCBzaGllbGRFeHRyYU9mZnNldCBzaGllbGRMZW5ndGggc2hpZWxkTGVuZ3RoU2lkZSBzaGllbGRXaWR0aCBzaGllbGRXaWR0aFNpZGUgc2hpZWxkQmV2ZWwgc2hpZWxkUG9pbnRzIG5ldEwgdHlwZUwgeDFDb29yZCB5MUNvb3JkIGRiSWQgdG9wVmlhZW5jUGFkIGV4dHJhT2Zmc2V0VmlhIHRoZUxlbmd0aFZpYSB0aGVXaWR0aFZpYSB0aGVCZXZlbFZpYSBib3RMYXllcnMgdmlhTGF5ZXJzIHZpYUxheWVyczEgdGhlTWFzdGVyIGJvdExheSB2aWFDb3VudCB2aWFPZmZzZXQgdmlhTGF5ZXJOYW1lIHZpYVdpZHRoMSB2aWFTcGFjZTEgbGF5R3JpZCBsYXlNZXRFbmMgdGhlVmlhQmV2ZWwgdmlhU2hpZnQpACgodyA9ICh3IC0gd09mZnNldCkpIChsID0gKGwgLSBsT2Zmc2V0KSkgaWYoKChmaWxsZWRWaWFzID09IHQpIHx8IChmaWxsZWRWaWFzID09ICJUUlVFIikpIHRoZW4gKGZpbGxlZFZpYXMgPSB0KSBlbHNlIChmaWxsZWRWaWFzID0gbmlsKSkgaWYoKChzaWduYWxVbmRlclBhZCA9PSB0KSB8fCAoc2lnbmFsVW5kZXJQYWQgPT0gIlRSVUUiKSkgdGhlbiAoc2lnbmFsVW5kZXJQYWQgPSB0KSBlbHNlIChzaWduYWxVbmRlclBhZCA9IG5pbCkpIGlmKCgoc2hpZWxkZWRQYWQgPT0gdCkgfHwgKHNoaWVsZGVkUGFkID09ICJUUlVFIikpIHRoZW4gKHNoaWVsZGVkUGFkID0gdCkgZWxzZSAoc2hpZWxkZWRQYWQgPSBuaWwpKSAobmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSAoZGJDcmVhdGVUZXJtIG5ldCAibiIgImlucHV0T3V0cHV0IikgKHJpbmdJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBnZW5lcmljUmluZ05hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhyaW5nSWQgZXJyb3IoInBsdWdnZWRQYWRDbGFzczogIENhbm5vdCBmaW5kL29wZW4gZ2VuZXJpYyByaW5nICVzXG4iIGdlbmVyaWNSaW5nTmFtZSkpIHVubGVzcygocmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBsdWdnZWRQYWRDbGFzczogIFJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgKHJpdmV0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgcml2ZXRlZFJpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Mocml2ZXRJZCBlcnJvcigicGx1Z2dlZFBhZENsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiByaXZldGVkIHJpbmcgJXNcbiIgcml2ZXRlZFJpbmdOYW1lKSkgdW5sZXNzKChyaXZldElkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoInBsdWdnZWRQYWRDbGFzczogIFJpdmV0IHJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgcml2ZXRlZFJpbmdOYW1lKSkgd2hlbihmaWxsZWRWaWFzIChmaWxsSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgYmV2ZWxWaWFOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoKGZpbGxJZH4+aXNQYXJhbUNlbGwpIGVycm9yKCJwbHVnZ2VkUGFkQ2xhc3M6ICBCZXZlbGVkIHZpYSBmaWxsICVzIGlzIG5vdCBhIHBjZWxsXG4iIGJldmVsVmlhTmFtZSkpKSAoczIgPSBzcXJ0KDIuMCkpIChiZXZlbEN1dExlbmd0aCA9IChiZXZlbEN1dExlbmd0aCAvIHMyKSkgKG1heEJldmVsQ3V0TGVuZ3RoID0gKG1heEJldmVsQ3V0TGVuZ3RoIC8gczIpKSBjb25kKCgoc2hyaW5rUGVyY2VudCA9PSAwLjApIChzY2FsZU11bHQgPSAxLjApKSAodCAoc2NhbGVNdWx0ID0gKDEwMC4wIC8gKDEwMC4wIC0gc2hyaW5rUGVyY2VudCkpKSBmb3JlYWNoKHNpemVBbmRHcmlkIGxpc3QobGlzdCgndyBwYWRHcmlkKSBsaXN0KCdsIHBhZEdyaWQpIGxpc3QoJ3RvcExheWVyRW5jUGFkIHRvcExheWVyR3JpZCkgbGlzdCgnbWluV2lkdGggcGFkR3JpZCkgbGlzdCgnbWluTGVuZ3RoIHBhZEdyaWQpIGxpc3QoJ2JvdExheWVyU3BhY2VQYWQgYm90TGF5ZXJHcmlkKSBsaXN0KCdzdWJMYXllclNwYWNlUGFkIHN1YkxheWVyR3JpZCkpICh0aGVTaXplID0gY2FyKHNpemVBbmRHcmlkKSkgKHRoZUdyaWQgPSBjYWRyKHNpemVBbmRHcmlkKSkgKHRlbXBTaXplID0gKChldmFsKHRoZVNpemUpICogc2NhbGVNdWx0KSAvIHRoZUdyaWQpKSBzZXQodGhlU2l6ZSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB0aGVHcmlkKSkpKSkgKGJldmVsQ3V0TGVuZ3RoID0gKHBhZEdyaWQgKiBmaXgoKDAuOTk5ICsgKChiZXZlbEN1dExlbmd0aCAqIHNjYWxlTXVsdCkgLyBwYWRHcmlkKSkpKSkgd2hlbigoYmV2ZWxDdXRMZW5ndGggPiBtYXhCZXZlbEN1dExlbmd0aCkgKGJldmVsQ3V0TGVuZ3RoID0gKHBhZEdyaWQgKiBmaXgoKDFlLTA1ICsgKG1heEJldmVsQ3V0TGVuZ3RoIC8gcGFkR3JpZCkpKSkpKSAocGFkWHNpZGUgPSAobCAtICgyLjAgKiBiZXZlbEN1dExlbmd0aCkpKSAocGFkWXNpZGUgPSAodyAtICgyLjAgKiBiZXZlbEN1dExlbmd0aCkpKSAocGFkUG9pbnRzID0gbGlzdCgoYmV2ZWxDdXRMZW5ndGg6MC4wKSAoKHBhZFhzaWRlICsgYmV2ZWxDdXRMZW5ndGgpOjAuMCkgKGw6YmV2ZWxDdXRMZW5ndGgpIChsOihiZXZlbEN1dExlbmd0aCArIHBhZFlzaWRlKSkgKChwYWRYc2lkZSArIGJldmVsQ3V0TGVuZ3RoKTp3KSAoYmV2ZWxDdXRMZW5ndGg6dykgKDAuMDooYmV2ZWxDdXRMZW5ndGggKyBwYWRZc2lkZSkpICgwLjA6YmV2ZWxDdXRMZW5ndGgpKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIHBhZFBvaW50cykgY29uZCgobGlzdHAoY2FyKHRvcExheWVyKSkgKHRvcExheWVycyA9IHRvcExheWVyKSkgKGNhcih0b3BMYXllcikgKHRvcExheWVycyA9IGxpc3QodG9wTGF5ZXIpKSkgKHQgcHJpbnRmKCJ0b3BMYXllciBzaG91bGQgYmUgbHBwIG9yIExpc3QobHBwMSxscHAyLi4uKSBvbmx5IikpKSAoZW5jUGFkID0gdG9wTGF5ZXJFbmNQYWQpIChleHRyYU9mZnNldCA9ICgoZW5jUGFkICogKDIuMCAtIHMyKSkgLyB0b3BMYXllckdyaWQpKSAoZXh0cmFPZmZzZXQgPSAodG9wTGF5ZXJHcmlkICogZml4KCgwLjk5OSArIGV4dHJhT2Zmc2V0KSkpKSAoZXh0cmFPZmZzZXQgPSAoZXh0cmFPZmZzZXQgLSB0b3BMYXllckdyaWQpKSAodGhlTGVuZ3RoID0gKGwgKyAoMi4wICogZW5jUGFkKSkpIChsZW5ndGhTaWRlID0gKHRoZUxlbmd0aCAtICgyLjAgKiAoYmV2ZWxDdXRMZW5ndGggKyBleHRyYU9mZnNldCkpKSkgKHRoZVdpZHRoID0gKHcgKyAoMi4wICogZW5jUGFkKSkpICh3aWR0aFNpZGUgPSAodGhlV2lkdGggLSAoMi4wICogKGJldmVsQ3V0TGVuZ3RoICsgZXh0cmFPZmZzZXQpKSkpICh0aGVCZXZlbCA9IChiZXZlbEN1dExlbmd0aCArIGV4dHJhT2Zmc2V0KSkgKHRoZVBvaW50cyA9IGxpc3QoKCgoLSBlbmNQYWQpICsgdGhlQmV2ZWwpOigtIGVuY1BhZCkpICgoKC0gZW5jUGFkKSArIHRoZUJldmVsICsgbGVuZ3RoU2lkZSk6KC0gZW5jUGFkKSkgKCgoLSBlbmNQYWQpICsgdGhlTGVuZ3RoKTooKC0gZW5jUGFkKSArIHRoZUJldmVsKSkgKCgoLSBlbmNQYWQpICsgdGhlTGVuZ3RoKTooKC0gZW5jUGFkKSArIHRoZUJldmVsICsgd2lkdGhTaWRlKSkgKCgoLSBlbmNQYWQpICsgdGhlQmV2ZWwgKyBsZW5ndGhTaWRlKTooKC0gZW5jUGFkKSArIHRoZVdpZHRoKSkgKCgoLSBlbmNQYWQpICsgdGhlQmV2ZWwpOigoLSBlbmNQYWQpICsgdGhlV2lkdGgpKSAoKC0gZW5jUGFkKTooKC0gZW5jUGFkKSArIHRoZUJldmVsICsgd2lkdGhTaWRlKSkgKCgtIGVuY1BhZCk6KCgtIGVuY1BhZCkgKyB0aGVCZXZlbCkpKSkgZm9yZWFjaCh0b3BMYXkgdG9wTGF5ZXJzIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRvcExheSB0aGVQb2ludHMpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4oc2hpZWxkZWRQYWQgKHNoaWVsZEVuY1BhZCA9IHNoaWVsZEVuY2xvc3VyZSkgKHNoaWVsZEV4dHJhT2Zmc2V0ID0gKChzaGllbGRFbmNQYWQgKiAoMi4wIC0gczIpKSAvIHRvcExheWVyR3JpZCkpIChzaGllbGRFeHRyYU9mZnNldCA9ICh0b3BMYXllckdyaWQgKiBmaXgoKDAuOTk5ICsgc2hpZWxkRXh0cmFPZmZzZXQpKSkpIChzaGllbGRFeHRyYU9mZnNldCA9IChzaGllbGRFeHRyYU9mZnNldCAtIHRvcExheWVyR3JpZCkpIChzaGllbGRMZW5ndGggPSAobCArICgyLjAgKiBzaGllbGRFbmNQYWQpKSkgKHNoaWVsZExlbmd0aFNpZGUgPSAoc2hpZWxkTGVuZ3RoIC0gKDIuMCAqIChiZXZlbEN1dExlbmd0aCArIHNoaWVsZEV4dHJhT2Zmc2V0KSkpKSAoc2hpZWxkV2lkdGggPSAodyArICgyLjAgKiBzaGllbGRFbmNQYWQpKSkgKHNoaWVsZFdpZHRoU2lkZSA9IChzaGllbGRXaWR0aCAtICgyLjAgKiAoYmV2ZWxDdXRMZW5ndGggKyBzaGllbGRFeHRyYU9mZnNldCkpKSkgKHNoaWVsZEJldmVsID0gKGJldmVsQ3V0TGVuZ3RoICsgc2hpZWxkRXh0cmFPZmZzZXQpKSAoc2hpZWxkUG9pbnRzID0gbGlzdCgoKCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRCZXZlbCk6KC0gc2hpZWxkRW5jUGFkKSkgKCgoLSBzaGllbGRFbmNQYWQpICsgc2hpZWxkQmV2ZWwgKyBzaGllbGRMZW5ndGhTaWRlKTooLSBzaGllbGRFbmNQYWQpKSAoKCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRMZW5ndGgpOigoLSBzaGllbGRFbmNQYWQpICsgc2hpZWxkQmV2ZWwpKSAoKCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRMZW5ndGgpOigoLSBzaGllbGRFbmNQYWQpICsgc2hpZWxkQmV2ZWwgKyBzaGllbGRXaWR0aFNpZGUpKSAoKCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRCZXZlbCArIHNoaWVsZExlbmd0aFNpZGUpOigoLSBzaGllbGRFbmNQYWQpICsgc2hpZWxkV2lkdGgpKSAoKCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRCZXZlbCk6KCgtIHNoaWVsZEVuY1BhZCkgKyBzaGllbGRXaWR0aCkpICgoLSBzaGllbGRFbmNQYWQpOigoLSBzaGllbGRFbmNQYWQpICsgc2hpZWxkQmV2ZWwgKyBzaGllbGRXaWR0aFNpZGUpKSAoKC0gc2hpZWxkRW5jUGFkKTooKC0gc2hpZWxkRW5jUGFkKSArIHNoaWVsZEJldmVsKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBzaGllbGRMYXllciBzaGllbGRQb2ludHMpKSkgd2hlbigoKHBsYXN0aWNQYWNrYWdlID09ICJUUlVFIikgJiYgKGhlcm1ldGljUGFja2FnZSA9PSAiVFJVRSIpKSBlcnJvcigicGx1Z2dlZFBhZENsYXNzOiAgQ2Fubm90IHNlbGVjdCBwbGFzdGljUGFja2FnZSBhbmQgaGVybWV0aWNQYWNrYWdlIikpIHdoZW4oKHBsYXN0aWNQYWNrYWdlID09ICJUUlVFIikgKG5ldEwgPSAicGxhc3RpYyIpKSB3aGVuKChoZXJtZXRpY1BhY2thZ2UgPT0gIlRSVUUiKSAobmV0TCA9ICJoZXJtZXRpYyIpKSB3aGVuKChsYWJlbExheWVyICYmIG5ldEwpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KChsIC8gMi4wKSAodyAvIDIuMCkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKChwYWRUeXBlID09ICJoaWdoUGFyYWxsZWwiKSAodHlwZUwgPSAiSFAiKSkgd2hlbigocGFkVHlwZSA9PSAiZmluZVBpdGNoIikgKHR5cGVMID0gIkZQIikpIHdoZW4oKHBhZFR5cGUgPT0gInN0YWdnZXJlZCIpICh0eXBlTCA9ICJTVEciKSkgd2hlbigocGFkVHlwZSA9PSAid2FmZXJMZXZlbEJ1cm5JbiIpICh0eXBlTCA9ICJXTEJJIikpIHdoZW4oKHBhZFR5cGUgPT0gIndhZmVyU2NhbGUiKSAodHlwZUwgPSAiV1NQIikpIHdoZW4oKGxhYmVsTGF5ZXIgJiYgbmV0TCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGwgLyAyLjApICh3IC8gMi4wKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4oKGxhYmVsTGF5ZXIgJiYgdHlwZUwpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KChsIC8gMi4wKSAodyAvIDIuMSkpIHR5cGVMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbigobGFiZWxMYXllciAmJiBzaGllbGRlZFBhZCkgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGwgLyAyLjApICh3IC8gMi4yKSkgInNoaWVsZGVkIiAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4oKGNlbnRlclBhZCA9PSAiVFJVRSIpICh4MUNvb3JkID0gKChsIC0gcGFkQ2VudGVyV2lkdGgpIC8gMi4wKSkgKHkxQ29vcmQgPSAoKHcgLSBwYWRDZW50ZXJXaWR0aCkgLyAyLjApKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBwYWRDZW50ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyBwYWRDZW50ZXJXaWR0aCk6KHkxQ29vcmQgKyBwYWRDZW50ZXJXaWR0aCkpKSkpKSB3aGVuKHNvbGlkVG9wVmlhICh0b3BWaWFlbmNQYWQgPSAodG9wTGF5ZXJFbmNQYWQgKyAoLSB0b3BMYXllckVuY1RvcFZpYSkpKSAoZXh0cmFPZmZzZXRWaWEgPSAoKHRvcFZpYWVuY1BhZCAqICgyLjAgLSBzMikpIC8gdG9wTGF5ZXJHcmlkKSkgKGV4dHJhT2Zmc2V0VmlhID0gKHRvcExheWVyR3JpZCAqIGZpeCgoMC45OTkgKyBleHRyYU9mZnNldFZpYSkpKSkgKGV4dHJhT2Zmc2V0VmlhID0gKGV4dHJhT2Zmc2V0VmlhIC0gdG9wTGF5ZXJHcmlkKSkgKHRoZUxlbmd0aFZpYSA9IChsICsgKDIuMCAqIHRvcFZpYWVuY1BhZCkpKSAobGVuZ3RoU2lkZSA9ICh0aGVMZW5ndGhWaWEgLSAoMi4wICogKGJldmVsQ3V0TGVuZ3RoICsgZXh0cmFPZmZzZXRWaWEpKSkpICh0aGVXaWR0aFZpYSA9ICh3ICsgKDIuMCAqIHRvcFZpYWVuY1BhZCkpKSAod2lkdGhTaWRlID0gKHRoZVdpZHRoVmlhIC0gKDIuMCAqIChiZXZlbEN1dExlbmd0aCArIGV4dHJhT2Zmc2V0VmlhKSkpKSAodGhlQmV2ZWxWaWEgPSAoYmV2ZWxDdXRMZW5ndGggKyBleHRyYU9mZnNldFZpYSkpICh0aGVQb2ludHMgPSBsaXN0KCgoKC0gdG9wVmlhZW5jUGFkKSArIHRoZUJldmVsVmlhKTooLSB0b3BWaWFlbmNQYWQpKSAoKCgtIHRvcFZpYWVuY1BhZCkgKyB0aGVCZXZlbFZpYSArIGxlbmd0aFNpZGUpOigtIHRvcFZpYWVuY1BhZCkpICgoKC0gdG9wVmlhZW5jUGFkKSArIHRoZUxlbmd0aFZpYSk6KCgtIHRvcFZpYWVuY1BhZCkgKyB0aGVCZXZlbFZpYSkpICgoKC0gdG9wVmlhZW5jUGFkKSArIHRoZUxlbmd0aFZpYSk6KCgtIHRvcFZpYWVuY1BhZCkgKyB0aGVCZXZlbFZpYSArIHdpZHRoU2lkZSkpICgoKC0gdG9wVmlhZW5jUGFkKSArIHRoZUJldmVsVmlhICsgbGVuZ3RoU2lkZSk6KCgtIHRvcFZpYWVuY1BhZCkgKyB0aGVXaWR0aFZpYSkpICgoKC0gdG9wVmlhZW5jUGFkKSArIHRoZUJldmVsVmlhKTooKC0gdG9wVmlhZW5jUGFkKSArIHRoZVdpZHRoVmlhKSkgKCgtIHRvcFZpYWVuY1BhZCk6KCgtIHRvcFZpYWVuY1BhZCkgKyB0aGVCZXZlbFZpYSArIHdpZHRoU2lkZSkpICgoLSB0b3BWaWFlbmNQYWQpOigoLSB0b3BWaWFlbmNQYWQpICsgdGhlQmV2ZWxWaWEpKSkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHRvcFZpYUxheWVyIHRoZVBvaW50cykpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgY29uZCgoKGxpc3RwKGNhcihib3RMYXllcikpICYmIGxpc3RwKGNhcih2aWFMYXllcikpKSAoYm90TGF5ZXJzID0gYm90TGF5ZXIpICh2aWFMYXllcnMgPSB2aWFMYXllcikpICgoIWxpc3RwKGNhcihib3RMYXllcikpICYmICFsaXN0cChjYXIodmlhTGF5ZXIpKSkgKGJvdExheWVycyA9IGxpc3QoYm90TGF5ZXIpKSAodmlhTGF5ZXJzID0gbGlzdChsaXN0KGNhcih2aWFMYXllcikgdmlhU3BhY2UgdmlhV2lkdGggcGFkR3JpZCkpKSB3aGVuKHN1YkxheWVyIChib3RMYXllcnMgPSBjb25zKHN1YkxheWVyIGJvdExheWVycykpKSB3aGVuKHN1YlZpYUxheWVyICh2aWFMYXllcnMxID0gbGlzdChsaXN0KGNhcihzdWJWaWFMYXllcikgc3ViVmlhU3BhY2Ugc3ViVmlhV2lkdGggcGFkR3JpZCkpKSAodmlhTGF5ZXJzID0gYXBwZW5kKHZpYUxheWVyczEgdmlhTGF5ZXJzKSkpKSAodCBwcmludGYoIkJPVEggIGJvdExheWVyIGFuZCB2aWFMYXllciBzaG91bGQgYmUgbGlzdChsaXN0cykgb3IganVzdCBsaXN0cyBcbiIpKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImJvdFJpbmciICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRoZVdpZHRoKSBsaXN0KCJsIiAiZmxvYXQiIHRoZUxlbmd0aCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAoLSB0b3BMYXllckVuY1BhZCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKC0gdG9wTGF5ZXJFbmNQYWQpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiAodG9wTGF5ZXJFbmNQYWQgLSBib3RMYXllclNwYWNlUGFkKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlQmV2ZWwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlQmV2ZWwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlQmV2ZWwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlQmV2ZWwpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgdG9wTGF5ZXJHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgZm9yZWFjaChib3RMYXkgYm90TGF5ZXJzIHdoZW4oKChib3RMYXkgIT0gc2lnbmFsTGF5ZXIpIHx8ICFzaWduYWxVbmRlclBhZCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgYm90TGF5ICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBib3RMYXkgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGJvdExheSAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgYm90TGF5ICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkpICh2aWFDb3VudCA9IDApIGZvcmVhY2godmlhTGF5ZXIgdmlhTGF5ZXJzICh2aWFPZmZzZXQgPSAodG9wTGF5ZXJFbmNQYWQgLSBib3RMYXllck91dHNpZGVFbmNWaWEpKSAoZXh0cmFPZmZzZXQgPSAoKHZpYU9mZnNldCAqICgyLjAgLSBzMikpIC8gcGFkR3JpZCkpIChleHRyYU9mZnNldCA9IChwYWRHcmlkICogZml4KCgwLjk5OSArIGV4dHJhT2Zmc2V0KSkpKSAoZXh0cmFPZmZzZXQgPSAoZXh0cmFPZmZzZXQgLSBwYWRHcmlkKSkgKHRoZUJldmVsID0gKGJldmVsQ3V0TGVuZ3RoICsgZXh0cmFPZmZzZXQgKyBwYWRHcmlkKSkgKHZpYUxheWVyTmFtZSA9IGxpc3QoY2FyKHZpYUxheWVyKSAiZHJhd2luZyIpKSAodmlhV2lkdGgxID0gY2FkZHIodmlhTGF5ZXIpKSAodmlhU3BhY2UxID0gY2Fkcih2aWFMYXllcikpIChsYXlHcmlkID0gbnRoKDMgdmlhTGF5ZXIpKSB1bmxlc3MoZmlsbGVkVmlhcyB3aGVuKCgodmlhTGF5ZXJOYW1lICE9IHNpZ25hbFZpYUxheWVyKSB8fCAhc2lnbmFsVW5kZXJQYWQpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0SWQgc3ByaW50ZihuaWwgInJpdmV0VmlhJWQiIHZpYUNvdW50KSAoKC0gdmlhT2Zmc2V0KTooLSB2aWFPZmZzZXQpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiICh0aGVXaWR0aCAtICgyLjAgKiAodG9wTGF5ZXJFbmNQYWQgLSB2aWFPZmZzZXQpKSkpIGxpc3QoImwiICJmbG9hdCIgKHRoZUxlbmd0aCAtICgyLjAgKiAodG9wTGF5ZXJFbmNQYWQgLSB2aWFPZmZzZXQpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYUxheWVyTmFtZSkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiICh2aWFPZmZzZXQgLSBib3RMYXllckluc2lkZUVuY1ZpYSAtIGJvdExheWVyU3BhY2VQYWQpKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYVdpZHRoMSkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWFTcGFjZTEpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlQmV2ZWwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlQmV2ZWwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlQmV2ZWwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdGhlQmV2ZWwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheUdyaWQpKSkgKHZpYUNvdW50ID0gKHZpYUNvdW50ICsgMSkpKSkgd2hlbihmaWxsZWRWaWFzIChsYXlNZXRFbmMgPSBudGgoNCB2aWFMYXllcikpICh0aGVWaWFCZXZlbCA9IChzMiAqICgodGhlQmV2ZWwgLyBzMikgKyAodG9wTGF5ZXJFbmNQYWQgLSBsYXlNZXRFbmMpKSkpICh2aWFTaGlmdCA9ICgoKDIgKiB0b3BMYXllckVuY1BhZCkgLSAobGF5TWV0RW5jICogMikpIC8gMikpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGZpbGxJZCBzcHJpbnRmKG5pbCAiZmlsbFZpYSVkIiB2aWFDb3VudCkgKCgtIHZpYVNoaWZ0KTooLSB2aWFTaGlmdCkpICJSMCIgMSBsaXN0KGxpc3QoInZpYUxheWVyIiAibGlzdCIgdmlhTGF5ZXJOYW1lKSBsaXN0KCJsIiAiZmxvYXQiICgoKDIgKiB0b3BMYXllckVuY1BhZCkgKyB3KSAtIChsYXlNZXRFbmMgKiAyKSkpIGxpc3QoInciICJmbG9hdCIgKCgoMiAqIHRvcExheWVyRW5jUGFkKSArIGwpIC0gKGxheU1ldEVuYyAqIDIpKSkgbGlzdCgidmlhV2lkdGgiICJmbG9hdCIgdmlhV2lkdGgxKSBsaXN0KCJ2aWFTcGFjZSIgImZsb2F0IiB2aWFTcGFjZTEpIGxpc3QoImJldmVsTGVuZ3RoIiAiZmxvYXQiIHRoZVZpYUJldmVsKSkpICh2aWFDb3VudCA9ICh2aWFDb3VudCArIDEpKSkpIChkYkNsb3NlIHJpbmdJZCkgKGRiQ2xvc2Ugcml2ZXRJZCkgd2hlbihmaWxsZWRWaWFzIChkYkNsb3NlIGZpbGxJZCkpKQAoKHNpZ25hbFVuZGVyUGFkICJGQUxTRSIpIChzaGllbGRlZFBhZCAiRkFMU0UiKSAoc2hpZWxkRW5jbG9zdXJlIDAuMCkgKHBsYXN0aWNQYWNrYWdlICJGQUxTRSIpIChoZXJtZXRpY1BhY2thZ2UgIkZBTFNFIikgKHcgMC4wKSAobCAwLjApIChzaHJpbmtQZXJjZW50IDAuMCkgKGNlbnRlclBhZCAiRkFMU0UiKSkAKChwYWRMYXllciAieTAiKSAodG9wTGF5ZXIgJ25pbCkgKGJvdExheWVyICduaWwpIChzdWJMYXllciBuaWwpIChzaGllbGRMYXllciBuaWwpICh2aWFMYXllciBuaWwpICh2aWFTcGFjZSAwLjApICh2aWFXaWR0aCAwLjApIChzdWJWaWFMYXllciBuaWwpIChzdWJWaWFXaWR0aCAwLjApIChzdWJWaWFTcGFjZSAwLjApIChiZXZlbEN1dExlbmd0aCAwLjApIChtYXhCZXZlbEN1dExlbmd0aCAwLjApICh0b3BMYXllckVuY1BhZCAwLjApIChib3RMYXllclNwYWNlUGFkIDAuMCkgKHN1YkxheWVyU3BhY2VQYWQgMC4wKSAoZ2VuZXJpY1JpbmdOYW1lICJyaW5nZXIiKSAocml2ZXRlZFJpbmdOYW1lICJyaXZldGVyIikgKGJldmVsVmlhTmFtZSAiYmV2ZWx2aWEiKSAoYm90TGF5ZXJJbnNpZGVFbmNWaWEgMC4wKSAoYm90TGF5ZXJPdXRzaWRlRW5jVmlhIDAuMCkgKGJvdExheWVySW5zaWRlRW5jU3ViVmlhIDAuMCkgKGJvdExheWVyT3V0c2lkZUVuY1N1YlZpYSAwLjApIChtaW5XaWR0aCAwLjApIChtaW5MZW5ndGggMC4wKSAocGFkR3JpZCAwLjApICh0b3BMYXllckdyaWQgMC4wKSAoYm90TGF5ZXJHcmlkIDAuMCkgKHN1YkxheWVyR3JpZCAwLjApICh2aWFHcmlkIDAuMCkgKHNvbGlkVG9wVmlhICJGQUxTRSIpIChmaWxsZWRWaWFzICJGQUxTRSIpICh0b3BWaWFMYXllciBuaWwpICh0b3BMYXllckVuY1RvcFZpYSAwLjApIChsYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikpIChsYWJlbFdpZHRoIDEuMCkgKHNpZ25hbExheWVyIG5pbCkgKHNpZ25hbFZpYUxheWVyIG5pbCkgKHBhZFR5cGUgbmlsKSAocGFkQ2VudGVyIG5pbCkgKHBhZENlbnRlcldpZHRoIDAuMCkgKHdPZmZzZXQgMC4wKSAobE9mZnNldCAwLjApKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKHdoZW4oKHcgPiBtb2RlbFdtYXgpIGVycm9yKCIlZiBpcyBncmVhdGVyIHRoYW4gYWxsb3dhYmxlIG1heGltdW0gd2lkdGggJWYgZm9yIG1vZGVsICVMIiB3IG1vZGVsV21heCBtb2RlbFRleHQpKSB3aGVuKCh3IDwgbW9kZWxXbWluKSBlcnJvcigiJWYgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIHdpZHRoICVmIGZvciBtb2RlbCAlTCIgdyBtb2RlbFdtaW4gbW9kZWxUZXh0KSkgd2hlbigobCA+IG1vZGVsTG1heCkgZXJyb3IoIiVmIGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2FibGUgbGVuZ3RoICVmIGZvciBtb2RlbCAlTCIgbCBtb2RlbExtYXggbW9kZWxUZXh0KSkgd2hlbigobCA8IG1vZGVsTG1pbikgZXJyb3IoIiVmIGlzIGxlc3MgdGhhbiBhbGxvd2FibGUgbWluaW11bSBsZW5ndGggJWYgZm9yIG1vZGVsICVMIiBsIG1vZGVsTG1pbiBtb2RlbFRleHQpKSB3aGVuKGZsb2F0TndlbGwgKHRhcFdpZHRoID0gMC4wKSAoc3JjVmlhVG9TcmNUYXBTcGFjZSA9IDAuMCkgKHNyY1ZpYVRhcFNwYWNlID0gMC4wKSkgaWYoKChzcGxpdFNvdXJjZSA9PSB0KSB8fCAoc3BsaXRTb3VyY2UgPT0gIlRSVUUiKSkgdGhlbiAoc3BsaXRTb3VyY2UgPSB0KSAoc3JjVmlhVGFwU3BhY2UgPSAwLjApIGVsc2UgKHN0cmlwVGFwVG9EaWZmU3BhY2UgPSAwLjApKSB3aGVuKHNwbGl0U291cmNlIGlmKChleHRyYUxlZnRTcGFjZSA8IG1pbkV4dHJhTFJzcGFjZSkgdGhlbiAoZXh0cmFMZWZ0U3BhY2UgPSBtaW5EaWZmVGFwUmluZ1NwYWNlKSAobGVmdEVuZFRhcCA9IG5pbCkgZWxzZSAobGVmdEVuZFRhcCA9IHQpKSBpZigoZXh0cmFSaWdodFNwYWNlIDwgbWluRXh0cmFMUnNwYWNlKSB0aGVuIChleHRyYVJpZ2h0U3BhY2UgPSBtaW5EaWZmVGFwUmluZ1NwYWNlKSAocmlnaHRFbmRUYXAgPSBuaWwpIGVsc2UgKHJpZ2h0RW5kVGFwID0gdCkpIChtaW5EaWZmVGFwUmluZ1NwYWNlID0gMC4wKSB3aGVuKCgobGF5ZXIzV2lkdGhEIDw9IDAuMCkgfHwgKGxheWVyM1dpZHRoUyA8PSAwLjApKSBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogQ2xhc3MgcGFyYW1zIGxheWVyM1dpZHRoRCBvciBsYXllcjNXaWR0aFMgc21hbGxlciB0aGFuIDAuMCIpKSAobGF5ZXIzV2lkdGggPSBsYXllcjNXaWR0aEQpIHdoZW4oKChsYXllcjJXaWR0aEQgPD0gMC4wKSB8fCAobGF5ZXIyV2lkdGhTIDw9IDAuMCkpIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiBDbGFzcyBwYXJhbXMgbGF5ZXIyV2lkdGhEIG9yIGxheWVyMldpZHRoUyBzbWFsbGVyIHRoYW4gMC4wIikpIChsYXllcjJXaWR0aCA9IGxheWVyMldpZHRoRCkgd2hlbigoKHRhcFdpZHRoIDw9IDAuMCkgfHwgKHRhcExheTJXaWR0aCA8PSAwLjApIHx8ICh0YXBMYXkzV2lkdGggPD0gMC4wKSkgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6IENsYXNzIHBhcmFtcyB0YXBXaWR0aCBvciB0YXBMYXkyV2lkdGggb3IgdGFwTGF5M1dpZHRoIHNtYWxsZXIgdGhhbiAwLjAiKSkgd2hlbigoaW5uZXJSaW5nTWV0YWxXaWR0aCA8PSAwLjApIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiBDbGFzcyBwYXJhbXMgaW5uZXJSaW5nTWV0YWxXaWR0aCBzbWFsbGVyIHRoYW4gMC4wIikpICh0YXBMYXkyVmlhMUVuYyA9ICgodGFwTGF5MldpZHRoIC0gdmlhMVdpZHRoKSAvIDIpKSAodGFwTGF5MlZpYTFFbmMgPSAoZml4KCgodGFwTGF5MlZpYTFFbmMgLyBsYXllcjJncmlkKSArIDFlLTA2KSkgKiBsYXllcjJncmlkKSkgKHRhcExheTNWaWEyRW5jID0gKCh0YXBMYXkzV2lkdGggLSB2aWEyV2lkdGgpIC8gMikpICh0YXBMYXkzVmlhMkVuYyA9IChmaXgoKCh0YXBMYXkzVmlhMkVuYyAvIGxheWVyM2dyaWQpICsgMWUtMDYpKSAqIGxheWVyM2dyaWQpKSkgaWYoKG5XZWxsU3cgJiYgdGhpcmRSaW5nKSB0aGVuIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAibldlbGxTdyIgImJvb2xlYW4iIHQpIGVsc2UgKE53ZWxsY29ubmVjdFRvSU9wYWQgPSBuaWwpKSAoZ05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJnIikpIChkYkNyZWF0ZVRlcm0gZ05ldCAiZyIgImlucHV0IikgKHNOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAicyIpKSAoZGJDcmVhdGVUZXJtIHNOZXQgInMiICJpbnB1dE91dHB1dCIpIChkTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImQiKSkgKGRiQ3JlYXRlVGVybSBkTmV0ICJkIiAiaW5wdXRPdXRwdXQiKSAoaXJOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiaXIiKSkgKGRiQ3JlYXRlVGVybSBpck5ldCAiaXIiICJpbnB1dE91dHB1dCIpIChvck5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJvciIpKSAoZGJDcmVhdGVUZXJtIG9yTmV0ICJvciIgImlucHV0T3V0cHV0IikgKHRyTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInRyIikpIChkYkNyZWF0ZVRlcm0gdHJOZXQgInRyIiAiaW5wdXRPdXRwdXQiKSB3aGVuKChmbGFyZVlhbW91bnRfaW4gPT0gMC4wKSAoZmxhcmVZYW1vdW50X2luID0gZmxhcmVZYW1vdW50KSkgY29uZCgoKHNocmlua1BlcmNlbnQgPT0gMC4wKSAoc2NhbGVNdWx0ID0gMS4wKSkgKHQgKHNjYWxlTXVsdCA9ICgxMDAuMCAvICgxMDAuMCAtIHNocmlua1BlcmNlbnQpKSkgKHZpYTFQb2x5R3JpZCA9IG1heCh2aWExZ3JpZCBwb2x5R3JpZCkpIGZvcmVhY2goc2l6ZUFuZEdyaWQgbGlzdChsaXN0KCdzcmNWaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIHZpYTFncmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhQm90IHZpYTFncmlkKSBsaXN0KCdpbm5lclJpbmdUYXBXaWR0aCB0YXBHcmlkKSBsaXN0KCdvdXRlclJpbmdUYXBXaWR0aCB0YXBHcmlkKSBsaXN0KCdpbm5lclJpbmdNZXRhbFdpZHRoIGxheWVyMmdyaWQpIGxpc3QoJ3ZpYTFWaWEyU3BhY2UgdmlhMWdyaWQpIGxpc3QoJ2xheWVyMldpZHRoIGxheWVyMmdyaWQpIGxpc3QoJ2xheWVyM1dpZHRoIGxheWVyM2dyaWQpIGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCkgbGlzdCgnbWluVyBkaWZmR3JpZCkgbGlzdCgnbWF4VyBkaWZmR3JpZCkgbGlzdCgnbWluVG90YWxXIGRpZmZHcmlkKSkgKHRoZVNpemUgPSBjYXIoc2l6ZUFuZEdyaWQpKSAodGhlR3JpZCA9IGNhZHIoc2l6ZUFuZEdyaWQpKSAodGVtcFNpemUgPSAoKGV2YWwodGhlU2l6ZSkgKiBzY2FsZU11bHQpIC8gdGhlR3JpZCkpIHNldCh0aGVTaXplIChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRoZUdyaWQpKSkpKSBmb3JlYWNoKGtsdWRnZSBsaXN0KGxpc3QoJ29yTGF5ZXIzV2lkdGggbGF5ZXIzZ3JpZCB2aWEyV2lkdGggdmlhMmdyaWQpIGxpc3QoJ291dGVyUmluZ1RhcFdpZHRoIHRhcEdyaWQgdmlhMVdpZHRoIHZpYTFncmlkKSkgKHRtcE9yTGF5ZXJXaWR0aCA9IG50aCgwIGtsdWRnZSkpICh0bXBPckxheWVyR3JpZCA9IG50aCgxIGtsdWRnZSkpICh0bXBWaWFXaWR0aCA9IG50aCgyIGtsdWRnZSkpICh0bXBWaWFHcmlkID0gbnRoKDMga2x1ZGdlKSkgKHRlbXBTaXplID0gKHRtcFZpYVdpZHRoIC8gdG1wVmlhR3JpZCkpIGNvbmQoKG9kZHAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4oZXZlbnAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkpIHNldCh0bXBPckxheWVyV2lkdGggKGV2YWwodG1wT3JMYXllcldpZHRoKSArIGxheWVyM2dyaWQpKSkpICh0ICh0ZW1wU2l6ZSA9IChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgLyB0bXBPckxheWVyR3JpZCkpIHdoZW4ob2RkcChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgc2V0KHRtcE9yTGF5ZXJXaWR0aCAoZXZhbCh0bXBPckxheWVyV2lkdGgpICsgbGF5ZXIzZ3JpZCkpKSkpKSAodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh2aWEyUGl0Y2ggPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKHRhcmdldFJvd3MgPSAoKHcgKyAoLTIuMCAqIHZpYUV4dERpZmYpICsgdmlhMVNwYWNlKSAvIHZpYTFQaXRjaCkpIChyb3dzT2ZDb250YWN0cyA9IGZpeCgoMC45OTkgKyB0YXJnZXRSb3dzKSkpIHdoZW4oKGFicygocm93c09mQ29udGFjdHMgLSB0YXJnZXRSb3dzKSkgPiAwLjAwMDEpIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiB3ICglZikgZG9lcyBub3Qgc2F0aXNmeSB2aWEgcGl0Y2ggcmVxdWlyZW1lbnRzLiAgVHJ5IGVpdGhlciAlZiBvciAlZlxuIiB3ICgocm93c09mQ29udGFjdHMgKiB2aWExUGl0Y2gpICsgKC0gdmlhMVNwYWNlKSArICgyLjAgKiB2aWFFeHREaWZmKSkgKCgocm93c09mQ29udGFjdHMgLSAxKSAqIHZpYTFQaXRjaCkgKyAoLSB2aWExU3BhY2UpICsgKDIuMCAqIHZpYUV4dERpZmYpKSkpIHdoZW4oKCh3IC0gMWUtMDYpIDwgbWluVykgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICB3ICglZikgaXMgbGVzcyB0aGFuIG1pbmltdW0gYWxsb3dhYmxlIHdpZHRoIHBlciBsZWcgKCVmKVxuIiB3IG1pblcpKSB3aGVuKCgodyAtIDFlLTA2KSA+IG1heFcpIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiAgdyAoJWYpIGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIGFsbG93YWJsZSB3aWR0aCBwZXIgbGVnICglZilcbiIgdyBtYXhXKSkgd2hlbigoKHcgKiBtKSA8IG1pblRvdGFsVykgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICB0b3RhbCB3ICglZikgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIHRvdGFsIHdpZHRoICglZilcbiIgKHcgKiBtKSBtaW5Ub3RhbFcpKSB1bmxlc3MoKCFmbG9hdHAobSkgJiYgbnVtYmVycChtKSkgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICBtIG11c3QgYmUgYW4gZXZlbiBpbnRlZ2VyLCBub3QgYSBmbG9hdFxuIikpIHdoZW4ob2RkcChtKSBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogIG0gKG51bWJlciBvZiBsZWdzKSBtdXN0IGJlIGFuIGV2ZW4gaW50ZWdlclxuIikpIChmbGFyZWRHYXRlSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmxhcmVkR2F0ZU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhmbGFyZWRHYXRlSWQgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIGZsYXJlZCBnYXRlICVzXG4iIGZsYXJlZEdhdGVOYW1lKSkgdW5sZXNzKChmbGFyZWRHYXRlSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogIEZsYXJlZCBnYXRlICVzIGlzIG5vdCBhIHBjZWxsXG4iIGZsYXJlZEdhdGVOYW1lKSkgKHJpbmdJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBnZW5lcmljUmluZ05hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhyaW5nSWQgZXJyb3IoInBFc2RUcmFuSW1wQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogIFJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgKHJpdmV0ZWRSaW5nSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgcml2ZXRlZFJpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Mocml2ZXRlZFJpbmdJZCBlcnJvcigicEVzZFRyYW5JbXBDbGFzczogIENhbm5vdCBmaW5kL29wZW4gcml2ZXRlZCByaW5nICVzXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIHVubGVzcygocml2ZXRlZFJpbmdJZH4+aXNQYXJhbUNlbGwpIGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiAgUml2ZXRlZCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIGNvbmQoKHNwbGl0U291cmNlIGlmKGxlZnRFbmRUYXAgKGRpZmZYb3JpZ2luID0gKCgtIHNyY1ZpYUdhdGVTcGFjZSkgKyAoLSBleHRyYVNyY1NwYWNlKSArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFUb0RpZmZFZGdTcGFjZSkgKyAoLSBzdHJpcFRhcFRvRGlmZlNwYWNlKSArICgtIHRhcFdpZHRoKSkpIChkaWZmWG9yaWdpbiA9ICgoLSBzcmNWaWFHYXRlU3BhY2UpICsgKC0gZXh0cmFTcmNTcGFjZSkgKyAoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSkpIChoYWxmU3JjRGlmZkxlbmd0aCA9IChzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgdmlhMVdpZHRoICsgc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSAoc3JjVmlhVG9TcmNUYXBTcGFjZSA9IDAuMCkpICghZmxvYXROd2VsbCAoc3JjVmlhVG9TcmNUYXBTcGFjZSA9IG1heCgwLjAgKHZpYTFTcGFjZSAtICgodGFwV2lkdGggLSB2aWExV2lkdGgpIC8gMi4wKSkgc3JjVmlhVGFwU3BhY2UpKSAoZGlmZlhvcmlnaW4gPSAoKC0gdGFwV2lkdGgpICsgKC0gc3JjVmlhVG9TcmNUYXBTcGFjZSkgKyAoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpKSkgKGhhbGZTcmNEaWZmTGVuZ3RoID0gKHNyY1ZpYUdhdGVTcGFjZSArIGV4dHJhU3JjU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFUb1NyY1RhcFNwYWNlKSkpICh0IChkaWZmWG9yaWdpbiA9ICgoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpICsgKC0gc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSkgKGhhbGZTcmNEaWZmTGVuZ3RoID0gKHNyY1ZpYUdhdGVTcGFjZSArIGV4dHJhU3JjU3BhY2UgKyAodmlhMVdpZHRoIC8gMikpKSkpICh0b3RhbERybkxlbmd0aCA9ICgoMi4wICogKGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UpKSArIHZpYTFXaWR0aCkpICh0b3RhbFNyY0RpZmZMZW5ndGggPSAoMi4wICogaGFsZlNyY0RpZmZMZW5ndGgpKSAoaGFsZkwgPSAobCAvIDIuMCkpIChkaWZmWWVuZCA9IHcpIChkaWZmWW9yaWdpbiA9IDAuMCkgKGRpZmZJbXBZZW5kID0gKGRpZmZZZW5kICsgZGlmZkltcEVuYykpIChkaWZmSW1wWW9yaWdpbiA9IChkaWZmWW9yaWdpbiAtIGRpZmZJbXBFbmMpKSBpZigoc3BsaXRTb3VyY2UgfHwgIWZsb2F0TndlbGwpIHRoZW4gKGRiaWRUYXBMID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKGRpZmZYb3JpZ2luOmRpZmZZb3JpZ2luKSAoKGRpZmZYb3JpZ2luICsgdGFwV2lkdGgpOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkVGFwTCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBXZWxsSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gdGFwV2VsbEltcEVuYykgKGRpZmZZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIGxpc3QoKGRpZmZYb3JpZ2luICsgdGFwV2lkdGggKyBpZihzcGxpdFNvdXJjZSB0YXBXZWxsSW1wRW5jIDAuMCkpIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkaWZmWGxvb3AgPSAoZGlmZlhvcmlnaW4gKyB0YXBXaWR0aCArIHN0cmlwVGFwVG9EaWZmU3BhY2UpKSB3aGVuKChzcGxpdFNvdXJjZSAmJiAhbGVmdEVuZFRhcCkgKGRiRGVsZXRlT2JqZWN0IGRiaWRUYXBMKSAoZGJEZWxldGVPYmplY3QgZGJpZCkgKGRpZmZYbG9vcCA9IGRpZmZYb3JpZ2luKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhvcmlnaW46ZGlmZllvcmlnaW4pICgoZGlmZlhvcmlnaW4gKyBzcmNWaWFUb0RpZmZFZGdTcGFjZSk6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZJbXBFbmMpIGRpZmZJbXBZb3JpZ2luKSBsaXN0KChkaWZmWG9yaWdpbiArIHNyY1ZpYVRvRGlmZkVkZ1NwYWNlKSBkaWZmSW1wWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGlmZlhsb29wID0gKGRpZmZYb3JpZ2luICsgc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSkgZm9yKHNlY3Rpb24gMSAobSAvIDIpIChzcmNEaWZmWGVuZCA9IChkaWZmWGxvb3AgKyBoYWxmU3JjRGlmZkxlbmd0aCArIGhhbGZMKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKHNyY0RpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChpZihzcGxpdFNvdXJjZSAoZGlmZlhsb29wIC0gZGlmZkltcEVuYykgZGlmZlhsb29wKSBkaWZmSW1wWW9yaWdpbikgbGlzdChzcmNEaWZmWGVuZCBkaWZmSW1wWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGlmZlhsb29wID0gc3JjRGlmZlhlbmQpIChkcm5EaWZmWGVuZCA9IChkaWZmWGxvb3AgKyB0b3RhbERybkxlbmd0aCArIGwpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZHJuRGlmZlhlbmQ6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KGRpZmZYbG9vcCBkaWZmSW1wWW9yaWdpbikgbGlzdChkcm5EaWZmWGVuZCBkaWZmSW1wWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAoZGlmZlhsb29wID0gZHJuRGlmZlhlbmQpIChzcmNEaWZmWGVuZCA9IChkaWZmWGxvb3AgKyBoYWxmU3JjRGlmZkxlbmd0aCArIGhhbGZMKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKHNyY0RpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChkaWZmWGxvb3AgZGlmZkltcFlvcmlnaW4pIGxpc3QoaWYoc3BsaXRTb3VyY2UgKHNyY0RpZmZYZW5kICsgZGlmZkltcEVuYykgc3JjRGlmZlhlbmQpIGRpZmZJbXBZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIHdoZW4oIWZsb2F0TndlbGwgKHRhcFgwID0gKHNyY0RpZmZYZW5kICsgc3RyaXBUYXBUb0RpZmZTcGFjZSkpICh0YXBYMSA9ICh0YXBYMCArIHRhcFdpZHRoKSkgKGRiaWRUYXAgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgodGFwWDA6ZGlmZllvcmlnaW4pICh0YXBYMTpkaWZmWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZFRhcCBzTmV0KSBjb25kKChzcGxpdFNvdXJjZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBXZWxsSW1wbGFudCBsaXN0KGxpc3QoKHRhcFgwIC0gdGFwV2VsbEltcEVuYykgKGRpZmZZb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIGxpc3QoKHRhcFgxICsgdGFwV2VsbEltcEVuYykgKGRpZmZZZW5kICsgdGFwV2VsbEltcEVuYykpKSkpKSAoKHNlY3Rpb24gPT0gKG0gLyAyKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwV2VsbEltcGxhbnQgbGlzdChsaXN0KHRhcFgwIChkaWZmWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSBsaXN0KCh0YXBYMSArIHRhcFdlbGxJbXBFbmMpIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSkgKHQgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwV2VsbEltcGxhbnQgbGlzdChsaXN0KHRhcFgwIChkaWZmWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSBsaXN0KHRhcFgxIChkaWZmWWVuZCArIHRhcFdlbGxJbXBFbmMpKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkpIChkaWZmWGxvb3AgPSAoc3JjRGlmZlhlbmQgKyB0YXBXaWR0aCArICgyICogc3RyaXBUYXBUb0RpZmZTcGFjZSkpKSkgKGRpZmZYZW5kID0gKGRpZmZYbG9vcCAtIHN0cmlwVGFwVG9EaWZmU3BhY2UpKSB3aGVuKChzcGxpdFNvdXJjZSAmJiAhcmlnaHRFbmRUYXApIChkYkRlbGV0ZU9iamVjdCBkYmlkVGFwKSAoZGJEZWxldGVPYmplY3QgZGJpZCkgKGRpZmZYbG9vcCA9IHNyY0RpZmZYZW5kKSAoZGlmZlhlbmQgPSBkaWZmWGxvb3ApKSB3aGVuKGZsb2F0TndlbGwgKGRpZmZYZW5kID0gKGRpZmZYbG9vcCArIHZpYTFXaWR0aCArIHNyY1ZpYVRvRGlmZkVkZ1NwYWNlKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChkaWZmWGxvb3AgZGlmZkltcFlvcmlnaW4pIGxpc3QoKGRpZmZYZW5kICsgZGlmZkltcEVuYykgZGlmZkltcFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpZExheWVyIGxpc3QoKGRpZmZYb3JpZ2luOmRpZmZZb3JpZ2luKSAoZGlmZlhlbmQ6ZGlmZlllbmQpKSkgd2hlbihkaWZmQ29yZUltcGxhbnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KCgoZGlmZlhvcmlnaW4gKyAoc3RyaXBUYXBUb0RpZmZTcGFjZSArIHRhcFdpZHRoKSArICgtIGRpZmZDb3JlSW1wRW5jKSk6KGRpZmZZb3JpZ2luICsgKC0gZGlmZkNvcmVJbXBFbmMpKSkgKChkaWZmWGVuZCArICgtIChzdHJpcFRhcFRvRGlmZlNwYWNlICsgdGFwV2lkdGgpKSArIGRpZmZDb3JlSW1wRW5jKTooZGlmZlllbmQgKyBkaWZmQ29yZUltcEVuYykpKSkpIChnYXRlWG9mZnNldCA9IDAuMCkgZm9yKGdhdGVOdW0gMSBtIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZmxhcmVkR2F0ZUlkIHNwcmludGYobmlsICJnJWQiIGdhdGVOdW0pICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJnYXRlTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoImdhdGVSZWNvZ25pdGlvbkxheWVyIiAibGlzdCIgcmdhdGVMYXllcikgbGlzdCgidyIgImZsb2F0IiB3KSBsaXN0KCJsIiAiZmxvYXQiIGwpIGxpc3QoImZsYXJlQW1vdW50X2luIiAiZmxvYXQiIGZsYXJlWWFtb3VudF9pbikgbGlzdCgiZmxhcmVBbW91bnQiICJmbG9hdCIgZmxhcmVZYW1vdW50KSBsaXN0KCJmbGFyZUV4dGVuc2lvbiIgImZsb2F0IiBmbGFyZVlleHRlbnNpb24pIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgZ2F0ZVhvZmZzZXQpKSkpIHVubGVzcyhpbnN0IGVycm9yKCJwRXNkVHJhbkltcENsYXNzOiAgRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBmbGFyZWQgZ2F0ZSAlcyIgZmxhcmVkR2F0ZU5hbWUpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKG1vZGVsVGV4dFggPSAoZ2F0ZVhvZmZzZXQgKyAoKGNhYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpKSAvIDIpKSkgKG1vZGVsVGV4dFkgPSAoKGNhZGFkcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkgLSBjYWRhcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbW9kZWxUZXh0TGF5ZXIgbGlzdChtb2RlbFRleHRYIG1vZGVsVGV4dFkpIG1vZGVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbW9kZWxUZXh0TGF5ZXJTaXplKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+dG9wRmxhcmVQb2ludHMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIpIGFjY2Vzc0RpcikgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIChtYXN0ZXJ+PmJvdHRvbUZsYXJlUG9pbnRzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJib3R0b20iKSBhY2Nlc3NEaXIpIGNvbmQoKChtb2QoZ2F0ZU51bSAyKSA9PSAxKSAoZ2F0ZVhvZmZzZXQgPSAoZ2F0ZVhvZmZzZXQgKyBsICsgdG90YWxEcm5MZW5ndGgpKSkgKHQgKGdhdGVYb2Zmc2V0ID0gKGdhdGVYb2Zmc2V0ICsgbCArIHRvdGFsU3JjRGlmZkxlbmd0aCArIHRhcFdpZHRoICsgKDIgKiBzdHJpcFRhcFRvRGlmZlNwYWNlKSkpKSkpIChkcm5fdmlhMVhvcmlnaW4gPSAwLjApIChkcm5fdmlhMVhlbmQgPSB2aWExV2lkdGgpIGNvbmQoKCgoZHJuX2xheWVyMkwgPSAobGF5ZXIyRW5jVmlhMSArIHZpYTFXaWR0aCArIGxheWVyMkVuY1ZpYTEpKSA+IChkcm5fbGF5ZXIyTGEgPSAobGF5ZXIyRW5jVmlhMiArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSkgKGRybl9sYXllcjJEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSkgKHQgKGRlbHRhID0gKChkcm5fbGF5ZXIyTGEgLSBkcm5fbGF5ZXIyTCkgLyAyLjApKSAoZHJuX2xheWVyMkRlbHRhVmlhMSA9IChsYXllcjJFbmNWaWExICsgKGZpeCgoMWUtMDYgKyAoZGVsdGEgLyBsYXllcjJncmlkKSkpICogbGF5ZXIyZ3JpZCkpKSAoZHJuX2xheWVyMkwgPSBkcm5fbGF5ZXIyTGEpKSkgKGxheWVyMlcgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkpKSAobGF5ZXIyV2EgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpIC0gdmlhMlNwYWNlKSkgKHJvd3NPZkNvbnRhY3RzMiA9IDApIHdoaWxlKCgobGF5ZXIyV2EgLSAxZS0wNSkgPCBsYXllcjJXKSAobGF5ZXIyV2EgPSAobGF5ZXIyV2EgKyB2aWEyUGl0Y2gpKSAocm93c09mQ29udGFjdHMyID0gKHJvd3NPZkNvbnRhY3RzMiArIDEpKSkgKGxheWVyMldhID0gKGxheWVyMldhIC0gdmlhMlBpdGNoKSkgKHJvd3NPZkNvbnRhY3RzMiA9IChyb3dzT2ZDb250YWN0czIgLSAxKSkgKGxheWVyMllEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSAoZXNfZHZpYTFYb3JpZ2luID0gc3JjVmlhVG9TcmNUYXBTcGFjZSkgKGVzX2R2aWExWGVuZCA9IChlc19kdmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSAoZXNfdHZpYTFYb3JpZ2luID0gKGVzX2R2aWExWG9yaWdpbiAtIHZpYTFQaXRjaCkpIChlc190dmlhMVhlbmQgPSAoZXNfdHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgY29uZCgoKChlc19sYXllcjJMID0gKCgyLjAgKiAobGF5ZXIyRW5jVmlhMSArIHZpYTFXaWR0aCkpICsgdmlhMVNwYWNlKSkgPiAoZXNfbGF5ZXIyTGEgPSAoKDIuMCAqIChsYXllcjJFbmNWaWEyICsgdmlhMldpZHRoKSkgKyB2aWEyU3BhY2UpKSkgKGVzX2xheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKGVzX2xheWVyMkxhIC0gZXNfbGF5ZXIyTCkgLyAyLjApKSAoZXNfbGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAoZml4KCgxZS0wNiArIChkZWx0YSAvIGxheWVyMmdyaWQpKSkgKiBsYXllcjJncmlkKSkpIChlc19sYXllcjJMID0gZXNfbGF5ZXIyTGEpKSkgKGVzX3R2aWEyWG9yaWdpbiA9IChlc190dmlhMVhvcmlnaW4gLSBlc19sYXllcjJEZWx0YVZpYTEpKSAoZXNfdHZpYTJYZW5kID0gKGVzX3R2aWEyWG9yaWdpbiArIHZpYTJXaWR0aCkpIChlc19kdmlhMlhvcmlnaW4gPSAoZXNfdHZpYTJYZW5kICsgdmlhMlNwYWNlKSkgKGVzX2R2aWEyWGVuZCA9IChlc19kdmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSBjb25kKCgoKHNzX2xheWVyMkwgPSAoKDIuMCAqIChsYXllcjJFbmNWaWExICsgdmlhMVNwYWNlKSkgKyAoMy4wICogdmlhMVdpZHRoKSkpID4gKHNzX2xheWVyMkxhID0gKCgyLjAgKiAobGF5ZXIyRW5jVmlhMiArIHZpYTJTcGFjZSkpICsgKDMuMCAqIHZpYTJXaWR0aCkpKSkgKHNzX2xheWVyMkRlbHRhVmlhMSA9IGxheWVyMkVuY1ZpYTEpKSAodCAoZGVsdGEgPSAoKHNzX2xheWVyMkxhIC0gc3NfbGF5ZXIyTCkgLyAyLjApKSAoc3NfbGF5ZXIyRGVsdGFWaWExID0gKGxheWVyMkVuY1ZpYTEgKyAocm91bmQoKDFlLTA2ICsgKGRlbHRhIC8gbGF5ZXIyZ3JpZCkpKSAqIGxheWVyMmdyaWQpKSkgKHNzX2xheWVyMkwgPSBzc19sYXllcjJMYSkpKSBpZihzcGxpdFNvdXJjZSAoY29udGFjdFhsb29wID0gKGRpZmZYb3JpZ2luICsgc3JjVmlhVG9EaWZmRWRnU3BhY2UgKyBpZihsZWZ0RW5kVGFwICh0YXBXaWR0aCArIHN0cmlwVGFwVG9EaWZmU3BhY2UpIDAuMCkpKSAoY29udGFjdFhsb29wID0gKGRpZmZYb3JpZ2luICsgdGFwV2lkdGgpKSkgKHZpYTFZb3JpZ2luID0gdmlhRXh0RGlmZikgKGxheWVyMllvcmlnaW4gPSAodmlhMVlvcmlnaW4gLSBsYXllcjJZRGVsdGFWaWExKSkgKHZpYTJZb3JpZ2luID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyKSkgKGxheWVyMlllbmQgPSAobGF5ZXIyWW9yaWdpbiArIChyb3dzT2ZDb250YWN0cyAqIHZpYTFQaXRjaCkgKyAoLSB2aWExU3BhY2UpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgd2hlbihzcGxpdFNvdXJjZSAodGFwWG9mZnNldFYxID0gKCh0YXBXaWR0aCAtIHZpYTFXaWR0aCkgLyAyKSkgKHRhcFhvZmZzZXRWMSA9IChmaXgoKCh0YXBYb2Zmc2V0VjEgLyB0YXBHcmlkKSArIDFlLTA2KSkgKiB0YXBHcmlkKSkgKHRhcFhvZmZzZXRWMiA9ICgodGFwV2lkdGggLSB2aWEyV2lkdGgpIC8gMikpICh0YXBYb2Zmc2V0VjIgPSAoZml4KCgodGFwWG9mZnNldFYyIC8gdGFwR3JpZCkgKyAxZS0wNikpICogdGFwR3JpZCkpICh2aWExVyA9ICh3IC0gKDIgKiAodGFwTGF5Mk9mZnNldFkgKyBsYXllcjJFbmNWaWExKSkpKSAodmlhMVRhcFJvd3MgPSBtYXgoMSBmaXgoKCgodmlhMVcgKyB2aWExU3BhY2UpIC8gdmlhMVBpdGNoKSArIDFlLTA2KSkpKSAodmlhMVdhID0gKHZpYTFXaWR0aCArICgodmlhMVRhcFJvd3MgLSAxKSAqIHZpYTFQaXRjaCkpKSAodmlhMVlPZmYgPSBtYXgoMC4wICh2aWExVyAtIHZpYTFXYSkpKSAodmlhMVlvZmZzZXQgPSAoZml4KCgoKHZpYTFZT2ZmIC8gMikgLyBsYXllcjJncmlkKSArIDFlLTA2KSkgKiBsYXllcjJncmlkKSkgKHZpYTJXID0gKHZpYTFXIC0gKDIgKiAodGFwTGF5M09mZnNldFkgKyBsYXllcjNFbmNWaWEyKSkpKSAodmlhMlRhcFJvd3MgPSBtYXgoMSBmaXgoKCgodmlhMlcgKyB2aWEyU3BhY2UpIC8gdmlhMlBpdGNoKSArIDFlLTA2KSkpKSAodmlhMldhID0gKHZpYTJXaWR0aCArICgodmlhMlRhcFJvd3MgLSAxKSAqIHZpYTJQaXRjaCkpKSAodmlhMllPZmYgPSBtYXgoMC4wICh2aWEyVyAtIHZpYTJXYSkpKSAodmlhMllvZmZzZXQgPSAoZml4KCgoKHZpYTJZT2ZmIC8gMikgLyBsYXllcjJncmlkKSArIDFlLTA2KSkgKiBsYXllcjJncmlkKSkgKGxheWVyMlRhcFkwID0gKGRpZmZZb3JpZ2luICsgdGFwTGF5Mk9mZnNldFkpKSAobGF5ZXIyVGFwWTEgPSAoZGlmZlllbmQgLSB0YXBMYXkyT2Zmc2V0WSkpICh2aWExVGFwWTAgPSAobGF5ZXIyVGFwWTAgKyBsYXllcjJFbmNWaWExKSkgKGxheWVyM1RhcFkwID0gKGxheWVyMlRhcFkwICsgdGFwTGF5M09mZnNldFkpKSAobGF5ZXIzVGFwWTEgPSAobGF5ZXIyVGFwWTEgLSB0YXBMYXkzT2Zmc2V0WSkpICh2aWEyVGFwWTAgPSAobGF5ZXIzVGFwWTAgKyBsYXllcjNFbmNWaWEyICsgdmlhMllvZmZzZXQpKSAobDJidmxDbnRybCA9IChsYXllcjJXaWR0aEQgLyAzLjApKSAobDJidmxDbnRybCA9IChyb3VuZCgoKGwyYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgKGwyYnZsQ250cmxTID0gKGxheWVyMldpZHRoUyAvIDMuMCkpIChsMmJ2bENudHJsUyA9IChyb3VuZCgoKGwyYnZsQ250cmxTIC8gbGF5ZXIyZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIyZ3JpZCkpIChsM2J2bENudHJsID0gKGxheWVyM1dpZHRoRCAvIDMuMCkpIChsM2J2bENudHJsID0gKHJvdW5kKCgobDNidmxDbnRybCAvIGxheWVyM2dyaWQpICsgMC4wMDEpKSAqIGxheWVyM2dyaWQpKSAobDNidmxDbnRybFMgPSAobGF5ZXIzV2lkdGhTIC8gMy4wKSkgKGwzYnZsQ250cmxTID0gKHJvdW5kKCgobDNidmxDbnRybFMgLyBsYXllcjNncmlkKSArIDAuMDAxKSkgKiBsYXllcjNncmlkKSkpIGZvcihyZWdpb24gMCBtICh2aWExWWxvb3AgPSB2aWExWW9yaWdpbikgY29uZCgoKHJlZ2lvbiA9PSAwKSBjb25kKChzcGxpdFNvdXJjZSAoZHZ4byA9IGNvbnRhY3RYbG9vcCkgKGR2eGUgPSAoZHZ4byArIHZpYTFXaWR0aCkpICh0dnhvID0gKGRpZmZYb3JpZ2luICsgdGFwWG9mZnNldFYxKSkgKHR2eGUgPSAodHZ4byArIHZpYTFXaWR0aCkpKSAoIWZsb2F0TndlbGwgKGR2eG8gPSAoY29udGFjdFhsb29wICsgc3JjVmlhVG9TcmNUYXBTcGFjZSkpIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSAodHZ4byA9IChkdnhvIC0gdmlhMVBpdGNoKSkgKHR2eGUgPSAodHZ4byArIHZpYTFXaWR0aCkpKSAodCAoZHZ4byA9IChkaWZmWG9yaWdpbiArIHNyY1ZpYVRvRGlmZkVkZ1NwYWNlKSkgKGR2eGUgPSAoZHZ4byArIHZpYTFXaWR0aCkpICh0dnhvID0gZHZ4bykgKHR2eGUgPSBkdnhlKSkpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0cyAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoZHZ4bzp2aWExWWxvb3ApIChkdnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIHdoZW4oKCFzcGxpdFNvdXJjZSAmJiAhZmxvYXROd2VsbCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHR2eG86dmlhMVlsb29wKSAodHZ4ZToodmlhMVlsb29wICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSkgd2hlbigoc3BsaXRTb3VyY2UgJiYgbGVmdEVuZFRhcCkgKHZpYTFZbG9vcFQgPSAodmlhMVlvZmZzZXQgKyB2aWExVGFwWTApKSBmb3Iocm93IDEgdmlhMVRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHR2eG86dmlhMVlsb29wVCkgKHR2eGU6KHZpYTFZbG9vcFQgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3BUID0gKHZpYTFZbG9vcFQgKyB2aWExUGl0Y2gpKSkpIGlmKGVuZFRhcE1ldEluc2lkZU91dCB0aGVuIChlbmRUYXBMYXllcjJYT2Zmc2V0ID0gKC0gbWF4KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsYXllcjJXaWR0aCkgMC4wKSkpIGVsc2UgKGVuZFRhcExheWVyMlhPZmZzZXQgPSAwLjApKSBpZihzcGxpdFNvdXJjZSB0aGVuIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsYXllcjJZMGQgPSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmxTKSkpIChsYXllcjJZMWQgPSBsYXllcjJZb3JpZ2luKSAobGF5ZXIyWTJkID0gKHZpYTFZbG9vcCArICgtIHZpYTFTcGFjZSkgKyBsYXllcjJFbmNWaWExKSkgKGxheWVyMlkzZCA9ICh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgbGF5ZXIyRW5jVmlhMSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlk0ZCA9ICh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgbGF5ZXIyRW5jVmlhMSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlk1ZCA9ICh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgbGF5ZXIyRW5jVmlhMSkpIChsYXllcjJZNmQgPSBsYXllcjJZb3JpZ2luKSAobGF5ZXIyWTdkID0gKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWExlbmMgPSBzb3VyY2VMYXkyVmlhMUVuYykgKGxheWVyMlhSZW5jID0gKGxheWVyMldpZHRoUyAtICh2aWExV2lkdGggKyBsYXllcjJYTGVuYykpKSAobGF5ZXIyWDBkID0gKChkdnhvIC0gbGF5ZXIyWExlbmMpICsgbDJidmxDbnRybFMpKSAobGF5ZXIyWDFkID0gKGR2eG8gLSBsYXllcjJYTGVuYykpIChsYXllcjJYMmQgPSAoZHZ4byAtIGxheWVyMlhMZW5jKSkgKGxheWVyMlgzZCA9ICgoZHZ4byAtIGxheWVyMlhMZW5jKSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlg0ZCA9IChkdnhlICsgbGF5ZXIyWFJlbmMgKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWDVkID0gKGR2eGUgKyBsYXllcjJYUmVuYykpIChsYXllcjJYNmQgPSAoZHZ4ZSArIGxheWVyMlhSZW5jKSkgKGxheWVyMlg3ZCA9IChkdnhlICsgbGF5ZXIyWFJlbmMgKyAoLSBsMmJ2bENudHJsUykpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KGxheWVyMlgwZCBsYXllcjJZMGQpIGxpc3QobGF5ZXIyWDFkIGxheWVyMlkxZCkgbGlzdChsYXllcjJYMmQgbGF5ZXIyWTJkKSBsaXN0KGxheWVyMlgzZCBsYXllcjJZM2QpIGxpc3QobGF5ZXIyWDRkIGxheWVyMlk0ZCkgbGlzdChsYXllcjJYNWQgbGF5ZXIyWTVkKSBsaXN0KGxheWVyMlg2ZCBsYXllcjJZNmQpIGxpc3QobGF5ZXIyWDdkIGxheWVyMlk3ZCkpKSkgZWxzZSAobGF5ZXIyWDBkID0gKGR2eG8gLSBzb3VyY2VMYXkyVmlhMUVuYykpIChsYXllcjJYMWQgPSAobGF5ZXIyWDBkICsgbGF5ZXIyV2lkdGhTKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMGQgbGF5ZXIyWW9yaWdpbikgbGlzdChsYXllcjJYMWQgbGF5ZXIyWWVuZCkpKSkpIHdoZW4obGVmdEVuZFRhcCAobGF5ZXIyWDB0ID0gKHR2eG8gLSB0YXBMYXkyVmlhMUVuYykpIChsYXllcjJYMXQgPSAobGF5ZXIyWDB0ICsgdGFwTGF5MldpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMHQgbGF5ZXIyVGFwWTApIGxpc3QobGF5ZXIyWDF0IGxheWVyMlRhcFkxKSkpKSkgZWxzZSBpZigobGF5ZXIyV2lkdGggPiAwLjApIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGwyYnZsQ250cmwgPSAobGF5ZXIyV2lkdGggLyAzLjApKSAobDJidmxDbnRybCA9IChyb3VuZCgoKGwyYnZsQ250cmwgLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgbDJidmxDbnRybCArIGVuZFRhcExheWVyMlhPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZZW5kKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBsMmJ2bENudHJsICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgodHZ4byArIGVuZFRhcExheWVyMlhPZmZzZXQgKyAoLSBsYXllcjJFbmNWaWExKSArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSBsYXllcjJZZW5kKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSBsYXllcjJZb3JpZ2luKSBsaXN0KCh0dnhvICsgZW5kVGFwTGF5ZXIyWE9mZnNldCArICgtIGxheWVyMkVuY1ZpYTEpICsgbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGVuZFRhcExheWVyMlhPZmZzZXQpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eG8gKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSArIHZpYTFTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjJFbmNWaWEyKSkpIGxheWVyMlllbmQpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCgodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkpOmxheWVyMllvcmlnaW4pICgodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkgKyBlc19sYXllcjJMKTpsYXllcjJZZW5kKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgaWYoc3BsaXRTb3VyY2UgdGhlbiAoZHZ4byA9IChkdnhlIC0gdmlhMldpZHRoKSkgKGR2eGUgPSBkdnhlKSAodHZ4byA9IChkaWZmWG9yaWdpbiArIHRhcFhvZmZzZXRWMikpICh0dnhlID0gKHR2eG8gKyB2aWEyV2lkdGgpKSBlbHNlIHVubGVzcygodmlhMVZpYTJTcGFjZSA+IDAuMCkgKHR2eG8gPSAodHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkgKyBsYXllcjJFbmNWaWEyKSkgKHR2eGUgPSAodHZ4byArIHZpYTJXaWR0aCkpKSBpZigodmlhMVZpYTJTcGFjZSA+IDAuMCkgdGhlbiAoZHZ4byA9IChkdnhlICsgdmlhMVZpYTJTcGFjZSkpIGVsc2UgKGR2eG8gPSAodHZ4ZSArIHZpYTJTcGFjZSkpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChkdnhvOnZpYTJZbG9vcCkgKGR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgdW5sZXNzKChzcGxpdFNvdXJjZSB8fCAodmlhMVZpYTJTcGFjZSA+IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh0dnhvOnZpYTJZbG9vcCkgKHR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkpICh2aWEyWWxvb3AgPSAodmlhMllsb29wICsgdmlhMlBpdGNoKSkpIHdoZW4oKHNwbGl0U291cmNlICYmIGxlZnRFbmRUYXApICh2aWEyWWxvb3BUID0gdmlhMlRhcFkwKSBmb3Iocm93IDEgdmlhMlRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wVCkgKHR2eGU6KHZpYTJZbG9vcFQgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWEyWWxvb3BUID0gKHZpYTJZbG9vcFQgKyB2aWEyUGl0Y2gpKSkpIGlmKHNwbGl0U291cmNlIHRoZW4gaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxheWVyM1kwZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybFMpKSkgKGxheWVyM1kxZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKGxheWVyM1kyZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChsYXllcjNZM2QgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsUykpIChsYXllcjNZNGQgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsUykpIChsYXllcjNZNWQgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSAobGF5ZXIzWTZkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAobGF5ZXIzWTdkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWExlbmMgPSBzb3VyY2VMYXkzVmlhMkVuYykgKGxheWVyM1hSZW5jID0gKGxheWVyM1dpZHRoUyAtICh2aWEyV2lkdGggKyBsYXllcjNYTGVuYykpKSAobGF5ZXIzWDBkID0gKChkdnhvIC0gbGF5ZXIzWExlbmMpICsgbDNidmxDbnRybFMpKSAobGF5ZXIzWDFkID0gKGR2eG8gLSBsYXllcjNYTGVuYykpIChsYXllcjNYMmQgPSAoZHZ4byAtIGxheWVyM1hMZW5jKSkgKGxheWVyM1gzZCA9ICgoZHZ4byAtIGxheWVyM1hMZW5jKSArIGwzYnZsQ250cmxTKSkgKGxheWVyM1g0ZCA9IChkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWDVkID0gKGR2eGUgKyBsYXllcjNYUmVuYykpIChsYXllcjNYNmQgPSAoZHZ4ZSArIGxheWVyM1hSZW5jKSkgKGxheWVyM1g3ZCA9IChkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1gwZCBsYXllcjNZMGQpIGxpc3QobGF5ZXIzWDFkIGxheWVyM1kxZCkgbGlzdChsYXllcjNYMmQgbGF5ZXIzWTJkKSBsaXN0KGxheWVyM1gzZCBsYXllcjNZM2QpIGxpc3QobGF5ZXIzWDRkIGxheWVyM1k0ZCkgbGlzdChsYXllcjNYNWQgbGF5ZXIzWTVkKSBsaXN0KGxheWVyM1g2ZCBsYXllcjNZNmQpIGxpc3QobGF5ZXIzWDdkIGxheWVyM1k3ZCkpKSkgZWxzZSAobGF5ZXIzWDBkID0gKGR2eG8gLSBzb3VyY2VMYXkzVmlhMkVuYykpIChsYXllcjNYMWQgPSAobGF5ZXIzWDBkICsgbGF5ZXIzV2lkdGhTKSkgKGxheWVyM1kwZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKGxheWVyM1kxZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QobGF5ZXIzWDBkIGxheWVyM1kwZCkgbGlzdChsYXllcjNYMWQgbGF5ZXIzWTFkKSkpKSkgd2hlbihsZWZ0RW5kVGFwIChsYXllcjNYMHQgPSAodHZ4byAtIHRhcExheTNWaWEyRW5jKSkgKGxheWVyM1gxdCA9IChsYXllcjNYMHQgKyB0YXBMYXkzV2lkdGgpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1gwdCBsYXllcjNUYXBZMCkgbGlzdChsYXllcjNYMXQgbGF5ZXIzVGFwWTEpKSkpKSBlbHNlIGlmKChsYXllcjNXaWR0aCA+IDAuMCkgdGhlbiBpZigobGF5ZXIzV2lkdGhfb3V0c2lkZSA+IDAuMCkgdGhlbiAod2lkdGhUb2JlRHJhd24gPSBtYXgobGF5ZXIzV2lkdGhfb3V0c2lkZSAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExU3BhY2UgKyB2aWExVmlhMlNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyM0VuY1ZpYTIpKSkgZWxzZSAod2lkdGhUb2JlRHJhd24gPSBtYXgobGF5ZXIzV2lkdGggKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVNwYWNlICsgdmlhMVZpYTJTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjNFbmNWaWEyKSkpKSBpZihlbmRUYXBNZXRJbnNpZGVPdXQgdGhlbiAoZW5kVGFwTGF5ZXIzWE9mZnNldCA9IChsYXllcjJXaWR0aCArICgtIHdpZHRoVG9iZURyYXduKSArIGVuZFRhcExheWVyMlhPZmZzZXQpKSBlbHNlIChlbmRUYXBMYXllcjNYT2Zmc2V0ID0gMC4wKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGwzYnZsQ250cmwgPSAod2lkdGhUb2JlRHJhd24gLyAzLjApKSAobDNidmxDbnRybCA9IChyb3VuZCgoKGwzYnZsQ250cmwgLyBsYXllcjNncmlkKSArIDAuMDAxKSkgKiBsYXllcjNncmlkKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgbDNidmxDbnRybCArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIGwzYnZsQ250cmwgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgd2lkdGhUb2JlRHJhd24gKyAoLSBsM2J2bENudHJsKSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyB3aWR0aFRvYmVEcmF3biArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKHR2eG8gKyAoLSBsYXllcjJFbmNWaWExKSArIHdpZHRoVG9iZURyYXduICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyB3aWR0aFRvYmVEcmF3biArICgtIGwzYnZsQ250cmwpICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgodHZ4byArICgtIGxheWVyMkVuY1ZpYTEpICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhvICsgKC0gbGF5ZXIyRW5jVmlhMSkgKyB3aWR0aFRvYmVEcmF3biArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eG8gLSBsYXllcjNFbmNWaWEyKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGR2eGUgKyBsYXllcjNFbmNWaWEyKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSkgKChyZWdpb24gPT0gbSkgaWYoc3BsaXRTb3VyY2UgdGhlbiAoY29udGFjdFhsb29wID0gKGNvbnRhY3RYbG9vcCArIHZpYTFXaWR0aCArIGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UgKyBsICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSkpIGVsc2UgKGNvbnRhY3RYbG9vcCA9IChjb250YWN0WGxvb3AgKyB2aWExV2lkdGggKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlICsgbCArIGV4dHJhU3JjU3BhY2UgKyBzcmNWaWFHYXRlU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFUb1NyY1RhcFNwYWNlKSkpIGNvbmQoKHNwbGl0U291cmNlIChkdnhvID0gY29udGFjdFhsb29wKSAoZHZ4ZSA9IChkdnhvICsgdmlhMVdpZHRoKSkgKHR2eG8gPSAoZGlmZlhlbmQgKyAoLSB0YXBYb2Zmc2V0VjEpICsgKC0gdmlhMVdpZHRoKSkpICh0dnhlID0gKHR2eG8gKyB2aWExV2lkdGgpKSkgKCFmbG9hdE53ZWxsIChkdnhvID0gKGNvbnRhY3RYbG9vcCArICgtIHNyY1ZpYVRvU3JjVGFwU3BhY2UpICsgKC0gdmlhMVdpZHRoKSkpIChkdnhlID0gKGR2eG8gKyB2aWExV2lkdGgpKSAodHZ4byA9IChkdnhvICsgdmlhMVBpdGNoKSkgKHR2eGUgPSAodHZ4byArIHZpYTFXaWR0aCkpKSAodCAoZHZ4byA9IChkaWZmWGVuZCArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFUb0RpZmZFZGdTcGFjZSkpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMVdpZHRoKSkgKHR2eG8gPSBkdnhvKSAodHZ4ZSA9IGR2eGUpKSkgZm9yKHJvdyAxIHJvd3NPZkNvbnRhY3RzIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChkdnhvOnZpYTFZbG9vcCkgKGR2eGU6KHZpYTFZbG9vcCArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgd2hlbigoIXNwbGl0U291cmNlICYmICFmbG9hdE53ZWxsKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodHZ4bzp2aWExWWxvb3ApICh0dnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAodmlhMVlsb29wID0gKHZpYTFZbG9vcCArIHZpYTFQaXRjaCkpKSB3aGVuKChzcGxpdFNvdXJjZSAmJiByaWdodEVuZFRhcCkgKHZpYTFZbG9vcFQgPSAodmlhMVlvZmZzZXQgKyB2aWExVGFwWTApKSBmb3Iocm93IDEgdmlhMVRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHR2eG86dmlhMVlsb29wVCkgKHR2eGU6KHZpYTFZbG9vcFQgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3BUID0gKHZpYTFZbG9vcFQgKyB2aWExUGl0Y2gpKSkpIGlmKGVuZFRhcE1ldEluc2lkZU91dCB0aGVuIChlbmRUYXBMYXllcjJYT2Zmc2V0ID0gbWF4KCgoKG0gKiBsKSArICgobSAvIDIpICogdG90YWxEcm5MZW5ndGgpICsgKCgobSAvIDIpIC0gMSkgKiAodGFwV2lkdGggKyB0b3RhbFNyY0RpZmZMZW5ndGgpKSkgLSAodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsYXllcjJXaWR0aCkpKSAwLjApKSBlbHNlIChlbmRUYXBMYXllcjJYT2Zmc2V0ID0gMC4wKSkgaWYoc3BsaXRTb3VyY2UgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobGF5ZXIyWTBkID0gKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWTFkID0gbGF5ZXIyWW9yaWdpbikgKGxheWVyMlkyZCA9ICh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgbGF5ZXIyRW5jVmlhMSkpIChsYXllcjJZM2QgPSAodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGxheWVyMkVuY1ZpYTEgKyBsMmJ2bENudHJsUykpIChsYXllcjJZNGQgPSAodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGxheWVyMkVuY1ZpYTEgKyBsMmJ2bENudHJsUykpIChsYXllcjJZNWQgPSAodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGxheWVyMkVuY1ZpYTEpKSAobGF5ZXIyWTZkID0gbGF5ZXIyWW9yaWdpbikgKGxheWVyMlk3ZCA9IChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybFMpKSkgKGxheWVyMlhSZW5jID0gc291cmNlTGF5MlZpYTFFbmMpIChsYXllcjJYTGVuYyA9IChsYXllcjJXaWR0aFMgLSAodmlhMldpZHRoICsgbGF5ZXIyWFJlbmMpKSkgKGxheWVyMlgwZCA9ICgoZHZ4byAtIGxheWVyMlhMZW5jKSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlgxZCA9IChkdnhvIC0gbGF5ZXIyWExlbmMpKSAobGF5ZXIyWDJkID0gKGR2eG8gLSBsYXllcjJYTGVuYykpIChsYXllcjJYM2QgPSAoKGR2eG8gLSBsYXllcjJYTGVuYykgKyBsMmJ2bENudHJsUykpIChsYXllcjJYNGQgPSAoZHZ4ZSArIGxheWVyMlhSZW5jICsgKC0gbDJidmxDbnRybFMpKSkgKGxheWVyMlg1ZCA9IChkdnhlICsgbGF5ZXIyWFJlbmMpKSAobGF5ZXIyWDZkID0gKGR2eGUgKyBsYXllcjJYUmVuYykpIChsYXllcjJYN2QgPSAoZHZ4ZSArIGxheWVyMlhSZW5jICsgKC0gbDJidmxDbnRybFMpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMGQgbGF5ZXIyWTBkKSBsaXN0KGxheWVyMlgxZCBsYXllcjJZMWQpIGxpc3QobGF5ZXIyWDJkIGxheWVyMlkyZCkgbGlzdChsYXllcjJYM2QgbGF5ZXIyWTNkKSBsaXN0KGxheWVyMlg0ZCBsYXllcjJZNGQpIGxpc3QobGF5ZXIyWDVkIGxheWVyMlk1ZCkgbGlzdChsYXllcjJYNmQgbGF5ZXIyWTZkKSBsaXN0KGxheWVyMlg3ZCBsYXllcjJZN2QpKSkpIGVsc2UgKGxheWVyMlgwZCA9IChkdnhlICsgc291cmNlTGF5MlZpYTFFbmMpKSAobGF5ZXIyWDFkID0gKGxheWVyMlgwZCAtIGxheWVyMldpZHRoUykpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QobGF5ZXIyWDFkIGxheWVyMllvcmlnaW4pIGxpc3QobGF5ZXIyWDBkIGxheWVyMlllbmQpKSkpKSB3aGVuKHJpZ2h0RW5kVGFwIChsYXllcjJYMHQgPSAodHZ4byAtIHRhcExheTJWaWExRW5jKSkgKGxheWVyMlgxdCA9IChsYXllcjJYMHQgKyB0YXBMYXkyV2lkdGgpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KGxheWVyMlgwdCBsYXllcjJUYXBZMCkgbGlzdChsYXllcjJYMXQgbGF5ZXIyVGFwWTEpKSkpKSBlbHNlIGlmKChsYXllcjJXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIGwyYnZsQ250cmwpICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgbGF5ZXIyWW9yaWdpbikgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSBsYXllcjJZZW5kKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIGwyYnZsQ250cmwpICsgZW5kVGFwTGF5ZXIyWE9mZnNldCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgodHZ4ZSArIGVuZFRhcExheWVyMlhPZmZzZXQgKyBsYXllcjJFbmNWaWExICsgKC0gbWF4KGxheWVyMldpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFWaWEyU3BhY2UgKyB2aWExU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIyRW5jVmlhMikpKSArIGwyYnZsQ250cmwpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMlllbmQpIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyMlhPZmZzZXQpIGxheWVyMllvcmlnaW4pIGxpc3QoKHR2eGUgKyBlbmRUYXBMYXllcjJYT2Zmc2V0ICsgbGF5ZXIyRW5jVmlhMSArICgtIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTFXaWR0aCkgKyB2aWEyV2lkdGggKyB2aWExVmlhMlNwYWNlICsgdmlhMVNwYWNlICsgbGF5ZXIyRW5jVmlhMSArIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMlllbmQpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCgoZHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkpOmxheWVyMllvcmlnaW4pICgoZHZ4byArICgtIGVzX2xheWVyMkRlbHRhVmlhMSkgKyBlc19sYXllcjJMKTpsYXllcjJZZW5kKSkpKSkpIGlmKHNwbGl0U291cmNlIHRoZW4gKGR2eG8gPSBkdnhvKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkgKHR2eG8gPSAoZGlmZlhlbmQgKyAoLSB0YXBYb2Zmc2V0VjIpICsgKC0gdmlhMldpZHRoKSkpICh0dnhlID0gKHR2eG8gKyB2aWEyV2lkdGgpKSBlbHNlIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChkdnhvID0gKGR2eG8gLSAodmlhMldpZHRoICsgdmlhMVZpYTJTcGFjZSkpKSBlbHNlIChkdnhvID0gKGR2eG8gKyAoLSBlc19sYXllcjJEZWx0YVZpYTEpICsgbGF5ZXIyRW5jVmlhMikpKSAoZHZ4ZSA9IChkdnhvICsgdmlhMldpZHRoKSkgdW5sZXNzKCh2aWExVmlhMlNwYWNlID4gMC4wKSAodHZ4byA9IChkdnhlICsgdmlhMlNwYWNlKSkgKHR2eGUgPSAodHZ4byArIHZpYTJXaWR0aCkpKSkgKHZpYTJZbG9vcCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMikpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0czIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKGR2eG86dmlhMllsb29wKSAoZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSB1bmxlc3MoKHNwbGl0U291cmNlIHx8ICh2aWExVmlhMlNwYWNlID4gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wKSAodHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSkgKHZpYTJZbG9vcCA9ICh2aWEyWWxvb3AgKyB2aWEyUGl0Y2gpKSkgd2hlbigoc3BsaXRTb3VyY2UgJiYgcmlnaHRFbmRUYXApICh2aWEyWWxvb3BUID0gdmlhMlRhcFkwKSBmb3Iocm93IDEgdmlhMlRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wVCkgKHR2eGU6KHZpYTJZbG9vcFQgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWEyWWxvb3BUID0gKHZpYTJZbG9vcFQgKyB2aWEyUGl0Y2gpKSkpIGlmKHNwbGl0U291cmNlIHRoZW4gaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxheWVyM1kwZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybFMpKSkgKGxheWVyM1kxZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKGxheWVyM1kyZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChsYXllcjNZM2QgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsUykpIChsYXllcjNZNGQgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsUykpIChsYXllcjNZNWQgPSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSAobGF5ZXIzWTZkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAobGF5ZXIzWTdkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWFJlbmMgPSBzb3VyY2VMYXkzVmlhMkVuYykgKGxheWVyM1hMZW5jID0gKGxheWVyM1dpZHRoUyAtICh2aWEyV2lkdGggKyBsYXllcjNYTGVuYykpKSAobGF5ZXIzWDBkID0gKChkdnhvIC0gbGF5ZXIzWExlbmMpICsgbDNidmxDbnRybFMpKSAobGF5ZXIzWDFkID0gKGR2eG8gLSBsYXllcjNYTGVuYykpIChsYXllcjNYMmQgPSAoZHZ4byAtIGxheWVyM1hMZW5jKSkgKGxheWVyM1gzZCA9ICgoZHZ4byAtIGxheWVyM1hMZW5jKSArIGwzYnZsQ250cmxTKSkgKGxheWVyM1g0ZCA9IChkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWDVkID0gKGR2eGUgKyBsYXllcjNYUmVuYykpIChsYXllcjNYNmQgPSAoZHZ4ZSArIGxheWVyM1hSZW5jKSkgKGxheWVyM1g3ZCA9IChkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1gwZCBsYXllcjNZMGQpIGxpc3QobGF5ZXIzWDFkIGxheWVyM1kxZCkgbGlzdChsYXllcjNYMmQgbGF5ZXIzWTJkKSBsaXN0KGxheWVyM1gzZCBsYXllcjNZM2QpIGxpc3QobGF5ZXIzWDRkIGxheWVyM1k0ZCkgbGlzdChsYXllcjNYNWQgbGF5ZXIzWTVkKSBsaXN0KGxheWVyM1g2ZCBsYXllcjNZNmQpIGxpc3QobGF5ZXIzWDdkIGxheWVyM1k3ZCkpKSkgZWxzZSAobGF5ZXIzWDBkID0gKGR2eGUgKyBzb3VyY2VMYXkzVmlhMkVuYykpIChsYXllcjNYMWQgPSAobGF5ZXIzWDBkIC0gbGF5ZXIzV2lkdGhTKSkgKGxheWVyM1kwZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKGxheWVyM1kxZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QobGF5ZXIzWDFkIGxheWVyM1kwZCkgbGlzdChsYXllcjNYMGQgbGF5ZXIzWTFkKSkpKSkgd2hlbihyaWdodEVuZFRhcCAobGF5ZXIzWDB0ID0gKHR2eG8gLSB0YXBMYXkzVmlhMkVuYykpIChsYXllcjNYMXQgPSAobGF5ZXIzWDB0ICsgdGFwTGF5M1dpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMHQgbGF5ZXIzVGFwWTApIGxpc3QobGF5ZXIzWDF0IGxheWVyM1RhcFkxKSkpKSkgZWxzZSBpZigobGF5ZXIzV2lkdGggPiAwLjApIHRoZW4gaWYoKGxheWVyM1dpZHRoX291dHNpZGUgPiAwLjApIHRoZW4gKHdpZHRoVG9iZURyYXduID0gbWF4KGxheWVyM1dpZHRoX291dHNpZGUgKCgyLjAgKiB2aWExV2lkdGgpICsgdmlhMldpZHRoICsgdmlhMVNwYWNlICsgdmlhMVZpYTJTcGFjZSArIGxheWVyMkVuY1ZpYTEgKyBsYXllcjNFbmNWaWEyKSkpIGVsc2UgKHdpZHRoVG9iZURyYXduID0gbWF4KGxheWVyM1dpZHRoICgoMi4wICogdmlhMVdpZHRoKSArIHZpYTJXaWR0aCArIHZpYTFTcGFjZSArIHZpYTFWaWEyU3BhY2UgKyBsYXllcjJFbmNWaWExICsgbGF5ZXIzRW5jVmlhMikpKSkgaWYoZW5kVGFwTWV0SW5zaWRlT3V0IHRoZW4gKGVuZFRhcExheWVyM1hPZmZzZXQgPSAoKC0gbGF5ZXIyV2lkdGgpICsgd2lkdGhUb2JlRHJhd24gKyBlbmRUYXBMYXllcjJYT2Zmc2V0KSkgZWxzZSAoZW5kVGFwTGF5ZXIzWE9mZnNldCA9IDAuMCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsM2J2bENudHJsID0gKHdpZHRoVG9iZURyYXduIC8gMy4wKSkgKGwzYnZsQ250cmwgPSAocm91bmQoKChsM2J2bENudHJsIC8gbGF5ZXIzZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIzZ3JpZCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgKC0gd2lkdGhUb2JlRHJhd24pICsgbDNidmxDbnRybCArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIHdpZHRoVG9iZURyYXduKSArIGVuZFRhcExheWVyM1hPZmZzZXQpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIHdpZHRoVG9iZURyYXduKSArIGwzYnZsQ250cmwgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSBsM2J2bENudHJsKSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArIGVuZFRhcExheWVyM1hPZmZzZXQpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KCh0dnhlICsgbGF5ZXIyRW5jVmlhMSArICgtIGwzYnZsQ250cmwpICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdCgodHZ4ZSArIGxheWVyMkVuY1ZpYTEgKyAoLSB3aWR0aFRvYmVEcmF3bikgKyBlbmRUYXBMYXllcjNYT2Zmc2V0KSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHR2eGUgKyBsYXllcjJFbmNWaWExICsgZW5kVGFwTGF5ZXIzWE9mZnNldCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKChkdnhvIC0gbGF5ZXIzRW5jVmlhMik6KGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAoKHR2eGUgKyBsYXllcjNFbmNWaWEyKToodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJyaWdodCIpIGFjY2Vzc0RpcikpICgoZmxvYXROd2VsbCB8fCAoMSA9PSBtb2QocmVnaW9uIDIpKSkgaWYoIWZsb2F0TndlbGwgdGhlbiBpZihzcGxpdFNvdXJjZSB0aGVuIChjb250YWN0WGxvb3AgPSAoY29udGFjdFhsb29wICsgdmlhMVdpZHRoICsgc3JjVmlhR2F0ZVNwYWNlICsgZXh0cmFTcmNTcGFjZSArIGwgKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlKSkgZWxzZSAoY29udGFjdFhsb29wID0gKGNvbnRhY3RYbG9vcCArIHNyY1ZpYVRvU3JjVGFwU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgbCArIGV4dHJhRHJuU3BhY2UgKyBkcm5WaWFHYXRlU3BhY2UpKSkgZWxzZSBpZigocmVnaW9uID09IDEpIHRoZW4gKGNvbnRhY3RYbG9vcCA9IChjb250YWN0WGxvb3AgKyBzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlICsgbCArIGV4dHJhRHJuU3BhY2UgKyBkcm5WaWFHYXRlU3BhY2UgKyB2aWExV2lkdGggKyBzcmNWaWFUb0RpZmZFZGdTcGFjZSkpIGVsc2UgKGNvbnRhY3RYbG9vcCA9IChjb250YWN0WGxvb3AgKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlICsgbCArIGV4dHJhU3JjU3BhY2UgKyBzcmNWaWFHYXRlU3BhY2UgKyB2aWExV2lkdGgpKSkpIChkdnhvID0gY29udGFjdFhsb29wKSAoZHZ4ZSA9IChkdnhvICsgdmlhMVdpZHRoKSkgZm9yKHJvdyAxIHJvd3NPZkNvbnRhY3RzIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChkdnhvOnZpYTFZbG9vcCkgKGR2eGU6KHZpYTFZbG9vcCArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSkgaWYoKGxheWVyMldpZHRoID4gMC4wKSB0aGVuIGlmKChsYXllcjJXaWR0aCA+ICgoMi4wICogdmlhMVZpYTJTcGFjZSkgKyAoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiBsYXllcjJFbmNWaWEyKSkpIHRoZW4gKGxheWVyMlhvcmlnaW5fZHIgPSAoZHZ4byAtICgobGF5ZXIyV2lkdGggLSB2aWExV2lkdGgpICogMC41KSkpIChsYXllcjJYb3JpZ2luX2RyID0gKHJvdW5kKCgobGF5ZXIyWG9yaWdpbl9kciAvIGxheWVyMmdyaWQpICsgMC4wMDEpKSAqIGxheWVyMmdyaWQpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbDJidmxDbnRybCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpIGxpc3QobGF5ZXIyWG9yaWdpbl9kciBsYXllcjJZb3JpZ2luKSBsaXN0KGxheWVyMlhvcmlnaW5fZHIgbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbl9kciArIGwyYnZsQ250cmwpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsYXllcjJXaWR0aCArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbGF5ZXIyV2lkdGgpIGxheWVyMlllbmQpIGxpc3QoKGxheWVyMlhvcmlnaW5fZHIgKyBsYXllcjJXaWR0aCkgbGF5ZXIyWW9yaWdpbikgbGlzdCgobGF5ZXIyWG9yaWdpbl9kciArIGxheWVyMldpZHRoICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QobGF5ZXIyWG9yaWdpbl9kciBsYXllcjJZb3JpZ2luKSBsaXN0KChsYXllcjJYb3JpZ2luX2RyICsgbGF5ZXIyV2lkdGgpIGxheWVyMlllbmQpKSkpKSBlbHNlIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QoKChkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkgbGlzdCgoZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMllvcmlnaW4pIGxpc3QoKGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSBsYXllcjJZZW5kKSBsaXN0KCgoZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpICsgbDJidmxDbnRybCkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgoZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikgbGF5ZXIyWWVuZCkgbGlzdCgoZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZb3JpZ2luKSBsaXN0KChkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgoZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMllvcmlnaW4pIGxpc3QoKGR2eGUgKyB2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikgbGF5ZXIyWWVuZCkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCgoZHZ4byAtIGRybl9sYXllcjJEZWx0YVZpYTEpOmxheWVyMllvcmlnaW4pICgoZHZ4ZSArIGRybl9sYXllcjJEZWx0YVZpYTEpOmxheWVyMlllbmQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGROZXQpIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChkdnhvID0gKGR2eG8gKyAoLSB2aWExVmlhMlNwYWNlKSArICgtIHZpYTJXaWR0aCkpKSBlbHNlIChkdnhvID0gKGR2eG8gKyAoLSBkcm5fbGF5ZXIyRGVsdGFWaWExKSArIGxheWVyMkVuY1ZpYTIpKSkgKGR2eGUgPSAoZHZ4byArIHZpYTJXaWR0aCkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChkdnhvOnZpYTJZbG9vcCkgKGR2eGU6KHZpYTJZbG9vcCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgd2hlbigodmlhMVZpYTJTcGFjZSA+IDAuMCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKChkdnhvICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgdmlhMldpZHRoKTp2aWEyWWxvb3ApICgoZHZ4byArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWEyV2lkdGgpKToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSkgKHZpYTJZbG9vcCA9ICh2aWEyWWxvb3AgKyB2aWEyUGl0Y2gpKSkgaWYoKGxheWVyM1dpZHRoID4gMC4wKSB0aGVuIChsM2J2bENudHJsID0gKGxheWVyM1dpZHRoIC8gMy4wKSkgKGwzYnZsQ250cmwgPSAocm91bmQoKChsM2J2bENudHJsIC8gbGF5ZXIyZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIyZ3JpZCkpIGlmKChsYXllcjNXaWR0aCA+ICgoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArICgyLjAgKiBsYXllcjNFbmNWaWEyKSkpIHRoZW4gKGxheWVyM1hvcmlnaW5fZHIgPSAoY29udGFjdFhsb29wIC0gKChsYXllcjNXaWR0aCAtIHZpYTJXaWR0aCkgKiAwLjUpKSkgKGxheWVyM1hvcmlnaW5fZHIgPSAocm91bmQoKChsYXllcjNYb3JpZ2luX2RyIC8gbGF5ZXIzZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIzZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsM2J2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdChsYXllcjNYb3JpZ2luX2RyIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdChsYXllcjNYb3JpZ2luX2RyICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsM2J2bENudHJsKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGxheWVyM1dpZHRoICsgKC0gbDNidmxDbnRybCkpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChsYXllcjNYb3JpZ2luX2RyICsgbGF5ZXIzV2lkdGgpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGxheWVyM1hvcmlnaW5fZHIgKyBsYXllcjNXaWR0aCkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChsYXllcjNYb3JpZ2luX2RyICsgbGF5ZXIzV2lkdGggKyAoLSBsM2J2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYb3JpZ2luX2RyIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgobGF5ZXIzWG9yaWdpbl9kciArIGxheWVyM1dpZHRoKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgZWxzZSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KChkdnhvICsgKC0gbGF5ZXIzRW5jVmlhMikgKyBsM2J2bENudHJsKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdCgoZHZ4byArICgtIGxheWVyM0VuY1ZpYTIpKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKGR2eG8gKyAoLSBsYXllcjNFbmNWaWEyKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgoZHZ4byArICgtIGxheWVyM0VuY1ZpYTIpICsgbDNidmxDbnRybCkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKGR2eG8gKyAoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKGR2eG8gKyAoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGR2eG8gKyAoMi4wICogdmlhMldpZHRoKSArIHZpYTFXaWR0aCArICgyLjAgKiB2aWExVmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArICgtIGwzYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KChkdnhvICsgKC0gbGF5ZXIzRW5jVmlhMikpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgoZHZ4byArICgyLjAgKiB2aWEyV2lkdGgpICsgdmlhMVdpZHRoICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpKSBlbHNlIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KCgoZHZ4byAtIGxheWVyM0VuY1ZpYTIpOihsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgKChkdnhlICsgbGF5ZXIzRW5jVmlhMik6KHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGROZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iKSBhY2Nlc3NEaXIpKSAoIWZsb2F0TndlbGwgaWYoc3BsaXRTb3VyY2UgdGhlbiAobGR2eG8gPSAoY29udGFjdFhsb29wICsgdmlhMVdpZHRoICsgZHJuVmlhR2F0ZVNwYWNlICsgZXh0cmFEcm5TcGFjZSArIGwgKyBzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlKSkgKGxkdnhlID0gKGxkdnhvICsgdmlhMVdpZHRoKSkgKHR2eG8gPSAobGR2eGUgKyBzcmNWaWFUb0RpZmZFZGdTcGFjZSArIHN0cmlwVGFwVG9EaWZmU3BhY2UgKyB0YXBYb2Zmc2V0VjEpKSAodHZ4ZSA9ICh0dnhvICsgdmlhMVdpZHRoKSkgKHJkdnhvID0gKGxkdnhlICsgdGFwV2lkdGggKyAoMiAqIChzdHJpcFRhcFRvRGlmZlNwYWNlICsgc3JjVmlhVG9EaWZmRWRnU3BhY2UpKSkpIChyZHZ4ZSA9IChyZHZ4byArIHZpYTFXaWR0aCkpIChjb250YWN0WGxvb3AgPSByZHZ4bykgZWxzZSAoY29udGFjdFhsb29wID0gKGNvbnRhY3RYbG9vcCArIHZpYTFXaWR0aCArIGRyblZpYUdhdGVTcGFjZSArIGV4dHJhRHJuU3BhY2UgKyBsICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSArIHZpYTFXaWR0aCArIHNyY1ZpYVRvU3JjVGFwU3BhY2UgKyB0YXBXaWR0aCkpIChyZHZ4byA9IChjb250YWN0WGxvb3AgKyBzcmNWaWFUb1NyY1RhcFNwYWNlKSkgKHJkdnhlID0gKHJkdnhvICsgdmlhMVdpZHRoKSkgaWYoKHRhcFdpZHRoID4gKHZpYTFXaWR0aCArICgyLjAgKiB0YXBFbmNWaWExKSkpIHRoZW4gKHR2eG8gPSAoKChyZHZ4byAtICgwLjUgKiAodGFwV2lkdGggLSB2aWExV2lkdGgpKSkgLSB2aWExV2lkdGgpIC0gc3JjVmlhVGFwU3BhY2UpKSAodHZ4byA9IChyb3VuZCgoKHR2eG8gLyB2aWExZ3JpZCkgKyAwLjAwMSkpICogdmlhMWdyaWQpKSBlbHNlICh0dnhvID0gKHJkdnhvICsgKC0gdmlhMVBpdGNoKSkpKSAodHZ4ZSA9ICh0dnhvICsgdmlhMVdpZHRoKSkgKGxkdnhvID0gbWluKCh0dnhvICsgKC0gdmlhMVBpdGNoKSkgKGNvbnRhY3RYbG9vcCArICgtIHRhcFdpZHRoKSArICgtIHZpYTFXaWR0aCkgKyAoLSBzcmNWaWFUYXBTcGFjZSkpKSkgKGxkdnhlID0gKGxkdnhvICsgdmlhMVdpZHRoKSkpIGZvcihyb3cgMSByb3dzT2ZDb250YWN0cyB3aGVuKCFzcGxpdFNvdXJjZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodHZ4bzp2aWExWWxvb3ApICh0dnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgocmR2eG86dmlhMVlsb29wKSAocmR2eGU6KHZpYTFZbG9vcCArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKGxkdnhvOnZpYTFZbG9vcCkgKGxkdnhlOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3AgPSAodmlhMVlsb29wICsgdmlhMVBpdGNoKSkpIHdoZW4oc3BsaXRTb3VyY2UgKHZpYTFZbG9vcFQgPSAodmlhMVlvZmZzZXQgKyB2aWExVGFwWTApKSBmb3Iocm93IDEgdmlhMVRhcFJvd3MgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHR2eG86dmlhMVlsb29wVCkgKHR2eGU6KHZpYTFZbG9vcFQgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWExWWxvb3BUID0gKHZpYTFZbG9vcFQgKyB2aWExUGl0Y2gpKSkpIGlmKHNwbGl0U291cmNlIHRoZW4gaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxheWVyMlkwZCA9IChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybFMpKSkgKGxheWVyMlkxZCA9IGxheWVyMllvcmlnaW4pIChsYXllcjJZMmQgPSAodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGxheWVyMkVuY1ZpYTEpKSAobGF5ZXIyWTNkID0gKHZpYTFZbG9vcCArICgtIHZpYTFTcGFjZSkgKyBsYXllcjJFbmNWaWExICsgbDJidmxDbnRybFMpKSAobGF5ZXIyWTRkID0gKHZpYTFZbG9vcCArICgtIHZpYTFTcGFjZSkgKyBsYXllcjJFbmNWaWExICsgbDJidmxDbnRybFMpKSAobGF5ZXIyWTVkID0gKHZpYTFZbG9vcCArICgtIHZpYTFTcGFjZSkgKyBsYXllcjJFbmNWaWExKSkgKGxheWVyMlk2ZCA9IGxheWVyMllvcmlnaW4pIChsYXllcjJZN2QgPSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmxTKSkpIChsYXllcjJYTGVuYyA9IHNvdXJjZUxheTJWaWExRW5jKSAobGF5ZXIyWFJlbmMgPSAobGF5ZXIyV2lkdGhTIC0gKHZpYTFXaWR0aCArIGxheWVyMlhMZW5jKSkpIChsYXllcjJYMHJkID0gKChyZHZ4byAtIGxheWVyMlhMZW5jKSArIGwyYnZsQ250cmxTKSkgKGxheWVyMlgxcmQgPSAocmR2eG8gLSBsYXllcjJYTGVuYykpIChsYXllcjJYMnJkID0gKHJkdnhvIC0gbGF5ZXIyWExlbmMpKSAobGF5ZXIyWDNyZCA9ICgocmR2eG8gLSBsYXllcjJYTGVuYykgKyBsMmJ2bENudHJsUykpIChsYXllcjJYNHJkID0gKHJkdnhlICsgbGF5ZXIyWFJlbmMgKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWDVyZCA9IChyZHZ4ZSArIGxheWVyMlhSZW5jKSkgKGxheWVyMlg2cmQgPSAocmR2eGUgKyBsYXllcjJYUmVuYykpIChsYXllcjJYN3JkID0gKHJkdnhlICsgbGF5ZXIyWFJlbmMgKyAoLSBsMmJ2bENudHJsUykpKSAobGF5ZXIyWFJlbmMgPSBzb3VyY2VMYXkyVmlhMUVuYykgKGxheWVyMlhMZW5jID0gKGxheWVyMldpZHRoUyAtICh2aWEyV2lkdGggKyBsYXllcjJYUmVuYykpKSAobGF5ZXIyWDBsZCA9ICgobGR2eG8gLSBsYXllcjJYTGVuYykgKyBsMmJ2bENudHJsUykpIChsYXllcjJYMWxkID0gKGxkdnhvIC0gbGF5ZXIyWExlbmMpKSAobGF5ZXIyWDJsZCA9IChsZHZ4byAtIGxheWVyMlhMZW5jKSkgKGxheWVyMlgzbGQgPSAoKGxkdnhvIC0gbGF5ZXIyWExlbmMpICsgbDJidmxDbnRybFMpKSAobGF5ZXIyWDRsZCA9IChsZHZ4ZSArIGxheWVyMlhSZW5jICsgKC0gbDJidmxDbnRybFMpKSkgKGxheWVyMlg1bGQgPSAobGR2eGUgKyBsYXllcjJYUmVuYykpIChsYXllcjJYNmxkID0gKGxkdnhlICsgbGF5ZXIyWFJlbmMpKSAobGF5ZXIyWDdsZCA9IChsZHZ4ZSArIGxheWVyMlhSZW5jICsgKC0gbDJidmxDbnRybFMpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMHJkIGxheWVyMlkwZCkgbGlzdChsYXllcjJYMXJkIGxheWVyMlkxZCkgbGlzdChsYXllcjJYMnJkIGxheWVyMlkyZCkgbGlzdChsYXllcjJYM3JkIGxheWVyMlkzZCkgbGlzdChsYXllcjJYNHJkIGxheWVyMlk0ZCkgbGlzdChsYXllcjJYNXJkIGxheWVyMlk1ZCkgbGlzdChsYXllcjJYNnJkIGxheWVyMlk2ZCkgbGlzdChsYXllcjJYN3JkIGxheWVyMlk3ZCkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMGxkIGxheWVyMlkwZCkgbGlzdChsYXllcjJYMWxkIGxheWVyMlkxZCkgbGlzdChsYXllcjJYMmxkIGxheWVyMlkyZCkgbGlzdChsYXllcjJYM2xkIGxheWVyMlkzZCkgbGlzdChsYXllcjJYNGxkIGxheWVyMlk0ZCkgbGlzdChsYXllcjJYNWxkIGxheWVyMlk1ZCkgbGlzdChsYXllcjJYNmxkIGxheWVyMlk2ZCkgbGlzdChsYXllcjJYN2xkIGxheWVyMlk3ZCkpKSkgZWxzZSAobGF5ZXIyWDBsZCA9IChsZHZ4ZSArIHNvdXJjZUxheTJWaWExRW5jKSkgKGxheWVyMlgxbGQgPSAobGF5ZXIyWDBsZCAtIGxheWVyMldpZHRoUykpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KGxpc3QobGF5ZXIyWDFsZCBsYXllcjJZb3JpZ2luKSBsaXN0KGxheWVyMlgwbGQgbGF5ZXIyWWVuZCkpKSkgKGxheWVyMlgwcmQgPSAocmR2eG8gLSBzb3VyY2VMYXkyVmlhMUVuYykpIChsYXllcjJYMXJkID0gKGxheWVyMlgwcmQgKyBsYXllcjJXaWR0aFMpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KGxheWVyMlgwcmQgbGF5ZXIyWW9yaWdpbikgbGlzdChsYXllcjJYMXJkIGxheWVyMlllbmQpKSkpKSAobGF5ZXIyWDB0ID0gKHR2eG8gLSB0YXBMYXkyVmlhMUVuYykpIChsYXllcjJYMXQgPSAobGF5ZXIyWDB0ICsgdGFwTGF5MldpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYMHQgbGF5ZXIyVGFwWTApIGxpc3QobGF5ZXIyWDF0IGxheWVyMlRhcFkxKSkpKSBlbHNlIGlmKChsYXllcjJXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KCgobGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSArIGwyYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgKC0gbDJidmxDbnRybCkpKSBsaXN0KChsZHZ4byAtICh2aWExVmlhMlNwYWNlICsgdmlhMldpZHRoICsgbGF5ZXIyRW5jVmlhMikpIGxheWVyMllvcmlnaW4pIGxpc3QoKGxkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgbGF5ZXIyWWVuZCkgbGlzdCgoKGxkdnhvIC0gKHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkgKyBsMmJ2bENudHJsKSAobGF5ZXIyWWVuZCArIGwyYnZsQ250cmwpKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyICsgKC0gbDJidmxDbnRybCkpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKHJkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpIGxheWVyMlllbmQpIGxpc3QoKHJkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpIGxheWVyMllvcmlnaW4pIGxpc3QoKHJkdnhlICsgdmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdCgobGR2eG8gLSAodmlhMVZpYTJTcGFjZSArIHZpYTJXaWR0aCArIGxheWVyMkVuY1ZpYTIpKSBsYXllcjJZb3JpZ2luKSBsaXN0KChyZHZ4ZSArIHZpYTFWaWEyU3BhY2UgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSBsYXllcjJZZW5kKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgoKGxkdnhvIC0gc3NfbGF5ZXIyRGVsdGFWaWExKTpsYXllcjJZb3JpZ2luKSAoKGxkdnhvICsgKC0gc3NfbGF5ZXIyRGVsdGFWaWExKSArIHNzX2xheWVyMkwpOmxheWVyMlllbmQpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSBpZihzcGxpdFNvdXJjZSB0aGVuIChsZHZ4byA9IGxkdnhvKSAobGR2eGUgPSAobGR2eG8gKyB2aWEyV2lkdGgpKSAocmR2eG8gPSAocmR2eGUgLSB2aWEyV2lkdGgpKSAocmR2eGUgPSAocmR2eG8gKyB2aWEyV2lkdGgpKSAodHZ4byA9IChjb250YWN0WGxvb3AgLSAoc3RyaXBUYXBUb0RpZmZTcGFjZSArIHZpYTJXaWR0aCArIHRhcFhvZmZzZXRWMiArIHNyY1ZpYVRvRGlmZkVkZ1NwYWNlKSkpICh0dnhlID0gKHR2eG8gKyB2aWEyV2lkdGgpKSBlbHNlIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuIChsZHZ4byA9IChsZHZ4byArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSkpIGVsc2UgKGxkdnhvID0gKGxkdnhvICsgKC0gc3NfbGF5ZXIyRGVsdGFWaWExKSArIGxheWVyMkVuY1ZpYTIpKSkgKGxkdnhlID0gKGxkdnhvICsgdmlhMldpZHRoKSkgKHR2eG8gPSAobGR2eGUgKyB2aWEyU3BhY2UpKSAodHZ4ZSA9ICh0dnhvICsgdmlhMldpZHRoKSkgaWYoKHZpYTFWaWEyU3BhY2UgPiAwLjApIHRoZW4gKHJkdnhvID0gKHJkdnhlICsgdmlhMVZpYTJTcGFjZSkpIGVsc2UgKHJkdnhvID0gKHR2eGUgKyB2aWEyU3BhY2UpKSkgKHJkdnhlID0gKHJkdnhvICsgdmlhMldpZHRoKSkpICh2aWEyWWxvb3AgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KChsZHZ4bzp2aWEyWWxvb3ApIChsZHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSB1bmxlc3MoKHNwbGl0U291cmNlIHx8ICh2aWExVmlhMlNwYWNlID4gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHR2eG86dmlhMllsb29wKSAodHZ4ZToodmlhMllsb29wICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHJkdnhvOnZpYTJZbG9vcCkgKHJkdnhlOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpICh2aWEyWWxvb3AgPSAodmlhMllsb29wICsgdmlhMlBpdGNoKSkpIHdoZW4oc3BsaXRTb3VyY2UgKHZpYTJZbG9vcFQgPSB2aWEyVGFwWTApIGZvcihyb3cgMSB2aWEyVGFwUm93cyAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodHZ4bzp2aWEyWWxvb3BUKSAodHZ4ZToodmlhMllsb29wVCArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKHZpYTJZbG9vcFQgPSAodmlhMllsb29wVCArIHZpYTJQaXRjaCkpKSkgaWYoc3BsaXRTb3VyY2UgdGhlbiBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobGF5ZXIzWTBkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWTFkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAobGF5ZXIzWTJkID0gKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgKGxheWVyM1kzZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmxTKSkgKGxheWVyM1k0ZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmxTKSkgKGxheWVyM1k1ZCA9ICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIChsYXllcjNZNmQgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIChsYXllcjNZN2QgPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmxTKSkpIChsYXllcjNYUmVuYyA9IHNvdXJjZUxheTNWaWEyRW5jKSAobGF5ZXIzWExlbmMgPSAobGF5ZXIzV2lkdGhTIC0gKHZpYTJXaWR0aCArIGxheWVyM1hSZW5jKSkpIChsYXllcjNYMGxkID0gKChsZHZ4byAtIGxheWVyM1hMZW5jKSArIGwzYnZsQ250cmxTKSkgKGxheWVyM1gxbGQgPSAobGR2eG8gLSBsYXllcjNYTGVuYykpIChsYXllcjNYMmxkID0gKGxkdnhvIC0gbGF5ZXIzWExlbmMpKSAobGF5ZXIzWDNsZCA9ICgobGR2eG8gLSBsYXllcjNYTGVuYykgKyBsM2J2bENudHJsUykpIChsYXllcjNYNGxkID0gKGxkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWDVsZCA9IChsZHZ4ZSArIGxheWVyM1hSZW5jKSkgKGxheWVyM1g2bGQgPSAobGR2eGUgKyBsYXllcjNYUmVuYykpIChsYXllcjNYN2xkID0gKGxkdnhlICsgbGF5ZXIzWFJlbmMgKyAoLSBsM2J2bENudHJsUykpKSAobGF5ZXIzWExlbmMgPSBzb3VyY2VMYXkzVmlhMkVuYykgKGxheWVyM1hSZW5jID0gKGxheWVyM1dpZHRoUyAtICh2aWEyV2lkdGggKyBsYXllcjNYTGVuYykpKSAobGF5ZXIzWDByZCA9ICgocmR2eG8gLSBsYXllcjNYTGVuYykgKyBsM2J2bENudHJsUykpIChsYXllcjNYMXJkID0gKHJkdnhvIC0gbGF5ZXIzWExlbmMpKSAobGF5ZXIzWDJyZCA9IChyZHZ4byAtIGxheWVyM1hMZW5jKSkgKGxheWVyM1gzcmQgPSAoKHJkdnhvIC0gbGF5ZXIzWExlbmMpICsgbDNidmxDbnRybFMpKSAobGF5ZXIzWDRyZCA9IChyZHZ4ZSArIGxheWVyM1hSZW5jICsgKC0gbDNidmxDbnRybFMpKSkgKGxheWVyM1g1cmQgPSAocmR2eGUgKyBsYXllcjNYUmVuYykpIChsYXllcjNYNnJkID0gKHJkdnhlICsgbGF5ZXIzWFJlbmMpKSAobGF5ZXIzWDdyZCA9IChyZHZ4ZSArIGxheWVyM1hSZW5jICsgKC0gbDNidmxDbnRybFMpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMGxkIGxheWVyM1kwZCkgbGlzdChsYXllcjNYMWxkIGxheWVyM1kxZCkgbGlzdChsYXllcjNYMmxkIGxheWVyM1kyZCkgbGlzdChsYXllcjNYM2xkIGxheWVyM1kzZCkgbGlzdChsYXllcjNYNGxkIGxheWVyM1k0ZCkgbGlzdChsYXllcjNYNWxkIGxheWVyM1k1ZCkgbGlzdChsYXllcjNYNmxkIGxheWVyM1k2ZCkgbGlzdChsYXllcjNYN2xkIGxheWVyM1k3ZCkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMHJkIGxheWVyM1kwZCkgbGlzdChsYXllcjNYMXJkIGxheWVyM1kxZCkgbGlzdChsYXllcjNYMnJkIGxheWVyM1kyZCkgbGlzdChsYXllcjNYM3JkIGxheWVyM1kzZCkgbGlzdChsYXllcjNYNHJkIGxheWVyM1k0ZCkgbGlzdChsYXllcjNYNXJkIGxheWVyM1k1ZCkgbGlzdChsYXllcjNYNnJkIGxheWVyM1k2ZCkgbGlzdChsYXllcjNYN3JkIGxheWVyM1k3ZCkpKSkgZWxzZSAobGF5ZXIzWTBkID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAobGF5ZXIzWTFkID0gKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgKGxheWVyM1gwbGQgPSAobGR2eGUgKyBzb3VyY2VMYXkzVmlhMkVuYykpIChsYXllcjNYMWxkID0gKGxheWVyM1gwbGQgLSBsYXllcjNXaWR0aFMpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KGxheWVyM1gxbGQgbGF5ZXIzWTBkKSBsaXN0KGxheWVyM1gwbGQgbGF5ZXIzWTFkKSkpKSAobGF5ZXIzWDByZCA9IChyZHZ4byAtIHNvdXJjZUxheTNWaWEyRW5jKSkgKGxheWVyM1gxcmQgPSAobGF5ZXIzWDByZCArIGxheWVyM1dpZHRoUykpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QobGF5ZXIzWDByZCBsYXllcjNZMGQpIGxpc3QobGF5ZXIzWDFyZCBsYXllcjNZMWQpKSkpKSAobGF5ZXIzWDB0ID0gKHR2eG8gLSB0YXBMYXkzVmlhMkVuYykpIChsYXllcjNYMXQgPSAobGF5ZXIzWDB0ICsgdGFwTGF5M1dpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYMHQgbGF5ZXIzVGFwWTApIGxpc3QobGF5ZXIzWDF0IGxheWVyM1RhcFkxKSkpKSBlbHNlIGlmKChsYXllcjNXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSArIGwzYnZsQ250cmwpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpICsgKC0gbDNidmxDbnRybCkpKSBsaXN0KChsZHZ4byAtIGxheWVyM0VuY1ZpYTIpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSBsaXN0KCgobGR2eG8gLSBsYXllcjNFbmNWaWEyKSArIGwzYnZsQ250cmwpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChyZHZ4ZSArIGxheWVyM0VuY1ZpYTIgKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyICsgbDNidmxDbnRybCkpIGxpc3QoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMikgKHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkgbGlzdCgocmR2eGUgKyBsYXllcjNFbmNWaWEyKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSkpIGxpc3QoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMiArICgtIGwzYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIgKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdChsaXN0KChsZHZ4byAtIGxheWVyM0VuY1ZpYTIpIChsYXllcjJZb3JpZ2luICsgbGF5ZXIyRW5jVmlhMiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgocmR2eGUgKyBsYXllcjNFbmNWaWEyKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgoKGxkdnhvIC0gbGF5ZXIzRW5jVmlhMik6KGxheWVyMllvcmlnaW4gKyBsYXllcjJFbmNWaWEyICsgKC0gbGF5ZXIzRW5jVmlhMikpKSAoKHJkdnhlICsgbGF5ZXIzRW5jVmlhMik6KHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBzTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIikgYWNjZXNzRGlyKSkpKSAodGFwV2lkdGhJbklSID0gbWF4KGlubmVyUmluZ1RhcFdpZHRoICh2aWExV2lkdGggKyAoMi4wICogdGFwRW5jVmlhMSkpKSkgKGlyVGFwWG9yaWdpbiA9IChkaWZmWG9yaWdpbiAtIG1pbkRpZmZUYXBSaW5nU3BhY2UgLSBleHRyYUxlZnRTcGFjZSAtIHRhcFdpZHRoSW5JUikpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpclZpYU9mZnNldCA9IChmaXgoKCgoKGlubmVyUmluZ01ldGFsV2lkdGggLyAyLjApIC0gKHZpYTFXaWR0aCAvIDIuMCkpIC8gdmlhMWdyaWQpICsgMC45OTkpKSAqIHZpYTFncmlkKSkgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSBpclZpYU9mZnNldCkpIGVsc2UgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSB0YXBFbmNWaWExKSkpIChpclRhcEwgPSAoKGRpZmZYZW5kICsgbWluRGlmZlRhcFJpbmdTcGFjZSArIGV4dHJhUmlnaHRTcGFjZSArIHRhcFdpZHRoSW5JUikgLSBpclRhcFhvcmlnaW4pKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJUYXBXID0gKCh2aWExWWxvb3AgKyAoLSB2aWExU3BhY2UpICsgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCArIHZpYTFXaWR0aCArIGlyVmlhT2Zmc2V0KSAtIGlyVGFwWW9yaWdpbikpIGVsc2UgKGlyVGFwVyA9ICgodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKyB2aWExV2lkdGggKyB0YXBFbmNWaWExKSAtIGlyVGFwWW9yaWdpbikpKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbklSKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlyVGFwVykgbGlzdCgibCIgImZsb2F0IiBpclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXJUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlyVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbklSKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSB3aGVuKHRhcFdlbGxJbXBsYW50IChpdHJpWG9yaWdpbiA9IChpclRhcFhvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgKGl0cmlZb3JpZ2luID0gKGlyVGFwWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSAoaXRyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluSVIgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChpdHJpVyA9IChpclRhcFcgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChpdHJpTCA9IChpclRhcEwgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJpdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpdHJpVykgbGlzdCgibCIgImZsb2F0IiBpdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwV2VsbEltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpKSAod2VsbFhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luIC0gd2VsbEVuY1RhcCkpICh3ZWxsWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gLSB3ZWxsRW5jVGFwKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh3ZWxsWG9yaWdpbjp3ZWxsWW9yaWdpbikgKCh3ZWxsWG9yaWdpbiArIGlyVGFwTCArICgyLjAgKiB3ZWxsRW5jVGFwKSk6KHdlbGxZb3JpZ2luICsgaXJUYXBXICsgKDIuMCAqIHdlbGxFbmNUYXApKSkpKSB3aGVuKG1heHZMYXllciAoaHZsbHggPSAod2VsbFhvcmlnaW4gLSBodldlbGxFbmNsb3N1cmUpKSAoaHZsbHkgPSAod2VsbFlvcmlnaW4gLSBodldlbGxFbmNsb3N1cmUpKSAoaHZ1cnggPSAod2VsbFhvcmlnaW4gKyBpclRhcEwgKyAoMi4wICogd2VsbEVuY1RhcCkgKyBodldlbGxFbmNsb3N1cmUpKSAoaHZ1cnkgPSAod2VsbFlvcmlnaW4gKyBpclRhcFcgKyAoMi4wICogd2VsbEVuY1RhcCkgKyBodldlbGxFbmNsb3N1cmUpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QoKGh2bGx4Omh2bGx5KSAoaHZ1cng6aHZ1cnkpKSkpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuICh4Q29vcmQgPSAoaXJUYXBYb3JpZ2luICsgbWF4KGlyVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkgKHlDb29yZCA9IChpclRhcFlvcmlnaW4gKyBtYXgoaXJWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSAobW9kVyA9IChpclRhcFcgLSAoMi4wICogbWF4KGlyVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkpIChtb2RMID0gKGlyVGFwTCAtICgyLjAgKiBtYXgoaXJWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSkgZWxzZSAoeENvb3JkID0gKGlyVGFwWG9yaWdpbiArIHRhcEVuY1ZpYTEpKSAoeUNvb3JkID0gKGlyVGFwWW9yaWdpbiArIHRhcEVuY1ZpYTEpKSAobW9kVyA9IChpclRhcFcgLSAoMi4wICogdGFwRW5jVmlhMSkpKSAobW9kTCA9IChpclRhcEwgLSAoMi4wICogdGFwRW5jVmlhMSkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gKDIuMCAqIHZpYTFTcGFjZSkpICh1cHBlckxlZnRCTCA9ICgyLjAgKiB2aWExU3BhY2UpKSAobG93ZXJSaWdodEJMID0gKDIuMCAqIHZpYTFTcGFjZSkpICh1cHBlclJpZ2h0QkwgPSAoMi4wICogdmlhMVNwYWNlKSkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIHdoZW4oZmlsbGVkUmluZ3MgKHZpYTFFbmMgPSBtYXgobGF5ZXIyRW5jVmlhMSB0YXBFbmNWaWExKSkgKHZpYTFXaWR0aEluSVIgPSAodGFwV2lkdGhJbklSIC0gKDIuMCAqIHZpYTFFbmMpKSkgKHZpYTFYb3JpZ2luID0gKGlyVGFwWG9yaWdpbiArIHZpYTFFbmMpKSAodmlhMVlvcmlnaW4gPSAoaXJUYXBZb3JpZ2luICsgdmlhMUVuYykpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJpdjFyIiBpZihmaWxsZWRSaW5ncyAoMDowKSAoeENvb3JkOnlDb29yZCkpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKGlyVGFwVyAtICgyLjAgKiB2aWExRW5jKSkgbW9kVykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKGlyVGFwTCAtICgyLjAgKiB2aWExRW5jKSkgbW9kTCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVhvcmlnaW4gMC4wKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWExWW9yaWdpbiAwLjApKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMUxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVdpZHRoSW5JUiB2aWExV2lkdGgpKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWExU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMWdyaWQpKSkgaWYoc3BsaXRTb3VyY2UgdGhlbiAoaXJMMnJpbmdXID0gaW5uZXJSaW5nTWV0YWxXaWR0aCkgKGlyTDJPZmYgPSAoaW5uZXJSaW5nVGFwV2lkdGggLSBpbm5lclJpbmdNZXRhbFdpZHRoKSkgKGlyTDJPZmYgPSAoZml4KCgoKGlyTDJPZmYgLyAyKSAvIGxheWVyMmdyaWQpICsgMWUtMDYpKSAqIGxheWVyMmdyaWQpKSAoaXJMMnhEZWx0YSA9IChpclRhcFhvcmlnaW4gKyBpckwyT2ZmKSkgKGlyTDJ5RGVsdGEgPSAoaXJUYXBZb3JpZ2luICsgaXJMMk9mZikpIChpckwydyA9IChpclRhcFcgKyAoLTIuMCAqIGlyTDJPZmYpKSkgKGlyTDJsID0gKGlyVGFwTCArICgtMi4wICogaXJMMk9mZikpKSBlbHNlIChpckwydyA9IChpclRhcFcgKyAoLTIuMCAqIHRhcEVuY1ZpYTEpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKGlyTDJsID0gKGlyVGFwTCArICgtMi4wICogdGFwRW5jVmlhMSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnhEZWx0YSA9IChpclRhcFhvcmlnaW4gKyB0YXBFbmNWaWExICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnlEZWx0YSA9IChpclRhcFlvcmlnaW4gKyB0YXBFbmNWaWExICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIGlubmVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChpckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9IGlyTDJyaW5nVykgKHVwcGVyTGVmdEJMID0gaXJMMnJpbmdXKSAobG93ZXJSaWdodEJMID0gaXJMMnJpbmdXKSAodXBwZXJSaWdodEJMID0gaXJMMnJpbmdXKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImlsMnIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwVyBpckwydykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBMIGlyTDJsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFhvcmlnaW4gaXJMMnhEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBZb3JpZ2luIGlyTDJ5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgaXJMMnJpbmdXKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjJncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBpck5ldCkgd2hlbigobGF5ZXIzICYmIGZ1bGx5U3RyYXAgJiYgKGZ1bGx5U3RyYXAgIT0gIkZBTFNFIikpIChpdjJyRW5jID0gKChpckwycmluZ1cgLSB2aWEyV2lkdGgpIC8gMi4wKSkgKHRlbXBTaXplID0gKGl2MnJFbmMgLyB2aWEyZ3JpZCkpIChpdjJyRW5jID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdmlhMmdyaWQpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgdW5sZXNzKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIml2MnIiICgoaXJMMnhEZWx0YSArIGl2MnJFbmMpOihpckwyeURlbHRhICsgaXYyckVuYykpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKGlyTDJ3IC0gKDIuMCAqIGl2MnJFbmMpKSkgbGlzdCgibCIgImZsb2F0IiAoaXJMMmwgLSAoMi4wICogaXYyckVuYykpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWEyTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgd2hlbihmaWxsZWRSaW5ncyAodmlhMkVuYyA9IG1heChsYXllcjJFbmNWaWEyIGxheWVyM0VuY1ZpYTIpKSAodmlhMldpZHRoSW5JUiA9ICh0YXBXaWR0aEluSVIgLSAoMi4wICogdmlhMkVuYykpKSAodmlhMlhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luICsgdmlhMkVuYykpICh2aWEyWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gKyB2aWEyRW5jKSkgKHZpYTJCZXZlbCA9ICh2aWEyV2lkdGhJbklSICsgKDIuMCAqIHZpYTJFbmMpKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAiaXYyciIgKDA6MCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAoaXJUYXBXIC0gKDIuMCAqIHZpYTJFbmMpKSkgbGlzdCgibCIgImZsb2F0IiAoaXJUYXBMIC0gKDIuMCAqIHZpYTJFbmMpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiB2aWEyWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiB2aWEyWW9yaWdpbikgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aEluSVIpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQmV2ZWwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJldmVsKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCZXZlbCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQmV2ZWwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJMM3cgPSBpckwydykgKGlyTDNsID0gaXJMMmwpIChpckwzeERlbHRhID0gaXJMMnhEZWx0YSkgKGlyTDN5RGVsdGEgPSBpckwyeURlbHRhKSAoaXJMM3JpbmdXID0gbWF4KCgoMi4wICogaXJMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkgaW5uZXJSaW5nTWV0YWxXaWR0aCkpIGVsc2UgKGlyTDN3ID0gKGlyTDJ3ICsgKC0yLjAgKiBpdjJyRW5jKSArICgyLjAgKiBpckxheWVyM0VuY1ZpYTIpKSkgKGlyTDNsID0gKGlyTDJsICsgKC0yLjAgKiBpdjJyRW5jKSArICgyLjAgKiBpckxheWVyM0VuY1ZpYTIpKSkgKGlyTDN4RGVsdGEgPSAoaXJMMnhEZWx0YSArIGl2MnJFbmMgKyAoLSBpckxheWVyM0VuY1ZpYTIpKSkgKGlyTDN5RGVsdGEgPSAoaXJMMnlEZWx0YSArIGl2MnJFbmMgKyAoLSBpckxheWVyM0VuY1ZpYTIpKSkgKGlyTDNyaW5nVyA9ICgoMi4wICogaXJMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSAodG9wTGF5ZXIgPSBsYXllcjMpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9IGlyTDNyaW5nVykgKHVwcGVyTGVmdEJMID0gaXJMM3JpbmdXKSAobG93ZXJSaWdodEJMID0gaXJMM3JpbmdXKSAodXBwZXJSaWdodEJMID0gaXJMM3JpbmdXKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImlsM3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwVyBpckwzdykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBMIGlyTDNsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFhvcmlnaW4gaXJMM3hEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBZb3JpZ2luIGlyTDN5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgaXJMM3JpbmdXKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiBpckxheWVyM0FkZFdpZHRoQnZsKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiBsb3dlckxlZnRCTCkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdGFwV2lkdGhJbklSIHVwcGVyTGVmdEJMKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgbG93ZXJSaWdodEJMKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB0YXBXaWR0aEluSVIgdXBwZXJSaWdodEJMKSkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjNncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiB0KSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgaXJOZXQpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDEpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDIpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAodGFwV2lkdGhJbk9SID0gbWF4KG91dGVyUmluZ1RhcFdpZHRoICgoMi4wICogdGFwRW5jVmlhMSkgKyB2aWExV2lkdGgpKSkgKG91dGVyVGFwRGVsdGEgPSAod2VsbFRhcFNwYWNlICsgdGFwV2lkdGhJbk9SKSkgKG9yVGFwWG9yaWdpbiA9ICh3ZWxsWG9yaWdpbiAtIG91dGVyVGFwRGVsdGEpKSAob3JUYXBZb3JpZ2luID0gKHdlbGxZb3JpZ2luIC0gb3V0ZXJUYXBEZWx0YSkpIChvclRhcFcgPSAoaXJUYXBXICsgKDIuMCAqIChvdXRlclRhcERlbHRhICsgd2VsbEVuY1RhcCkpKSkgKG9yVGFwTCA9IChpclRhcEwgKyAoMi4wICogKG91dGVyVGFwRGVsdGEgKyB3ZWxsRW5jVGFwKSkpKSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKG9yTGF5ZXIzWG9yaWdpbkEgPSAoaXJMM3hEZWx0YSAtIG9yaXJMYXllcjNTcGFjZSAtIG9yTGF5ZXIzV2lkdGgpKSAob3JMYXllcjNYb3JpZ2luQiA9IChvclRhcFhvcmlnaW4gKyAodGFwV2lkdGhJbk9SIC8gMi4wKSArIChvckxheWVyM1dpZHRoIC8gLTIuMCkpKSB3aGVuKChvckxheWVyM1hvcmlnaW5BIDwgb3JMYXllcjNYb3JpZ2luQikgKGV4dHJhU3BhY2UgPSAob3JMYXllcjNYb3JpZ2luQiAtIG9yTGF5ZXIzWG9yaWdpbkEpKSAodGVtcFNpemUgPSAoZXh0cmFTcGFjZSAvIHRhcEdyaWQpKSAoZXh0cmFTcGFjZSA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRhcEdyaWQpKSAob3JUYXBYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIGV4dHJhU3BhY2UpKSAob3JUYXBZb3JpZ2luID0gKG9yVGFwWW9yaWdpbiAtIGV4dHJhU3BhY2UpKSAob3JUYXBXID0gKG9yVGFwVyArICgyLjAgKiBleHRyYVNwYWNlKSkpIChvclRhcEwgPSAob3JUYXBMICsgKDIuMCAqIGV4dHJhU3BhY2UpKSkpKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbk9SKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIG9yVGFwVykgbGlzdCgibCIgImZsb2F0IiBvclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgb3JUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIG9yVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbk9SKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSB3aGVuKHRhcFN1YkltcGxhbnQgKG90cmlYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIHRhcFN1YkltcEVuYykpIChvdHJpWW9yaWdpbiA9IChvclRhcFlvcmlnaW4gLSB0YXBTdWJJbXBFbmMpKSAob3RyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluT1IgKyB0YXBTdWJJbXBFbmMgKyB0YXBTdWJJbXBFbmMpKSAob3RyaVcgPSAob3JUYXBXICsgdGFwU3ViSW1wRW5jICsgdGFwU3ViSW1wRW5jKSkgKG90cmlMID0gKG9yVGFwTCArIHRhcFN1YkltcEVuYyArIHRhcFN1YkltcEVuYykpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBvdHJpVykgbGlzdCgibCIgImZsb2F0IiBvdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBvdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBvdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwU3ViSW1wbGFudCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIG90cmlSaW5nV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgbmlsKSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkpIChvclZpYU9mZnNldCA9IChmaXgoKCgoKHRhcFdpZHRoSW5PUiAvIDIuMCkgLSAodmlhMVdpZHRoIC8gMi4wKSkgLyB2aWExZ3JpZCkgKyAwLjk5OSkpICogdmlhMWdyaWQpKSAoeENvb3JkID0gKG9yVGFwWG9yaWdpbiArIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpICh5Q29vcmQgPSAob3JUYXBZb3JpZ2luICsgbWF4KG9yVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkgKGxvd2VyTGVmdEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpICh1cHBlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAobG93ZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpICh1cHBlclJpZ2h0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgd2hlbihmaWxsZWRSaW5ncyAob3JUYXBFbmNWaWExID0gKHRhcFdpZHRoSW5PUiAtIG9yTGF5ZXIzV2lkdGgpKSAodmlhMVdpZHRoSW5PUiA9IChvckxheWVyM1dpZHRoIC0gKDIuMCAqIHZpYTFFbmMpKSkpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MXIiIGlmKGZpbGxlZFJpbmdzIChvclRhcFhvcmlnaW46b3JUYXBZb3JpZ2luKSAoeENvb3JkOnlDb29yZCkpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiAob3JUYXBFbmNWaWExICsgdmlhMUVuYykpKSAob3JUYXBXIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpKSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBMIC0gKDIuMCAqIChvclRhcEVuY1ZpYTEgKyB2aWExRW5jKSkpIChvclRhcEwgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSkpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEVuY1ZpYTEgKyB2aWExRW5jKSAwLjApKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEVuY1ZpYTEgKyB2aWExRW5jKSAwLjApKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMUxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMVdpZHRoSW5PUiB2aWExV2lkdGgpKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWExU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIGxvd2VyTGVmdEJMKSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgdXBwZXJMZWZ0QkwpKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCBsb3dlclJpZ2h0QkwpKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCB1cHBlclJpZ2h0QkwpKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWExZ3JpZCkpKSB1bmxlc3MoKGZpbGxlZFJpbmdzIHx8IGxheWVyMkVkZ2VzQXQ0NSB8fCB0YXBFZGdlc0F0NDUpIChleHRyYVZpYTFSaWdodE9yaWdpbiA9ICh4Q29vcmQgKyAob3JUYXBMIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkpICsgKC0gdmlhMVdpZHRoKSkpIChleHRyYVZpYTFUb3BPcmlnaW4gPSAoeUNvb3JkICsgKG9yVGFwVyAtICgyLjAgKiBtYXgob3JWaWFPZmZzZXQgdGFwRW5jVmlhMSkpKSArICgtIHZpYTFXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh4Q29vcmQgeUNvb3JkKSBsaXN0KCh4Q29vcmQgKyB2aWExV2lkdGgpICh5Q29vcmQgKyB2aWExV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KGV4dHJhVmlhMVJpZ2h0T3JpZ2luIHlDb29yZCkgbGlzdCgoZXh0cmFWaWExUmlnaHRPcmlnaW4gKyB2aWExV2lkdGgpICh5Q29vcmQgKyB2aWExV2lkdGgpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KHhDb29yZCBleHRyYVZpYTFUb3BPcmlnaW4pIGxpc3QoKHhDb29yZCArIHZpYTFXaWR0aCkgKGV4dHJhVmlhMVRvcE9yaWdpbiArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoZXh0cmFWaWExUmlnaHRPcmlnaW4gZXh0cmFWaWExVG9wT3JpZ2luKSBsaXN0KChleHRyYVZpYTFSaWdodE9yaWdpbiArIHZpYTFXaWR0aCkgKGV4dHJhVmlhMVRvcE9yaWdpbiArIHZpYTFXaWR0aCkpKSkpIGlmKGxheWVyMyB0aGVuIChvckxheWVyM0VuY1ZpYTIgPSAoKG9yTGF5ZXIzV2lkdGggLSB2aWEyV2lkdGgpIC8gMi4wKSkgKHRlbXBTaXplID0gKG9yTGF5ZXIzRW5jVmlhMiAvIGxheWVyM2dyaWQpKSAob3JMYXllcjNFbmNWaWEyID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogbGF5ZXIzZ3JpZCkpIChvdXRlclJpbmdNZXRhbFdpZHRoID0gKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkgKG9yTDJ3ID0gKG9yVGFwVyArICgtIHRhcFdpZHRoSW5PUikgKyBvdXRlclJpbmdNZXRhbFdpZHRoKSkgKG9yTDJsID0gKG9yVGFwTCArICgtIHRhcFdpZHRoSW5PUikgKyBvdXRlclJpbmdNZXRhbFdpZHRoKSkgKG9yTDJ4RGVsdGEgPSAob3JUYXBYb3JpZ2luICsgKCh0YXBXaWR0aEluT1IgKyAoLSBvdXRlclJpbmdNZXRhbFdpZHRoKSkgLyAyLjApKSkgKG9yTDJ4RGVsdGEgPSAoZml4KCgob3JMMnhEZWx0YSAvIGxheWVyMmdyaWQpICsgMC45OTkpKSAqIGxheWVyMmdyaWQpKSAob3JMMnlEZWx0YSA9IChvclRhcFlvcmlnaW4gKyAoKHRhcFdpZHRoSW5PUiArICgtIG91dGVyUmluZ01ldGFsV2lkdGgpKSAvIDIuMCkpKSAob3JMMnlEZWx0YSA9IChmaXgoKChvckwyeURlbHRhIC8gbGF5ZXIyZ3JpZCkgKyAwLjk5OSkpICogbGF5ZXIyZ3JpZCkpIChvckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkgb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIGVsc2UgKG9yTDJ3ID0gKG9yVGFwVyArICgtMi4wICogbWF4KG9yVmlhT2Zmc2V0IHRhcEVuY1ZpYTEpKSArICgyLjAgKiBsYXllcjJFbmNWaWExKSkpIChvckwybCA9IChvclRhcEwgKyAoLTIuMCAqIG1heChvclZpYU9mZnNldCB0YXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAob3JMMnhEZWx0YSA9ICh4Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChvckwyeURlbHRhID0gKHlDb29yZCArICgtIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJyaW5nVyA9IG1heCgoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgdmlhMVdpZHRoKSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSkpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSBvckwycmluZ1cpICh1cHBlckxlZnRCTCA9IG9yTDJyaW5nVykgKGxvd2VyUmlnaHRCTCA9IG9yTDJyaW5nVykgKHVwcGVyUmlnaHRCTCA9IG9yTDJyaW5nVykgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvbDJyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBXIC0gKDIuMCAqIG9yVGFwRW5jVmlhMSkpIG9yTDJ3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBMIC0gKDIuMCAqIG9yVGFwRW5jVmlhMSkpIG9yTDJsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBYb3JpZ2luICsgb3JUYXBFbmNWaWExKSBvckwyeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBZb3JpZ2luICsgb3JUYXBFbmNWaWExKSBvckwyeURlbHRhKSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3Mgb3JMYXllcjNXaWR0aCBvckwycmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAwLjAgbG93ZXJMZWZ0QkwpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIDAuMCB1cHBlckxlZnRCTCkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIGxvd2VyUmlnaHRCTCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgMC4wIHVwcGVyUmlnaHRCTCkpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIyZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgb3JOZXQpIHdoZW4oKGxheWVyMyAmJiBmdWxseVN0cmFwICYmIChmdWxseVN0cmFwICE9ICJGQUxTRSIpKSAob3YyckVuYyA9ICgob3JMMnJpbmdXIC0gdmlhMldpZHRoKSAvIDIuMCkpICh0ZW1wU2l6ZSA9IChvdjJyRW5jIC8gdmlhMmdyaWQpKSAob3YyckVuYyA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHZpYTJncmlkKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpICh1cHBlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAobG93ZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpICh1cHBlclJpZ2h0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgZWxzZSAobG93ZXJMZWZ0QkwgPSB2aWEyU3BhY2UpICh1cHBlckxlZnRCTCA9IHZpYTJTcGFjZSkgKGxvd2VyUmlnaHRCTCA9IHZpYTJTcGFjZSkgKHVwcGVyUmlnaHRCTCA9IHZpYTJTcGFjZSkpIHdoZW4oZmlsbGVkUmluZ3MgKHZpYTJXaWR0aEluT1IgPSAob3JMYXllcjNXaWR0aCAtICgyLjAgKiB2aWEyRW5jKSkpKSB3aGVuKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MnIiIChvclRhcFhvcmlnaW46b3JUYXBZb3JpZ2luKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChvclRhcFcgLSAoMi4wICogKHZpYTJFbmMgKyBvclRhcEVuY1ZpYTEpKSkpIGxpc3QoImwiICJmbG9hdCIgKG9yVGFwTCAtICgyLjAgKiAodmlhMkVuYyArIG9yVGFwRW5jVmlhMSkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAob3JUYXBFbmNWaWExICsgdmlhMkVuYykpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKG9yVGFwRW5jVmlhMSArIHZpYTJFbmMpKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMldpZHRoSW5PUikgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiICh2aWEyRW5jICsgKC0wLjUgKyBvckxheWVyM1dpZHRoKSkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgKHZpYTJFbmMgKyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAodmlhMkVuYyArICgtMC41ICsgb3JMYXllcjNXaWR0aCkpKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiICh2aWEyRW5jICsgKC0wLjUgKyBvckxheWVyM1dpZHRoKSkpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSB1bmxlc3MoZmlsbGVkUmluZ3MgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAib3YyciIgKChvckwyeERlbHRhICsgb3YyckVuYyk6KG9yTDJ5RGVsdGEgKyBvdjJyRW5jKSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JMMncgLSAoMi4wICogb3YyckVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChvckwybCAtICgyLjAgKiBvdjJyRW5jKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMlNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpKSAob3JMM3cgPSAob3JMMncgKyAoLTIuMCAqIG92MnJFbmMpICsgKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM2wgPSAob3JMMmwgKyAoLTIuMCAqIG92MnJFbmMpICsgKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM3hEZWx0YSA9IChvckwyeERlbHRhICsgb3YyckVuYyArICgtIG9yTGF5ZXIzRW5jVmlhMikpKSAob3JMM3lEZWx0YSA9IChvckwyeURlbHRhICsgb3YyckVuYyArICgtIG9yTGF5ZXIzRW5jVmlhMikpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAodXBwZXJMZWZ0QkwgPSAoKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAobG93ZXJSaWdodEJMID0gKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkgKHVwcGVyUmlnaHRCTCA9ICgoMi4wICogb3JMYXllcjNFbmNWaWEyKSArIHZpYTJXaWR0aCkpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib2wzciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiBvclRhcEVuY1ZpYTEpKSBvckwzdykpIGxpc3QoImwiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwTCAtICgyLjAgKiBvclRhcEVuY1ZpYTEpKSBvckwzbCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWG9yaWdpbiArIG9yVGFwRW5jVmlhMSkgb3JMM3hEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWW9yaWdpbiArIG9yVGFwRW5jVmlhMSkgb3JMM3lEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIG9yTGF5ZXIzV2lkdGggKCgyLjAgKiBvckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzICgtMC41ICsgb3JMYXllcjNXaWR0aCkgbG93ZXJMZWZ0QkwpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzICgtMC41ICsgb3JMYXllcjNXaWR0aCkgdXBwZXJMZWZ0QkwpKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzICgtMC41ICsgb3JMYXllcjNXaWR0aCkgbG93ZXJSaWdodEJMKSkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoLTAuNSArIG9yTGF5ZXIzV2lkdGgpIHVwcGVyUmlnaHRCTCkpIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIHQpIGxpc3QoImdyaWQiICJmbG9hdCIgbGF5ZXIzZ3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgdCkpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IG9yTmV0KSkgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkMSkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDIpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQzKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkNCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4odGhpcmRSaW5nICh0aGlyZFJpbmdUYXBFbmNWaWExID0gdGFwRW5jVmlhMSkgd2hlbigoTndlbGxjb25uZWN0VG9JT3BhZCAmJiAoTndlbGxjb25uZWN0VG9JT3BhZCAhPSAiRkFMU0UiKSkgKHRoaXJkUmluZ1RhcFdpZHRoID0gdGhpcmRSaW5nVGFwV2lkdGgyKSAodHJMYXllcjNXaWR0aCA9IHRyTGF5ZXIzV2lkdGgyKSkgKHRhcFdpZHRoSW5UUiA9IG1heCh0aGlyZFJpbmdUYXBXaWR0aCAoKDIuMCAqIHRoaXJkUmluZ1RhcEVuY1ZpYTEpICsgdmlhMVdpZHRoKSkpICh0aGlyZFRhcERlbHRhID0gKHdlbGxUYXBTcGFjZSArIHdlbGxFbmNUYXAgKyB0YXBXaWR0aEluVFIpKSAodHJUYXBYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIHRoaXJkVGFwRGVsdGEpKSAodHJUYXBZb3JpZ2luID0gKG9yVGFwWW9yaWdpbiAtIHRoaXJkVGFwRGVsdGEpKSAodHJUYXBXID0gKG9yVGFwVyArICgyLjAgKiB0aGlyZFRhcERlbHRhKSkpICh0clRhcEwgPSAob3JUYXBMICsgKDIuMCAqIHRoaXJkVGFwRGVsdGEpKSkgd2hlbigobGF5ZXIzICYmIGZ1bGx5U3RyYXAgJiYgKGZ1bGx5U3RyYXAgIT0gIkZBTFNFIikpICh0ckxheWVyM1hvcmlnaW5BID0gKG9yTDN4RGVsdGEgLSBvcmlyTGF5ZXIzU3BhY2UgLSB0ckxheWVyM1dpZHRoKSkgKHRyTGF5ZXIzWG9yaWdpbkIgPSAodHJUYXBYb3JpZ2luICsgKHRhcFdpZHRoSW5UUiAvIDIuMCkgKyAodHJMYXllcjNXaWR0aCAvIC0yLjApKSkgd2hlbigodHJMYXllcjNYb3JpZ2luQSA8IHRyTGF5ZXIzWG9yaWdpbkIpIChleHRyYVNwYWNlID0gKHRyTGF5ZXIzWG9yaWdpbkIgLSB0ckxheWVyM1hvcmlnaW5BKSkgKHRlbXBTaXplID0gKGV4dHJhU3BhY2UgLyB0YXBHcmlkKSkgKGV4dHJhU3BhY2UgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB0YXBHcmlkKSkgKHRyVGFwWG9yaWdpbiA9ICh0clRhcFhvcmlnaW4gLSBleHRyYVNwYWNlKSkgKHRyVGFwWW9yaWdpbiA9ICh0clRhcFlvcmlnaW4gLSBleHRyYVNwYWNlKSkgKHRyVGFwVyA9ICh0clRhcFcgKyAoMi4wICogZXh0cmFTcGFjZSkpKSAodHJUYXBMID0gKHRyVGFwTCArICgyLjAgKiBleHRyYVNwYWNlKSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm93ciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKHRyVGFwVyArICgyLjAgKiB3ZWxsRW5jVGFwKSkpIGxpc3QoImwiICJmbG9hdCIgKHRyVGFwTCArICgyLjAgKiB3ZWxsRW5jVGFwKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgKHRyVGFwWG9yaWdpbiAtIHdlbGxFbmNUYXApKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiICh0clRhcFlvcmlnaW4gLSB3ZWxsRW5jVGFwKSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgKHRhcFdpZHRoSW5UUiArICgyLjAgKiB3ZWxsRW5jVGFwKSkpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJmbG9hdCIgMC4wKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB3ZWxsR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB3ZWxsTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgd2VsbExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB3ZWxsTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgaWYodGFwRWRnZXNBdDQ1IHRoZW4gKGJldmVsTGVuZ3RoID0gKDAuNiAqIHRhcFdpZHRoSW5UUikpIChiZXZlbExlbmd0aCA9IChyb3VuZCgoKGJldmVsTGVuZ3RoIC8gdGFwR3JpZCkgKyAwLjAwMSkpICogdGFwR3JpZCkpIChsb3dlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJMZWZ0QkwgPSBiZXZlbExlbmd0aCkgKGxvd2VyUmlnaHRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3RyX3RoaXJkIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiB0clRhcFcpIGxpc3QoImwiICJmbG9hdCIgdHJUYXBMKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIHRyVGFwWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiB0clRhcFlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHRhcFdpZHRoSW5UUikgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0ck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0ck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0ck5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgdGFwTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0ck5ldCkgd2hlbih0YXBXZWxsSW1wbGFudCAob3RyaVhvcmlnaW4gPSAodHJUYXBYb3JpZ2luIC0gdGFwV2VsbEltcEVuYykpIChvdHJpWW9yaWdpbiA9ICh0clRhcFlvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgKG90cmlSaW5nV2lkdGggPSAodGFwV2lkdGhJblRSICsgdGFwV2VsbEltcEVuYyArIHRhcFdlbGxJbXBFbmMpKSAob3RyaVcgPSAodHJUYXBXICsgdGFwV2VsbEltcEVuYyArIHRhcFdlbGxJbXBFbmMpKSAob3RyaUwgPSAodHJUYXBMICsgdGFwV2VsbEltcEVuYyArIHRhcFdlbGxJbXBFbmMpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3RyaV90aGlyZCIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgb3RyaVcpIGxpc3QoImwiICJmbG9hdCIgb3RyaUwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgb3RyaVhvcmlnaW4pIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgb3RyaVlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIHRhcFdlbGxJbXBsYW50KSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgb3RyaVJpbmdXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiBuaWwpIGxpc3QoImdyaWQiICJmbG9hdCIgdGFwR3JpZCkgbGlzdCgiYnJlYWt1cFBvbHlnb25zIiAiYm9vbGVhbiIgIlRSVUUiKSkpKSkgKHRyVmlhT2Zmc2V0ID0gKGZpeCgoKCgodGFwV2lkdGhJblRSIC8gMi4wKSAtICh2aWExV2lkdGggLyAyLjApKSAvIHZpYTFncmlkKSArIDAuOTk5KSkgKiB2aWExZ3JpZCkpICh4Q29vcmQgPSAodHJUYXBYb3JpZ2luICsgbWF4KHRyVmlhT2Zmc2V0IHRoaXJkUmluZ1RhcEVuY1ZpYTEpKSkgKHlDb29yZCA9ICh0clRhcFlvcmlnaW4gKyBtYXgodHJWaWFPZmZzZXQgdGhpcmRSaW5nVGFwRW5jVmlhMSkpKSAobG93ZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjFyX3RoaXJkIiAoeENvb3JkOnlDb29yZCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAodHJUYXBXIC0gKDIuMCAqIG1heCh0clZpYU9mZnNldCB0aGlyZFJpbmdUYXBFbmNWaWExKSkpKSBsaXN0KCJsIiAiZmxvYXQiICh0clRhcEwgLSAoMi4wICogbWF4KHRyVmlhT2Zmc2V0IHRoaXJkUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpIHVubGVzcygobGF5ZXIyRWRnZXNBdDQ1IHx8IHRhcEVkZ2VzQXQ0NSkgKGV4dHJhVmlhMVJpZ2h0T3JpZ2luID0gKHhDb29yZCArICh0clRhcEwgLSAoMi4wICogbWF4KHRyVmlhT2Zmc2V0IHRoaXJkUmluZ1RhcEVuY1ZpYTEpKSkgKyAoLSB2aWExV2lkdGgpKSkgKGV4dHJhVmlhMVRvcE9yaWdpbiA9ICh5Q29vcmQgKyAodHJUYXBXIC0gKDIuMCAqIG1heCh0clZpYU9mZnNldCB0aGlyZFJpbmdUYXBFbmNWaWExKSkpICsgKC0gdmlhMVdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KHhDb29yZCB5Q29vcmQpIGxpc3QoKHhDb29yZCArIHZpYTFXaWR0aCkgKHlDb29yZCArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoZXh0cmFWaWExUmlnaHRPcmlnaW4geUNvb3JkKSBsaXN0KChleHRyYVZpYTFSaWdodE9yaWdpbiArIHZpYTFXaWR0aCkgKHlDb29yZCArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoeENvb3JkIGV4dHJhVmlhMVRvcE9yaWdpbikgbGlzdCgoeENvb3JkICsgdmlhMVdpZHRoKSAoZXh0cmFWaWExVG9wT3JpZ2luICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdChleHRyYVZpYTFSaWdodE9yaWdpbiBleHRyYVZpYTFUb3BPcmlnaW4pIGxpc3QoKGV4dHJhVmlhMVJpZ2h0T3JpZ2luICsgdmlhMVdpZHRoKSAoZXh0cmFWaWExVG9wT3JpZ2luICsgdmlhMVdpZHRoKSkpKSkgaWYobGF5ZXIzIHRoZW4gKHRyTGF5ZXIzRW5jVmlhMiA9ICgodHJMYXllcjNXaWR0aCAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAodHJMYXllcjNFbmNWaWEyIC8gbGF5ZXIzZ3JpZCkpICh0ckxheWVyM0VuY1ZpYTIgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiBsYXllcjNncmlkKSkgKHRoaXJkUmluZ01ldGFsV2lkdGggPSAoKDIuMCAqIHRyTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAodHJMMncgPSAodHJUYXBXICsgKC0gdGFwV2lkdGhJblRSKSArIHRoaXJkUmluZ01ldGFsV2lkdGgpKSAodHJMMmwgPSAodHJUYXBMICsgKC0gdGFwV2lkdGhJblRSKSArIHRoaXJkUmluZ01ldGFsV2lkdGgpKSAodHJMMnhEZWx0YSA9ICh0clRhcFhvcmlnaW4gKyAoKHRhcFdpZHRoSW5UUiArICgtIHRoaXJkUmluZ01ldGFsV2lkdGgpKSAvIDIuMCkpKSAodHJMMnhEZWx0YSA9IChmaXgoKCh0ckwyeERlbHRhIC8gbGF5ZXIyZ3JpZCkgKyAwLjk5OSkpICogbGF5ZXIyZ3JpZCkpICh0ckwyeURlbHRhID0gKHRyVGFwWW9yaWdpbiArICgodGFwV2lkdGhJblRSICsgKC0gdGhpcmRSaW5nTWV0YWxXaWR0aCkpIC8gMi4wKSkpICh0ckwyeURlbHRhID0gKGZpeCgoKHRyTDJ5RGVsdGEgLyBsYXllcjJncmlkKSArIDAuOTk5KSkgKiBsYXllcjJncmlkKSkgKHRyTDJyaW5nVyA9IG1heCgoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgdmlhMVdpZHRoKSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSB0ckxheWVyM1dpZHRoKSkgZWxzZSAodHJMMncgPSAodHJUYXBXICsgKC0yLjAgKiBtYXgodHJWaWFPZmZzZXQgdGhpcmRSaW5nVGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKHRyTDJsID0gKHRyVGFwTCArICgtMi4wICogbWF4KHRyVmlhT2Zmc2V0IHRoaXJkUmluZ1RhcEVuY1ZpYTEpKSArICgyLjAgKiBsYXllcjJFbmNWaWExKSkpICh0ckwyeERlbHRhID0gKHhDb29yZCArICgtIGxheWVyMkVuY1ZpYTEpKSkgKHRyTDJ5RGVsdGEgPSAoeUNvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAodHJMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpKSkpIGlmKGxheWVyMkVkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9IHRyTDJyaW5nVykgKHVwcGVyTGVmdEJMID0gdHJMMnJpbmdXKSAobG93ZXJSaWdodEJMID0gdHJMMnJpbmdXKSAodXBwZXJSaWdodEJMID0gdHJMMnJpbmdXKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm9sMnJfdGhpcmQiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRyTDJ3KSBsaXN0KCJsIiAiZmxvYXQiIHRyTDJsKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIHRyTDJ4RGVsdGEpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgdHJMMnlEZWx0YSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbGF5ZXIyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdHJMMnJpbmdXKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIHRyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiB0ck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgdHJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IHRyTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKHR2MnJFbmMgPSAoKHRyTDJyaW5nVyAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAodHYyckVuYyAvIHZpYTJncmlkKSkgKHR2MnJFbmMgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiB2aWEyZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIGVsc2UgKGxvd2VyTGVmdEJMID0gdmlhMlNwYWNlKSAodXBwZXJMZWZ0QkwgPSB2aWEyU3BhY2UpIChsb3dlclJpZ2h0QkwgPSB2aWEyU3BhY2UpICh1cHBlclJpZ2h0QkwgPSB2aWEyU3BhY2UpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjJyX3RoaXJkIiAoKHRyTDJ4RGVsdGEgKyB0djJyRW5jKToodHJMMnlEZWx0YSArIHR2MnJFbmMpKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiICh0ckwydyAtICgyLjAgKiB0djJyRW5jKSkpIGxpc3QoImwiICJmbG9hdCIgKHRyTDJsIC0gKDIuMCAqIHR2MnJFbmMpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMkxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWEyU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYXV0b0luY3JlYXNlQmV2ZWxXaWR0aCIgImJvb2xlYW4iICJGQUxTRSIpIGxpc3QoImdyaWQiICJmbG9hdCIgdmlhMmdyaWQpKSkgKHRyTDN3ID0gKHRyTDJ3ICsgKC0yLjAgKiB0djJyRW5jKSArICgyLjAgKiB0ckxheWVyM0VuY1ZpYTIpKSkgKHRyTDNsID0gKHRyTDJsICsgKC0yLjAgKiB0djJyRW5jKSArICgyLjAgKiB0ckxheWVyM0VuY1ZpYTIpKSkgKHRyTDN4RGVsdGEgPSAodHJMMnhEZWx0YSArIHR2MnJFbmMgKyAoLSB0ckxheWVyM0VuY1ZpYTIpKSkgKHRyTDN5RGVsdGEgPSAodHJMMnlEZWx0YSArIHR2MnJFbmMgKyAoLSB0ckxheWVyM0VuY1ZpYTIpKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gdHJMYXllcjNXaWR0aCkgKHVwcGVyTGVmdEJMID0gdHJMYXllcjNXaWR0aCkgKGxvd2VyUmlnaHRCTCA9IHRyTGF5ZXIzV2lkdGgpICh1cHBlclJpZ2h0QkwgPSB0ckxheWVyM1dpZHRoKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm9sM3JfdGhpcmQiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRyTDN3KSBsaXN0KCJsIiAiZmxvYXQiIHRyTDNsKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIHRyTDN4RGVsdGEpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgdHJMM3lEZWx0YSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdHJMYXllcjNXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjNncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiB0KSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgdHJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIHRyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyB0ck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgdHJOZXQpKSAocGluID0gKGRiQ3JlYXRlUGluIHRyTmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiB0ck5ldCBkYmlkMikpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gdHJOZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIHRyTmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikpKQAoZGlmZkxheWVyIGdhdGVMYXllciByZ2F0ZUxheWVyIHdlbGxMYXllciB0YXBMYXllciB2aWExTGF5ZXIgbGF5ZXIyIHZpYTJMYXllciBsYXllcjMgaWRMYXllciBtYXh2TGF5ZXIgaHZXZWxsRW5jbG9zdXJlIGRpZmZJbXBsYW50IGRpZmZJbXBFbmMgZGlmZkNvcmVJbXBsYW50IGRpZmZDb3JlSW1wRW5jIHRhcFdlbGxJbXBsYW50IHRhcFdlbGxJbXBFbmMgdGFwU3ViSW1wbGFudCB0YXBTdWJJbXBFbmMgdGFwV2lkdGggc3JjVmlhR2F0ZVNwYWNlIHNyY1ZpYVRhcFNwYWNlIGRyblZpYUdhdGVTcGFjZSB2aWFFeHREaWZmIG1pbkRpZmZUYXBSaW5nU3BhY2UgZmxhcmVZYW1vdW50X2luIGZsYXJlWWFtb3VudCBmbGFyZVlleHRlbnNpb24gdmlhMVdpZHRoIHZpYTFTcGFjZSB0YXBFbmNWaWExIHdlbGxFbmNUYXAgaW5uZXJSaW5nVGFwV2lkdGggb3V0ZXJSaW5nVGFwV2lkdGggd2VsbFRhcFNwYWNlIGxheWVyMkVuY1ZpYTEgdmlhMldpZHRoIHZpYTJTcGFjZSB2aWExVmlhMlNwYWNlIGxheWVyMkVuY1ZpYTIgbGF5ZXIyV2lkdGggbGF5ZXIzRW5jVmlhMiBsYXllcjNXaWR0aCBsYXllcjNXaWR0aF9vdXRzaWRlIGlubmVyUmluZ01ldGFsV2lkdGggaXJMYXllcjNFbmNWaWEyIGlyTGF5ZXIzQWRkV2lkdGhCdmwgb3JMYXllcjNXaWR0aCBtaW5XIG1heFcgbWluVG90YWxXIGdlbmVyaWNSaW5nTmFtZSByaXZldGVkUmluZ05hbWUgZmxhcmVkR2F0ZU5hbWUgZGlmZkdyaWQgdGFwR3JpZCB3ZWxsR3JpZCBwb2x5R3JpZCB2aWExZ3JpZCBsYXllcjJncmlkIHZpYTJncmlkIGxheWVyM2dyaWQgdGFwRWRnZXNBdDQ1IGxheWVyMkVkZ2VzQXQ0NSBsYXllcjNFZGdlc0F0NDUgZW5kVGFwTWV0SW5zaWRlT3V0IHNyY1ZpYVRvRGlmZkVkZ1NwYWNlIHRoaXJkUmluZyBmbG9hdE53ZWxsIG5XZWxsU3cgdGhpcmRSaW5nVGFwV2lkdGggdHJMYXllcjNXaWR0aCB0aGlyZFJpbmdUYXBXaWR0aDIgdHJMYXllcjNXaWR0aDIgc3BsaXRTb3VyY2Ugc3RyaXBUYXBUb0RpZmZTcGFjZSBtaW5FeHRyYUxSc3BhY2UgdGFwTGF5MldpZHRoIHRhcExheTNXaWR0aCBzb3VyY2VMYXkyVmlhMUVuYyBzb3VyY2VMYXkzVmlhMkVuYyB0YXBMYXkyT2Zmc2V0WSB0YXBMYXkzT2Zmc2V0WSBsYXllcjJXaWR0aFMgbGF5ZXIyV2lkdGhEIGxheWVyM1dpZHRoUyBsYXllcjNXaWR0aEQgbW9kZWxUZXh0TGF5ZXIgbW9kZWxUZXh0TGF5ZXJTaXplIG1vZGVsVGV4dCBtb2RlbFdtYXggbW9kZWxXbWluIG1vZGVsTG1heCBtb2RlbExtaW4gZmlsbGVkUmluZ3MgdyBsIG0gZXh0cmFMZWZ0U3BhY2UgZXh0cmFSaWdodFNwYWNlIHNocmlua1BlcmNlbnQgZXh0cmFTcmNTcGFjZSBleHRyYURyblNwYWNlIE53ZWxsY29ubmVjdFRvSU9wYWQgZnVsbHlTdHJhcCBkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIGRyblZpYVlzcGFjZVJpbmdWaWFCb3Qgb3JpckxheWVyM1NwYWNlIHNyY1ZpYVRvU3JjVGFwU3BhY2UgbGVmdEVuZFRhcCByaWdodEVuZFRhcCB0YXBMYXkyVmlhMUVuYyB0YXBMYXkzVmlhMkVuYyBnTmV0IHNOZXQgZE5ldCBpck5ldCBvck5ldCB0ck5ldCBzY2FsZU11bHQgdmlhMVBvbHlHcmlkIHNpemVBbmRHcmlkIHRoZVNpemUgdGhlR3JpZCB0ZW1wU2l6ZSBrbHVkZ2UgdG1wT3JMYXllcldpZHRoIHRtcE9yTGF5ZXJHcmlkIHRtcFZpYVdpZHRoIHRtcFZpYUdyaWQgdmlhMVBpdGNoIHZpYTJQaXRjaCB0YXJnZXRSb3dzIHJvd3NPZkNvbnRhY3RzIGZsYXJlZEdhdGVJZCByaW5nSWQgcml2ZXRlZFJpbmdJZCBkaWZmWG9yaWdpbiBoYWxmU3JjRGlmZkxlbmd0aCB0b3RhbERybkxlbmd0aCB0b3RhbFNyY0RpZmZMZW5ndGggaGFsZkwgZGlmZlllbmQgZGlmZllvcmlnaW4gZGlmZkltcFllbmQgZGlmZkltcFlvcmlnaW4gZGJpZFRhcEwgZGJpZCBkaWZmWGxvb3Agc2VjdGlvbiBzcmNEaWZmWGVuZCBkcm5EaWZmWGVuZCB0YXBYMCB0YXBYMSBkYmlkVGFwIGRpZmZYZW5kIGdhdGVYb2Zmc2V0IGdhdGVOdW0gaW5zdCBtYXN0ZXIgbW9kZWxUZXh0WCBtb2RlbFRleHRZIHBpbmlkIGRybl92aWExWG9yaWdpbiBkcm5fdmlhMVhlbmQgZHJuX2xheWVyMkwgZHJuX2xheWVyMkxhIGRybl9sYXllcjJEZWx0YVZpYTEgZGVsdGEgbGF5ZXIyVyBsYXllcjJXYSByb3dzT2ZDb250YWN0czIgbGF5ZXIyWURlbHRhVmlhMSBlc19kdmlhMVhvcmlnaW4gZXNfZHZpYTFYZW5kIGVzX3R2aWExWG9yaWdpbiBlc190dmlhMVhlbmQgZXNfbGF5ZXIyTCBlc19sYXllcjJMYSBlc19sYXllcjJEZWx0YVZpYTEgZXNfdHZpYTJYb3JpZ2luIGVzX3R2aWEyWGVuZCBlc19kdmlhMlhvcmlnaW4gZXNfZHZpYTJYZW5kIHNzX2xheWVyMkwgc3NfbGF5ZXIyTGEgc3NfbGF5ZXIyRGVsdGFWaWExIGNvbnRhY3RYbG9vcCB2aWExWW9yaWdpbiBsYXllcjJZb3JpZ2luIHZpYTJZb3JpZ2luIGxheWVyMlllbmQgdGFwWG9mZnNldFYxIHRhcFhvZmZzZXRWMiB2aWExVyB2aWExVGFwUm93cyB2aWExV2EgdmlhMVlPZmYgdmlhMVlvZmZzZXQgdmlhMlcgdmlhMlRhcFJvd3MgdmlhMldhIHZpYTJZT2ZmIHZpYTJZb2Zmc2V0IGxheWVyMlRhcFkwIGxheWVyMlRhcFkxIHZpYTFUYXBZMCBsYXllcjNUYXBZMCBsYXllcjNUYXBZMSB2aWEyVGFwWTAgbDJidmxDbnRybCBsMmJ2bENudHJsUyBsM2J2bENudHJsIGwzYnZsQ250cmxTIHJlZ2lvbiB2aWExWWxvb3AgZHZ4byBkdnhlIHR2eG8gdHZ4ZSByb3cgdmlhMVlsb29wVCBlbmRUYXBMYXllcjJYT2Zmc2V0IGxheWVyMlkwZCBsYXllcjJZMWQgbGF5ZXIyWTJkIGxheWVyMlkzZCBsYXllcjJZNGQgbGF5ZXIyWTVkIGxheWVyMlk2ZCBsYXllcjJZN2QgbGF5ZXIyWExlbmMgbGF5ZXIyWFJlbmMgbGF5ZXIyWDBkIGxheWVyMlgxZCBsYXllcjJYMmQgbGF5ZXIyWDNkIGxheWVyMlg0ZCBsYXllcjJYNWQgbGF5ZXIyWDZkIGxheWVyMlg3ZCBsYXllcjJYMHQgbGF5ZXIyWDF0IHZpYTJZbG9vcCB2aWEyWWxvb3BUIGxheWVyM1kwZCBsYXllcjNZMWQgbGF5ZXIzWTJkIGxheWVyM1kzZCBsYXllcjNZNGQgbGF5ZXIzWTVkIGxheWVyM1k2ZCBsYXllcjNZN2QgbGF5ZXIzWExlbmMgbGF5ZXIzWFJlbmMgbGF5ZXIzWDBkIGxheWVyM1gxZCBsYXllcjNYMmQgbGF5ZXIzWDNkIGxheWVyM1g0ZCBsYXllcjNYNWQgbGF5ZXIzWDZkIGxheWVyM1g3ZCBsYXllcjNYMHQgbGF5ZXIzWDF0IHdpZHRoVG9iZURyYXduIGVuZFRhcExheWVyM1hPZmZzZXQgbGF5ZXIyWG9yaWdpbl9kciBsYXllcjNYb3JpZ2luX2RyIGxkdnhvIGxkdnhlIHJkdnhvIHJkdnhlIGxheWVyMlgwcmQgbGF5ZXIyWDFyZCBsYXllcjJYMnJkIGxheWVyMlgzcmQgbGF5ZXIyWDRyZCBsYXllcjJYNXJkIGxheWVyMlg2cmQgbGF5ZXIyWDdyZCBsYXllcjJYMGxkIGxheWVyMlgxbGQgbGF5ZXIyWDJsZCBsYXllcjJYM2xkIGxheWVyMlg0bGQgbGF5ZXIyWDVsZCBsYXllcjJYNmxkIGxheWVyMlg3bGQgbGF5ZXIzWDBsZCBsYXllcjNYMWxkIGxheWVyM1gybGQgbGF5ZXIzWDNsZCBsYXllcjNYNGxkIGxheWVyM1g1bGQgbGF5ZXIzWDZsZCBsYXllcjNYN2xkIGxheWVyM1gwcmQgbGF5ZXIzWDFyZCBsYXllcjNYMnJkIGxheWVyM1gzcmQgbGF5ZXIzWDRyZCBsYXllcjNYNXJkIGxheWVyM1g2cmQgbGF5ZXIzWDdyZCB0YXBXaWR0aEluSVIgaXJUYXBYb3JpZ2luIGlyVmlhT2Zmc2V0IGlyVGFwWW9yaWdpbiBpclRhcEwgaXJUYXBXIGJldmVsTGVuZ3RoIGxvd2VyTGVmdEJMIHVwcGVyTGVmdEJMIGxvd2VyUmlnaHRCTCB1cHBlclJpZ2h0QkwgdGhlTWFzdGVyIGl0cmlYb3JpZ2luIGl0cmlZb3JpZ2luIGl0cmlSaW5nV2lkdGggaXRyaVcgaXRyaUwgd2VsbFhvcmlnaW4gd2VsbFlvcmlnaW4gaHZsbHggaHZsbHkgaHZ1cnggaHZ1cnkgeENvb3JkIHlDb29yZCBtb2RXIG1vZEwgdmlhMUVuYyB2aWExV2lkdGhJbklSIHZpYTFYb3JpZ2luIGlyTDJyaW5nVyBpckwyT2ZmIGlyTDJ4RGVsdGEgaXJMMnlEZWx0YSBpckwydyBpckwybCBkYmlkMSBkYmlkMiBkYmlkMyBkYmlkNCBpdjJyRW5jIHZpYTJFbmMgdmlhMldpZHRoSW5JUiB2aWEyWG9yaWdpbiB2aWEyQmV2ZWwgaXJMM3cgaXJMM2wgaXJMM3hEZWx0YSBpckwzeURlbHRhIGlyTDNyaW5nVyB0b3BMYXllciB0YXBXaWR0aEluT1Igb3V0ZXJUYXBEZWx0YSBvclRhcFhvcmlnaW4gb3JUYXBZb3JpZ2luIG9yVGFwVyBvclRhcEwgb3JMYXllcjNYb3JpZ2luQSBvckxheWVyM1hvcmlnaW5CIGV4dHJhU3BhY2Ugb3RyaVhvcmlnaW4gb3RyaVlvcmlnaW4gb3RyaVJpbmdXaWR0aCBvdHJpVyBvdHJpTCBvclZpYU9mZnNldCBvclRhcEVuY1ZpYTEgdmlhMVdpZHRoSW5PUiBleHRyYVZpYTFSaWdodE9yaWdpbiBleHRyYVZpYTFUb3BPcmlnaW4gb3JMYXllcjNFbmNWaWEyIG91dGVyUmluZ01ldGFsV2lkdGggb3JMMncgb3JMMmwgb3JMMnhEZWx0YSBvckwyeURlbHRhIG9yTDJyaW5nVyBvdjJyRW5jIHZpYTJXaWR0aEluT1Igb3JMM3cgb3JMM2wgb3JMM3hEZWx0YSBvckwzeURlbHRhIHBpbiB0aGlyZFJpbmdUYXBFbmNWaWExIHRhcFdpZHRoSW5UUiB0aGlyZFRhcERlbHRhIHRyVGFwWG9yaWdpbiB0clRhcFlvcmlnaW4gdHJUYXBXIHRyVGFwTCB0ckxheWVyM1hvcmlnaW5BIHRyTGF5ZXIzWG9yaWdpbkIgdHJWaWFPZmZzZXQgdHJMYXllcjNFbmNWaWEyIHRoaXJkUmluZ01ldGFsV2lkdGggdHJMMncgdHJMMmwgdHJMMnhEZWx0YSB0ckwyeURlbHRhIHRyTDJyaW5nVyB0djJyRW5jIHRyTDN3IHRyTDNsIHRyTDN4RGVsdGEgdHJMM3lEZWx0YSkAKCh3IDAuMCkgKGwgMC4wKSAobSAwKSAoZXh0cmFMZWZ0U3BhY2UgMC4wKSAoZXh0cmFSaWdodFNwYWNlIDAuMCkgKHNocmlua1BlcmNlbnQgMC4wKSAoZXh0cmFTcmNTcGFjZSAwLjApIChleHRyYURyblNwYWNlIDAuMCkgKE53ZWxsY29ubmVjdFRvSU9wYWQgIkZBTFNFIikgKGZ1bGx5U3RyYXAgIkZBTFNFIikgKGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgMC4wKSAoZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCAwLjApIChvcmlyTGF5ZXIzU3BhY2UgMC4wKSkAKChkaWZmTGF5ZXIgInkwIikgKGdhdGVMYXllciAieTEiKSAocmdhdGVMYXllciAieTIiKSAod2VsbExheWVyICJ5MyIpICh0YXBMYXllciAieTQiKSAodmlhMUxheWVyICJ5NSIpIChsYXllcjIgInk2IikgKHZpYTJMYXllciAieTciKSAobGF5ZXIzICJ5OCIpIChpZExheWVyICJ5OSIpIChtYXh2TGF5ZXIgbmlsKSAoaHZXZWxsRW5jbG9zdXJlIDAuMCkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgMC4wKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wRW5jIDAuMCkgKHRhcFdlbGxJbXBsYW50IG5pbCkgKHRhcFdlbGxJbXBFbmMgMC4wKSAodGFwU3ViSW1wbGFudCBuaWwpICh0YXBTdWJJbXBFbmMgMC4wKSAodGFwV2lkdGggMC4wKSAoc3JjVmlhR2F0ZVNwYWNlIDAuMCkgKHNyY1ZpYVRhcFNwYWNlIDAuMCkgKGRyblZpYUdhdGVTcGFjZSAwLjApICh2aWFFeHREaWZmIDAuMCkgKG1pbkRpZmZUYXBSaW5nU3BhY2UgMC4wKSAoZmxhcmVZYW1vdW50X2luIDAuMCkgKGZsYXJlWWFtb3VudCAwLjApIChmbGFyZVlleHRlbnNpb24gMC4wKSAodmlhMVdpZHRoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh0YXBFbmNWaWExIDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAoaW5uZXJSaW5nVGFwV2lkdGggMC4wKSAob3V0ZXJSaW5nVGFwV2lkdGggMC4wKSAod2VsbFRhcFNwYWNlIDAuMCkgKGxheWVyMkVuY1ZpYTEgMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTJTcGFjZSAwLjApICh2aWExVmlhMlNwYWNlIDAuMCkgKGxheWVyMkVuY1ZpYTIgMC4wKSAobGF5ZXIyV2lkdGggMC4wKSAobGF5ZXIzRW5jVmlhMiAwLjApIChsYXllcjNXaWR0aCAwLjApIChsYXllcjNXaWR0aF9vdXRzaWRlIDAuMCkgKGlubmVyUmluZ01ldGFsV2lkdGggMC4wKSAoaXJMYXllcjNFbmNWaWEyIDAuMCkgKGlyTGF5ZXIzQWRkV2lkdGhCdmwgMC4wKSAob3JMYXllcjNXaWR0aCAwLjApIChtaW5XIDAuMCkgKG1heFcgMC4wKSAobWluVG90YWxXIDAuMCkgKGdlbmVyaWNSaW5nTmFtZSAicmluZyIpIChyaXZldGVkUmluZ05hbWUgInJpdmV0UmluZyIpIChmbGFyZWRHYXRlTmFtZSAiZmxhcmVkR2F0ZSIpIChkaWZmR3JpZCAwLjApICh0YXBHcmlkIDAuMCkgKHdlbGxHcmlkIDAuMCkgKHBvbHlHcmlkIDAuMCkgKHZpYTFncmlkIDAuMCkgKGxheWVyMmdyaWQgMC4wKSAodmlhMmdyaWQgMC4wKSAobGF5ZXIzZ3JpZCAwLjApICh0YXBFZGdlc0F0NDUgbmlsKSAobGF5ZXIyRWRnZXNBdDQ1IG5pbCkgKGxheWVyM0VkZ2VzQXQ0NSBuaWwpIChlbmRUYXBNZXRJbnNpZGVPdXQgbmlsKSAoc3JjVmlhVG9EaWZmRWRnU3BhY2UgMC4wKSAodGhpcmRSaW5nIG5pbCkgKGZsb2F0TndlbGwgbmlsKSAobldlbGxTdyBuaWwpICh0aGlyZFJpbmdUYXBXaWR0aCAwLjApICh0ckxheWVyM1dpZHRoIDAuMCkgKHRoaXJkUmluZ1RhcFdpZHRoMiAwLjApICh0ckxheWVyM1dpZHRoMiAwLjApIChzcGxpdFNvdXJjZSBuaWwpIChzdHJpcFRhcFRvRGlmZlNwYWNlIDAuMCkgKG1pbkV4dHJhTFJzcGFjZSAwLjApICh0YXBMYXkyV2lkdGggMC4wKSAodGFwTGF5M1dpZHRoIDAuMCkgKHNvdXJjZUxheTJWaWExRW5jIDAuMCkgKHNvdXJjZUxheTNWaWEyRW5jIDAuMCkgKHRhcExheTJPZmZzZXRZIDAuMCkgKHRhcExheTNPZmZzZXRZIDAuMCkgKGxheWVyMldpZHRoUyAwLjApIChsYXllcjJXaWR0aEQgMC4wKSAobGF5ZXIzV2lkdGhTIDAuMCkgKGxheWVyM1dpZHRoRCAwLjApIChtb2RlbFRleHRMYXllciBsaXN0KCJoaWxpdGUiICJkcmF3aW5nIikpIChtb2RlbFRleHRMYXllclNpemUgMC4yKSAobW9kZWxUZXh0ICIiKSAobW9kZWxXbWF4IDAuMCkgKG1vZGVsV21pbiAwLjApIChtb2RlbExtYXggMC4wKSAobW9kZWxMbWluIDAuMCkgKGZpbGxlZFJpbmdzIG5pbCkpACgoeE9yaWdpbiA9IHdpZHRoKSAoeU9yaWdpbiA9ICh3aWR0aCArIGxlZ0xlbmd0aCkpIChjcm9zc1BvaW50cyA9IGxpc3QoKHhPcmlnaW46eU9yaWdpbikgKHhPcmlnaW46KHlPcmlnaW4gKyBsZWdXaWR0aCkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyBsZWdXaWR0aCkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoKTooeU9yaWdpbiArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGgpOih5T3JpZ2luICsgbGVnV2lkdGgpKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGggKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyBsZWdXaWR0aCkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoKTp5T3JpZ2luKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGggKyBsZWdXaWR0aCk6eU9yaWdpbikgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGgpOih5T3JpZ2luICsgKC0gbGVnTGVuZ3RoKSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyAoLSBsZWdMZW5ndGgpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoKTp5T3JpZ2luKSkpIChyZXZlcnNlTGVuZ3RoID0gKGxlZ1dpZHRoICsgKDIuMCAqICh3aWR0aCArIGxlZ0xlbmd0aCkpKSkgKHJldmVyc2VTaWRlID0gKHJldmVyc2VMZW5ndGggLSAoMi4wICogY3V0T2Zmc2V0KSkpIChyZXZlcnNlUG9pbnRzID0gbGlzdCgoMC4wOmN1dE9mZnNldCkgKGN1dE9mZnNldDowLjApICgoY3V0T2Zmc2V0ICsgcmV2ZXJzZVNpZGUpOjAuMCkgKHJldmVyc2VMZW5ndGg6Y3V0T2Zmc2V0KSAocmV2ZXJzZUxlbmd0aDooY3V0T2Zmc2V0ICsgcmV2ZXJzZVNpZGUpKSAoKGN1dE9mZnNldCArIHJldmVyc2VTaWRlKTpyZXZlcnNlTGVuZ3RoKSAoY3V0T2Zmc2V0OnJldmVyc2VMZW5ndGgpICgwLjA6KGN1dE9mZnNldCArIHJldmVyc2VTaWRlKSkgKDAuMDp5T3JpZ2luKSkpIHdoZW4ob3V0ZXJSaW5nTGF5ZXJzIChzMiA9IHNxcnQoMi4wKSkgKGV4dHJhT2Zmc2V0ID0gKChvdXRlclJpbmdFeHRlbnNpb24gKiAoMi4wIC0gczIpKSAvIG91dGVyR3JpZCkpIChleHRyYU9mZnNldCA9IChvdXRlckdyaWQgKiAoLTEgKyBmaXgoKGV4dHJhT2Zmc2V0ICsgMC45OTkpKSkpKSAob3V0ZXJDdXRPZmZzZXQgPSAoZXh0cmFPZmZzZXQgKyBjdXRPZmZzZXQpKSAob3V0ZXJSaW5nTGVuZ3RoID0gKHJldmVyc2VMZW5ndGggKyAoMi4wICogb3V0ZXJSaW5nRXh0ZW5zaW9uKSkpIChvdXRlclNpZGUgPSAob3V0ZXJSaW5nTGVuZ3RoIC0gKDIuMCAqIG91dGVyQ3V0T2Zmc2V0KSkpIChvdXRlck91dHNpZGVQb2ludHMgPSBsaXN0KCgoLSBvdXRlclJpbmdFeHRlbnNpb24pOihvdXRlckN1dE9mZnNldCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikpKSAoKG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSk6KC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSkgKChvdXRlckN1dE9mZnNldCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclNpZGUpOigtIG91dGVyUmluZ0V4dGVuc2lvbikpICgob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSk6KG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSkpICgob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSk6KG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyU2lkZSkpICgob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgb3V0ZXJTaWRlKToob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSkpICgob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pKToob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSkpICgoLSBvdXRlclJpbmdFeHRlbnNpb24pOihvdXRlckN1dE9mZnNldCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclNpZGUpKSAoKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKTp5T3JpZ2luKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAib3V0ZXJPdXRsaW5lUG9pbnRzIiAibGlzdCIgb3V0ZXJPdXRzaWRlUG9pbnRzKSAoaW5zaWRlT2Zmc2V0ID0gKChvdXRlclJpbmdXaWR0aCAqIChzMiAtIDEuMCkpIC8gb3V0ZXJHcmlkKSkgKGluc2lkZU9mZnNldCA9IChmaXgoKDAuOTk5ICsgaW5zaWRlT2Zmc2V0KSkgKiBvdXRlckdyaWQpKSAob3V0ZXJJbnNpZGVQb2ludHMgPSBsaXN0KCgoKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyUmluZ1dpZHRoKTp5T3JpZ2luKSAoKCgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclJpbmdXaWR0aCk6KG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyU2lkZSArICgtIGluc2lkZU9mZnNldCkpKSAoKG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIGluc2lkZU9mZnNldCk6KG91dGVyUmluZ0xlbmd0aCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyAoLSBvdXRlclJpbmdXaWR0aCkpKSAoKG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyU2lkZSArICgtIGluc2lkZU9mZnNldCkpOihvdXRlclJpbmdMZW5ndGggKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgKC0gb3V0ZXJSaW5nV2lkdGgpKSkgKChvdXRlclJpbmdMZW5ndGggKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgKC0gb3V0ZXJSaW5nV2lkdGgpKToob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgb3V0ZXJTaWRlICsgKC0gaW5zaWRlT2Zmc2V0KSkpICgob3V0ZXJSaW5nTGVuZ3RoICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArICgtIG91dGVyUmluZ1dpZHRoKSk6KG91dGVyQ3V0T2Zmc2V0ICsgKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIGluc2lkZU9mZnNldCkpICgob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgb3V0ZXJTaWRlICsgKC0gaW5zaWRlT2Zmc2V0KSk6KCgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclJpbmdXaWR0aCkpICgob3V0ZXJDdXRPZmZzZXQgKyAoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgaW5zaWRlT2Zmc2V0KTooKC0gb3V0ZXJSaW5nRXh0ZW5zaW9uKSArIG91dGVyUmluZ1dpZHRoKSkgKCgoLSBvdXRlclJpbmdFeHRlbnNpb24pICsgb3V0ZXJSaW5nV2lkdGgpOihvdXRlckN1dE9mZnNldCArICgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBpbnNpZGVPZmZzZXQpKSAoKCgtIG91dGVyUmluZ0V4dGVuc2lvbikgKyBvdXRlclJpbmdXaWR0aCk6eU9yaWdpbikpKSAob3V0ZXJSaW5nUG9pbnRzID0gYXBwZW5kKG91dGVyT3V0c2lkZVBvaW50cyBvdXRlckluc2lkZVBvaW50cykpIChvdXRlclJpbmdQb2ludHMgPSBjb25zKCgoLSBvdXRlclJpbmdFeHRlbnNpb24pOnlPcmlnaW4pIG91dGVyUmluZ1BvaW50cykpIGZvcmVhY2gobGF5ZXIgb3V0ZXJSaW5nTGF5ZXJzIChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllciBvdXRlclJpbmdQb2ludHMpKSkgdW5sZXNzKG91dGVyUmluZ0xheWVycyAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgIm91dGVyT3V0bGluZVBvaW50cyIgImxpc3QiIHJldmVyc2VQb2ludHMpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgIm91dGxpbmVQb2ludHMiICJsaXN0IiByZXZlcnNlUG9pbnRzKSAocmV2ZXJzZVBvaW50cyA9IGFwcGVuZChyZXZlcnNlUG9pbnRzIGNyb3NzUG9pbnRzKSkgKHJldmVyc2VQb2ludHMgPSBjb25zKCgwLjA6eU9yaWdpbikgcmV2ZXJzZVBvaW50cykpIGZvcmVhY2gobGF5ZXIgdGhlTGF5ZXJzIGNvbmQoKGNhZHIobGF5ZXIpIGNvbmQoKGNhZGRyKGxheWVyKSAobGF5ZXJPZmZzZXQgPSAoKGNhZGRyKGxheWVyKSAtICgoMi4wICogbGVnTGVuZ3RoKSArIGxlZ1dpZHRoKSkgLyAyLjApKSAoeE9yaWdpbiA9ICh3aWR0aCAtIGxheWVyT2Zmc2V0KSkgKHlPcmlnaW4gPSAod2lkdGggKyAobGVnTGVuZ3RoIC0gbGF5ZXJPZmZzZXQpKSkgKGNyb3NzUG9pbnRzT2ZmID0gbGlzdCgoeE9yaWdpbjp5T3JpZ2luKSAoeE9yaWdpbjooeU9yaWdpbiArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGgpOih5T3JpZ2luICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6KHlPcmlnaW4gKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6KHlPcmlnaW4gKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6KHlPcmlnaW4gKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6eU9yaWdpbikgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6eU9yaWdpbikgKCh4T3JpZ2luICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSk6KHlPcmlnaW4gKyAoLSBsZWdMZW5ndGgpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoKTooeU9yaWdpbiArICgtIGxlZ0xlbmd0aCkpKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGgpOnlPcmlnaW4pKSkgY29uZCgoY2FkZGRyKGxheWVyKSAobGF5ZXJPZmZzZXQyID0gKChjYWRkZHIobGF5ZXIpIC0gKCgyLjAgKiBsZWdMZW5ndGgpICsgbGVnV2lkdGgpKSAvIDIuMCkpICh4T3JpZ2luMiA9ICh3aWR0aCAtIGxheWVyT2Zmc2V0MikpICh5T3JpZ2luMiA9ICh3aWR0aCArIChsZWdMZW5ndGggLSBsYXllck9mZnNldDIpKSkgKGNyb3NzUG9pbnRzT2ZmMiA9IGxpc3QoKHhPcmlnaW4yOnlPcmlnaW4yKSAoeE9yaWdpbjI6KHlPcmlnaW4yICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0MikpKSAoKHhPcmlnaW4yICsgbGVnTGVuZ3RoKTooeU9yaWdpbjIgKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQyKSkpICgoeE9yaWdpbjIgKyBsZWdMZW5ndGgpOih5T3JpZ2luMiArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoICsgKDIgKiBsYXllck9mZnNldDIpKSkgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldDIpKTooeU9yaWdpbjIgKyBsZWdXaWR0aCArIGxlZ0xlbmd0aCArICgyICogbGF5ZXJPZmZzZXQyKSkpICgoeE9yaWdpbjIgKyBsZWdMZW5ndGggKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQyKSk6KHlPcmlnaW4yICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0MikpKSAoKHhPcmlnaW4yICsgbGVnTGVuZ3RoICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0MikpOih5T3JpZ2luMiArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldDIpKSkgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoICsgKDIgKiBsYXllck9mZnNldDIpKTp5T3JpZ2luMikgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldDIpKTp5T3JpZ2luMikgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldDIpKTooeU9yaWdpbjIgKyAoLSBsZWdMZW5ndGgpKSkgKCh4T3JpZ2luMiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4yICsgKC0gbGVnTGVuZ3RoKSkpICgoeE9yaWdpbjIgKyBsZWdMZW5ndGgpOnlPcmlnaW4yKSkpIChjcm9zc1BvaW50c09mZjIgPSByZXZlcnNlKGNyb3NzUG9pbnRzT2ZmMikpIChjcm9zc1BvaW50c09mZiA9IGNkcihjcm9zc1BvaW50c09mZikpIChjcm9zc1BvaW50c09mZiA9IGFwcGVuZChjcm9zc1BvaW50c09mZiBsaXN0KCh4T3JpZ2luOnlPcmlnaW4pICh4T3JpZ2luOnlPcmlnaW4yKSkpKSAoY3Jvc3NQb2ludHNPZmYgPSBhcHBlbmQobGlzdCgoeE9yaWdpbjp5T3JpZ2luMikpIGNyb3NzUG9pbnRzT2ZmKSkgKGNyb3NzUG9pbnRzT2ZmID0gYXBwZW5kKGNyb3NzUG9pbnRzT2ZmIGNyb3NzUG9pbnRzT2ZmMikpIChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBjYXIobGF5ZXIpIGNyb3NzUG9pbnRzT2ZmKSkgKHQgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgY3Jvc3NQb2ludHNPZmYpKSkpICh0IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBjYXIobGF5ZXIpIGNyb3NzUG9pbnRzKSkpKSAodCBjb25kKChjYWRkcihsYXllcikgKGxheWVyT2Zmc2V0ID0gKChjYWRkcihsYXllcikgLSAoKDIuMCAqIGxlZ0xlbmd0aCkgKyBsZWdXaWR0aCkpIC8gMi4wKSkgKHhPcmlnaW4gPSAod2lkdGggLSBsYXllck9mZnNldCkpICh5T3JpZ2luID0gKHdpZHRoICsgKGxlZ0xlbmd0aCAtIGxheWVyT2Zmc2V0KSkpIChjcm9zc1BvaW50c09mZiA9IGxpc3QoKHhPcmlnaW46eU9yaWdpbikgKHhPcmlnaW46KHlPcmlnaW4gKyBsZWdXaWR0aCArICgyICogbGF5ZXJPZmZzZXQpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoKTooeU9yaWdpbiArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpKSAoKHhPcmlnaW4gKyBsZWdMZW5ndGgpOih5T3JpZ2luICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpOih5T3JpZ2luICsgbGVnV2lkdGggKyBsZWdMZW5ndGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpOih5T3JpZ2luICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoICsgKDIgKiBsYXllck9mZnNldCkpOih5T3JpZ2luICsgbGVnV2lkdGggKyAoMiAqIGxheWVyT2Zmc2V0KSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgbGVnTGVuZ3RoICsgKDIgKiBsYXllck9mZnNldCkpOnlPcmlnaW4pICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpOnlPcmlnaW4pICgoeE9yaWdpbiArIGxlZ0xlbmd0aCArIGxlZ1dpZHRoICsgKDIgKiBsYXllck9mZnNldCkpOih5T3JpZ2luICsgKC0gbGVnTGVuZ3RoKSkpICgoeE9yaWdpbiArIGxlZ0xlbmd0aCk6KHlPcmlnaW4gKyAoLSBsZWdMZW5ndGgpKSkgKCh4T3JpZ2luICsgbGVnTGVuZ3RoKTp5T3JpZ2luKSkpIChyZXZlcnNlUG9pbnRzT2ZmID0gbGlzdCgoMC4wOmN1dE9mZnNldCkgKGN1dE9mZnNldDowLjApICgoY3V0T2Zmc2V0ICsgcmV2ZXJzZVNpZGUpOjAuMCkgKHJldmVyc2VMZW5ndGg6Y3V0T2Zmc2V0KSAocmV2ZXJzZUxlbmd0aDooY3V0T2Zmc2V0ICsgcmV2ZXJzZVNpZGUpKSAoKGN1dE9mZnNldCArIHJldmVyc2VTaWRlKTpyZXZlcnNlTGVuZ3RoKSAoY3V0T2Zmc2V0OnJldmVyc2VMZW5ndGgpICgwLjA6KGN1dE9mZnNldCArIHJldmVyc2VTaWRlKSkgKDAuMDp5T3JpZ2luKSkpIChyZXZlcnNlUG9pbnRzT2ZmID0gYXBwZW5kKHJldmVyc2VQb2ludHNPZmYgY3Jvc3NQb2ludHNPZmYpKSAocmV2ZXJzZVBvaW50c09mZiA9IGNvbnMoKDAuMDp5T3JpZ2luKSByZXZlcnNlUG9pbnRzT2ZmKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgcmV2ZXJzZVBvaW50c09mZikpICh0IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBjYXIobGF5ZXIpIHJldmVyc2VQb2ludHMpKSkpKSkpAChsZWdXaWR0aCBsZWdMZW5ndGggd2lkdGggY3V0T2Zmc2V0IHRoZUxheWVycyBvdXRlclJpbmdMYXllcnMgb3V0ZXJSaW5nRXh0ZW5zaW9uIG91dGVyUmluZ1dpZHRoIG91dGVyR3JpZCB4T3JpZ2luIHlPcmlnaW4gY3Jvc3NQb2ludHMgcmV2ZXJzZUxlbmd0aCByZXZlcnNlU2lkZSByZXZlcnNlUG9pbnRzIHMyIGV4dHJhT2Zmc2V0IG91dGVyQ3V0T2Zmc2V0IG91dGVyUmluZ0xlbmd0aCBvdXRlclNpZGUgb3V0ZXJPdXRzaWRlUG9pbnRzIGluc2lkZU9mZnNldCBvdXRlckluc2lkZVBvaW50cyBvdXRlclJpbmdQb2ludHMgbGF5ZXIgbGF5ZXJPZmZzZXQgY3Jvc3NQb2ludHNPZmYgbGF5ZXJPZmZzZXQyIHhPcmlnaW4yIHlPcmlnaW4yIGNyb3NzUG9pbnRzT2ZmMiByZXZlcnNlUG9pbnRzT2ZmKQAoKGxlZ1dpZHRoIDAuMCkgKGxlZ0xlbmd0aCAwLjApICh3aWR0aCAwLjApIChjdXRPZmZzZXQgMC4wKSAodGhlTGF5ZXJzICcoJygoImNud20iICJtYXNrIikgbmlsKSAnKCgiY2ZvbSIgIm1hc2siKSB0KSAnKCgiY3AxbSIgIm1hc2siKSB0IG5pbCkpKSAob3V0ZXJSaW5nTGF5ZXJzIG5pbCkgKG91dGVyUmluZ0V4dGVuc2lvbiAwLjApIChvdXRlclJpbmdXaWR0aCAwLjApIChvdXRlckdyaWQgMC4wKSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaWYoKHcgPiBtb2RlbFdtYXgpIHRoZW4gZXJyb3IoIiVmIGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2FibGUgbWF4aW11bSB3aWR0aCAlZiBmb3IgbW9kZWwgJUwiIHcgbW9kZWxXbWF4IG1vZGVsVGV4dCkpIGlmKCh3IDwgbW9kZWxXbWluKSB0aGVuIGVycm9yKCIlZiBpcyBsZXNzIHRoYW4gYWxsb3dhYmxlIG1pbmltdW0gd2lkdGggJWYgZm9yIG1vZGVsICVMIiB3IG1vZGVsV21pbiBtb2RlbFRleHQpKSBpZigobCA+IG1vZGVsTG1heCkgdGhlbiBlcnJvcigiJWYgaXMgZ3JlYXRlciB0aGFuIGFsbG93YWJsZSBsZW5ndGggJWYgZm9yIG1vZGVsICVMIiBsIG1vZGVsTG1heCBtb2RlbFRleHQpKSBpZigobCA8IG1vZGVsTG1pbikgdGhlbiBlcnJvcigiJWYgaXMgbGVzcyB0aGFuIGFsbG93YWJsZSBtaW5pbXVtIGxlbmd0aCAlZiBmb3IgbW9kZWwgJUwiIGwgbW9kZWxMbWluIG1vZGVsVGV4dCkpIChnTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImciKSkgKGRiQ3JlYXRlVGVybSBnTmV0ICJnIiAiaW5wdXQiKSAoc05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJzIikpIChkYkNyZWF0ZVRlcm0gc05ldCAicyIgImlucHV0T3V0cHV0IikgKGROZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZCIpKSAoZGJDcmVhdGVUZXJtIGROZXQgImQiICJpbnB1dE91dHB1dCIpIChpck5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJpciIpKSAoZGJDcmVhdGVUZXJtIGlyTmV0ICJpciIgImlucHV0T3V0cHV0IikgKG9yTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgIm9yIikpIChkYkNyZWF0ZVRlcm0gb3JOZXQgIm9yIiAiaW5wdXRPdXRwdXQiKSB3aGVuKChmbGFyZVlhbW91bnRfaW4gPT0gMC4wKSAoZmxhcmVZYW1vdW50X2luID0gZmxhcmVZYW1vdW50KSkgY29uZCgoKHNocmlua1BlcmNlbnQgPT0gMC4wKSAoc2NhbGVNdWx0ID0gMS4wKSkgKHQgKHNjYWxlTXVsdCA9ICgxMDAuMCAvICgxMDAuMCAtIHNocmlua1BlcmNlbnQpKSkgKHZpYTFQb2x5R3JpZCA9IG1heCh2aWExZ3JpZCBwb2x5R3JpZCkpIGZvcmVhY2goc2l6ZUFuZEdyaWQgbGlzdChsaXN0KCdzcmNWaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFHYXRlU3BhY2UgdmlhMVBvbHlHcmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIHZpYTFncmlkKSBsaXN0KCdkcm5WaWFZc3BhY2VSaW5nVmlhQm90IHZpYTFncmlkKSBsaXN0KCdFU0Rud0VuY1ZpYTEgdGFwR3JpZCkgbGlzdCgnRVNEbndHYXRlU3AgdGFwR3JpZCkgbGlzdCgnaW5uZXJSaW5nVGFwV2lkdGggdGFwR3JpZCkgbGlzdCgnb3V0ZXJSaW5nVGFwV2lkdGggdGFwR3JpZCkgbGlzdCgnaW5uZXJSaW5nTWV0YWxXaWR0aCBsYXllcjJncmlkKSBsaXN0KCd2aWExVmlhMlNwYWNlIHZpYTFncmlkKSBsaXN0KCdsYXllcjJXaWR0aCBsYXllcjJncmlkKSBsaXN0KCdsYXllcjNXaWR0aCBsYXllcjNncmlkKSBsaXN0KCdvckxheWVyM1dpZHRoIGxheWVyM2dyaWQpIGxpc3QoJ21pblcgZGlmZkdyaWQpIGxpc3QoJ21heFcgZGlmZkdyaWQpIGxpc3QoJ21pblRvdGFsVyBkaWZmR3JpZCkgbGlzdCgndmlhRXh0RGlmZlkgZGlmZkdyaWQpKSAodGhlU2l6ZSA9IGNhcihzaXplQW5kR3JpZCkpICh0aGVHcmlkID0gY2FkcihzaXplQW5kR3JpZCkpICh0ZW1wU2l6ZSA9ICgoZXZhbCh0aGVTaXplKSAqIHNjYWxlTXVsdCkgLyB0aGVHcmlkKSkgc2V0KHRoZVNpemUgKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdGhlR3JpZCkpKSkpIGZvcmVhY2goa2x1ZGdlIGxpc3QobGlzdCgnb3JMYXllcjNXaWR0aCBsYXllcjNncmlkIHZpYTJXaWR0aCB2aWEyZ3JpZCkgbGlzdCgnb3V0ZXJSaW5nVGFwV2lkdGggdGFwR3JpZCB2aWExV2lkdGggdmlhMWdyaWQpKSAodG1wT3JMYXllcldpZHRoID0gbnRoKDAga2x1ZGdlKSkgKHRtcE9yTGF5ZXJHcmlkID0gbnRoKDEga2x1ZGdlKSkgKHRtcFZpYVdpZHRoID0gbnRoKDIga2x1ZGdlKSkgKHRtcFZpYUdyaWQgPSBudGgoMyBrbHVkZ2UpKSAodGVtcFNpemUgPSAodG1wVmlhV2lkdGggLyB0bXBWaWFHcmlkKSkgY29uZCgob2RkcChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgKHRlbXBTaXplID0gKGV2YWwodG1wT3JMYXllcldpZHRoKSAvIHRtcE9yTGF5ZXJHcmlkKSkgd2hlbihldmVucChmaXgoKHRlbXBTaXplICsgMC45OTkpKSkgc2V0KHRtcE9yTGF5ZXJXaWR0aCAoZXZhbCh0bXBPckxheWVyV2lkdGgpICsgbGF5ZXIzZ3JpZCkpKSkgKHQgKHRlbXBTaXplID0gKGV2YWwodG1wT3JMYXllcldpZHRoKSAvIHRtcE9yTGF5ZXJHcmlkKSkgd2hlbihvZGRwKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpKSBzZXQodG1wT3JMYXllcldpZHRoIChldmFsKHRtcE9yTGF5ZXJXaWR0aCkgKyBsYXllcjNncmlkKSkpKSkpICh2aWExUGl0Y2ggPSAodmlhMVdpZHRoICsgdmlhMVNwYWNlKSkgKHRhcmdldFJvd3MgPSAoKHcgKyAoLTIuMCAqIHZpYUV4dERpZmZZKSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSAocm93c09mQ29udGFjdHMgPSBmaXgoKDAuOTk5ICsgdGFyZ2V0Um93cykpKSB3aGVuKChhYnMoKHJvd3NPZkNvbnRhY3RzIC0gdGFyZ2V0Um93cykpID4gMC4wMDAxKSBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogdyAoJWYpIGRvZXMgbm90IHNhdGlzZnkgdmlhIHBpdGNoIHJlcXVpcmVtZW50cy4gIFRyeSBlaXRoZXIgJWYgb3IgJWZcbiIgdyAoKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkgKyAoMi4wICogdmlhRXh0RGlmZlkpKSAoKChyb3dzT2ZDb250YWN0cyAtIDEpICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkgKyAoMi4wICogdmlhRXh0RGlmZlkpKSkpIHdoZW4oKCh3IC0gMWUtMDYpIDwgbWluVykgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICB3ICglZikgaXMgbGVzcyB0aGFuIG1pbmltdW0gYWxsb3dhYmxlIHdpZHRoIHBlciBsZWcgKCVmKVxuIiB3IG1pblcpKSB3aGVuKCgodyAtIDFlLTA2KSA+IG1heFcpIGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgdyAoJWYpIGlzIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIGFsbG93YWJsZSB3aWR0aCBwZXIgbGVnICglZilcbiIgdyBtYXhXKSkgd2hlbigoKHcgKiBtKSA8IG1pblRvdGFsVykgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICB0b3RhbCB3ICglZikgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIHRvdGFsIHdpZHRoICglZilcbiIgKHcgKiBtKSBtaW5Ub3RhbFcpKSB3aGVuKChkcm5WaWFZc3BhY2VSaW5nVmlhVG9wIDwgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpIGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgZHJuVmlhWXNwYWNlUmluZ1ZpYVRvcCAoJWYpIGlzIGxlc3MgdGhhbiBtaW5pbXVtIGFsbG93YWJsZSAoJWYpXG4iIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpKSB3aGVuKChkcm5WaWFZc3BhY2VSaW5nVmlhQm90IDwgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpIGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCAoJWYpIGlzIGxlc3MgdGhhbiBtaW5pbXVtIGFsbG93YWJsZSAoJWYpXG4iIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgKHNyY1ZpYUdhdGVTcGFjZSArIGRyblZpYUdhdGVTcGFjZSArIGwgKyBleHRyYURyblNwYWNlICsgZXh0cmFTcmNTcGFjZSkpKSB1bmxlc3MoKCFmbG9hdHAobSkgJiYgbnVtYmVycChtKSkgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICBtIG11c3QgYmUgYW4gZXZlbiBpbnRlZ2VyLCBub3QgYSBmbG9hdFxuIikpIHdoZW4ob2RkcChtKSBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogIG0gKG51bWJlciBvZiBsZWdzKSBtdXN0IGJlIGFuIGV2ZW4gaW50ZWdlclxuIikpIChmbGFyZWRHYXRlSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmxhcmVkR2F0ZU5hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhmbGFyZWRHYXRlSWQgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIGZsYXJlZCBnYXRlICVzXG4iIGZsYXJlZEdhdGVOYW1lKSkgdW5sZXNzKChmbGFyZWRHYXRlSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogIEZsYXJlZCBnYXRlICVzIGlzIG5vdCBhIHBjZWxsXG4iIGZsYXJlZEdhdGVOYW1lKSkgKHJpbmdJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBnZW5lcmljUmluZ05hbWUgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhyaW5nSWQgZXJyb3IoIm5Fc2RUcmFuSW1wQ2xhc3M6ICBDYW5ub3QgZmluZC9vcGVuIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogIFJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgKHJpdmV0ZWRSaW5nSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgcml2ZXRlZFJpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Mocml2ZXRlZFJpbmdJZCBlcnJvcigibkVzZFRyYW5JbXBDbGFzczogIENhbm5vdCBmaW5kL29wZW4gcml2ZXRlZCByaW5nICVzXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIHVubGVzcygocml2ZXRlZFJpbmdJZH4+aXNQYXJhbUNlbGwpIGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgUml2ZXRlZCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIHJpdmV0ZWRSaW5nTmFtZSkpIChkaWZmWG9yaWdpbiA9ICgoLSB2aWFFeHREaWZmWCkgKyAoLSB2aWExV2lkdGgpICsgKC0gc3JjVmlhR2F0ZVNwYWNlKSArICgtIGV4dHJhU3JjU3BhY2UpKSkgKGRpZmZZb3JpZ2luID0gMC4wKSAodG90YWxEcm5MZW5ndGggPSAoKDIuMCAqIChkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKyB2aWExV2lkdGgpKSAodG90YWxTcmNMZW5ndGggPSAoKDIuMCAqIChzcmNWaWFHYXRlU3BhY2UgKyBleHRyYVNyY1NwYWNlKSkgKyB2aWExV2lkdGgpKSAoZGlmZlhlbmQgPSAoZGlmZlhvcmlnaW4gKyAoLTIuMCAqIGRpZmZYb3JpZ2luKSArIChsICogbSkgKyAoKG0gLyAyKSAqIHRvdGFsRHJuTGVuZ3RoKSArICgoKG0gLyAyKSAtIDEpICogdG90YWxTcmNMZW5ndGgpKSkgKGRpZmZZZW5kID0gdykgd2hlbigoKEVTRG53RW5jVmlhMSA+IDAuMCkgJiYgKEVTRG53R2F0ZVNwID4gMC4wKSkgKEVTRG53VFdpZHRoRHJuID0gKCgoMi4wICogZHJuVmlhR2F0ZVNwYWNlKSArIHZpYTFXaWR0aCkgLSAoMi4wICogRVNEbndHYXRlU3ApKSkgKEVTRG53VFdpZHRoU3JjID0gKCgoMi4wICogc3JjVmlhR2F0ZVNwYWNlKSArIHZpYTFXaWR0aCkgLSAoMi4wICogRVNEbndHYXRlU3ApKSkgKEVTRG53VFhvcmlnaW4gPSAoKC0gRVNEbndHYXRlU3ApICsgKC0gRVNEbndUV2lkdGhTcmMpKSkgKEVTRG53VFlvcmlnaW4gPSAodmlhRXh0RGlmZlkgLSBFU0Rud0VuY1ZpYTEpKSAoRVNEbndUWWVuZCA9ICh2aWFFeHREaWZmWSArIChyb3dzT2ZDb250YWN0cyAqIHZpYTFXaWR0aCkgKyAoKHJvd3NPZkNvbnRhY3RzIC0gMSkgKiB2aWExU3BhY2UpICsgRVNEbndFbmNWaWExKSkpIGlmKCgoRVNEbndFbmNWaWExID4gMC4wKSAmJiAoRVNEbndHYXRlU3AgPiAwLjApKSB0aGVuIChkaWZmWGxvb3AgPSAobCAvIDIuMCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChkaWZmWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRpZmZYb3JpZ2luOmRpZmZZZW5kKSAoZGlmZlhsb29wOmRpZmZZZW5kKSAoZGlmZlhsb29wOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpKTpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyAoLSBleHRyYVNyY1NwYWNlKSk6ZGlmZllvcmlnaW4pKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpKTpFU0Rud1RZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKChFU0Rud1RYb3JpZ2luICsgKC0gZXh0cmFTcmNTcGFjZSkpOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArICgtIGV4dHJhU3JjU3BhY2UpICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgZXh0cmFEcm5TcGFjZSkpIGZvcihzZWN0aW9uIDEgKG0gLyAyKSAoZHJuRGlmZlhlbmQgPSAoZGlmZlhsb29wICsgdG90YWxEcm5MZW5ndGggKyBsKSkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYbG9vcDpkaWZmWWVuZCkgKGRybkRpZmZYZW5kOmRpZmZZZW5kKSAoZHJuRGlmZlhlbmQ6RVNEbndUWWVuZCkgKEVTRG53VFhvcmlnaW46RVNEbndUWWVuZCkgKEVTRG53VFhvcmlnaW46ZGlmZllvcmlnaW4pKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46ZGlmZllvcmlnaW4pIChkcm5EaWZmWGVuZDpkaWZmWW9yaWdpbikgKGRybkRpZmZYZW5kOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoRHJuKTpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aERybik6RVNEbndUWW9yaWdpbikgKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBkTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoRHJuKTpFU0Rud1RZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGROZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoRHJuKTpFU0Rud1RZZW5kKSkpKSAoRVNEbndUWG9yaWdpbiA9IChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhEcm4gKyAoMi4wICogRVNEbndHYXRlU3ApICsgbCArIGV4dHJhU3JjU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKGRpZmZYbG9vcCA9IGRybkRpZmZYZW5kKSB1bmxlc3MoKHNlY3Rpb24gPT0gKG0gLyAyKSkgKHNyY0RpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsU3JjTGVuZ3RoICsgbCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChkaWZmWGxvb3A6ZGlmZllvcmlnaW4pIChkaWZmWGxvb3A6ZGlmZlllbmQpIChzcmNEaWZmWGVuZDpkaWZmWWVuZCkgKHNyY0RpZmZYZW5kOkVTRG53VFllbmQpIChFU0Rud1RYb3JpZ2luOkVTRG53VFllbmQpIChFU0Rud1RYb3JpZ2luOmRpZmZZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChFU0Rud1RYb3JpZ2luOmRpZmZZb3JpZ2luKSAoc3JjRGlmZlhlbmQ6ZGlmZllvcmlnaW4pIChzcmNEaWZmWGVuZDpFU0Rud1RZZW5kKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFlvcmlnaW4pIChFU0Rud1RYb3JpZ2luOkVTRG53VFlvcmlnaW4pKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSAoKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyk6RVNEbndUWWVuZCkpKSkgKEVTRG53VFhvcmlnaW4gPSAoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjICsgZXh0cmFTcmNTcGFjZSArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsICsgZXh0cmFEcm5TcGFjZSkpIChkaWZmWGxvb3AgPSBzcmNEaWZmWGVuZCkpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZGlmZlhsb29wOmRpZmZZZW5kKSAoZGlmZlhlbmQ6ZGlmZlllbmQpIChkaWZmWGVuZDpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZZW5kKSAoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoRVNEbndUWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOmRpZmZZb3JpZ2luKSAoZGlmZlhlbmQ6RVNEbndUWWVuZCkgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpICgoRVNEbndUWG9yaWdpbiArIEVTRG53VFdpZHRoU3JjKTpFU0Rud1RZb3JpZ2luKSAoRVNEbndUWG9yaWdpbjpFU0Rud1RZb3JpZ2luKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKEVTRG53VFhvcmlnaW46RVNEbndUWW9yaWdpbikgKChFU0Rud1RYb3JpZ2luICsgRVNEbndUV2lkdGhTcmMpOkVTRG53VFllbmQpKSkpIChFU0Rud1RYb3JpZ2luID0gKEVTRG53VFhvcmlnaW4gKyBFU0Rud1RXaWR0aFNyYyArICgyLjAgKiBFU0Rud0dhdGVTcCkgKyBsKSkgZWxzZSAoZGlmZlhsb29wID0gKGwgLyAyLjApKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhvcmlnaW46ZGlmZllvcmlnaW4pIChkaWZmWGxvb3A6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgc05ldCkgZm9yKHNlY3Rpb24gMSAobSAvIDIpIChkcm5EaWZmWGVuZCA9IChkaWZmWGxvb3AgKyB0b3RhbERybkxlbmd0aCArIGwpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoZGlmZlhsb29wOmRpZmZZb3JpZ2luKSAoZHJuRGlmZlhlbmQ6ZGlmZlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZE5ldCkgKGRpZmZYbG9vcCA9IGRybkRpZmZYZW5kKSB1bmxlc3MoKHNlY3Rpb24gPT0gKG0gLyAyKSkgKHNyY0RpZmZYZW5kID0gKGRpZmZYbG9vcCArIHRvdGFsU3JjTGVuZ3RoICsgbCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KChkaWZmWGxvb3A6ZGlmZllvcmlnaW4pIChzcmNEaWZmWGVuZDpkaWZmWWVuZCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBzTmV0KSAoZGlmZlhsb29wID0gc3JjRGlmZlhlbmQpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKGRpZmZYbG9vcDpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOmRpZmZZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHNOZXQpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaWRMYXllciBsaXN0KChkaWZmWG9yaWdpbjpkaWZmWW9yaWdpbikgKGRpZmZYZW5kOmRpZmZZZW5kKSkpIHdoZW4oZGlmZkltcGxhbnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoZGlmZlhvcmlnaW4gLSBkaWZmSW1wRW5jKSAoZGlmZllvcmlnaW4gLSBkaWZmSW1wRW5jKSkgbGlzdCgoZGlmZlhlbmQgKyBkaWZmSW1wRW5jKSAoZGlmZlllbmQgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbihkaWZmQ29yZUltcGxhbnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gZGlmZkNvcmVJbXBFbmMpIChkaWZmWW9yaWdpbiAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoZGlmZlhlbmQgKyBkaWZmQ29yZUltcEVuYykgKGRpZmZZZW5kICsgZGlmZkNvcmVJbXBFbmMpKSkpKSB3aGVuKG1heHZMYXllciAoaHZsbHggPSAoZGlmZlhvcmlnaW4gLSBodkRpZmZFbmNsb3N1cmUpKSAoaHZsbHkgPSAoZGlmZllvcmlnaW4gLSBodkRpZmZFbmNsb3N1cmUpKSAoaHZ1cnggPSAoZGlmZlhlbmQgKyBodkRpZmZFbmNsb3N1cmUpKSAoaHZ1cnkgPSAoZGlmZlllbmQgKyBodkRpZmZFbmNsb3N1cmUpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QoKGh2bGx4Omh2bGx5KSAoaHZ1cng6aHZ1cnkpKSkpIChnYXRlWG9mZnNldCA9IDAuMCkgZm9yKGdhdGVOdW0gMSBtIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgZmxhcmVkR2F0ZUlkIHNwcmludGYobmlsICJnJWQiIGdhdGVOdW0pICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJnYXRlTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoImdhdGVSZWNvZ25pdGlvbkxheWVyIiAibGlzdCIgcmdhdGVMYXllcikgbGlzdCgidyIgImZsb2F0IiB3KSBsaXN0KCJsIiAiZmxvYXQiIGwpIGxpc3QoImZsYXJlQW1vdW50X2luIiAiZmxvYXQiIGZsYXJlWWFtb3VudF9pbikgbGlzdCgiZmxhcmVBbW91bnQiICJmbG9hdCIgZmxhcmVZYW1vdW50KSBsaXN0KCJmbGFyZUV4dGVuc2lvbiIgImZsb2F0IiBmbGFyZVlleHRlbnNpb24pIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgZ2F0ZVhvZmZzZXQpKSkpIHVubGVzcyhpbnN0IGVycm9yKCJuRXNkVHJhbkltcENsYXNzOiAgRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBmbGFyZWQgZ2F0ZSAlcyIgZmxhcmVkR2F0ZU5hbWUpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKG1vZGVsVGV4dFggPSAoZ2F0ZVhvZmZzZXQgKyAoKGNhYWRyKChtYXN0ZXJ+Pm5vZmxhcmVQb2ludHMpKSAtIGNhYXIoKG1hc3Rlcn4+bm9mbGFyZVBvaW50cykpKSAvIDIpKSkgKG1vZGVsVGV4dFkgPSAoKGNhZGFkcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkgLSBjYWRhcigobWFzdGVyfj5ub2ZsYXJlUG9pbnRzKSkpIC8gMikpIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbW9kZWxUZXh0TGF5ZXIgbGlzdChtb2RlbFRleHRYIG1vZGVsVGV4dFkpIG1vZGVsVGV4dCAiY2VudGVyQ2VudGVyIiAiUjAiICJzdGljayIgbW9kZWxUZXh0TGF5ZXJTaXplKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgKG1hc3Rlcn4+dG9wRmxhcmVQb2ludHMpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciAobWFzdGVyfj5ib3R0b21GbGFyZVBvaW50cykpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgY29uZCgob2RkcChnYXRlTnVtKSAoZ2F0ZVhvZmZzZXQgPSAoZ2F0ZVhvZmZzZXQgKyBsICsgdG90YWxEcm5MZW5ndGgpKSkgKHQgKGdhdGVYb2Zmc2V0ID0gKGdhdGVYb2Zmc2V0ICsgbCArIHRvdGFsU3JjTGVuZ3RoKSkpKSkgKHZpYTFYb3JpZ2luID0gKCgtIHNyY1ZpYUdhdGVTcGFjZSkgKyAoLSBleHRyYVNyY1NwYWNlKSArICgtIHZpYTFXaWR0aCkpKSAodmlhMVlvcmlnaW4gPSB2aWFFeHREaWZmWSkgKHZpYTFYZGVsdGEgPSAodmlhMVdpZHRoICsgZXh0cmFTcmNTcGFjZSArIHNyY1ZpYUdhdGVTcGFjZSArIGwgKyBkcm5WaWFHYXRlU3BhY2UgKyBleHRyYURyblNwYWNlKSkgKHRoZU5ldCA9IHNOZXQpIGNvbmQoKCgobGF5ZXIyTCA9IChsYXllcjJFbmNWaWExICsgdmlhMVdpZHRoICsgbGF5ZXIyRW5jVmlhMSkpID4gKGxheWVyMkxhID0gKGxheWVyMkVuY1ZpYTIgKyB2aWEyV2lkdGggKyBsYXllcjJFbmNWaWEyKSkpIChsYXllcjJEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSkgKHQgKGRlbHRhID0gKChsYXllcjJMYSAtIGxheWVyMkwpIC8gMi4wKSkgKGxheWVyMkRlbHRhVmlhMSA9IChsYXllcjJFbmNWaWExICsgKGZpeCgoMC45OTkgKyAoZGVsdGEgLyBsYXllcjJncmlkKSkpICogbGF5ZXIyZ3JpZCkpKSAobGF5ZXIyTCA9IGxheWVyMkxhKSkpICh2aWEyUGl0Y2ggPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKGxheWVyMlcgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgKHJvd3NPZkNvbnRhY3RzICogdmlhMVBpdGNoKSArICgtIHZpYTFTcGFjZSkpKSAobGF5ZXIyV2EgPSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpIC0gdmlhMlNwYWNlKSkgKHJvd3NPZkNvbnRhY3RzMiA9IDApIHdoaWxlKCgobGF5ZXIyV2EgLSAxZS0wNSkgPCBsYXllcjJXKSAobGF5ZXIyV2EgPSAobGF5ZXIyV2EgKyB2aWEyUGl0Y2gpKSAocm93c09mQ29udGFjdHMyID0gKHJvd3NPZkNvbnRhY3RzMiArIDEpKSkgKGxheWVyMldhID0gKGxheWVyMldhIC0gdmlhMlBpdGNoKSkgKHJvd3NPZkNvbnRhY3RzMiA9IChyb3dzT2ZDb250YWN0czIgLSAxKSkgKGxheWVyMllEZWx0YVZpYTEgPSBsYXllcjJFbmNWaWExKSBmb3IoY29sdW1uIDAgbSBjb25kKChldmVucChjb2x1bW4pICh0aGVOZXQgPSBzTmV0KSkgKHQgKHRoZU5ldCA9IGROZXQpKSkgKHZpYTFYZW5kID0gKHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgKHZpYTFZbG9vcCA9IHZpYTFZb3JpZ2luKSBmb3Iocm93IDEgcm93c09mQ29udGFjdHMgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOnZpYTFZbG9vcCkgKHZpYTFYZW5kOih2aWExWWxvb3AgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgKHZpYTFZbG9vcCA9ICh2aWExWWxvb3AgKyB2aWExUGl0Y2gpKSkgaWYoKGxheWVyMldpZHRoID4gMC4wKSB0aGVuIChsYXllcjJYb3JpZ2luID0gbWluKCgodmlhMVhvcmlnaW4gLSAoMC41ICogbGF5ZXIyV2lkdGgpKSArICgwLjUgKiB2aWExV2lkdGgpKSAodmlhMVhvcmlnaW4gKyAoLSB2aWExVmlhMlNwYWNlKSArICgtIHZpYTJXaWR0aCkgKyAoLSBsYXllcjJFbmNWaWEyKSkpKSAobGF5ZXIyWG9yaWdpbiA9IChyb3VuZCgoKGxheWVyMlhvcmlnaW4gLyBsYXllcjJncmlkKSArIDAuMDAxKSkgKiBsYXllcjJncmlkKSkgZWxzZSAobGF5ZXIyWG9yaWdpbiA9ICh2aWExWG9yaWdpbiAtIGxheWVyMkRlbHRhVmlhMSkpKSAobGF5ZXIyWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGxheWVyMllEZWx0YVZpYTEpKSAobGF5ZXIyWWVuZCA9IChsYXllcjJZb3JpZ2luICsgbGF5ZXIyVykpIGlmKChsYXllcjJXaWR0aCA+IDAuMCkgdGhlbiBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobDJidmxDbnRybCA9IChsYXllcjJXaWR0aCAvIDMuMCkpIChsMmJ2bENudHJsID0gKHJvdW5kKCgobDJidmxDbnRybCAvIGxheWVyMmdyaWQpICsgMC4wMDEpKSAqIGxheWVyMmdyaWQpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgbGlzdChsaXN0KChsYXllcjJYb3JpZ2luICsgbDJidmxDbnRybCkgKGxheWVyMllvcmlnaW4gKyAoLSBsMmJ2bENudHJsKSkpIGxpc3QobGF5ZXIyWG9yaWdpbiBsYXllcjJZb3JpZ2luKSBsaXN0KGxheWVyMlhvcmlnaW4gbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIGwyYnZsQ250cmwpIChsYXllcjJZZW5kICsgbDJidmxDbnRybCkpIGxpc3QoKGxheWVyMlhvcmlnaW4gKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWEyV2lkdGgpICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkgKyAoLSBsMmJ2bENudHJsKSkgKGxheWVyMlllbmQgKyBsMmJ2bENudHJsKSkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSkgbGF5ZXIyWWVuZCkgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSkgbGF5ZXIyWW9yaWdpbikgbGlzdCgobGF5ZXIyWG9yaWdpbiArIG1heChsYXllcjJXaWR0aCAoKDIuMCAqIHZpYTJXaWR0aCkgKyAoMi4wICogdmlhMVZpYTJTcGFjZSkgKyB2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyRW5jVmlhMikpKSArICgtIGwyYnZsQ250cmwpKSAobGF5ZXIyWW9yaWdpbiArICgtIGwyYnZsQ250cmwpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QobGlzdChsYXllcjJYb3JpZ2luIGxheWVyMllvcmlnaW4pIGxpc3QoKGxheWVyMlhvcmlnaW4gKyBtYXgobGF5ZXIyV2lkdGggKCgyLjAgKiB2aWEyV2lkdGgpICsgKDIuMCAqIHZpYTFWaWEyU3BhY2UpICsgdmlhMVdpZHRoICsgKDIuMCAqIGxheWVyMkVuY1ZpYTIpKSkpIGxheWVyMlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSkgZWxzZSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgobGF5ZXIyWG9yaWdpbjpsYXllcjJZb3JpZ2luKSAoKGxheWVyMlhvcmlnaW4gKyBsYXllcjJMKTpsYXllcjJZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkpIGlmKCh2aWExVmlhMlNwYWNlID4gMC4wKSB0aGVuICh2aWEyWG9yaWdpbiA9ICh2aWExWG9yaWdpbiArIHZpYTFXaWR0aCArIHZpYTFWaWEyU3BhY2UpKSBlbHNlICh2aWEyWG9yaWdpbiA9IChsYXllcjJYb3JpZ2luICsgbGF5ZXIyRW5jVmlhMikpKSAodmlhMlhlbmQgPSAodmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMkVuY1ZpYTIpKSAodmlhMllsb29wID0gdmlhMllvcmlnaW4pIGZvcihyb3cgMSByb3dzT2ZDb250YWN0czIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHZpYTJYb3JpZ2luOnZpYTJZbG9vcCkgKHZpYTJYZW5kOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgd2hlbigodmlhMVZpYTJTcGFjZSA+IDAuMCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKCh2aWExWG9yaWdpbiArICgtIHZpYTFWaWEyU3BhY2UpICsgKC0gdmlhMldpZHRoKSk6dmlhMllsb29wKSAoKHZpYTFYb3JpZ2luICsgKC0gdmlhMVZpYTJTcGFjZSkpOih2aWEyWWxvb3AgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkpICh2aWEyWWxvb3AgPSAodmlhMllsb29wICsgdmlhMlBpdGNoKSkpIGlmKChsYXllcjNXaWR0aCA+IDAuMCkgdGhlbiAobGF5ZXIzWG9yaWdpbiA9ICgodmlhMVhvcmlnaW4gLSAoMC41ICogbGF5ZXIzV2lkdGgpKSArICgwLjUgKiB2aWExV2lkdGgpKSkgKGxheWVyM1hvcmlnaW4gPSAocm91bmQoKChsYXllcjNYb3JpZ2luIC8gbGF5ZXIzZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIzZ3JpZCkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsM2J2bENudHJsID0gKGxheWVyM1dpZHRoIC8gMy4wKSkgKGwzYnZsQ250cmwgPSAocm91bmQoKChsM2J2bENudHJsIC8gbGF5ZXIyZ3JpZCkgKyAwLjAwMSkpICogbGF5ZXIyZ3JpZCkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyBsaXN0KGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsM2J2bENudHJsKSAodmlhMllvcmlnaW4gKyAoLSBsYXllcjNFbmNWaWEyKSArICgtIGwzYnZsQ250cmwpKSkgbGlzdChsYXllcjNYb3JpZ2luICh2aWEyWW9yaWdpbiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdChsYXllcjNYb3JpZ2luICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsM2J2bENudHJsKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIgKyBsM2J2bENudHJsKSkgbGlzdCgobGF5ZXIzWG9yaWdpbiArIGxheWVyM1dpZHRoICsgKC0gbDNidmxDbnRybCkpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMiArIGwzYnZsQ250cmwpKSBsaXN0KChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGgpICh2aWEyWWxvb3AgKyAoLSB2aWEyU3BhY2UpICsgbGF5ZXIzRW5jVmlhMikpIGxpc3QoKGxheWVyM1hvcmlnaW4gKyBsYXllcjNXaWR0aCkgKHZpYTJZb3JpZ2luICsgKC0gbGF5ZXIzRW5jVmlhMikpKSBsaXN0KChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGggKyAoLSBsM2J2bENudHJsKSkgKHZpYTJZb3JpZ2luICsgKC0gbGF5ZXIzRW5jVmlhMikgKyAoLSBsM2J2bENudHJsKSkpKSkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QobGlzdChsYXllcjNYb3JpZ2luICh2aWEyWW9yaWdpbiArICgtIGxheWVyM0VuY1ZpYTIpKSkgbGlzdCgobGF5ZXIzWG9yaWdpbiArIGxheWVyM1dpZHRoKSAodmlhMllsb29wICsgKC0gdmlhMlNwYWNlKSArIGxheWVyM0VuY1ZpYTIpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkpIGVsc2UgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKCh2aWEyWG9yaWdpbiAtIGxheWVyM0VuY1ZpYTIpOih2aWEyWW9yaWdpbiAtIGxheWVyM0VuY1ZpYTIpKSAoKHZpYTJYZW5kICsgbGF5ZXIzRW5jVmlhMik6KHZpYTJZbG9vcCArICgtIHZpYTJTcGFjZSkgKyBsYXllcjNFbmNWaWEyKSkpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiB0aGVOZXQgZGJpZCkpIGNvbmQoKChjb2x1bW4gPT0gMCkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpKSAoKGNvbHVtbiA9PSBtKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpKSAodCBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIikgYWNjZXNzRGlyKSkpICh2aWExWG9yaWdpbiA9ICh2aWExWG9yaWdpbiArIHZpYTFYZGVsdGEpKSkgKHRhcFdpZHRoSW5JUiA9IG1heChpbm5lclJpbmdUYXBXaWR0aCAodmlhMVdpZHRoICsgKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkpIChpclZpYU9mZnNldCA9IChmaXgoKCgoKHRhcFdpZHRoSW5JUiAvIDIuMCkgLSAodmlhMVdpZHRoIC8gMi4wKSkgLyB2aWExZ3JpZCkgKyAwLjk5OSkpICogdmlhMWdyaWQpKSAoaXJUYXBYb3JpZ2luID0gKGRpZmZYb3JpZ2luIC0gbWluRGlmZlRhcFJpbmdTcGFjZSAtIGV4dHJhTGVmdFNwYWNlIC0gdGFwV2lkdGhJbklSKSkgKGlyVGFwWW9yaWdpbiA9ICh2aWExWW9yaWdpbiAtIGRyblZpYVlzcGFjZVJpbmdWaWFCb3QgLSB2aWExV2lkdGggLSBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSAoaXJUYXBMID0gKChkaWZmWGVuZCArIG1pbkRpZmZUYXBSaW5nU3BhY2UgKyBleHRyYVJpZ2h0U3BhY2UgKyB0YXBXaWR0aEluSVIpIC0gaXJUYXBYb3JpZ2luKSkgKGlyVGFwVyA9ICgodmlhMVlsb29wICsgKC0gdmlhMVNwYWNlKSArIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgKyB2aWExV2lkdGggKyBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpIC0gaXJUYXBZb3JpZ2luKSkgaWYodGFwRWRnZXNBdDQ1IHRoZW4gKGJldmVsTGVuZ3RoID0gKDAuNiAqIHRhcFdpZHRoSW5JUikpIChiZXZlbExlbmd0aCA9IChyb3VuZCgoKGJldmVsTGVuZ3RoIC8gdGFwR3JpZCkgKyAwLjAwMSkpICogdGFwR3JpZCkpIChsb3dlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJMZWZ0QkwgPSBiZXZlbExlbmd0aCkgKGxvd2VyUmlnaHRCTCA9IGJldmVsTGVuZ3RoKSAodXBwZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaXRyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpclRhcFcpIGxpc3QoImwiICJmbG9hdCIgaXJUYXBMKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlyVGFwWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpclRhcFlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIHRhcExheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbklSKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIGlyTmV0KSB3aGVuKHRhcFN1YkltcGxhbnQgKGl0cmlYb3JpZ2luID0gKGlyVGFwWG9yaWdpbiAtIHRhcFN1YkltcEVuYykpIChpdHJpWW9yaWdpbiA9IChpclRhcFlvcmlnaW4gLSB0YXBTdWJJbXBFbmMpKSAoaXRyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluSVIgKyB0YXBTdWJJbXBFbmMgKyB0YXBTdWJJbXBFbmMpKSAoaXRyaVcgPSAoaXJUYXBXICsgdGFwU3ViSW1wRW5jICsgdGFwU3ViSW1wRW5jKSkgKGl0cmlMID0gKGlyVGFwTCArIHRhcFN1YkltcEVuYyArIHRhcFN1YkltcEVuYykpIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaXRyaSIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaXRyaVcpIGxpc3QoImwiICJmbG9hdCIgaXRyaUwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaXRyaVhvcmlnaW4pIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaXRyaVlvcmlnaW4pIGxpc3QoInJpbmdMYXllciIgImxpc3QiIHRhcFN1YkltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh4Q29vcmQgPSAoaXJUYXBYb3JpZ2luICsgbWF4KGlyVmlhT2Zmc2V0IGlubmVyUmluZ1RhcEVuY1ZpYTEpKSkgKHlDb29yZCA9IChpclRhcFlvcmlnaW4gKyBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSBpZihsYXllcjJFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgd2hlbihmaWxsZWRSaW5ncyAodmlhMVdpZHRoSW5JUiA9ICh0YXBXaWR0aEluSVIgLSBpbm5lclJpbmdUYXBFbmNWaWExKSkgKHZpYTFYb3JpZ2luID0gKGlyVGFwWG9yaWdpbiArIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSAodmlhMVlvcmlnaW4gPSAoaXJUYXBZb3JpZ2luICsgaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJpdjFyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoaXJUYXBXIC0gKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSAoaXJUYXBXIC0gKDIuMCAqIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkpKSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAoaXJUYXBMIC0gKDIuMCAqIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSAoaXJUYXBMIC0gKDIuMCAqIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWExWG9yaWdpbiB4Q29vcmQpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTFZb3JpZ2luIHlDb29yZCkpIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWExTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWExV2lkdGhJbklSIHZpYTFXaWR0aCkpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMVdpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTFTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWExZ3JpZCkpKSBpZigoaW5uZXJSaW5nTWV0YWxXaWR0aCA+IDAuMCkgdGhlbiAoaXJMMncgPSBpclRhcFcpIChpckwybCA9IGlyVGFwTCkgKGlyTDJ4RGVsdGEgPSBpclRhcFhvcmlnaW4pIChpckwyeURlbHRhID0gaXJUYXBZb3JpZ2luKSAoaXJMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpIGlubmVyUmluZ01ldGFsV2lkdGgpKSBlbHNlIChpckwydyA9IChpclRhcFcgKyAoLTIuMCAqIG1heChpclZpYU9mZnNldCBpbm5lclJpbmdUYXBFbmNWaWExKSkgKyAoMi4wICogbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMmwgPSAoaXJUYXBMICsgKC0yLjAgKiBtYXgoaXJWaWFPZmZzZXQgaW5uZXJSaW5nVGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKGlyTDJ4RGVsdGEgPSAoeENvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAoaXJMMnlEZWx0YSA9ICh5Q29vcmQgKyAoLSBsYXllcjJFbmNWaWExKSkpIChpckwycmluZ1cgPSBtYXgoKCgyLjAgKiBsYXllcjJFbmNWaWExKSArIHZpYTFXaWR0aCkgKCgyLjAgKiBsYXllcjJFbmNWaWEyKSArIHZpYTJXaWR0aCkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gaXJMMnJpbmdXKSAodXBwZXJMZWZ0QkwgPSBpckwycmluZ1cpIChsb3dlclJpZ2h0QkwgPSBpckwycmluZ1cpICh1cHBlclJpZ2h0QkwgPSBpckwycmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAiaWwyciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgaXJUYXBXIGlyTDJ3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcEwgaXJMMmwpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIGlyVGFwWG9yaWdpbiBpckwyeERlbHRhKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyBpclRhcFlvcmlnaW4gaXJMMnlEZWx0YSkpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHRhcFdpZHRoSW5JUiBpckwycmluZ1cpKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyMmdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZDEgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMxKSkpIChkYmlkMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJpZDQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHM0KSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQxIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDMgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQ0IGlyTmV0KSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgd2hlbihmaWxsZWRSaW5ncyAodmlhMkVuYyA9IG1heChsYXllcjJFbmNWaWEyIGxheWVyM0VuY1ZpYTIpKSAodmlhMldpZHRoSVIgPSAoaW5uZXJSaW5nTWV0YWxXaWR0aCAtICgyLjAgKiB2aWEyRW5jKSkpICh2aWEyQkwgPSAodmlhMldpZHRoSVIgKyB2aWEyU3BhY2UpKSkgKGl2MnJFbmMgPSAoKGlyTDJyaW5nVyAtIGlmKGZpbGxlZFJpbmdzIHZpYTJXaWR0aElSIHZpYTJXaWR0aCkpIC8gMi4wKSkgKHRlbXBTaXplID0gKGl2MnJFbmMgLyB2aWEyZ3JpZCkpIChpdjJyRW5jID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdmlhMmdyaWQpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcml2ZXRlZFJpbmdJZCAiaXYyciIgKChpckwyeERlbHRhICsgaXYyckVuYyk6KGlyTDJ5RGVsdGEgKyBpdjJyRW5jKSkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAoaXJMMncgLSAoMi4wICogaXYyckVuYykpKSBsaXN0KCJsIiAiZmxvYXQiIChpckwybCAtICgyLjAgKiBpdjJyRW5jKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTJXaWR0aElSIHZpYTJXaWR0aCkpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyB2aWEyQkwgbG93ZXJMZWZ0QkwpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIHZpYTJCTCB1cHBlckxlZnRCTCkpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMkJMIGxvd2VyUmlnaHRCTCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgdmlhMkJMIHVwcGVyUmlnaHRCTCkpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTJncmlkKSkpIGlmKChpbm5lclJpbmdNZXRhbFdpZHRoID4gMC4wKSB0aGVuIChpckwzdyA9IGlyTDJ3KSAoaXJMM2wgPSBpckwybCkgKGlyTDN4RGVsdGEgPSBpckwyeERlbHRhKSAoaXJMM3lEZWx0YSA9IGlyTDJ5RGVsdGEpIChpckwzcmluZ1cgPSBtYXgoKCgyLjAgKiBpckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSBpbm5lclJpbmdNZXRhbFdpZHRoKSkgZWxzZSAoaXJMM3cgPSAoaXJMMncgKyAoLTIuMCAqIGl2MnJFbmMpICsgKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM2wgPSAoaXJMMmwgKyAoLTIuMCAqIGl2MnJFbmMpICsgKDIuMCAqIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3hEZWx0YSA9IChpckwyeERlbHRhICsgaXYyckVuYyArICgtIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3lEZWx0YSA9IChpckwyeURlbHRhICsgaXYyckVuYyArICgtIGlyTGF5ZXIzRW5jVmlhMikpKSAoaXJMM3JpbmdXID0gKCgyLjAgKiBpckxheWVyM0VuY1ZpYTIpICsgdmlhMldpZHRoKSkpIGlmKGxheWVyM0VkZ2VzQXQ0NSB0aGVuIChsb3dlckxlZnRCTCA9IGlyTDNyaW5nVykgKHVwcGVyTGVmdEJMID0gaXJMM3JpbmdXKSAobG93ZXJSaWdodEJMID0gaXJMM3JpbmdXKSAodXBwZXJSaWdodEJMID0gaXJMM3JpbmdXKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgImlsM3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlyTDN3KSBsaXN0KCJsIiAiZmxvYXQiIGlyTDNsKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIGlyTDN4RGVsdGEpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaXJMM3lEZWx0YSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgaXJMM3JpbmdXKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIGxheWVyM2dyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iIHQpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBpck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgaXJOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIGlyTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBpck5ldCkpIChwaW4gPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDEpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIGlyTmV0IGRiaWQyKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBpck5ldCBkYmlkMykpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gaXJOZXQgZGJpZDQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAodGFwV2lkdGhJbk9SID0gbWF4KG91dGVyUmluZ1RhcFdpZHRoICgoMi4wICogb3V0ZXJSaW5nVGFwRW5jVmlhMSkgKyB2aWExV2lkdGgpKSkgKG91dGVyVGFwRGVsdGEgPSAod2VsbFRhcFNwYWNlICsgd2VsbEVuY1RhcCArIHRhcFdpZHRoSW5PUikpIChvclRhcFhvcmlnaW4gPSAoaXJUYXBYb3JpZ2luIC0gb3V0ZXJUYXBEZWx0YSkpIChvclRhcFlvcmlnaW4gPSAoaXJUYXBZb3JpZ2luIC0gb3V0ZXJUYXBEZWx0YSkpIChvclRhcFcgPSAoaXJUYXBXICsgKDIuMCAqIG91dGVyVGFwRGVsdGEpKSkgKG9yVGFwTCA9IChpclRhcEwgKyAoMi4wICogb3V0ZXJUYXBEZWx0YSkpKSB3aGVuKChsYXllcjMgJiYgZnVsbHlTdHJhcCAmJiAoZnVsbHlTdHJhcCAhPSAiRkFMU0UiKSkgKG9yTGF5ZXIzWG9yaWdpbkEgPSAoaXJMM3hEZWx0YSAtIG9yaXJMYXllcjNTcGFjZSAtIG9yTGF5ZXIzV2lkdGgpKSAob3JMYXllcjNYb3JpZ2luQiA9IChvclRhcFhvcmlnaW4gKyAodGFwV2lkdGhJbk9SIC8gMi4wKSArIChvckxheWVyM1dpZHRoIC8gLTIuMCkpKSB3aGVuKChvckxheWVyM1hvcmlnaW5BIDwgb3JMYXllcjNYb3JpZ2luQikgKGV4dHJhU3BhY2UgPSAob3JMYXllcjNYb3JpZ2luQiAtIG9yTGF5ZXIzWG9yaWdpbkEpKSAodGVtcFNpemUgPSAoZXh0cmFTcGFjZSAvIHRhcEdyaWQpKSAoZXh0cmFTcGFjZSA9IChmaXgoKHRlbXBTaXplICsgMC45OTkpKSAqIHRhcEdyaWQpKSAob3JUYXBYb3JpZ2luID0gKG9yVGFwWG9yaWdpbiAtIGV4dHJhU3BhY2UpKSAob3JUYXBZb3JpZ2luID0gKG9yVGFwWW9yaWdpbiAtIGV4dHJhU3BhY2UpKSAob3JUYXBXID0gKG9yVGFwVyArICgyLjAgKiBleHRyYVNwYWNlKSkpIChvclRhcEwgPSAob3JUYXBMICsgKDIuMCAqIGV4dHJhU3BhY2UpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib3dyIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JUYXBXICsgKDIuMCAqIHdlbGxFbmNUYXApKSkgbGlzdCgibCIgImZsb2F0IiAob3JUYXBMICsgKDIuMCAqIHdlbGxFbmNUYXApKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiAob3JUYXBYb3JpZ2luIC0gd2VsbEVuY1RhcCkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKG9yVGFwWW9yaWdpbiAtIHdlbGxFbmNUYXApKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBuaWwpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiAodGFwV2lkdGhJbk9SICsgKDIuMCAqIHdlbGxFbmNUYXApKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHdlbGxHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgd2VsbExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB3ZWxsTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSBpZih0YXBFZGdlc0F0NDUgdGhlbiAoYmV2ZWxMZW5ndGggPSAoMC42ICogdGFwV2lkdGhJbk9SKSkgKGJldmVsTGVuZ3RoID0gKHJvdW5kKCgoYmV2ZWxMZW5ndGggLyB0YXBHcmlkKSArIDAuMDAxKSkgKiB0YXBHcmlkKSkgKGxvd2VyTGVmdEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlckxlZnRCTCA9IGJldmVsTGVuZ3RoKSAobG93ZXJSaWdodEJMID0gYmV2ZWxMZW5ndGgpICh1cHBlclJpZ2h0QkwgPSBiZXZlbExlbmd0aCkgZWxzZSAobG93ZXJMZWZ0QkwgPSAwLjApICh1cHBlckxlZnRCTCA9IDAuMCkgKGxvd2VyUmlnaHRCTCA9IDAuMCkgKHVwcGVyUmlnaHRCTCA9IDAuMCkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvdHIiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIG9yVGFwVykgbGlzdCgibCIgImZsb2F0IiBvclRhcEwpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgb3JUYXBYb3JpZ2luKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIG9yVGFwWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgdGFwV2lkdGhJbk9SKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiZmxvYXQiIHRhcEdyaWQpIGxpc3QoImJyZWFrdXBQb2x5Z29ucyIgImJvb2xlYW4iICJUUlVFIikpKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMykpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG9yTmV0KSB3aGVuKHRhcFdlbGxJbXBsYW50IChvdHJpWG9yaWdpbiA9IChvclRhcFhvcmlnaW4gLSB0YXBXZWxsSW1wRW5jKSkgKG90cmlZb3JpZ2luID0gKG9yVGFwWW9yaWdpbiAtIHRhcFdlbGxJbXBFbmMpKSAob3RyaVJpbmdXaWR0aCA9ICh0YXBXaWR0aEluT1IgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChvdHJpVyA9IChvclRhcFcgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChvdHJpTCA9IChvclRhcEwgKyB0YXBXZWxsSW1wRW5jICsgdGFwV2VsbEltcEVuYykpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgcmluZ0lkICJvdHJpIiAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiBvdHJpVykgbGlzdCgibCIgImZsb2F0IiBvdHJpTCkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBvdHJpWG9yaWdpbikgbGlzdCgieU9mZnNldCIgImZsb2F0IiBvdHJpWW9yaWdpbikgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgdGFwV2VsbEltcGxhbnQpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBvdHJpUmluZ1dpZHRoKSBsaXN0KCJhZGRpdGlvbmFsV2lkdGhJbkJldmVsIiAiZmxvYXQiIDAuMCkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoImJldmVsVGhlT3V0c2lkZSIgImJvb2xlYW4iIG5pbCkgbGlzdCgiZ3JpZCIgImZsb2F0IiB0YXBHcmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpKSAob3JWaWFPZmZzZXQgPSAoZml4KCgoKCh0YXBXaWR0aEluT1IgLyAyLjApIC0gKHZpYTFXaWR0aCAvIDIuMCkpIC8gdmlhMWdyaWQpICsgMC45OTkpKSAqIHZpYTFncmlkKSkgKHhDb29yZCA9IChvclRhcFhvcmlnaW4gKyBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpKSAoeUNvb3JkID0gKG9yVGFwWW9yaWdpbiArIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkpIChsb3dlckxlZnRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJMZWZ0QkwgPSAoMy4wICogdmlhMVNwYWNlKSkgKGxvd2VyUmlnaHRCTCA9ICgzLjAgKiB2aWExU3BhY2UpKSAodXBwZXJSaWdodEJMID0gKDMuMCAqIHZpYTFTcGFjZSkpIHVubGVzcygoZmlsbGVkUmluZ3MgfHwgbGF5ZXIyRWRnZXNBdDQ1IHx8IHRhcEVkZ2VzQXQ0NSkgKGV4dHJhVmlhMVJpZ2h0T3JpZ2luID0gKHhDb29yZCArIChvclRhcEwgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkgKyAoLSB2aWExV2lkdGgpKSkgKGV4dHJhVmlhMVRvcE9yaWdpbiA9ICh5Q29vcmQgKyAob3JUYXBXIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkpICsgKC0gdmlhMVdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdChsaXN0KHhDb29yZCB5Q29vcmQpIGxpc3QoKHhDb29yZCArIHZpYTFXaWR0aCkgKHlDb29yZCArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoZXh0cmFWaWExUmlnaHRPcmlnaW4geUNvb3JkKSBsaXN0KChleHRyYVZpYTFSaWdodE9yaWdpbiArIHZpYTFXaWR0aCkgKHlDb29yZCArIHZpYTFXaWR0aCkpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QoeENvb3JkIGV4dHJhVmlhMVRvcE9yaWdpbikgbGlzdCgoeENvb3JkICsgdmlhMVdpZHRoKSAoZXh0cmFWaWExVG9wT3JpZ2luICsgdmlhMVdpZHRoKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdChleHRyYVZpYTFSaWdodE9yaWdpbiBleHRyYVZpYTFUb3BPcmlnaW4pIGxpc3QoKGV4dHJhVmlhMVJpZ2h0T3JpZ2luICsgdmlhMVdpZHRoKSAoZXh0cmFWaWExVG9wT3JpZ2luICsgdmlhMVdpZHRoKSkpKSkgaWYobGF5ZXIzIHRoZW4gKG9yTGF5ZXIzRW5jVmlhMiA9ICgob3JMYXllcjNXaWR0aCAtIHZpYTJXaWR0aCkgLyAyLjApKSAodGVtcFNpemUgPSAob3JMYXllcjNFbmNWaWEyIC8gbGF5ZXIzZ3JpZCkpIChvckxheWVyM0VuY1ZpYTIgPSAoZml4KCh0ZW1wU2l6ZSArIDAuOTk5KSkgKiBsYXllcjNncmlkKSkgKG91dGVyUmluZ01ldGFsV2lkdGggPSAoKDIuMCAqIG9yTGF5ZXIzRW5jVmlhMikgKyB2aWEyV2lkdGgpKSAob3JMMncgPSAob3JUYXBXICsgKC0gdGFwV2lkdGhJbk9SKSArIG91dGVyUmluZ01ldGFsV2lkdGgpKSAob3JMMmwgPSAob3JUYXBMICsgKC0gdGFwV2lkdGhJbk9SKSArIG91dGVyUmluZ01ldGFsV2lkdGgpKSAob3JMMnhEZWx0YSA9IChvclRhcFhvcmlnaW4gKyAoKHRhcFdpZHRoSW5PUiArICgtIG91dGVyUmluZ01ldGFsV2lkdGgpKSAvIDIuMCkpKSAob3JMMnhEZWx0YSA9IChmaXgoKChvckwyeERlbHRhIC8gbGF5ZXIyZ3JpZCkgKyAwLjk5OSkpICogbGF5ZXIyZ3JpZCkpIChvckwyeURlbHRhID0gKG9yVGFwWW9yaWdpbiArICgodGFwV2lkdGhJbk9SICsgKC0gb3V0ZXJSaW5nTWV0YWxXaWR0aCkpIC8gMi4wKSkpIChvckwyeURlbHRhID0gKGZpeCgoKG9yTDJ5RGVsdGEgLyBsYXllcjJncmlkKSArIDAuOTk5KSkgKiBsYXllcjJncmlkKSkgKG9yTDJyaW5nVyA9IG1heCgoKDIuMCAqIGxheWVyMkVuY1ZpYTEpICsgdmlhMVdpZHRoKSAoKDIuMCAqIGxheWVyMkVuY1ZpYTIpICsgdmlhMldpZHRoKSBvckxheWVyM1dpZHRoKSkgZWxzZSAob3JMMncgPSAob3JUYXBXICsgKC0yLjAgKiBtYXgob3JWaWFPZmZzZXQgb3V0ZXJSaW5nVGFwRW5jVmlhMSkpICsgKDIuMCAqIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJsID0gKG9yVGFwTCArICgtMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSArICgyLjAgKiBsYXllcjJFbmNWaWExKSkpIChvckwyeERlbHRhID0gKHhDb29yZCArICgtIGxheWVyMkVuY1ZpYTEpKSkgKG9yTDJ5RGVsdGEgPSAoeUNvb3JkICsgKC0gbGF5ZXIyRW5jVmlhMSkpKSAob3JMMnJpbmdXID0gbWF4KCgoMi4wICogbGF5ZXIyRW5jVmlhMSkgKyB2aWExV2lkdGgpICgoMi4wICogbGF5ZXIyRW5jVmlhMikgKyB2aWEyV2lkdGgpKSkpIHVubGVzcyhmaWxsZWRSaW5ncyAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjFyIiAoeENvb3JkOnlDb29yZCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiAob3JUYXBXIC0gKDIuMCAqIG1heChvclZpYU9mZnNldCBvdXRlclJpbmdUYXBFbmNWaWExKSkpKSBsaXN0KCJsIiAiZmxvYXQiIChvclRhcEwgLSAoMi4wICogbWF4KG9yVmlhT2Zmc2V0IG91dGVyUmluZ1RhcEVuY1ZpYTEpKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgMC4wKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTFMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRXaWR0aCIgImZsb2F0IiB2aWExV2lkdGgpIGxpc3QoInJpdmV0U3BhY2UiICJmbG9hdCIgdmlhMVNwYWNlKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyTGVmdEJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyTGVmdEJMKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiZmxvYXQiIGxvd2VyUmlnaHRCTCkgbGlzdCgidXJCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlclJpZ2h0QkwpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIHZpYTFncmlkKSkpKSB3aGVuKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MXIiICgwOjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKG9yVGFwVyAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSAtICgyLjAgKiBpbm5lclJpbmdUYXBFbmNWaWExKSkpIGxpc3QoImwiICJmbG9hdCIgKG9yVGFwTCAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSAtICgyLjAgKiBpbm5lclJpbmdUYXBFbmNWaWExKSkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgKG9yVGFwWG9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEgKyBpbm5lclJpbmdUYXBFbmNWaWExKSkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAob3JUYXBZb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSArIGlubmVyUmluZ1RhcEVuY1ZpYTEpKSBsaXN0KCJyaXZldExheWVyIiAibGlzdCIgdmlhMUxheWVyKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgKHRhcFdpZHRoSW5PUiAtIG91dGVyUmluZ1RhcEVuY1ZpYTEgLSAoMi4wICogaW5uZXJSaW5nVGFwRW5jVmlhMSkpKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTFXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWExU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIDAuMCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAwLjApIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgMC4wKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWExZ3JpZCkpKSkgaWYobGF5ZXIyRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gb3JMMnJpbmdXKSAodXBwZXJMZWZ0QkwgPSBvckwycmluZ1cpIChsb3dlclJpZ2h0QkwgPSBvckwycmluZ1cpICh1cHBlclJpZ2h0QkwgPSBvckwycmluZ1cpIGVsc2UgKGxvd2VyTGVmdEJMID0gMC4wKSAodXBwZXJMZWZ0QkwgPSAwLjApIChsb3dlclJpZ2h0QkwgPSAwLjApICh1cHBlclJpZ2h0QkwgPSAwLjApKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpbmdJZCAib2wyciIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwVyAtICgyLjAgKiBvdXRlclJpbmdUYXBFbmNWaWExKSkgb3JMMncpKSBsaXN0KCJsIiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcEwgLSAoMi4wICogb3V0ZXJSaW5nVGFwRW5jVmlhMSkpIG9yTDJsKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBYb3JpZ2luICsgb3V0ZXJSaW5nVGFwRW5jVmlhMSkgb3JMMnhEZWx0YSkpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWW9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEpIG9yTDJ5RGVsdGEpKSBsaXN0KCJyaW5nTGF5ZXIiICJsaXN0IiBsYXllcjIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAodGFwV2lkdGhJbk9SIC0gb3V0ZXJSaW5nVGFwRW5jVmlhMSkgb3JMMnJpbmdXKSkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjJncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpKSAoZGJpZDIgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMyKSkpIChkYmlkMyA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMiAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJBZGRGaWdUb05ldCBkYmlkMSBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDIgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkNCBvck5ldCkgd2hlbigobGF5ZXIzICYmIGZ1bGx5U3RyYXAgJiYgKGZ1bGx5U3RyYXAgIT0gIkZBTFNFIikpIChvdjJyRW5jID0gKChvckwycmluZ1cgLSB2aWEyV2lkdGgpIC8gMi4wKSkgKHRlbXBTaXplID0gKG92MnJFbmMgLyB2aWEyZ3JpZCkpIChvdjJyRW5jID0gKGZpeCgodGVtcFNpemUgKyAwLjk5OSkpICogdmlhMmdyaWQpKSBpZihsYXllcjNFZGdlc0F0NDUgdGhlbiAobG93ZXJMZWZ0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyTGVmdEJMID0gKDIuMCAqIHZpYTJTcGFjZSkpIChsb3dlclJpZ2h0QkwgPSAoMi4wICogdmlhMlNwYWNlKSkgKHVwcGVyUmlnaHRCTCA9ICgyLjAgKiB2aWEyU3BhY2UpKSBlbHNlIChsb3dlckxlZnRCTCA9IHZpYTJTcGFjZSkgKHVwcGVyTGVmdEJMID0gdmlhMlNwYWNlKSAobG93ZXJSaWdodEJMID0gdmlhMlNwYWNlKSAodXBwZXJSaWdodEJMID0gdmlhMlNwYWNlKSkgd2hlbihmaWxsZWRSaW5ncyAodmlhMldpZHRoT1IgPSAob3JMYXllcjNXaWR0aCAtICgyLjAgKiB2aWEyRW5jKSkpICh2aWEyQkwgPSAodmlhMldpZHRoT1IgKyB2aWEyU3BhY2UpKSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaXZldGVkUmluZ0lkICJvdjJyIiAoMDowKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIChvclRhcFcgLSAoMi4wICogKHZpYTJFbmMgKyBvdXRlclJpbmdUYXBFbmNWaWExKSkpKSBsaXN0KCJsIiAiZmxvYXQiIChvclRhcEwgLSAoMi4wICogKHZpYTJFbmMgKyBvdXRlclJpbmdUYXBFbmNWaWExKSkpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIChvclRhcFhvcmlnaW4gKyBvdXRlclJpbmdUYXBFbmNWaWExICsgdmlhMkVuYykpIGxpc3QoInlPZmZzZXQiICJmbG9hdCIgKG9yVGFwWW9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEgKyB2aWEyRW5jKSkgbGlzdCgicml2ZXRMYXllciIgImxpc3QiIHZpYTJMYXllcikgbGlzdCgicmluZ1dpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aE9SKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYTJXaWR0aCkgbGlzdCgicml2ZXRTcGFjZSIgImZsb2F0IiB2aWEyU3BhY2UpIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJMKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiZmxvYXQiIHZpYTJCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiB2aWEyQkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdmlhMkJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgdW5sZXNzKGZpbGxlZFJpbmdzIChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0ZWRSaW5nSWQgIm92MnIiICgob3JMMnhEZWx0YSArIG92MnJFbmMpOihvckwyeURlbHRhICsgb3YyckVuYykpICJSMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgKG9yTDJ3IC0gKDIuMCAqIG92MnJFbmMpKSkgbGlzdCgibCIgImZsb2F0IiAob3JMMmwgLSAoMi4wICogb3YyckVuYykpKSBsaXN0KCJ4T2Zmc2V0IiAiZmxvYXQiIDAuMCkgbGlzdCgieU9mZnNldCIgImZsb2F0IiAwLjApIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiB2aWEyTGF5ZXIpIGxpc3QoInJpbmdXaWR0aCIgImZsb2F0IiB2aWEyV2lkdGgpIGxpc3QoInJpdmV0V2lkdGgiICJmbG9hdCIgdmlhMldpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYTJTcGFjZSkgbGlzdCgibGxCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlckxlZnRCTCkgbGlzdCgidWxCZXZlbExlbmd0aCIgImZsb2F0IiB1cHBlckxlZnRCTCkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiBsb3dlclJpZ2h0QkwpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJSaWdodEJMKSBsaXN0KCJhdXRvSW5jcmVhc2VCZXZlbFdpZHRoIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImZsb2F0IiB2aWEyZ3JpZCkpKSkgKG9yTDN3ID0gKG9yTDJ3ICsgKC0yLjAgKiBvdjJyRW5jKSArICgyLjAgKiBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDNsID0gKG9yTDJsICsgKC0yLjAgKiBvdjJyRW5jKSArICgyLjAgKiBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDN4RGVsdGEgPSAob3JMMnhEZWx0YSArIG92MnJFbmMgKyAoLSBvckxheWVyM0VuY1ZpYTIpKSkgKG9yTDN5RGVsdGEgPSAob3JMMnlEZWx0YSArIG92MnJFbmMgKyAoLSBvckxheWVyM0VuY1ZpYTIpKSkgaWYobGF5ZXIzRWRnZXNBdDQ1IHRoZW4gKGxvd2VyTGVmdEJMID0gb3JMYXllcjNXaWR0aCkgKHVwcGVyTGVmdEJMID0gb3JMYXllcjNXaWR0aCkgKGxvd2VyUmlnaHRCTCA9IG9yTGF5ZXIzV2lkdGgpICh1cHBlclJpZ2h0QkwgPSBvckxheWVyM1dpZHRoKSBlbHNlIChsb3dlckxlZnRCTCA9IDAuMCkgKHVwcGVyTGVmdEJMID0gMC4wKSAobG93ZXJSaWdodEJMID0gMC4wKSAodXBwZXJSaWdodEJMID0gMC4wKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgIm9sM3IiICgwLjA6MC4wKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFcgLSAoMi4wICogb3V0ZXJSaW5nVGFwRW5jVmlhMSkpIG9yTDN3KSkgbGlzdCgibCIgImZsb2F0IiBpZihmaWxsZWRSaW5ncyAob3JUYXBMIC0gKDIuMCAqIG91dGVyUmluZ1RhcEVuY1ZpYTEpKSBvckwzbCkpIGxpc3QoInhPZmZzZXQiICJmbG9hdCIgaWYoZmlsbGVkUmluZ3MgKG9yVGFwWG9yaWdpbiArIG91dGVyUmluZ1RhcEVuY1ZpYTEpIG9yTDN4RGVsdGEpKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIGlmKGZpbGxlZFJpbmdzIChvclRhcFlvcmlnaW4gKyBvdXRlclJpbmdUYXBFbmNWaWExKSBvckwzeURlbHRhKSkgbGlzdCgicmluZ0xheWVyIiAibGlzdCIgbmlsKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgb3JMYXllcjNXaWR0aCkgbGlzdCgiYWRkaXRpb25hbFdpZHRoSW5CZXZlbCIgImZsb2F0IiAwLjApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJMZWZ0QkwpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgdXBwZXJMZWZ0QkwpIGxpc3QoImxyQmV2ZWxMZW5ndGgiICJmbG9hdCIgbG93ZXJSaWdodEJMKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIHVwcGVyUmlnaHRCTCkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgdCkgbGlzdCgiZ3JpZCIgImZsb2F0IiBsYXllcjNncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiB0KSkpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChkYmlkMSA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxheWVyMyAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMikpKSAoZGJpZDMgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGF5ZXIzICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkpIChkYmlkNCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBsYXllcjMgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgb3JOZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQyIG9yTmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMyBvck5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgb3JOZXQpKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbiA9IChkYkNyZWF0ZVBpbiBvck5ldCBkYmlkMikpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW4gPSAoZGJDcmVhdGVQaW4gb3JOZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluID0gKGRiQ3JlYXRlUGluIG9yTmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikpAChkaWZmTGF5ZXIgZ2F0ZUxheWVyIHJnYXRlTGF5ZXIgd2VsbExheWVyIHRhcExheWVyIHZpYTFMYXllciBsYXllcjIgdmlhMkxheWVyIGxheWVyMyBpZExheWVyIG1heHZMYXllciBodkRpZmZFbmNsb3N1cmUgZGlmZkltcGxhbnQgZGlmZkltcEVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBFbmMgdGFwV2VsbEltcGxhbnQgdGFwV2VsbEltcEVuYyB0YXBTdWJJbXBsYW50IHRhcFN1YkltcEVuYyBzcmNWaWFHYXRlU3BhY2UgZHJuVmlhR2F0ZVNwYWNlIHZpYUV4dERpZmZZIG1pbkRpZmZUYXBSaW5nU3BhY2UgZmxhcmVZYW1vdW50X2luIGZsYXJlWWFtb3VudCBmbGFyZVlleHRlbnNpb24gdmlhMVdpZHRoIHZpYTFTcGFjZSB0YXBFbmNWaWExIGlubmVyUmluZ1RhcEVuY1ZpYTEgb3V0ZXJSaW5nVGFwRW5jVmlhMSB3ZWxsRW5jVGFwIEVTRG53RW5jVmlhMSBFU0Rud0dhdGVTcCBpbm5lclJpbmdUYXBXaWR0aCBvdXRlclJpbmdUYXBXaWR0aCB3ZWxsVGFwU3BhY2UgbGF5ZXIyRW5jVmlhMSB2aWEyV2lkdGggdmlhMlNwYWNlIHZpYTFWaWEyU3BhY2UgbGF5ZXIyRW5jVmlhMiBsYXllcjJXaWR0aCBsYXllcjNFbmNWaWEyIGxheWVyM1dpZHRoIGlubmVyUmluZ01ldGFsV2lkdGggaXJMYXllcjNFbmNWaWEyIG9yTGF5ZXIzV2lkdGggbWluVyBtYXhXIG1pblRvdGFsVyBnZW5lcmljUmluZ05hbWUgcml2ZXRlZFJpbmdOYW1lIGZsYXJlZEdhdGVOYW1lIGRpZmZHcmlkIHRhcEdyaWQgd2VsbEdyaWQgcG9seUdyaWQgdmlhMWdyaWQgbGF5ZXIyZ3JpZCB2aWEyZ3JpZCBsYXllcjNncmlkIHRhcEVkZ2VzQXQ0NSBsYXllcjJFZGdlc0F0NDUgbGF5ZXIzRWRnZXNBdDQ1IG1vZGVsVGV4dExheWVyIG1vZGVsVGV4dExheWVyU2l6ZSBtb2RlbFRleHQgbW9kZWxXbWF4IG1vZGVsV21pbiBtb2RlbExtYXggbW9kZWxMbWluIGZpbGxlZFJpbmdzIHcgbCBtIGV4dHJhTGVmdFNwYWNlIGV4dHJhUmlnaHRTcGFjZSBzaHJpbmtQZXJjZW50IGV4dHJhU3JjU3BhY2UgZXh0cmFEcm5TcGFjZSBmdWxseVN0cmFwIGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCB2aWFFeHREaWZmWCBvcmlyTGF5ZXIzU3BhY2UgZ05ldCBzTmV0IGROZXQgaXJOZXQgb3JOZXQgc2NhbGVNdWx0IHZpYTFQb2x5R3JpZCBzaXplQW5kR3JpZCB0aGVTaXplIHRoZUdyaWQgdGVtcFNpemUga2x1ZGdlIHRtcE9yTGF5ZXJXaWR0aCB0bXBPckxheWVyR3JpZCB0bXBWaWFXaWR0aCB0bXBWaWFHcmlkIHZpYTFQaXRjaCB0YXJnZXRSb3dzIHJvd3NPZkNvbnRhY3RzIGZsYXJlZEdhdGVJZCByaW5nSWQgcml2ZXRlZFJpbmdJZCBkaWZmWG9yaWdpbiBkaWZmWW9yaWdpbiB0b3RhbERybkxlbmd0aCB0b3RhbFNyY0xlbmd0aCBkaWZmWGVuZCBkaWZmWWVuZCBFU0Rud1RXaWR0aERybiBFU0Rud1RXaWR0aFNyYyBFU0Rud1RYb3JpZ2luIEVTRG53VFlvcmlnaW4gRVNEbndUWWVuZCBkaWZmWGxvb3AgZGJpZCBzZWN0aW9uIGRybkRpZmZYZW5kIHNyY0RpZmZYZW5kIGh2bGx4IGh2bGx5IGh2dXJ4IGh2dXJ5IGdhdGVYb2Zmc2V0IGdhdGVOdW0gaW5zdCBtYXN0ZXIgbW9kZWxUZXh0WCBtb2RlbFRleHRZIHBpbmlkIHZpYTFYb3JpZ2luIHZpYTFZb3JpZ2luIHZpYTFYZGVsdGEgdGhlTmV0IGxheWVyMkwgbGF5ZXIyTGEgbGF5ZXIyRGVsdGFWaWExIGRlbHRhIHZpYTJQaXRjaCBsYXllcjJXIGxheWVyMldhIHJvd3NPZkNvbnRhY3RzMiBsYXllcjJZRGVsdGFWaWExIGNvbHVtbiB2aWExWGVuZCB2aWExWWxvb3Agcm93IGxheWVyMlhvcmlnaW4gbGF5ZXIyWW9yaWdpbiBsYXllcjJZZW5kIGwyYnZsQ250cmwgdmlhMlhvcmlnaW4gdmlhMlhlbmQgdmlhMllvcmlnaW4gdmlhMllsb29wIGxheWVyM1hvcmlnaW4gbDNidmxDbnRybCB0YXBXaWR0aEluSVIgaXJWaWFPZmZzZXQgaXJUYXBYb3JpZ2luIGlyVGFwWW9yaWdpbiBpclRhcEwgaXJUYXBXIGJldmVsTGVuZ3RoIGxvd2VyTGVmdEJMIHVwcGVyTGVmdEJMIGxvd2VyUmlnaHRCTCB1cHBlclJpZ2h0QkwgdGhlTWFzdGVyIGl0cmlYb3JpZ2luIGl0cmlZb3JpZ2luIGl0cmlSaW5nV2lkdGggaXRyaVcgaXRyaUwgeENvb3JkIHlDb29yZCB2aWExV2lkdGhJbklSIGlyTDJ3IGlyTDJsIGlyTDJ4RGVsdGEgaXJMMnlEZWx0YSBpckwycmluZ1cgZGJpZDEgZGJpZDIgZGJpZDMgZGJpZDQgdmlhMkVuYyB2aWEyV2lkdGhJUiB2aWEyQkwgaXYyckVuYyBpckwzdyBpckwzbCBpckwzeERlbHRhIGlyTDN5RGVsdGEgaXJMM3JpbmdXIHBpbiB0YXBXaWR0aEluT1Igb3V0ZXJUYXBEZWx0YSBvclRhcFhvcmlnaW4gb3JUYXBZb3JpZ2luIG9yVGFwVyBvclRhcEwgb3JMYXllcjNYb3JpZ2luQSBvckxheWVyM1hvcmlnaW5CIGV4dHJhU3BhY2Ugb3RyaVhvcmlnaW4gb3RyaVlvcmlnaW4gb3RyaVJpbmdXaWR0aCBvdHJpVyBvdHJpTCBvclZpYU9mZnNldCBleHRyYVZpYTFSaWdodE9yaWdpbiBleHRyYVZpYTFUb3BPcmlnaW4gb3JMYXllcjNFbmNWaWEyIG91dGVyUmluZ01ldGFsV2lkdGggb3JMMncgb3JMMmwgb3JMMnhEZWx0YSBvckwyeURlbHRhIG9yTDJyaW5nVyBvdjJyRW5jIHZpYTJXaWR0aE9SIG9yTDN3IG9yTDNsIG9yTDN4RGVsdGEgb3JMM3lEZWx0YSkAKCh3IDAuMCkgKGwgMC4wKSAobSAwKSAoZXh0cmFMZWZ0U3BhY2UgMC4wKSAoZXh0cmFSaWdodFNwYWNlIDAuMCkgKHNocmlua1BlcmNlbnQgMC4wKSAoZXh0cmFTcmNTcGFjZSAwLjApIChleHRyYURyblNwYWNlIDAuMCkgKGZ1bGx5U3RyYXAgIkZBTFNFIikgKGRyblZpYVlzcGFjZVJpbmdWaWFUb3AgMC4wKSAoZHJuVmlhWXNwYWNlUmluZ1ZpYUJvdCAwLjApICh2aWFFeHREaWZmWCAwLjApIChvcmlyTGF5ZXIzU3BhY2UgMC4wKSkAKChkaWZmTGF5ZXIgInkwIikgKGdhdGVMYXllciAieTEiKSAocmdhdGVMYXllciAieTIiKSAod2VsbExheWVyICJ5MyIpICh0YXBMYXllciAieTQiKSAodmlhMUxheWVyICJ5NSIpIChsYXllcjIgInk2IikgKHZpYTJMYXllciAieTciKSAobGF5ZXIzICJ5OCIpIChpZExheWVyICJ5OSIpIChtYXh2TGF5ZXIgbmlsKSAoaHZEaWZmRW5jbG9zdXJlIDAuMCkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgMC4wKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wRW5jIDAuMCkgKHRhcFdlbGxJbXBsYW50IG5pbCkgKHRhcFdlbGxJbXBFbmMgMC4wKSAodGFwU3ViSW1wbGFudCBuaWwpICh0YXBTdWJJbXBFbmMgMC4wKSAoc3JjVmlhR2F0ZVNwYWNlIDAuMCkgKGRyblZpYUdhdGVTcGFjZSAwLjApICh2aWFFeHREaWZmWSAwLjApIChtaW5EaWZmVGFwUmluZ1NwYWNlIDAuMCkgKGZsYXJlWWFtb3VudF9pbiAwLjApIChmbGFyZVlhbW91bnQgMC4wKSAoZmxhcmVZZXh0ZW5zaW9uIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWExU3BhY2UgMC4wKSAodGFwRW5jVmlhMSAwLjApIChpbm5lclJpbmdUYXBFbmNWaWExIDAuMCkgKG91dGVyUmluZ1RhcEVuY1ZpYTEgMC4wKSAod2VsbEVuY1RhcCAwLjApIChFU0Rud0VuY1ZpYTEgMC4wKSAoRVNEbndHYXRlU3AgMC4wKSAoaW5uZXJSaW5nVGFwV2lkdGggMC4wKSAob3V0ZXJSaW5nVGFwV2lkdGggMC4wKSAod2VsbFRhcFNwYWNlIDAuMCkgKGxheWVyMkVuY1ZpYTEgMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTJTcGFjZSAwLjApICh2aWExVmlhMlNwYWNlIDAuMCkgKGxheWVyMkVuY1ZpYTIgMC4wKSAobGF5ZXIyV2lkdGggMC4wKSAobGF5ZXIzRW5jVmlhMiAwLjApIChsYXllcjNXaWR0aCAwLjApIChpbm5lclJpbmdNZXRhbFdpZHRoIDAuMCkgKGlyTGF5ZXIzRW5jVmlhMiAwLjApIChvckxheWVyM1dpZHRoIDAuMCkgKG1pblcgMC4wKSAobWF4VyAwLjApIChtaW5Ub3RhbFcgMC4wKSAoZ2VuZXJpY1JpbmdOYW1lICJyaW5nIikgKHJpdmV0ZWRSaW5nTmFtZSAicml2ZXRSaW5nIikgKGZsYXJlZEdhdGVOYW1lICJmbGFyZWRHYXRlIikgKGRpZmZHcmlkIDAuMCkgKHRhcEdyaWQgMC4wKSAod2VsbEdyaWQgMC4wKSAocG9seUdyaWQgMC4wKSAodmlhMWdyaWQgMC4wKSAobGF5ZXIyZ3JpZCAwLjApICh2aWEyZ3JpZCAwLjApIChsYXllcjNncmlkIDAuMCkgKHRhcEVkZ2VzQXQ0NSBuaWwpIChsYXllcjJFZGdlc0F0NDUgbmlsKSAobGF5ZXIzRWRnZXNBdDQ1IG5pbCkgKG1vZGVsVGV4dExheWVyIGxpc3QoImhpbGl0ZSIgImRyYXdpbmciKSkgKG1vZGVsVGV4dExheWVyU2l6ZSAwLjIpIChtb2RlbFRleHQgIiIpIChtb2RlbFdtYXggMC4wKSAobW9kZWxXbWluIDAuMCkgKG1vZGVsTG1heCAwLjApIChtb2RlbExtaW4gMC4wKSAoZmlsbGVkUmluZ3MgbmlsKSkAKCh3ZWxsRW5jWURpZmYgPSAwLjApIHdoZW4oKHdlbGxMYXllcldpZHRoICE9IDAuMCkgKHdlbGxXaWR0aCA9ICgobWF4KHdlbGxFbmNEaWZmIHdlbGxFbmNUYXApICogMikgKyB3KSkgaWYoKHdlbGxXaWR0aCA8IHdlbGxMYXllcldpZHRoKSB0aGVuICh3ZWxsRW5jWURpZmYgPSBhYnMoKG1heCh3ZWxsRW5jRGlmZiB3ZWxsRW5jVGFwKSAtICgod2VsbExheWVyV2lkdGggLSB3KSAvIDIpKSkpKSkgaWYoKChpbXBsYW50ID09IHQpIHx8IChpbXBsYW50ID09ICJUUlVFIikpIHRoZW4gKGltcGxhbnQgPSB0KSBlbHNlIChpbXBsYW50ID0gbmlsKSkgaWYoKChub0VuZENvbkltcEVuYyA9PSB0KSB8fCAobm9FbmRDb25JbXBFbmMgPT0gIlRSVUUiKSkgdGhlbiAobm9FbmRDb25JbXBFbmMgPSB0KSBlbHNlIChub0VuZENvbkltcEVuYyA9IG5pbCkpIGlmKCghaWRMYXllciB8fCAoaWRMYXllciA9PSAibm9uZSIpIHx8IChpZExheWVyID09ICJuaWwiKSB8fCAoaWRMYXllciA9PSAiRkFMU0UiKSkgdGhlbiAoaWRMYXllciA9IG5pbCkpIGlmKCgoc291cmNlRmlyc3QgPT0gdCkgfHwgKHNvdXJjZUZpcnN0ID09ICJUUlVFIikpIHRoZW4gKHNvdXJjZUZpcnN0ID0gdCkgZWxzZSAoc291cmNlRmlyc3QgPSBuaWwpKSBpZigoKGlkRW5jRGlmZiA9PSB0KSB8fCAoaWRFbmNEaWZmID09ICJUUlVFIikpIHRoZW4gKGlkRW5jRGlmZiA9IHQpIGVsc2UgKGlkRW5jRGlmZiA9IG5pbCkpIGlmKChnYXRlRXh0IDwgMC4wKSBlcnJvcigibU5vcm1UcmFuSW1wQ2xhc3M6IGdhdGVFeHQgKCVnKSBtdXN0IGJlID4gMFxuIiBnYXRlRXh0KSkgKGdOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZyIpKSAoZGJDcmVhdGVUZXJtIGdOZXQgImciICJpbnB1dCIpIChzTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInMiKSkgKGRiQ3JlYXRlVGVybSBzTmV0ICJzIiAiaW5wdXRPdXRwdXQiKSAoZE5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJkIikpIChkYkNyZWF0ZVRlcm0gZE5ldCAiZCIgImlucHV0T3V0cHV0IikgaWYoc291cmNlRmlyc3QgdGhlbiAoY05ldCA9IHNOZXQpIChuZXRMID0gIlMiKSBlbHNlIChjTmV0ID0gZE5ldCkgKG5ldEwgPSAiRCIpKSB3aGVuKChtIDwgMSkgKG0gPSAxKSkgd2hlbihkaWZmSW1wQ2hvaWNlcyB1bmxlc3MoKGRpZmZJbXBFbmMgJiYgbGlzdHAoZGlmZkltcEVuYykgJiYgKGxlbmd0aChkaWZmSW1wRW5jKSA9PSBsZW5ndGgoZGlmZkltcENob2ljZXMpKSkgZXJyb3IoImRpZmZJbXBFbmMgc2hvdWxkIGJlIGEgbGlzdCBtYXRjaGluZyBkaWZmSW1wQ2hvaWNlcyIpKSAoaSA9IGxlbmd0aCgobWVtYmVyKGRpZmZJbXBDaG9pY2UgZGlmZkltcENob2ljZXMpIHx8IGRpZmZJbXBDaG9pY2VzKSkpIChkaWZmTWF0Y2ggPSAobGVuZ3RoKGRpZmZJbXBDaG9pY2VzKSAtIGkpKSAoZGlmZkltcEVuYyA9IG50aChkaWZmTWF0Y2ggZGlmZkltcEVuYykpKSB3aGVuKHRhcEltcENob2ljZXMgKGkgPSBsZW5ndGgoKG1lbWJlcih0YXBJbXBDaG9pY2UgdGFwSW1wQ2hvaWNlcykgfHwgdGFwSW1wQ2hvaWNlcykpKSAodGFwTWF0Y2ggPSAobGVuZ3RoKHRhcEltcENob2ljZXMpIC0gaSkpKSB3aGVuKGNvbnRhY3RDaG9pY2VzIGNvbmQoKChjb250YWN0Q2hvaWNlID09ICJ0YXAiKSAoZGlmZkNvblBhcmFtID0gbGlzdCgibm9EaWZmQ29udGFjdCIgImJvb2xlYW4iIHQpKSkgKChjb250YWN0Q2hvaWNlID09ICJib3RoIikgKGRpZmZDb25QYXJhbSA9IGxpc3QoIm5vRGlmZkNvbnRhY3QiICJib29sZWFuIiAiRkFMU0UiKSkpICh0IChkaWZmQ29uUGFyYW0gPSBsaXN0KCJub0RpZmZDb250YWN0IiAiYm9vbGVhbiIgIkZBTFNFIikpKSkpICh4ID0gbmlsKSBpZihsaXN0cChjYXIoaWRMYXllckNob2ljZXMpKSB0aGVuIG1hcGNhcihsYW1iZGEoKHgpIGlmKChjYXIoeCkgPT0gaWRMYXllcikgdGhlbiAoaWRMYXllciA9IGNhZHIoeCkpIChpZEVuY0xpc3QgPSBjYWRkcih4KSkgaWYoKGlkRW5jTGlzdCAmJiBsaXN0cChpZEVuY0xpc3QpKSB0aGVuIChpZEVuY1hMID0gbnRoKDAgaWRFbmNMaXN0KSkgKGlkRW5jWFIgPSBudGgoMSBpZEVuY0xpc3QpKSAoaWRFbmNZID0gbnRoKDIgaWRFbmNMaXN0KSkpIChpZEVuY0RpZmYgPSBjYWRkZHIoeCkpKSkgaWRMYXllckNob2ljZXMpKSB3aGVuKChmaXJzdENvbnRhY3QgIT0gIiIpIChjb250YWN0RiA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBmaXJzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpKSB3aGVuKChsYXN0Q29udGFjdCAhPSAiIikgKGNvbnRhY3RMID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGxhc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSkgd2hlbigoc2hhcmVkRHJhaW4gIT0gIiIpIChjb250YWN0RCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzaGFyZWREcmFpbiAic3ltYm9saWMiIG5pbCAicm4iKSkpIHdoZW4oKHNoYXJlZFNvdXJjZSAhPSAiIikgKGNvbnRhY3RTID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZFNvdXJjZSAic3ltYm9saWMiIG5pbCAicm4iKSkpICh2aWExWENyZEYgPSBpZigoY29udGFjdEZ+PmJCb3hWaWExKSBhYnMoY2FhcigoY29udGFjdEZ+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkRiA9IGlmKChjb250YWN0Rn4+YkJveExheWVyMikgYWJzKGNhYXIoKGNvbnRhY3RGfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZEYgPSBpZigoY29udGFjdEZ+PmJCb3hWaWEyKSBhYnMoY2FhcigoY29udGFjdEZ+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkRiA9IGlmKChjb250YWN0Rn4+YkJveExheWVyMykgYWJzKGNhYXIoKGNvbnRhY3RGfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkRiA9IGlmKChjb250YWN0Rn4+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGNvbnRhY3RGfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpICh2aWExWENyZEwgPSBpZigoY29udGFjdEx+PmJCb3hWaWExKSBhYnMoY2FhcigoY29udGFjdEx+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkTCA9IGlmKChjb250YWN0TH4+YkJveExheWVyMikgYWJzKGNhYXIoKGNvbnRhY3RMfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZEwgPSBpZigoY29udGFjdEx+PmJCb3hWaWEyKSBhYnMoY2FhcigoY29udGFjdEx+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkTCA9IGlmKChjb250YWN0TH4+YkJveExheWVyMykgYWJzKGNhYXIoKGNvbnRhY3RMfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkTCA9IGlmKChjb250YWN0TH4+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGNvbnRhY3RMfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpICh2aWExWENyZFMgPSBpZigoY29udGFjdFN+PmJCb3hWaWExKSBhYnMoY2FhcigoY29udGFjdFN+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkUyA9IGlmKChjb250YWN0U34+YkJveExheWVyMikgYWJzKGNhYXIoKGNvbnRhY3RTfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZFMgPSBpZigoY29udGFjdFN+PmJCb3hWaWEyKSBhYnMoY2FhcigoY29udGFjdFN+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkUyA9IGlmKChjb250YWN0U34+YkJveExheWVyMykgYWJzKGNhYXIoKGNvbnRhY3RTfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkUyA9IGlmKChjb250YWN0U34+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGNvbnRhY3RTfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpICh2aWExWENyZEQgPSBpZigoY29udGFjdER+PmJCb3hWaWExKSBhYnMoY2FhcigoY29udGFjdER+PmJCb3hWaWExKSkpIG5pbCkpIChsYXllcjJYQ3JkRCA9IGlmKChjb250YWN0RH4+YkJveExheWVyMikgYWJzKGNhYXIoKGNvbnRhY3REfj5iQm94TGF5ZXIyKSkpIG5pbCkpICh2aWEyWENyZEQgPSBpZigoY29udGFjdER+PmJCb3hWaWEyKSBhYnMoY2FhcigoY29udGFjdER+PmJCb3hWaWEyKSkpIG5pbCkpIChsYXllcjNYQ3JkRCA9IGlmKChjb250YWN0RH4+YkJveExheWVyMykgYWJzKGNhYXIoKGNvbnRhY3REfj5iQm94TGF5ZXIzKSkpIG5pbCkpIChsYXllcjFYQ3JkRCA9IGlmKChjb250YWN0RH4+ZGlmZkxheWVyQmJveCkgYWJzKGNhYXIoKGNvbnRhY3REfj5kaWZmTGF5ZXJCYm94KSkpIG5pbCkpIGlmKChsYXllcjFYQ3JkRiAmJiB2aWExWENyZEYpIHRoZW4gKHZpYTFFbmNGID0gYWJzKChsYXllcjFYQ3JkRiAtIHZpYTFYQ3JkRikpKSkgaWYoKGxheWVyMVhDcmRGICYmIHZpYTJYQ3JkRikgdGhlbiAodmlhMkVuY0YgPSBhYnMoKGxheWVyMVhDcmRGIC0gdmlhMlhDcmRGKSkpKSBpZigobGF5ZXIxWENyZEYgJiYgbGF5ZXIyWENyZEYpIHRoZW4gKGxheWVyMkVuY0YgPSBhYnMoKGxheWVyMVhDcmRGIC0gbGF5ZXIyWENyZEYpKSkpIGlmKChsYXllcjFYQ3JkRiAmJiBsYXllcjNYQ3JkRikgdGhlbiAobGF5ZXIzRW5jRiA9IGFicygobGF5ZXIxWENyZEYgLSBsYXllcjNYQ3JkRikpKSkgaWYoKGxheWVyMVhDcmRMICYmIHZpYTFYQ3JkTCkgdGhlbiAodmlhMUVuY0wgPSBhYnMoKGxheWVyMVhDcmRMIC0gdmlhMVhDcmRMKSkpKSBpZigobGF5ZXIxWENyZEwgJiYgdmlhMlhDcmRMKSB0aGVuICh2aWEyRW5jTCA9IGFicygobGF5ZXIxWENyZEwgLSB2aWEyWENyZEwpKSkpIGlmKChsYXllcjFYQ3JkTCAmJiBsYXllcjJYQ3JkTCkgdGhlbiAobGF5ZXIyRW5jTCA9IGFicygobGF5ZXIxWENyZEwgLSBsYXllcjJYQ3JkTCkpKSkgaWYoKGxheWVyMVhDcmRMICYmIGxheWVyM1hDcmRMKSB0aGVuIChsYXllcjNFbmNMID0gYWJzKChsYXllcjFYQ3JkTCAtIGxheWVyM1hDcmRMKSkpKSBpZigobGF5ZXIxWENyZFMgJiYgdmlhMVhDcmRTKSB0aGVuICh2aWExRW5jUyA9IGFicygobGF5ZXIxWENyZFMgLSB2aWExWENyZFMpKSkpIGlmKChsYXllcjFYQ3JkUyAmJiB2aWEyWENyZFMpIHRoZW4gKHZpYTJFbmNTID0gYWJzKChsYXllcjFYQ3JkUyAtIHZpYTJYQ3JkUykpKSkgaWYoKGxheWVyMVhDcmRTICYmIGxheWVyMlhDcmRTKSB0aGVuIChsYXllcjJFbmNTID0gYWJzKChsYXllcjFYQ3JkUyAtIGxheWVyMlhDcmRTKSkpKSBpZigobGF5ZXIxWENyZFMgJiYgbGF5ZXIzWENyZFMpIHRoZW4gKGxheWVyM0VuY1MgPSBhYnMoKGxheWVyMVhDcmRTIC0gbGF5ZXIzWENyZFMpKSkpIGlmKChsYXllcjFYQ3JkRCAmJiB2aWExWENyZEQpIHRoZW4gKHZpYTFFbmNEID0gYWJzKChsYXllcjFYQ3JkRCAtIHZpYTFYQ3JkRCkpKSkgaWYoKGxheWVyMVhDcmREICYmIHZpYTJYQ3JkRCkgdGhlbiAodmlhMkVuY0QgPSBhYnMoKGxheWVyMVhDcmREIC0gdmlhMlhDcmREKSkpKSBpZigobGF5ZXIxWENyZEQgJiYgbGF5ZXIyWENyZEQpIHRoZW4gKGxheWVyMkVuY0QgPSBhYnMoKGxheWVyMVhDcmREIC0gbGF5ZXIyWENyZEQpKSkpIGlmKChsYXllcjFYQ3JkRCAmJiBsYXllcjNYQ3JkRCkgdGhlbiAobGF5ZXIzRW5jRCA9IGFicygobGF5ZXIxWENyZEQgLSBsYXllcjNYQ3JkRCkpKSkgaWYoKHZpYTFFbmNGICYmIHZpYTFFbmNMKSB0aGVuICh2aWExU3BhY2VGTCA9ICh2aWExRW5jRiArIHZpYTFFbmNMICsgbCkpICh2aWExT2ZmU2V0RkwgPSAodmlhMU1pblNwYWNlIC0gdmlhMVNwYWNlRkwpKSBlbHNlICh2aWExT2ZmU2V0RkwgPSAwLjApKSBpZigodmlhMkVuY0YgJiYgdmlhMkVuY0wpIHRoZW4gKHZpYTJTcGFjZUZMID0gKHZpYTJFbmNGICsgdmlhMkVuY0wgKyBsKSkgKHZpYTJPZmZTZXRGTCA9ICh2aWEyTWluU3BhY2UgLSB2aWEyU3BhY2VGTCkpIGVsc2UgKHZpYTJPZmZTZXRGTCA9IDAuMCkpIGlmKChsYXllcjNFbmNGICYmIGxheWVyM0VuY0wpIHRoZW4gKGxheWVyM1NwYWNlRkwgPSAobGF5ZXIzRW5jRiArIGxheWVyM0VuY0wgKyBsKSkgKGxheWVyM09mZlNldEZMID0gKGxheWVyM01pblNwYWNlIC0gbGF5ZXIzU3BhY2VGTCkpIGVsc2UgKGxheWVyM09mZlNldEZMID0gMC4wKSkgaWYoKGxheWVyMkVuY0YgJiYgbGF5ZXIyRW5jTCkgdGhlbiAobGF5ZXIyU3BhY2VGTCA9IChsYXllcjJFbmNGICsgbGF5ZXIyRW5jTCArIGwpKSAobGF5ZXIyT2ZmU2V0RkwgPSAobGF5ZXIyTWluU3BhY2UgLSBsYXllcjJTcGFjZUZMKSkgZWxzZSAobGF5ZXIyT2ZmU2V0RkwgPSAwLjApKSBpZigodmlhMUVuY0YgJiYgdmlhMUVuY1MpIHRoZW4gKHZpYTFTcGFjZUZTID0gKHZpYTFFbmNGICsgdmlhMUVuY1MgKyBsKSkgKHZpYTFPZmZTZXRGUyA9ICh2aWExTWluU3BhY2UgLSB2aWExU3BhY2VGUykpIGVsc2UgKHZpYTFPZmZTZXRGUyA9IDAuMCkpIGlmKCh2aWEyRW5jRiAmJiB2aWEyRW5jUykgdGhlbiAodmlhMlNwYWNlRlMgPSAodmlhMkVuY0YgKyB2aWEyRW5jUyArIGwpKSAodmlhMk9mZlNldEZTID0gKHZpYTJNaW5TcGFjZSAtIHZpYTJTcGFjZUZTKSkgZWxzZSAodmlhMk9mZlNldEZTID0gMC4wKSkgaWYoKGxheWVyM0VuY0YgJiYgbGF5ZXIzRW5jUykgdGhlbiAobGF5ZXIzU3BhY2VGUyA9IChsYXllcjNFbmNGICsgbGF5ZXIzRW5jUyArIGwpKSAobGF5ZXIzT2ZmU2V0RlMgPSAobGF5ZXIzTWluU3BhY2UgLSBsYXllcjNTcGFjZUZTKSkgZWxzZSAobGF5ZXIzT2ZmU2V0RlMgPSAwLjApKSBpZigobGF5ZXIyRW5jRiAmJiBsYXllcjJFbmNTKSB0aGVuIChsYXllcjJTcGFjZUZTID0gKGxheWVyMkVuY0YgKyBsYXllcjJFbmNTICsgbCkpIChsYXllcjJPZmZTZXRGUyA9IChsYXllcjJNaW5TcGFjZSAtIGxheWVyMlNwYWNlRlMpKSBlbHNlIChsYXllcjJPZmZTZXRGUyA9IDAuMCkpIGlmKCh2aWExRW5jRiAmJiB2aWExRW5jRCkgdGhlbiAodmlhMVNwYWNlRkQgPSAodmlhMUVuY0YgKyB2aWExRW5jRCArIGwpKSAodmlhMU9mZlNldEZEID0gKHZpYTFNaW5TcGFjZSAtIHZpYTFTcGFjZUZEKSkgZWxzZSAodmlhMU9mZlNldEZEID0gMC4wKSkgaWYoKHZpYTJFbmNGICYmIHZpYTJFbmNEKSB0aGVuICh2aWEyU3BhY2VGRCA9ICh2aWEyRW5jRiArIHZpYTJFbmNEICsgbCkpICh2aWEyT2ZmU2V0RkQgPSAodmlhMk1pblNwYWNlIC0gdmlhMlNwYWNlRkQpKSBlbHNlICh2aWEyT2ZmU2V0RkQgPSAwLjApKSBpZigobGF5ZXIzRW5jRiAmJiBsYXllcjNFbmNEKSB0aGVuIChsYXllcjNTcGFjZUZEID0gKGxheWVyM0VuY0YgKyBsYXllcjNFbmNEICsgbCkpIChsYXllcjNPZmZTZXRGRCA9IChsYXllcjNNaW5TcGFjZSAtIGxheWVyM1NwYWNlRkQpKSBlbHNlIChsYXllcjNPZmZTZXRGRCA9IDAuMCkpIGlmKChsYXllcjJFbmNGICYmIGxheWVyMkVuY0QpIHRoZW4gKGxheWVyMlNwYWNlRkQgPSAobGF5ZXIyRW5jRiArIGxheWVyMkVuY0QgKyBsKSkgKGxheWVyMk9mZlNldEZEID0gKGxheWVyMk1pblNwYWNlIC0gbGF5ZXIyU3BhY2VGRCkpIGVsc2UgKGxheWVyMk9mZlNldEZEID0gMC4wKSkgaWYoKHZpYTFFbmNMICYmIHZpYTFFbmNTKSB0aGVuICh2aWExU3BhY2VMUyA9ICh2aWExRW5jTCArIHZpYTFFbmNTICsgbCkpICh2aWExT2ZmU2V0TFMgPSAodmlhMU1pblNwYWNlIC0gdmlhMVNwYWNlTFMpKSBlbHNlICh2aWExT2ZmU2V0TFMgPSAwLjApKSBpZigodmlhMkVuY0wgJiYgdmlhMkVuY1MpIHRoZW4gKHZpYTJTcGFjZUxTID0gKHZpYTJFbmNMICsgdmlhMkVuY1MgKyBsKSkgKHZpYTJPZmZTZXRMUyA9ICh2aWEyTWluU3BhY2UgLSB2aWEyU3BhY2VMUykpIGVsc2UgKHZpYTJPZmZTZXRMUyA9IDAuMCkpIGlmKChsYXllcjNFbmNMICYmIGxheWVyM0VuY1MpIHRoZW4gKGxheWVyM1NwYWNlTFMgPSAobGF5ZXIzRW5jTCArIGxheWVyM0VuY1MgKyBsKSkgKGxheWVyM09mZlNldExTID0gKGxheWVyM01pblNwYWNlIC0gbGF5ZXIzU3BhY2VMUykpIGVsc2UgKGxheWVyM09mZlNldExTID0gMC4wKSkgaWYoKGxheWVyMkVuY0wgJiYgbGF5ZXIyRW5jUykgdGhlbiAobGF5ZXIyU3BhY2VMUyA9IChsYXllcjJFbmNMICsgbGF5ZXIyRW5jUyArIGwpKSAobGF5ZXIyT2ZmU2V0TFMgPSAobGF5ZXIyTWluU3BhY2UgLSBsYXllcjJTcGFjZUxTKSkgZWxzZSAobGF5ZXIyT2ZmU2V0TFMgPSAwLjApKSBpZigodmlhMUVuY0wgJiYgdmlhMUVuY0QpIHRoZW4gKHZpYTFTcGFjZUxEID0gKHZpYTFFbmNMICsgdmlhMUVuY0QgKyBsKSkgKHZpYTFPZmZTZXRMRCA9ICh2aWExTWluU3BhY2UgLSB2aWExU3BhY2VMRCkpIGVsc2UgKHZpYTFPZmZTZXRMRCA9IDAuMCkpIGlmKCh2aWEyRW5jTCAmJiB2aWEyRW5jRCkgdGhlbiAodmlhMlNwYWNlTEQgPSAodmlhMkVuY0wgKyB2aWEyRW5jRCArIGwpKSAodmlhMk9mZlNldExEID0gKHZpYTJNaW5TcGFjZSAtIHZpYTJTcGFjZUxEKSkgZWxzZSAodmlhMk9mZlNldExEID0gMC4wKSkgaWYoKGxheWVyM0VuY0wgJiYgbGF5ZXIzRW5jRCkgdGhlbiAobGF5ZXIzU3BhY2VMRCA9IChsYXllcjNFbmNMICsgbGF5ZXIzRW5jRCArIGwpKSAobGF5ZXIzT2ZmU2V0TEQgPSAobGF5ZXIzTWluU3BhY2UgLSBsYXllcjNTcGFjZUxEKSkgZWxzZSAobGF5ZXIzT2ZmU2V0TEQgPSAwLjApKSBpZigobGF5ZXIyRW5jTCAmJiBsYXllcjJFbmNEKSB0aGVuIChsYXllcjJTcGFjZUxEID0gKGxheWVyMkVuY0wgKyBsYXllcjJFbmNEICsgbCkpIChsYXllcjJPZmZTZXRMRCA9IChsYXllcjJNaW5TcGFjZSAtIGxheWVyMlNwYWNlTEQpKSBlbHNlIChsYXllcjJPZmZTZXRMRCA9IDAuMCkpIGlmKCh2aWExRW5jUyAmJiB2aWExRW5jRCkgdGhlbiAodmlhMVNwYWNlU0QgPSAodmlhMUVuY1MgKyB2aWExRW5jRCArIGwpKSAodmlhMU9mZlNldFNEID0gKHZpYTFNaW5TcGFjZSAtIHZpYTFTcGFjZVNEKSkgZWxzZSAodmlhMU9mZlNldFNEID0gMC4wKSkgaWYoKHZpYTJFbmNTICYmIHZpYTJFbmNEKSB0aGVuICh2aWEyU3BhY2VTRCA9ICh2aWEyRW5jUyArIHZpYTJFbmNEICsgbCkpICh2aWEyT2ZmU2V0U0QgPSAodmlhMk1pblNwYWNlIC0gdmlhMlNwYWNlU0QpKSBlbHNlICh2aWEyT2ZmU2V0U0QgPSAwLjApKSBpZigobGF5ZXIzRW5jUyAmJiBsYXllcjNFbmNEKSB0aGVuIChsYXllcjNTcGFjZVNEID0gKGxheWVyM0VuY1MgKyBsYXllcjNFbmNEICsgbCkpIChsYXllcjNPZmZTZXRTRCA9IChsYXllcjNNaW5TcGFjZSAtIGxheWVyM1NwYWNlU0QpKSBlbHNlIChsYXllcjNPZmZTZXRTRCA9IDAuMCkpIGlmKChsYXllcjJFbmNTICYmIGxheWVyMkVuY0QpIHRoZW4gKGxheWVyMlNwYWNlU0QgPSAobGF5ZXIyRW5jUyArIGxheWVyMkVuY0QgKyBsKSkgKGxheWVyMk9mZlNldFNEID0gKGxheWVyMk1pblNwYWNlIC0gbGF5ZXIyU3BhY2VTRCkpIGVsc2UgKGxheWVyMk9mZlNldFNEID0gMC4wKSkgaWYoKG0gPT0gMSkgdGhlbiAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGTCB2aWEyT2ZmU2V0RkwgbGF5ZXIyT2ZmU2V0RkwgbGF5ZXIzT2ZmU2V0RkwgMC4wKSkgZWxzZSBpZigobSA9PSAyKSB0aGVuIGlmKHNvdXJjZUZpcnN0IHRoZW4gKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RkQgdmlhMk9mZlNldEZEIGxheWVyMk9mZlNldEZEIGxheWVyM09mZlNldEZEIHZpYTFPZmZTZXRMRCB2aWEyT2ZmU2V0TEQgbGF5ZXIyT2ZmU2V0TEQgbGF5ZXIzT2ZmU2V0TEQgMC4wKSkgZWxzZSAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGUyB2aWEyT2ZmU2V0RlMgbGF5ZXIyT2ZmU2V0RlMgbGF5ZXIzT2ZmU2V0RlMgdmlhMU9mZlNldExTIHZpYTJPZmZTZXRMUyBsYXllcjJPZmZTZXRMUyBsYXllcjNPZmZTZXRMUyAwLjApKSkgZWxzZSBpZigobW9kKG0gMikgPT0gMCkgdGhlbiBpZihzb3VyY2VGaXJzdCB0aGVuIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZEIHZpYTJPZmZTZXRGRCBsYXllcjJPZmZTZXRGRCBsYXllcjNPZmZTZXRGRCB2aWExT2ZmU2V0U0QgdmlhMk9mZlNldFNEIGxheWVyMk9mZlNldFNEIGxheWVyM09mZlNldFNEIHZpYTFPZmZTZXRMRCB2aWEyT2ZmU2V0TEQgbGF5ZXIyT2ZmU2V0TEQgbGF5ZXIzT2ZmU2V0TEQgMC4wKSkgZWxzZSAobWF4T2ZmU2V0ID0gbWF4KHZpYTFPZmZTZXRGUyB2aWEyT2ZmU2V0RlMgbGF5ZXIyT2ZmU2V0RlMgbGF5ZXIzT2ZmU2V0RlMgdmlhMU9mZlNldFNEIHZpYTJPZmZTZXRTRCBsYXllcjJPZmZTZXRTRCBsYXllcjNPZmZTZXRTRCB2aWExT2ZmU2V0TFMgdmlhMk9mZlNldExTIGxheWVyMk9mZlNldExTIGxheWVyM09mZlNldExTIDAuMCkpKSBlbHNlIGlmKHNvdXJjZUZpcnN0IHRoZW4gKG1heE9mZlNldCA9IG1heCh2aWExT2ZmU2V0RkQgdmlhMk9mZlNldEZEIGxheWVyMk9mZlNldEZEIGxheWVyM09mZlNldEZEIHZpYTFPZmZTZXRTRCB2aWEyT2ZmU2V0U0QgbGF5ZXIyT2ZmU2V0U0QgbGF5ZXIzT2ZmU2V0U0QgdmlhMU9mZlNldExTIHZpYTJPZmZTZXRMUyBsYXllcjJPZmZTZXRMUyBsYXllcjNPZmZTZXRMUyAwLjApKSBlbHNlIChtYXhPZmZTZXQgPSBtYXgodmlhMU9mZlNldEZTIHZpYTJPZmZTZXRGUyBsYXllcjJPZmZTZXRGUyBsYXllcjNPZmZTZXRGUyB2aWExT2ZmU2V0U0QgdmlhMk9mZlNldFNEIGxheWVyMk9mZlNldFNEIGxheWVyM09mZlNldFNEIHZpYTFPZmZTZXRMRCB2aWEyT2ZmU2V0TEQgbGF5ZXIyT2ZmU2V0TEQgbGF5ZXIzT2ZmU2V0TEQgMC4wKSkpKSkpIChvZmZzZXRTaWRlID0gKG1heE9mZlNldCAvIDIuMCkpIChtaW5TcGFjZU9mZlNldCA9ICgoY2VpbGluZyAoKG9mZnNldFNpZGUgLyBzbmFwR3JpZCkgKyAtMWUtMDYpKSAqIHNuYXBHcmlkKSkgd2hlbigobGlzdHAoaWRMYXllcikgJiYgKGNhZHIoaWRMYXllcikgPT0gImh2IikgJiYgKGh2UFlNY29uU3BhY2UgPiAwLjApKSAobWluU3BhY2VPZmZTZXQgPSAobWluU3BhY2VPZmZTZXQgKyBodlBZTWNvblNwYWNlKSkpIGlmKChiY2tDb21wYXRpYmxlT2ZmU2V0ICYmICgoc3JjT2Zmc2V0ICE9IDAuMCkgfHwgKGRybk9mZnNldCAhPSAwLjApKSkgdGhlbiAobWluU3BhY2VPZmZTZXQgPSAwLjApKSBpZihpbXBsYW50IHRoZW4gKGNvbnRhY3RJbXBQYXJhbSA9IGxpc3QoImltcGxhbnQiICJib29sZWFuIiB0KSkgZWxzZSAoY29udGFjdEltcFBhcmFtID0gbGlzdCgiaW1wbGFudCIgImJvb2xlYW4iICJGQUxTRSIpKSkgaWYod2VsbExheWVyIHRoZW4gKGNvbnRhY3RXZWxsUGFyYW0gPSBsaXN0KCJpbldlbGwiICJib29sZWFuIiB0KSkgZWxzZSAoY29udGFjdFdlbGxQYXJhbSA9IGxpc3QoImluV2VsbCIgImJvb2xlYW4iICJGQUxTRSIpKSkgd2hlbihkaWZmSW1wQ2hvaWNlcyAoZGlmZkltcENob2ljZVBhcmFtID0gbGlzdCgiZGlmZkltcENob2ljZSIgImZpeG51bSIgZGlmZk1hdGNoKSkpIHdoZW4odGFwSW1wQ2hvaWNlcyAodGFwSW1wQ2hvaWNlUGFyYW0gPSBsaXN0KCJ0YXBJbXBDaG9pY2UiICJmaXhudW0iIHRhcE1hdGNoKSkpICh4MUNvb3JkID0gMC4wKSAoeTFDb29yZCA9IDAuMCkgKGxhc3RYMUNvb3JkID0gKC0gKDIuMCAqIChkZXBYRW5jICsgZGVwU3BhY2UpKSkpIHdoZW4oZGVwTGF5ZXIgKHkxRGVwQ29vcmQgPSAoeTFDb29yZCAtIGRlcFlFbmMpKSAoeTJEZXBDb29yZCA9ICh5MUNvb3JkICsgdyArIGRlcFlFbmMpKSkgKGxhc3RQWWlYMUNvb3JkID0gKC0gKDIuMCAqIHBvbHlJbXBYRW5jKSkpIHdoZW4ocG9seUltcGxhbnQgKHkxUFlpQ29vcmQgPSAoeTFDb29yZCAtIHBvbHlJbXBZRW5jIC0gZ2F0ZUV4dCkpICh5MlBZaUNvb3JkID0gKHkxQ29vcmQgKyB3ICsgcG9seUltcFlFbmMgKyBnYXRlRXh0KSkpIGlmKChpZExheWVyICYmIGxpc3RwKGlkTGF5ZXIpICYmIChjYWRyKGlkTGF5ZXIpID09ICJodiIpICYmICh3ZWxsRW5jSHZMYXllciA+IDAuMCkpIHRoZW4gKHdlbGxFbmNEaWZmWSA9IChpZEVuY1kgKyB3ZWxsRW5jSHZMYXllcikpICh3ZWxsRW5jVGFwWSA9IChpZEVuY1kgKyB3ZWxsRW5jSHZMYXllcikpICh3ZWxsRW5jRGlmZlggPSAobWF4KGlkRW5jWEwgaWRFbmNYUikgKyB3ZWxsRW5jSHZMYXllcikpICh3ZWxsRW5jVGFwWCA9IChtYXgoaWRFbmNYTCBpZEVuY1hSKSArIHdlbGxFbmNIdkxheWVyKSkgZWxzZSAod2VsbEVuY0RpZmZZID0gd2VsbEVuY0RpZmYpICh3ZWxsRW5jVGFwWSA9IHdlbGxFbmNUYXApICh3ZWxsRW5jRGlmZlggPSB3ZWxsRW5jRGlmZikgKHdlbGxFbmNUYXBYID0gd2VsbEVuY1RhcCkpIHdoZW4oKGZpcnN0Q29udGFjdCAhPSAiIikgKGNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBmaXJzdENvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhjb250YWN0SWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gZmlyc3RDb250YWN0IGNvbnRhY3QgY2VsbCBgJXMnIiBmaXJzdENvbnRhY3QpKSkgdW5sZXNzKChjb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBmaXJzdENvbnRhY3QpKSkgaWYoKGNOZXQgPT0gc05ldCkgdGhlbiAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgc3JjT2Zmc2V0KSkgZWxzZSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgZHJuT2Zmc2V0KSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgKGluc3RQYXJhbXMgPSBsaXN0KGxpc3QoInciICJmbG9hdCIgdykpKSB3aGVuKChwYXJhbXN+PmltcGxhbnQpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0SW1wUGFyYW0pKSkgd2hlbigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIHdoZW4oKGRpZmZJbXBDaG9pY2VzICYmIChwYXJhbXN+PmRpZmZJbXBDaG9pY2UpKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgZGlmZkltcENob2ljZVBhcmFtKSkpIHdoZW4oKHRhcEltcENob2ljZXMgJiYgKHBhcmFtc34+dGFwSW1wQ2hvaWNlKSkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIHRhcEltcENob2ljZVBhcmFtKSkpIHdoZW4oKGNvbnRhY3RDaG9pY2VzICYmIChwYXJhbXN+Pm5vRGlmZkNvbnRhY3QpKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgZGlmZkNvblBhcmFtKSkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJjMCIgKCgtIG9mZnNldCk6MCkgIk1ZIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiBmaXJzdENvbnRhY3QpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOncpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIG9mZnNldCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoeDFDb29yZCAodyArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgZmlyc3RDb250YWN0KSkpIChiQm94ID0gbGlzdChsaXN0KCgtIChvZmZzZXQgKyBjYWFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpIGxpc3QoKC0gKG9mZnNldCArIGNhYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkgY2FkYWRyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IChtYXN0ZXJ+PnRvcExheWVyKSBiQm94KSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoYkJveCkgKyAoKGNhYWRyKGJCb3gpIC0gY2FhcihiQm94KSkgLyAyLjApKSAoY2FkYXIoYkJveCkgKyAoKGNhZGFkcihiQm94KSAtIGNhZGFyKGJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbigod2VsbExheWVyIHx8IGlkTGF5ZXIgfHwgaHZMYXllcikgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKHgxRGlmZkNvb3JkID0gY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSB3aGVuKHdlbGxMYXllciAoeDFXZWxsQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KCh3ZWxsRW5jRGlmZlggKyB4MURpZmZDb29yZCkgKHdlbGxFbmNUYXBYICsgeDFUYXBDb29yZCkpKSkpICh5MVdlbGxDb29yZCA9ICgtIG1heCgod2VsbEVuY0RpZmZZICsgeTFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkxVGFwQ29vcmQpKSkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpKSkpIHdoZW4oaHZMYXllciAoeDFIVkxheWVyQ29vcmQgPSAoLSAob2Zmc2V0ICsgbWF4KChodkVuY2xvc3VyZSArIHgxRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB4MVRhcENvb3JkKSkpKSkgKHkxSFZMYXllckNvb3JkID0gKC0gbWF4KChodkVuY2xvc3VyZSArIHkxRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB5MVRhcENvb3JkKSkpKSAoeTJIVkxheWVyQ29vcmQgPSBtYXgoKGh2RW5jbG9zdXJlICsgeTJEaWZmQ29vcmQpIChodkVuY2xvc3VyZSArIHkyVGFwQ29vcmQpKSkpIHdoZW4oaWRMYXllciBpZihpZEVuY0RpZmYgdGhlbiAoeDFJZENvb3JkID0gKC0gKG9mZnNldCArIG1heCgoaWRFbmNYTCArIHgxRGlmZkNvb3JkKSAoaWRFbmNYTCArIHgxVGFwQ29vcmQpKSkpKSAoeTFJZENvb3JkID0gKC0gbWF4KChpZEVuY1kgKyB5MURpZmZDb29yZCkgKGlkRW5jWSArIHkxVGFwQ29vcmQpKSkpICh5MklkQ29vcmQgPSBtYXgoKGlkRW5jWSArIHkyRGlmZkNvb3JkKSAoaWRFbmNZICsgeTJUYXBDb29yZCkpKSBlbHNlICh4MUlkQ29vcmQgPSAoLSAob2Zmc2V0ICsgaWRFbmNYTCkpKSAoeTFJZENvb3JkID0gKC0gaWRFbmNZKSkgKHkySWRDb29yZCA9IGlkRW5jWSkpKSkgKGRiQ2xvc2UgY29udGFjdElkKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gZGlmZkV4dCk6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkIC0gZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCh4MUNvb3JkICh3ICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoeDFDb29yZCAtIGRpZmZFeHQpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpIHdoZW4oKGZpcnN0Q29udGFjdCA9PSAiIikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KCgtICh4MUNvb3JkICsgKGRpZmZFeHQgLyAyLjApKSkgKHkxQ29vcmQgKyAodyAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbih3ZWxsTGF5ZXIgKHgxV2VsbENvb3JkID0gKC0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgd2VsbEVuY0RpZmZYKSkpICh5MVdlbGxDb29yZCA9ICgtICh5MUNvb3JkICsgd2VsbEVuY0RpZmZZKSkpICh5MldlbGxDb29yZCA9ICh5MUNvb3JkICsgdyArIHdlbGxFbmNEaWZmWSkpKSB3aGVuKGh2TGF5ZXIgKHgxSFZMYXllckNvb3JkID0gKC0gKHgxQ29vcmQgKyBkaWZmRXh0ICsgaHZFbmNsb3N1cmUpKSkgKHkxSFZMYXllckNvb3JkID0gKC0gKHkxQ29vcmQgKyBodkVuY2xvc3VyZSkpKSAoeTJIVkxheWVyQ29vcmQgPSAoeTFDb29yZCArIHcgKyBodkVuY2xvc3VyZSkpKSB3aGVuKGlkTGF5ZXIgaWYoaWRFbmNEaWZmIHRoZW4gKHgxSWRDb29yZCA9ICgtICh4MUNvb3JkICsgZGlmZkV4dCArIGlkRW5jWEwpKSkgKHkxSWRDb29yZCA9ICgtICh5MUNvb3JkICsgaWRFbmNZKSkpICh5MklkQ29vcmQgPSAoeTFDb29yZCArIHcgKyBpZEVuY1kpKSBlbHNlICh4MUlkQ29vcmQgPSAoLSBpZEVuY1hMKSkgKHkxSWRDb29yZCA9ICgtIGlkRW5jWSkpICh5MklkQ29vcmQgPSAoeTFDb29yZCArIHcgKyBpZEVuY1kpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQgJiYgbm9FbmRDb25JbXBFbmMpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKCh4MUNvb3JkIC0gZGlmZkV4dCkgLSBkaWZmSW1wRW5jKSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQgJiYgbm9FbmRDb25JbXBFbmMpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCgoeDFDb29yZCAtIGRpZmZFeHQpIC0gZGlmZkNvcmVJbXBFbmMpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKHcgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKChtID4gMSkgd2hlbigoc2hhcmVkU291cmNlID09ICIiKSBlcnJvcigiTWlzc2luZyBzaGFyZWQgc291cmNlIGNvbnRhY3QgbmFtZSBwcm9wZXJ0eSIpKSAoc2hhcmVkU3JjSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgc2hhcmVkU291cmNlICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Moc2hhcmVkU3JjSWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gc2hhcmVkIHNvdXJjZSBjb250YWN0IGNlbGwgYCVzJyIgc2hhcmVkU291cmNlKSkpIHVubGVzcygoc2hhcmVkU3JjSWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBzaGFyZWRTb3VyY2UpKSkgd2hlbigoc2hhcmVkRHJhaW4gPT0gIiIpIGVycm9yKCJNaXNzaW5nIHNoYXJlZCBkcmFpbiBjb250YWN0IG5hbWUgcHJvcGVydHkiKSkgKHNoYXJlZERybklkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIHNoYXJlZERyYWluICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Moc2hhcmVkRHJuSWQgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kL29wZW4gc2hhcmVkIGRyYWluIGNvbnRhY3QgY2VsbCBgJXMnIiBzaGFyZWREcmFpbikpKSB1bmxlc3MoKHNoYXJlZERybklkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgc2hhcmVkRHJhaW4pKSkpIChjTmV0ID0gaWYoKGNOZXQgPT0gc05ldCkgZE5ldCBzTmV0KSkgKG5ldEwgPSBpZigobmV0TCA9PSAiUyIpICJEIiAiUyIpKSBmb3IobiAxIG0gKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKHgxQ29vcmQ6KHkxQ29vcmQgLSBnYXRlRXh0KSkgKCh4MUNvb3JkICsgbCk6KHkxQ29vcmQgKyB3ICsgZ2F0ZUV4dCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgZ05ldCkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKHgxQ29vcmQ6KHkxQ29vcmQgKyB3KSkgKCh4MUNvb3JkICsgbCk6KHkxQ29vcmQgKyB3ICsgZ2F0ZUV4dCkpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCAtIGdhdGVFeHQpKSAoKHgxQ29vcmQgKyBsKTp5MUNvb3JkKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgoeDFDb29yZCArIGwpOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKHgxQ29vcmQgKyBsKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGwpICgoeTFDb29yZCArIHcpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSB3aGVuKGRlcExheWVyIGNvbmQoKCgoeDFDb29yZCAtIGxhc3RYMUNvb3JkIC0gKDIuMCAqIGRlcFhFbmMpKSA8IGRlcFNwYWNlKSAoeDFEZXBDb29yZCA9IChsYXN0WDFDb29yZCArIGRlcFhFbmMpKSkgKHQgKHgxRGVwQ29vcmQgPSAoeDFDb29yZCAtIGRlcFhFbmMpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkZXBMYXllciBsaXN0KCh4MURlcENvb3JkOnkxRGVwQ29vcmQpICgoeDFDb29yZCArIGwgKyBkZXBYRW5jKTp5MkRlcENvb3JkKSkpKSB3aGVuKChwb2x5SW1wbGFudCAmJiBpbXBsYW50KSAoeDFQWWlDb29yZCA9ICh4MUNvb3JkIC0gcG9seUltcFhFbmMpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcG9seUltcGxhbnQgbGlzdCgoeDFQWWlDb29yZDp5MVBZaUNvb3JkKSAoKHgxQ29vcmQgKyBsICsgcG9seUltcFhFbmMpOnkyUFlpQ29vcmQpKSkpICh4MUNvb3JkID0gKHgxQ29vcmQgKyBsKSkgd2hlbigobiAhPSBtKSBpZigoY05ldCA9PSBzTmV0KSB0aGVuIChjb250YWN0SWQgPSBzaGFyZWRTcmNJZCkgKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIHNyY09mZnNldCkpIGVsc2UgKGNvbnRhY3RJZCA9IHNoYXJlZERybklkKSAob2Zmc2V0ID0gKG1pblNwYWNlT2ZmU2V0ICsgZHJuT2Zmc2V0KSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgKGluc3RQYXJhbXMgPSBsaXN0KGxpc3QoInciICJmbG9hdCIgdykpKSB3aGVuKChwYXJhbXN+PmltcGxhbnQpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0SW1wUGFyYW0pKSkgd2hlbigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIHdoZW4oKGRpZmZJbXBDaG9pY2VzICYmIChwYXJhbXN+PmRpZmZJbXBDaG9pY2UpKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgZGlmZkltcENob2ljZVBhcmFtKSkpIHdoZW4oKHRhcEltcENob2ljZXMgJiYgKHBhcmFtc34+dGFwSW1wQ2hvaWNlKSkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIHRhcEltcENob2ljZVBhcmFtKSkpIHdoZW4oKGNvbnRhY3RDaG9pY2VzICYmIChwYXJhbXN+Pm5vRGlmZkNvbnRhY3QpKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgZGlmZkNvblBhcmFtKSkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkIHNwcmludGYobmlsICJjJWQiIG4pICgob2Zmc2V0ICsgeDFDb29yZCk6eTFDb29yZCkgIlIwIiAxIGluc3RQYXJhbXMpKSB1bmxlc3MoaW5zdCBlcnJvcihzcHJpbnRmKG5pbCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIpIGFjY2Vzc0Rpcikgd2hlbihsYWJlbExheWVyIChkYkNyZWF0ZUxhYmVsIHRjQ2VsbFZpZXcgbGFiZWxMYXllciBsaXN0KChjYWFyKGJCb3gpICsgKChjYWFkcihiQm94KSAtIGNhYXIoYkJveCkpIC8gMi4wKSkgKGNhZGFyKGJCb3gpICsgKChjYWRhZHIoYkJveCkgLSBjYWRhcihiQm94KSkgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKChvZmZzZXQgKyB4MUNvb3JkKTooeTFDb29yZCArIHcpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoeDFDb29yZCAoeTFDb29yZCAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgob2Zmc2V0ICsgeDFDb29yZCkgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgZGlmZkxheWVyQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgKGNvbnRhY3RJZH4+Y2VsbE5hbWUpKSkpIChsYXN0WDFDb29yZCA9IHgxQ29vcmQpICh4MUNvb3JkID0gKCgyLjAgKiBvZmZzZXQpICsgKHgxQ29vcmQgKyAoY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpIC0gY2FhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpKSkpIHdoZW4oKG9mZnNldCA+IDFlLTA2KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gb2Zmc2V0KTp5MUNvb3JkKSAoeDFDb29yZDooeTFDb29yZCArIHcpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoeDFDb29yZCAoKHkxQ29vcmQgKyB3KSArIGRpZmZJbXBFbmMpKSkpKSB3aGVuKChkaWZmQ29yZUltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgLSBvZmZzZXQpICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KHgxQ29vcmQgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpKSAoeTFEaWZmQ29vcmQgPSBjYWRhcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYXIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSB3aGVuKHdlbGxMYXllciAoeTFXZWxsQ29vcmQgPSBtaW4oKC0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTFUYXBDb29yZCkpKSB5MVdlbGxDb29yZCkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmZZICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWSArIHkyVGFwQ29vcmQpIHkyV2VsbENvb3JkKSkpIHdoZW4oaHZMYXllciAoeTFIVkxheWVyQ29vcmQgPSBtaW4oKC0gbWF4KChodkVuY2xvc3VyZSArIHkxRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB5MUhWTGF5ZXJDb29yZCkpKSB5MUhWTGF5ZXJDb29yZCkpICh5MkhWTGF5ZXJDb29yZCA9IG1heCgoaHZFbmNsb3N1cmUgKyB5MkRpZmZDb29yZCkgKGh2RW5jbG9zdXJlICsgeTJUYXBDb29yZCkgeTJIVkxheWVyQ29vcmQpKSkgd2hlbihpZExheWVyIGlmKGlkRW5jRGlmZiB0aGVuICh5MUlkQ29vcmQgPSBtaW4oKC0gbWF4KChpZEVuY1kgKyB5MURpZmZDb29yZCkgKGlkRW5jWSArIHkxVGFwQ29vcmQpKSkgeTFJZENvb3JkKSkgKHkySWRDb29yZCA9IG1heCgoaWRFbmNZICsgeTJEaWZmQ29vcmQpIChpZEVuY1kgKyB5MlRhcENvb3JkKSB5MklkQ29vcmQpKSBlbHNlICh5MUlkQ29vcmQgPSAoLSBpZEVuY1kpKSAoeTJJZENvb3JkID0gaWRFbmNZKSkpKSAoY05ldCA9IGlmKChjTmV0ID09IHNOZXQpIGROZXQgc05ldCkpIChuZXRMID0gaWYoKG5ldEwgPT0gIlMiKSAiRCIgIlMiKSkpIHdoZW4oKG0gIT0gMSkgKGRiQ2xvc2Ugc2hhcmVkU3JjSWQpIChkYkNsb3NlIHNoYXJlZERybklkKSkgKGNOZXQgPSBpZigoY05ldCA9PSBzTmV0KSBkTmV0IHNOZXQpKSAobmV0TCA9IGlmKChuZXRMID09ICJTIikgIkQiICJTIikpIHdoZW4oKGxhc3RDb250YWN0ICE9ICIiKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGxhc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGxhc3RDb250YWN0IGNvbnRhY3QgY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIGxhc3RDb250YWN0KSkpIGlmKChjTmV0ID09IHNOZXQpIHRoZW4gKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIHNyY09mZnNldCkpIGVsc2UgKG9mZnNldCA9IChtaW5TcGFjZU9mZlNldCArIGRybk9mZnNldCkpKSAocGFyYW1zID0gKGNvbnRhY3RJZH4+cGFyYW1ldGVycykpIChpbnN0UGFyYW1zID0gbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHcpKSkgd2hlbigocGFyYW1zfj5pbXBsYW50KSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgY29udGFjdEltcFBhcmFtKSkpIHdoZW4oKHBhcmFtc34+aW5XZWxsKSAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgY29udGFjdFdlbGxQYXJhbSkpKSB3aGVuKChkaWZmSW1wQ2hvaWNlcyAmJiAocGFyYW1zfj5kaWZmSW1wQ2hvaWNlKSkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGRpZmZJbXBDaG9pY2VQYXJhbSkpKSB3aGVuKCh0YXBJbXBDaG9pY2VzICYmIChwYXJhbXN+PnRhcEltcENob2ljZSkpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyB0YXBJbXBDaG9pY2VQYXJhbSkpKSB3aGVuKChjb250YWN0Q2hvaWNlcyAmJiAocGFyYW1zfj5ub0RpZmZDb250YWN0KSkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGRpZmZDb25QYXJhbSkpKSAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGNvbnRhY3RJZCBzcHJpbnRmKG5pbCAiYyVkIiBtKSAoKG9mZnNldCArIHgxQ29vcmQpOnkxQ29vcmQpICJSMCIgMSBpbnN0UGFyYW1zKSkgdW5sZXNzKGluc3QgZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgZmlyc3Qgc291cmNlIGNvbnRhY3QiKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKG9mZnNldCArIHgxQ29vcmQpOih5MUNvb3JkICsgdykpKSkgd2hlbigoZGlmZkltcGxhbnQgJiYgaW1wbGFudCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkltcEVuYykpIGxpc3QoKG9mZnNldCArIHgxQ29vcmQpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChvZmZzZXQgKyB4MUNvb3JkKSAoKHkxQ29vcmQgKyB3KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkpIChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgdW5sZXNzKCgobWFzdGVyfj50b3BMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZXJyb3Ioc3ByaW50ZihuaWwgIk1pc3NpbmcgdG9wTGF5ZXIgYW5kL29yIHRvcExheWVyUGluQmJveCBjZWxsIHByb3BlcnRpZXMgaW4gYCVzJyIgbGFzdENvbnRhY3QpKSkgKGJCb3ggPSBsaXN0KGxpc3QoKGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgKyB4MUNvb3JkICsgb2Zmc2V0KSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoYkJveCkgKyAoKGNhYWRyKGJCb3gpIC0gY2FhcihiQm94KSkgLyAyLjApKSAoY2FkYXIoYkJveCkgKyAoKGNhZGFkcihiQm94KSAtIGNhZGFyKGJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgKHkxRGlmZkNvb3JkID0gY2FkYXIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTFUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTJEaWZmQ29vcmQgPSBjYWRhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeTJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhZGFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHgyRGlmZkNvb3JkID0gY2FhZHIoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkpKSAoeDJUYXBDb29yZCA9IGlmKChtYXN0ZXJ+PnRhcExheWVyQmJveCkgYWJzKGNhYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpICh5MVdlbGxDb29yZCA9IG1pbigoLSBtYXgoKHdlbGxFbmNEaWZmWSArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcFkgKyB5MVRhcENvb3JkKSkpIHkxV2VsbENvb3JkKSkgKHkyV2VsbENvb3JkID0gbWF4KCh3ZWxsRW5jRGlmZlkgKyB5MkRpZmZDb29yZCkgKHdlbGxFbmNUYXBZICsgeTJUYXBDb29yZCkgeTJXZWxsQ29vcmQpKSAoeDJXZWxsQ29vcmQgPSAob2Zmc2V0ICsgeDFDb29yZCArIG1heCgod2VsbEVuY0RpZmZYICsgeDJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwWCArIHgyVGFwQ29vcmQpKSkpKSB3aGVuKGh2TGF5ZXIgdW5sZXNzKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZCBkaWZmTGF5ZXJCYm94IHByb3BlcnR5IGZvciBgJXMnIiBsYXN0Q29udGFjdCkpKSAoeTFIVkxheWVyQ29vcmQgPSBtaW4oKC0gbWF4KChodkVuY2xvc3VyZSArIHkxRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB5MVRhcENvb3JkKSkpIHkxSFZMYXllckNvb3JkKSkgKHkySFZMYXllckNvb3JkID0gbWF4KChodkVuY2xvc3VyZSArIHkyRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB5MlRhcENvb3JkKSB5MkhWTGF5ZXJDb29yZCkpICh4MkhWTGF5ZXJDb29yZCA9IChvZmZzZXQgKyB4MUNvb3JkICsgbWF4KChodkVuY2xvc3VyZSArIHgyRGlmZkNvb3JkKSAoaHZFbmNsb3N1cmUgKyB4MlRhcENvb3JkKSkpKSkgd2hlbihpZExheWVyIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQgZGlmZkxheWVyQmJveCBwcm9wZXJ0eSBmb3IgYCVzJyIgbGFzdENvbnRhY3QpKSkgaWYoaWRFbmNEaWZmIHRoZW4gKHkxSWRDb29yZCA9IG1pbigoLSBtYXgoKGlkRW5jWSArIHkxRGlmZkNvb3JkKSAoaWRFbmNZICsgeTFUYXBDb29yZCkpKSB5MUlkQ29vcmQpKSAoeTJJZENvb3JkID0gbWF4KChpZEVuY1kgKyB5MkRpZmZDb29yZCkgKGlkRW5jWSArIHkyVGFwQ29vcmQpIHkySWRDb29yZCkpICh4MklkQ29vcmQgPSAob2Zmc2V0ICsgeDFDb29yZCArIG1heCgoaWRFbmNYUiArIHgyRGlmZkNvb3JkKSAoaWRFbmNYUiArIHgyVGFwQ29vcmQpKSkpIGVsc2UgKHkxSWRDb29yZCA9ICgoLSBpZEVuY1kpICsgeTFEaWZmQ29vcmQpKSAoeTJJZENvb3JkID0gbWF4KChpZEVuY1kgKyB5MkRpZmZDb29yZCkgeTJUYXBDb29yZCB5MklkQ29vcmQpKSAoeDJJZENvb3JkID0gKG9mZnNldCArIHgxQ29vcmQgKyBpZEVuY1hSKSkpKSAoZGJDbG9zZSBjb250YWN0SWQpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyBkaWZmRXh0KTooeTFDb29yZCArIHcpKSkpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKChkaWZmSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KHgxQ29vcmQgKHkxQ29vcmQgLSBkaWZmSW1wRW5jKSkgbGlzdCgoeDFDb29yZCArIGRpZmZFeHQpICgoeTFDb29yZCArIHcpICsgZGlmZkltcEVuYykpKSkpIHdoZW4oKGRpZmZDb3JlSW1wbGFudCAmJiBpbXBsYW50KSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCh4MUNvb3JkICh5MUNvb3JkIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpIHdoZW4oKGxhc3RDb250YWN0ID09ICIiKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKHgxQ29vcmQgKyAoZGlmZkV4dCAvIDIuMCkpICh5MUNvb3JkICsgKHcgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4od2VsbExheWVyICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgZGlmZkV4dCArIHdlbGxFbmNEaWZmWCkpICh5MldlbGxDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyB3ZWxsRW5jRGlmZlkpIHkyV2VsbENvb3JkKSkpIHdoZW4oaHZMYXllciAoeDJIVkxheWVyQ29vcmQgPSAoeDFDb29yZCArIGRpZmZFeHQgKyBodkVuY2xvc3VyZSkpICh5MkhWTGF5ZXJDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyBodkVuY2xvc3VyZSkgeTJIVkxheWVyQ29vcmQpKSkgd2hlbihpZExheWVyIGlmKGlkRW5jRGlmZiB0aGVuICh4MklkQ29vcmQgPSAoeDFDb29yZCArIGRpZmZFeHQgKyBpZEVuY1hSKSkgKHkySWRDb29yZCA9IG1heCgoeTFDb29yZCArIHcgKyBpZEVuY1kpIHkySWRDb29yZCkpIGVsc2UgKHgySWRDb29yZCA9ICh4MUNvb3JkICsgaWRFbmNYUikpICh5MklkQ29vcmQgPSBtYXgoKHkxQ29vcmQgKyB3ICsgaWRFbmNZKSB5MklkQ29vcmQpKSkpIHdoZW4oKGRpZmZJbXBsYW50ICYmIGltcGxhbnQgJiYgbm9FbmRDb25JbXBFbmMpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKHgxQ29vcmQgKyBkaWZmRXh0KSAoeTFDb29yZCAtIGRpZmZJbXBFbmMpKSBsaXN0KCgoeDFDb29yZCArIGRpZmZFeHQpICsgZGlmZkltcEVuYykgKCh5MUNvb3JkICsgdykgKyBkaWZmSW1wRW5jKSkpKSkgd2hlbigoZGlmZkNvcmVJbXBsYW50ICYmIGltcGxhbnQgJiYgbm9FbmRDb25JbXBFbmMpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCh4MUNvb3JkICsgZGlmZkV4dCkgKHkxQ29vcmQgLSBkaWZmQ29yZUltcEVuYykpIGxpc3QoKCh4MUNvb3JkICsgZGlmZkV4dCkgKyBkaWZmQ29yZUltcEVuYykgKCh5MUNvb3JkICsgdykgKyBkaWZmQ29yZUltcEVuYykpKSkpKSB3aGVuKHdlbGxMYXllciAod2VsbExheWVyX1hvcmlnaW4gPSB4MVdlbGxDb29yZCkgKHdlbGxMYXllcl9Zb3JpZ2luID0gKHkxV2VsbENvb3JkICsgKC0gd2VsbEVuY1lEaWZmKSkpICh3ZWxsTGF5ZXJfWGVuZCA9IHgyV2VsbENvb3JkKSAod2VsbExheWVyX1llbmQgPSAoeTJXZWxsQ29vcmQgKyB3ZWxsRW5jWURpZmYpKSB3aGVuKCgod2VsbExheWVyX1hlbmQgLSB3ZWxsTGF5ZXJfWG9yaWdpbikgPCB3ZWxsbWluV2lkdGgpIChEaWZmX3dlbGxfd2lkdGggPSAod2VsbG1pbldpZHRoIC0gKHdlbGxMYXllcl9YZW5kIC0gd2VsbExheWVyX1hvcmlnaW4pKSkgKHgyV2VsbENvb3JkID0gKHgyV2VsbENvb3JkICsgKERpZmZfd2VsbF93aWR0aCAvIDIpKSkgKHgxV2VsbENvb3JkID0gKHgxV2VsbENvb3JkIC0gKERpZmZfd2VsbF93aWR0aCAvIDIpKSkpIHdoZW4oKCh3ZWxsTGF5ZXJfWWVuZCAtIHdlbGxMYXllcl9Zb3JpZ2luKSA8IHdlbGxtaW5XaWR0aCkgKERpZmZfd2VsbF93aWR0aCA9ICh3ZWxsbWluV2lkdGggLSAod2VsbExheWVyX1llbmQgLSB3ZWxsTGF5ZXJfWW9yaWdpbikpKSAoeTFXZWxsQ29vcmQgPSAoeTFXZWxsQ29vcmQgLSAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSAoeTJXZWxsQ29vcmQgPSAoeTJXZWxsQ29vcmQgKyAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KCh4MVdlbGxDb29yZDooeTFXZWxsQ29vcmQgKyAoLSB3ZWxsRW5jWURpZmYpKSkgKHgyV2VsbENvb3JkOih5MldlbGxDb29yZCArIHdlbGxFbmNZRGlmZikpKSkpIHdoZW4oaWRMYXllciAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaWRMYXllciBsaXN0KGxpc3QoeDFJZENvb3JkIHkxSWRDb29yZCkgbGlzdCh4MklkQ29vcmQgeTJJZENvb3JkKSkpKSB3aGVuKGh2TGF5ZXIgd2hlbih3ZWxsTGF5ZXIgKHNpZ25YMSA9ICh4MVdlbGxDb29yZCAvIGFicyh4MVdlbGxDb29yZCkpKSAoc2lnblgyID0gKHgyV2VsbENvb3JkIC8gYWJzKHgyV2VsbENvb3JkKSkpIChzaWduWTEgPSAoeTFXZWxsQ29vcmQgLyBhYnMoeTFXZWxsQ29vcmQpKSkgKHNpZ25ZMiA9ICh5MldlbGxDb29yZCAvIGFicyh5MldlbGxDb29yZCkpKSAoeDFIVkxheWVyQ29vcmQgPSAoKGFicyh4MVdlbGxDb29yZCkgKyBodkVuY2xvc3VyZSkgKiBzaWduWDEpKSAoeDJIVkxheWVyQ29vcmQgPSAoKGFicyh4MldlbGxDb29yZCkgKyBodkVuY2xvc3VyZSkgKiBzaWduWDIpKSAoeTFIVkxheWVyQ29vcmQgPSAoKGFicyh5MVdlbGxDb29yZCkgKyBodkVuY2xvc3VyZSkgKiBzaWduWTEpKSAoeTJIVkxheWVyQ29vcmQgPSAoKGFicyh5MldlbGxDb29yZCkgKyBodkVuY2xvc3VyZSkgKiBzaWduWTIpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGh2TGF5ZXIgbGlzdChsaXN0KHgxSFZMYXllckNvb3JkIHkxSFZMYXllckNvb3JkKSBsaXN0KHgySFZMYXllckNvb3JkIHkySFZMYXllckNvb3JkKSkpKSkAKGRpZmZMYXllciBnYXRlTGF5ZXIgd2VsbExheWVyIHdlbGxtaW5XaWR0aCBodkxheWVyIGRlcExheWVyIGRpZmZFeHQgd2VsbEVuY0RpZmYgd2VsbEVuY1RhcCB3ZWxsTGF5ZXJXaWR0aCBodkVuY2xvc3VyZSBkZXBYRW5jIGRlcFlFbmMgZGVwU3BhY2UgbGFiZWxMYXllciBsYWJlbFdpZHRoIGRpZmZJbXBsYW50IGRpZmZJbXBFbmMgZGlmZkNvcmVJbXBsYW50IGRpZmZDb3JlSW1wRW5jIHZpYTFNaW5TcGFjZSB2aWEyTWluU3BhY2UgbGF5ZXIyTWluU3BhY2UgbGF5ZXIzTWluU3BhY2Ugbm9PZkRlY2ltYWxzIHNuYXBHcmlkIGJja0NvbXBhdGlibGVPZmZTZXQgcG9seUltcGxhbnQgcG9seUltcFhFbmMgcG9seUltcFlFbmMgaHZQWU1jb25TcGFjZSB3ZWxsRW5jSHZMYXllciBzb3VyY2VGaXJzdCBzaGFyZWREcmFpbiBzaGFyZWRTb3VyY2UgbGFzdENvbnRhY3QgZmlyc3RDb250YWN0IGdhdGVFeHQgaWRMYXllckNob2ljZXMgaWRMYXllciBpZEVuY0RpZmYgaWRFbmNYTCBpZEVuY1hSIGlkRW5jWSBkaWZmSW1wQ2hvaWNlcyB0YXBJbXBDaG9pY2VzIGNvbnRhY3RDaG9pY2VzIGRpZmZJbXBDaG9pY2UgdGFwSW1wQ2hvaWNlIGNvbnRhY3RDaG9pY2Ugc3JjT2Zmc2V0IGRybk9mZnNldCBtIGwgdyBpbXBsYW50IG5vRW5kQ29uSW1wRW5jIHdlbGxFbmNZRGlmZiB3ZWxsV2lkdGggZ05ldCBzTmV0IGROZXQgY05ldCBuZXRMIGkgZGlmZk1hdGNoIHRhcE1hdGNoIGRpZmZDb25QYXJhbSB4IGlkRW5jTGlzdCBjb250YWN0RiBjb250YWN0TCBjb250YWN0RCBjb250YWN0UyB2aWExWENyZEYgbGF5ZXIyWENyZEYgdmlhMlhDcmRGIGxheWVyM1hDcmRGIGxheWVyMVhDcmRGIHZpYTFYQ3JkTCBsYXllcjJYQ3JkTCB2aWEyWENyZEwgbGF5ZXIzWENyZEwgbGF5ZXIxWENyZEwgdmlhMVhDcmRTIGxheWVyMlhDcmRTIHZpYTJYQ3JkUyBsYXllcjNYQ3JkUyBsYXllcjFYQ3JkUyB2aWExWENyZEQgbGF5ZXIyWENyZEQgdmlhMlhDcmREIGxheWVyM1hDcmREIGxheWVyMVhDcmREIHZpYTFFbmNGIHZpYTJFbmNGIGxheWVyMkVuY0YgbGF5ZXIzRW5jRiB2aWExRW5jTCB2aWEyRW5jTCBsYXllcjJFbmNMIGxheWVyM0VuY0wgdmlhMUVuY1MgdmlhMkVuY1MgbGF5ZXIyRW5jUyBsYXllcjNFbmNTIHZpYTFFbmNEIHZpYTJFbmNEIGxheWVyMkVuY0QgbGF5ZXIzRW5jRCB2aWExU3BhY2VGTCB2aWExT2ZmU2V0RkwgdmlhMlNwYWNlRkwgdmlhMk9mZlNldEZMIGxheWVyM1NwYWNlRkwgbGF5ZXIzT2ZmU2V0RkwgbGF5ZXIyU3BhY2VGTCBsYXllcjJPZmZTZXRGTCB2aWExU3BhY2VGUyB2aWExT2ZmU2V0RlMgdmlhMlNwYWNlRlMgdmlhMk9mZlNldEZTIGxheWVyM1NwYWNlRlMgbGF5ZXIzT2ZmU2V0RlMgbGF5ZXIyU3BhY2VGUyBsYXllcjJPZmZTZXRGUyB2aWExU3BhY2VGRCB2aWExT2ZmU2V0RkQgdmlhMlNwYWNlRkQgdmlhMk9mZlNldEZEIGxheWVyM1NwYWNlRkQgbGF5ZXIzT2ZmU2V0RkQgbGF5ZXIyU3BhY2VGRCBsYXllcjJPZmZTZXRGRCB2aWExU3BhY2VMUyB2aWExT2ZmU2V0TFMgdmlhMlNwYWNlTFMgdmlhMk9mZlNldExTIGxheWVyM1NwYWNlTFMgbGF5ZXIzT2ZmU2V0TFMgbGF5ZXIyU3BhY2VMUyBsYXllcjJPZmZTZXRMUyB2aWExU3BhY2VMRCB2aWExT2ZmU2V0TEQgdmlhMlNwYWNlTEQgdmlhMk9mZlNldExEIGxheWVyM1NwYWNlTEQgbGF5ZXIzT2ZmU2V0TEQgbGF5ZXIyU3BhY2VMRCBsYXllcjJPZmZTZXRMRCB2aWExU3BhY2VTRCB2aWExT2ZmU2V0U0QgdmlhMlNwYWNlU0QgdmlhMk9mZlNldFNEIGxheWVyM1NwYWNlU0QgbGF5ZXIzT2ZmU2V0U0QgbGF5ZXIyU3BhY2VTRCBsYXllcjJPZmZTZXRTRCBtYXhPZmZTZXQgb2Zmc2V0U2lkZSBtaW5TcGFjZU9mZlNldCBjb250YWN0SW1wUGFyYW0gY29udGFjdFdlbGxQYXJhbSBkaWZmSW1wQ2hvaWNlUGFyYW0gdGFwSW1wQ2hvaWNlUGFyYW0geDFDb29yZCB5MUNvb3JkIGxhc3RYMUNvb3JkIHkxRGVwQ29vcmQgeTJEZXBDb29yZCBsYXN0UFlpWDFDb29yZCB5MVBZaUNvb3JkIHkyUFlpQ29vcmQgd2VsbEVuY0RpZmZZIHdlbGxFbmNUYXBZIHdlbGxFbmNEaWZmWCB3ZWxsRW5jVGFwWCBjb250YWN0SWQgb2Zmc2V0IHBhcmFtcyBpbnN0UGFyYW1zIGluc3QgbWFzdGVyIGJCb3ggZGJpZCBwaW5pZCB4MURpZmZDb29yZCB4MVRhcENvb3JkIHkyRGlmZkNvb3JkIHkyVGFwQ29vcmQgeTFEaWZmQ29vcmQgeTFUYXBDb29yZCB4MVdlbGxDb29yZCB5MVdlbGxDb29yZCB5MldlbGxDb29yZCB4MUhWTGF5ZXJDb29yZCB5MUhWTGF5ZXJDb29yZCB5MkhWTGF5ZXJDb29yZCB4MUlkQ29vcmQgeTFJZENvb3JkIHkySWRDb29yZCBzaGFyZWRTcmNJZCBzaGFyZWREcm5JZCBuIHgxRGVwQ29vcmQgeDFQWWlDb29yZCB4MkRpZmZDb29yZCB4MlRhcENvb3JkIHgyV2VsbENvb3JkIHgySFZMYXllckNvb3JkIHgySWRDb29yZCB3ZWxsTGF5ZXJfWG9yaWdpbiB3ZWxsTGF5ZXJfWW9yaWdpbiB3ZWxsTGF5ZXJfWGVuZCB3ZWxsTGF5ZXJfWWVuZCBEaWZmX3dlbGxfd2lkdGggc2lnblgxIHNpZ25YMiBzaWduWTEgc2lnblkyKQAoKHNvdXJjZUZpcnN0ICJUUlVFIikgKHNoYXJlZERyYWluICIiKSAoc2hhcmVkU291cmNlICIiKSAobGFzdENvbnRhY3QgIiIpIChmaXJzdENvbnRhY3QgIiIpIChnYXRlRXh0IDAuMCkgKGlkTGF5ZXJDaG9pY2VzIG5pbCkgKGlkTGF5ZXIgbmlsKSAoaWRFbmNEaWZmIG5pbCkgKGlkRW5jWEwgMC4wKSAoaWRFbmNYUiAwLjApIChpZEVuY1kgMC4wKSAoZGlmZkltcENob2ljZXMgbmlsKSAodGFwSW1wQ2hvaWNlcyBuaWwpIChjb250YWN0Q2hvaWNlcyBuaWwpIChkaWZmSW1wQ2hvaWNlIG5pbCkgKHRhcEltcENob2ljZSBuaWwpIChjb250YWN0Q2hvaWNlIG5pbCkgKHNyY09mZnNldCAwLjApIChkcm5PZmZzZXQgMC4wKSAobSAxKSAobCAwLjApICh3IDAuMCkgKGltcGxhbnQgdCkgKG5vRW5kQ29uSW1wRW5jIHQpKQAoKGRpZmZMYXllciAiaGlsaXRlIikgKGdhdGVMYXllciAibWFya2VyIikgKHdlbGxMYXllciBuaWwpICh3ZWxsbWluV2lkdGggMC4wKSAoaHZMYXllciBuaWwpIChkZXBMYXllciBuaWwpIChkaWZmRXh0IDAuMCkgKHdlbGxFbmNEaWZmIDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAod2VsbExheWVyV2lkdGggMC4wKSAoaHZFbmNsb3N1cmUgMC4wKSAoZGVwWEVuYyAwLjApIChkZXBZRW5jIDAuMCkgKGRlcFNwYWNlIDAuMCkgKGxhYmVsTGF5ZXIgbGlzdCgidGV4dCIgImRyYXdpbmciKSkgKGxhYmVsV2lkdGggMC40KSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyAwLjApIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBFbmMgMC4wKSAodmlhMU1pblNwYWNlIDAuMCkgKHZpYTJNaW5TcGFjZSAwLjApIChsYXllcjJNaW5TcGFjZSAwLjApIChsYXllcjNNaW5TcGFjZSAwLjApIChub09mRGVjaW1hbHMgMykgKHNuYXBHcmlkIChURUNIZ2V0UHJvcCBzbmFwR3JpZCkpIChiY2tDb21wYXRpYmxlT2ZmU2V0IG5pbCkgKHBvbHlJbXBsYW50IG5pbCkgKHBvbHlJbXBYRW5jIDAuMCkgKHBvbHlJbXBZRW5jIDAuMCkgKGh2UFlNY29uU3BhY2UgMC4wKSAod2VsbEVuY0h2TGF5ZXIgMC4wKSkAKGlmKCgoVyA8IDUpIHx8IChMIDwgNSkpIHRoZW4gKFcgPSA1KSAoTCA9IDUpKSBpZigoSW5uZXJSaW5nICE9ICJuVGFwIikgdGhlbiBpZigoSW5uZXJSaW5nICE9ICJwVGFwIikgdGhlbiAoSW5uZXJSaW5nID0gIm5UYXAiKSB3YXJuKCJJbm5lclJpbmcgc2hvdWxkIGJlIGVpdGhlciBuVGFwIG9yIHBUYXAuIERlZmF1bHQgc2V0IHRvIG5UYXAiKSkpICh0YXBfVyA9IG1heCgoY29uV2lkdGggKyAodGFwQ29uRW5jWCAqIDIpKSBJUmluZ1dpZHRoKSkgKFRBUF9MX0kgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1cgP3B0cyBsaXN0KCgwOjApICgwOlcpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCB0YXBDb25FbmNYID9lbmRPZmZzZXQgdGFwQ29uRW5jWCkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAodGFwSW1wRW5jICsgdGFwQ29uRW5jWCkpID9lbmRPZmZzZXQgKC0gKHRhcEltcEVuYyArIHRhcENvbkVuY1gpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9UX0kgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1cgP3B0cyBsaXN0KCgoKC0gdGFwX1cpIC8gMik6KFcgKyAodGFwX1cgLyAyKSkpICgoTCArICh0YXBfVyAvIDIpICsgdGFwX1cpOihXICsgKHRhcF9XIC8gMikpKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciBNMExheWVyID9lbmNsb3N1cmUgdGFwQ29uRW5jWCA/YmVnaW5PZmZzZXQgKC0gdGFwQ29uRW5jWCkgP2VuZE9mZnNldCAoLSB0YXBDb25FbmNYKSkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoTTBjb25FbmNZICsgdGFwQ29uRW5jWSkpID9lbmRPZmZzZXQgKC0gKE0wY29uRW5jWSArIHRhcENvbkVuY1kpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9SX0kgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1cgP3B0cyBsaXN0KCgoTCArIHRhcF9XKTpXKSAoKEwgKyB0YXBfVyk6MCkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlIHRhcENvbkVuY1ggP2JlZ2luT2Zmc2V0IHRhcENvbkVuY1ggP2VuZE9mZnNldCB0YXBDb25FbmNYKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtICh0YXBJbXBFbmMgKyB0YXBDb25FbmNYKSkgP2VuZE9mZnNldCAoLSAodGFwSW1wRW5jICsgdGFwQ29uRW5jWCkpID9zcGFjZSBjb25TcGFjaW5nKSkpKSAoVEFQX0JfSSA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHRhcExheWVyID93aWR0aCB0YXBfVyA/cHRzIGxpc3QoKChMICsgdGFwX1cgKyAodGFwX1cgLyAyKSk6KCgtIHRhcF9XKSAvIDIpKSAoKCgtIHRhcF9XKSAvIDIpOigoLSB0YXBfVykgLyAyKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlIHRhcENvbkVuY1ggP2JlZ2luT2Zmc2V0ICgtIHRhcENvbkVuY1gpID9lbmRPZmZzZXQgKC0gdGFwQ29uRW5jWCkpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKE0wY29uRW5jWSArIHRhcENvbkVuY1kpKSA/ZW5kT2Zmc2V0ICgtIChNMGNvbkVuY1kgKyB0YXBDb25FbmNZKSkgP3NwYWNlIGNvblNwYWNpbmcpKSkpIGlmKChJbm5lclJpbmcgPT0gIm5UYXAiKSB0aGVuIGlmKERlZXBOd2VsbCB0aGVuIHVubGVzcyhGdWxsV2VsbCAoZG53SW1wRW5jID0gKGRud1dlbGxFbmMgLSAobnRhcFdlbGxTcGMgKyAodGFwX1cgLyAyKSArIHRhcEltcEVuYykpKSAoRE5XX2R1bW15ID0gKHJvZENyZWF0ZVJlY3QgP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgZG53ZWxsTGF5ZXIgP2xlbmd0aCBXID93aWR0aCAoTCArIHRhcF9XKSkpIChETlcgPSAocm9kQ3JlYXRlUmVjdCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBkbndlbGxMYXllciA/bGVuZ3RoIChXICsgdGFwX1cgKyAoZG53SW1wRW5jICogMikpID93aWR0aCAoTCArIHRhcF9XICsgKGRud0ltcEVuYyAqIDIpKSkpIChyb2RBbGlnbiA/YWxpZ25PYmogRE5XID9hbGlnbkhhbmRsZSAiY0MiID9yZWZPYmogRE5XX2R1bW15ID9yZWZIYW5kbGUgImNDIikpKSBpZihGdWxsV2VsbCB0aGVuIChkbndJbXBFbmMgPSAoZG53V2VsbEVuYyAtIChudGFwV2VsbFNwYyArIHRhcF9XICsgKHRhcEltcEVuYyAqIDIpKSkpIChOV2VsbF9kdW1teSA9IChyb2RDcmVhdGVSZWN0ID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/bGVuZ3RoIFcgP3dpZHRoIChMICsgdGFwX1cpKSkgKE5XZWxsID0gKHJvZENyZWF0ZVJlY3QgP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgd2VsbExheWVyID93aWR0aCAoTCArICh0YXBfVyAqIDIpKSA/bGVuZ3RoIChXICsgKHRhcF9XICogMikpKSkgKHJvZEFsaWduID9hbGlnbk9iaiBOV2VsbCA/YWxpZ25IYW5kbGUgImNDIiA/cmVmT2JqIE5XZWxsX2R1bW15ID9yZWZIYW5kbGUgImNDIikpIChJbXBsYW50X0kgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBuSW1wbGFudCA/d2lkdGggKHRhcF9XICsgKHRhcEltcEVuYyAqIDIpKSA/cHRzIGxpc3QoKDA6MCkgKDA6KFcgKyAodGFwX1cgLyAyKSkpICgwOihXICsgKHRhcF9XIC8gMikpKSAoKEwgKyB0YXBfVyk6KFcgKyAodGFwX1cgLyAyKSkpICgoTCArIHRhcF9XKTooVyArICh0YXBfVyAvIDIpKSkgKChMICsgdGFwX1cpOjApKSkpIChJbXBsYW50X0lCID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgbkltcGxhbnQgP3dpZHRoICh0YXBfVyArICh0YXBJbXBFbmMgKiAyKSkgP3B0cyBsaXN0KCgoTCArIHRhcF9XICsgKHRhcF9XIC8gMikgKyB0YXBJbXBFbmMpOigoLSB0YXBfVykgLyAyKSkgKCgtICgodGFwX1cgLyAyKSArIHRhcEltcEVuYykpOigoLSB0YXBfVykgLyAyKSkpKSkgKFdlbGxfSV9MVCA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggKHRhcF9XICsgKHRhcEltcEVuYyAqIDIpICsgKG50YXBXZWxsU3BjICogMikpID9wdHMgbGlzdCgoMDowKSAoMDooVyArICh0YXBfVyAvIDIpKSkgKChMICsgdGFwX1cpOihXICsgKHRhcF9XIC8gMikpKSkpKSAoV2VsbF9JX1JCID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgd2VsbExheWVyID93aWR0aCAodGFwX1cgKyAodGFwSW1wRW5jICogMikgKyAobnRhcFdlbGxTcGMgKiAyKSkgP3B0cyBsaXN0KCgoTCArIHRhcF9XKTooVyArIHRhcF9XICsgdGFwSW1wRW5jICsgbnRhcFdlbGxTcGMpKSAoKEwgKyB0YXBfVyk6KCgtIHRhcF9XKSAvIDIpKSAoKC0gKCh0YXBfVyAvIDIpICsgdGFwSW1wRW5jICsgbnRhcFdlbGxTcGMpKTooKC0gdGFwX1cpIC8gMikpKSkpIGVsc2UgKEltcGxhbnRfSSA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHBJbXBsYW50ID93aWR0aCAodGFwX1cgKyAodGFwSW1wRW5jICogMikpID9wdHMgbGlzdCgoMDowKSAoMDooVyArICh0YXBfVyAvIDIpKSkgKDA6KFcgKyAodGFwX1cgLyAyKSkpICgoTCArIHRhcF9XKTooVyArICh0YXBfVyAvIDIpKSkgKChMICsgdGFwX1cpOihXICsgKHRhcF9XIC8gMikpKSAoKEwgKyB0YXBfVyk6MCkpKSkgKEltcGxhbnRfSUIgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciBwSW1wbGFudCA/d2lkdGggKHRhcF9XICsgKHRhcEltcEVuYyAqIDIpKSA/cHRzIGxpc3QoKChMICsgdGFwX1cgKyAodGFwX1cgLyAyKSArIHRhcEltcEVuYyk6KCgtIHRhcF9XKSAvIDIpKSAoKC0gKCh0YXBfVyAvIDIpICsgdGFwSW1wRW5jKSk6KCgtIHRhcF9XKSAvIDIpKSkpKSkgd2hlbigoUmluZ051bSA+IDEpIGlmKChSaW5nTnVtID4gMykgdGhlbiAoUmluZ051bSA9IDMpIHdhcm4oIk1heCBSaW5nTnVtIFNob3VsZCBCZSAzLiBEZWZhdWx0IHNldCB0byAzIikpICh0YXBfV19NID0gbWF4KChjb25XaWR0aCArICh0YXBDb25FbmNYICogMikpIE1SaW5nV2lkdGgpKSAoU3BhY2UxMiA9IG1heChwdGFwV2VsbFNwYyBTcGFjZTEyKSkgKE10YXBfeDAgPSAoKHRhcF9XIC8gMikgKyAodGFwSW1wRW5jICogMikgKyBudGFwV2VsbFNwYyArICh0YXBfV19NIC8gMikgKyBTcGFjZTEyKSkgKE10YXBfeTAgPSAodGFwX1cgKyAodGFwSW1wRW5jICogMikgKyBudGFwV2VsbFNwYyArICh0YXBfV19NIC8gMikgKyBTcGFjZTEyKSkgKE10YXBfeDEgPSAoKHRhcF9XIC8gMikgKyBMICsgdGFwX1cgKyAodGFwSW1wRW5jICogMikgKyBudGFwV2VsbFNwYyArIFNwYWNlMTIgKyAodGFwX1dfTSAvIDIpKSkgKFRBUF9MX00gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1dfTSA/cHRzIGxpc3QoKCgtIE10YXBfeDApOigtIChNdGFwX3kwICsgKHRhcF9XX00gLyAyKSkpKSAoKC0gTXRhcF94MCk6KFcgKyBNdGFwX3kwICsgKHRhcF9XX00gLyAyKSkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCAoLSB0YXBDb25FbmNYKSA/ZW5kT2Zmc2V0ICgtIHRhcENvbkVuY1gpKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19NIC8gMikpKSA/ZW5kT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19NIC8gMikpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9UX00gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1dfTSA/cHRzIGxpc3QoKCgtIE10YXBfeDApOihXICsgTXRhcF95MCkpICgoTXRhcF94MSArICh0YXBfV19NIC8gMikpOihXICsgTXRhcF95MCkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCB0YXBDb25FbmNYID9lbmRPZmZzZXQgKC0gdGFwQ29uRW5jWCkpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKGNvblNwYWNpbmcgKyAodGFwX1dfTSAvIDIpKSkgP2VuZE9mZnNldCAoLSAoY29uU3BhY2luZyArICh0YXBfV19NIC8gMikpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9SX00gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1dfTSA/cHRzIGxpc3QoKE10YXBfeDE6KFcgKyBNdGFwX3kwKSkgKE10YXBfeDE6KC0gTXRhcF95MCkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCB0YXBDb25FbmNYID9lbmRPZmZzZXQgdGFwQ29uRW5jWCkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoY29uU3BhY2luZyArICh0YXBfV19NIC8gMikpKSA/ZW5kT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgKHRhcF9XX00gLyAyKSkpID9zcGFjZSBjb25TcGFjaW5nKSkpKSAoVEFQX0JfTSA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHRhcExheWVyID93aWR0aCB0YXBfV19NID9wdHMgbGlzdCgoKE10YXBfeDEgKyAodGFwX1dfTSAvIDIpKTooLSBNdGFwX3kwKSkgKCgtIChNdGFwX3gwICsgKHRhcF9XX00gLyAyKSkpOigtIE10YXBfeTApKSkgP2VuY1N1YlBhdGggbGlzdChsaXN0KD9sYXllciBNMExheWVyID9lbmNsb3N1cmUgdGFwQ29uRW5jWCA/YmVnaW5PZmZzZXQgKC0gdGFwQ29uRW5jWCkgP2VuZE9mZnNldCAoLSB0YXBDb25FbmNYKSkpID9zdWJSZWN0IGxpc3QobGlzdCg/bGF5ZXIgY29uTGF5ZXIgP3dpZHRoIGNvbldpZHRoID9sZW5ndGggY29uTGVuZ3RoID9iZWdpbk9mZnNldCAoLSAoTTBjb25FbmNZICsgdGFwQ29uRW5jWSkpID9lbmRPZmZzZXQgKC0gKGNvblNwYWNpbmcgKyB0YXBDb25FbmNYICsgKHRhcF9XX00gLyAyKSkpID9zcGFjZSBjb25TcGFjaW5nKSkpKSBpZigoSW5uZXJSaW5nID09ICJuVGFwIikgdGhlbiAoTWltcGxhbnQgPSBwSW1wbGFudCkgZWxzZSAoTWltcGxhbnQgPSBuSW1wbGFudCkgKFdlbGxfTV9MVCA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggKHRhcF9XX00gKyAodGFwSW1wRW5jICogMikgKyAobnRhcFdlbGxTcGMgKiAyKSkgP3B0cyBsaXN0KCgoLSBNdGFwX3gwKTooLSBNdGFwX3kwKSkgKCgtIE10YXBfeDApOihXICsgTXRhcF95MCkpIChNdGFwX3gxOihXICsgTXRhcF95MCkpIChNdGFwX3gxOigtIE10YXBfeTApKSkpKSAoV2VsbF9NX1JCID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgd2VsbExheWVyID93aWR0aCAodGFwX1dfTSArICh0YXBJbXBFbmMgKiAyKSArIChudGFwV2VsbFNwYyAqIDIpKSA/cHRzIGxpc3QoKChNdGFwX3gxICsgKHRhcF9XX00gLyAyKSArIHRhcEltcEVuYyArIG50YXBXZWxsU3BjKTooLSBNdGFwX3kwKSkgKCgtIChNdGFwX3gwICsgKHRhcF9XX00gLyAyKSArIHRhcEltcEVuYyArIG50YXBXZWxsU3BjKSk6KC0gTXRhcF95MCkpKSkpKSAoSW1wbGFudF9NID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgTWltcGxhbnQgP3dpZHRoICh0YXBfV19NICsgKHRhcEltcEVuYyAqIDIpKSA/cHRzIGxpc3QoKCgtIE10YXBfeDApOigtIE10YXBfeTApKSAoKC0gTXRhcF94MCk6KFcgKyBNdGFwX3kwKSkgKE10YXBfeDE6KFcgKyBNdGFwX3kwKSkgKE10YXBfeDE6KC0gTXRhcF95MCkpKSkpIChJbXBsYW50X01CID0gKHJvZENyZWF0ZVBhdGggP2N2SWQgdGNDZWxsVmlldyA/bGF5ZXIgTWltcGxhbnQgP3dpZHRoICh0YXBfV19NICsgKHRhcEltcEVuYyAqIDIpKSA/cHRzIGxpc3QoKChNdGFwX3gxICsgKHRhcF9XX00gLyAyKSArIHRhcEltcEVuYyk6KC0gTXRhcF95MCkpICgoLSAoTXRhcF94MCArICh0YXBfV19NIC8gMikgKyB0YXBJbXBFbmMpKTooLSBNdGFwX3kwKSkpKSkgdW5sZXNzKChSaW5nTnVtID09IDIpICh0YXBfV19PID0gbWF4KChjb25XaWR0aCArICh0YXBDb25FbmNYICogMikpIE9SaW5nV2lkdGgpKSAoU3BhY2UyMyA9IG1heChwdGFwV2VsbFNwYyBTcGFjZTIzKSkgKE90YXBfeDAgPSAoKHRhcF9XIC8gMikgKyAodGFwSW1wRW5jICogNCkgKyAobnRhcFdlbGxTcGMgKiAyKSArIFNwYWNlMTIgKyB0YXBfV19NICsgU3BhY2UyMyArICh0YXBfV19PIC8gMikpKSAoT3RhcF95MCA9ICh0YXBfVyArICh0YXBJbXBFbmMgKiA0KSArIChudGFwV2VsbFNwYyAqIDIpICsgU3BhY2UxMiArIHRhcF9XX00gKyBTcGFjZTIzICsgKHRhcF9XX08gLyAyKSkpIChPdGFwX3gxID0gKCh0YXBfVyAvIDIpICsgTCArIHRhcF9XICsgKHRhcEltcEVuYyAqIDQpICsgKG50YXBXZWxsU3BjICogMikgKyBTcGFjZTEyICsgdGFwX1dfTSArIFNwYWNlMjMgKyAodGFwX1dfTyAvIDIpKSkgKFRBUF9MX08gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1dfTyA/cHRzIGxpc3QoKCgtIE90YXBfeDApOigtIChPdGFwX3kwICsgKHRhcF9XX08gLyAyKSkpKSAoKC0gT3RhcF94MCk6KFcgKyBPdGFwX3kwICsgKHRhcF9XX08gLyAyKSkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCAoLSB0YXBDb25FbmNYKSA/ZW5kT2Zmc2V0ICgtIHRhcENvbkVuY1gpKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19PIC8gMikpKSA/ZW5kT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19PIC8gMikpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9UX08gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1dfTyA/cHRzIGxpc3QoKCgtIE90YXBfeDApOihXICsgT3RhcF95MCkpICgoT3RhcF94MSArICh0YXBfV19PIC8gMikpOihXICsgT3RhcF95MCkpKSA/ZW5jU3ViUGF0aCBsaXN0KGxpc3QoP2xheWVyIE0wTGF5ZXIgP2VuY2xvc3VyZSB0YXBDb25FbmNYID9iZWdpbk9mZnNldCB0YXBDb25FbmNYID9lbmRPZmZzZXQgKC0gdGFwQ29uRW5jWCkpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKGNvblNwYWNpbmcgKyB0YXBDb25FbmNYICsgKHRhcF9XX08gLyAyKSkpID9lbmRPZmZzZXQgKC0gKGNvblNwYWNpbmcgKyB0YXBDb25FbmNYICsgKHRhcF9XX08gLyAyKSkpID9zcGFjZSBjb25TcGFjaW5nKSkpKSAoVEFQX1JfTyA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHRhcExheWVyID93aWR0aCB0YXBfV19PID9wdHMgbGlzdCgoT3RhcF94MTooVyArIE90YXBfeTApKSAoT3RhcF94MTooLSBPdGFwX3kwKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlIHRhcENvbkVuY1ggP2JlZ2luT2Zmc2V0IHRhcENvbkVuY1ggP2VuZE9mZnNldCB0YXBDb25FbmNYKSkgP3N1YlJlY3QgbGlzdChsaXN0KD9sYXllciBjb25MYXllciA/d2lkdGggY29uV2lkdGggP2xlbmd0aCBjb25MZW5ndGggP2JlZ2luT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19PIC8gMikpKSA/ZW5kT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19PIC8gMikpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgKFRBUF9CX08gPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB0YXBMYXllciA/d2lkdGggdGFwX1dfTyA/cHRzIGxpc3QoKChPdGFwX3gxICsgKHRhcF9XX08gLyAyKSk6KC0gT3RhcF95MCkpICgoLSAoT3RhcF94MCArICh0YXBfV19PIC8gMikpKTooLSBPdGFwX3kwKSkpID9lbmNTdWJQYXRoIGxpc3QobGlzdCg/bGF5ZXIgTTBMYXllciA/ZW5jbG9zdXJlIHRhcENvbkVuY1ggP2JlZ2luT2Zmc2V0ICgtIHRhcENvbkVuY1gpID9lbmRPZmZzZXQgKC0gdGFwQ29uRW5jWCkpKSA/c3ViUmVjdCBsaXN0KGxpc3QoP2xheWVyIGNvbkxheWVyID93aWR0aCBjb25XaWR0aCA/bGVuZ3RoIGNvbkxlbmd0aCA/YmVnaW5PZmZzZXQgKC0gKE0wY29uRW5jWSArIHRhcENvbkVuY1kpKSA/ZW5kT2Zmc2V0ICgtIChjb25TcGFjaW5nICsgdGFwQ29uRW5jWCArICh0YXBfV19PIC8gMikpKSA/c3BhY2UgY29uU3BhY2luZykpKSkgaWYoKElubmVyUmluZyA9PSAiblRhcCIpIHRoZW4gKE9pbXBsYW50ID0gbkltcGxhbnQpIChXZWxsX09fTFQgPSAocm9kQ3JlYXRlUGF0aCA/Y3ZJZCB0Y0NlbGxWaWV3ID9sYXllciB3ZWxsTGF5ZXIgP3dpZHRoICh0YXBfV19PICsgKHRhcEltcEVuYyAqIDIpICsgKG50YXBXZWxsU3BjICogMikpID9wdHMgbGlzdCgoKC0gT3RhcF94MCk6KC0gT3RhcF95MCkpICgoLSBPdGFwX3gwKTooVyArIE90YXBfeTApKSAoT3RhcF94MTooVyArIE90YXBfeTApKSAoT3RhcF94MTooLSBPdGFwX3kwKSkpKSkgKFdlbGxfT19SQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIHdlbGxMYXllciA/d2lkdGggKHRhcF9XX08gKyAodGFwSW1wRW5jICogMikgKyAobnRhcFdlbGxTcGMgKiAyKSkgP3B0cyBsaXN0KCgoT3RhcF94MSArICh0YXBfV19PIC8gMikgKyB0YXBJbXBFbmMgKyBudGFwV2VsbFNwYyk6KC0gT3RhcF95MCkpICgoLSAoT3RhcF94MCArICh0YXBfV19PIC8gMikgKyB0YXBJbXBFbmMgKyBudGFwV2VsbFNwYykpOigtIE90YXBfeTApKSkpKSBlbHNlIChPaW1wbGFudCA9IHBJbXBsYW50KSkgKEltcGxhbnRfTyA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE9pbXBsYW50ID93aWR0aCAodGFwX1dfTyArICh0YXBJbXBFbmMgKiAyKSkgP3B0cyBsaXN0KCgoLSBPdGFwX3gwKTooLSBPdGFwX3kwKSkgKCgtIE90YXBfeDApOihXICsgT3RhcF95MCkpIChPdGFwX3gxOihXICsgT3RhcF95MCkpIChPdGFwX3gxOigtIE90YXBfeTApKSkpKSAoSW1wbGFudF9PQiA9IChyb2RDcmVhdGVQYXRoID9jdklkIHRjQ2VsbFZpZXcgP2xheWVyIE9pbXBsYW50ID93aWR0aCAodGFwX1dfTyArICh0YXBJbXBFbmMgKiAyKSkgP3B0cyBsaXN0KCgoT3RhcF94MSArICh0YXBfV19PIC8gMikgKyB0YXBJbXBFbmMpOigtIE90YXBfeTApKSAoKC0gKE90YXBfeDAgKyAodGFwX1dfTyAvIDIpICsgdGFwSW1wRW5jKSk6KC0gT3RhcF95MCkpKSkpKSkgaWYoKElubmVyUmluZyA9PSAicFRhcCIpIHRoZW4gaWYoRGVlcE53ZWxsIHRoZW4gaWYoKFJpbmdOdW0gPiAxKSB0aGVuIChETlcgPSAocm9kQ3JlYXRlUmVjdCA/bGF5ZXIgZG53ZWxsTGF5ZXIgP2Zyb21PYmogbGlzdChXZWxsX01fTFQgV2VsbF9NX1JCKSA/c2l6ZSAoLSAoKHRhcF9XX00gKyAodGFwSW1wRW5jICogMikgKyAobnRhcFdlbGxTcGMgKiAyKSkgLSBkbndXZWxsRW5jKSkpKSkpKSkAKHRhcExheWVyIHRhcFdpZHRoIHRhcEltcEVuYyBuSW1wbGFudCBwSW1wbGFudCBpbXBsYW50U3BjIHdlbGxMYXllciBud2VsbFdpZHRoIG50YXBXZWxsU3BjIHB0YXBXZWxsU3BjIGRud2VsbExheWVyIGRud2VsbFdpZHRoIGRud1dlbGxFbmMgY29uTGF5ZXIgY29uV2lkdGggY29uTGVuZ3RoIGNvblNwYWNpbmcgdGFwQ29uRW5jWCB0YXBDb25FbmNZIE0wTGF5ZXIgTTBjb25FbmNZIHZpYUxheWVyIHZpYVdpZHRoIHZpYUxlbmd0aCB2aWFTcGFjaW5nIE0xTGF5ZXIgTTF2aWFFbmNZIE0xdmlhRW5jWCBGdWxsV2VsbCBEZWVwTndlbGwgT1JpbmdXaWR0aCBNUmluZ1dpZHRoIElSaW5nV2lkdGggU3BhY2UyMyBTcGFjZTEyIElubmVyUmluZyBSaW5nTnVtIFcgTCB0YXBfVyBUQVBfTF9JIFRBUF9UX0kgVEFQX1JfSSBUQVBfQl9JIGRud0ltcEVuYyBETldfZHVtbXkgRE5XIE5XZWxsX2R1bW15IE5XZWxsIEltcGxhbnRfSSBJbXBsYW50X0lCIFdlbGxfSV9MVCBXZWxsX0lfUkIgdGFwX1dfTSBNdGFwX3gwIE10YXBfeTAgTXRhcF94MSBUQVBfTF9NIFRBUF9UX00gVEFQX1JfTSBUQVBfQl9NIE1pbXBsYW50IFdlbGxfTV9MVCBXZWxsX01fUkIgSW1wbGFudF9NIEltcGxhbnRfTUIgdGFwX1dfTyBPdGFwX3gwIE90YXBfeTAgT3RhcF94MSBUQVBfTF9PIFRBUF9UX08gVEFQX1JfTyBUQVBfQl9PIE9pbXBsYW50IFdlbGxfT19MVCBXZWxsX09fUkIgSW1wbGFudF9PIEltcGxhbnRfT0IpACgoRnVsbFdlbGwgdCkgKERlZXBOd2VsbCBuaWwpIChPUmluZ1dpZHRoIDAuMCkgKE1SaW5nV2lkdGggMC4wKSAoSVJpbmdXaWR0aCAwLjApIChTcGFjZTIzIDAuMCkgKFNwYWNlMTIgMC4wKSAoSW5uZXJSaW5nICIiKSAoUmluZ051bSAwKSAoVyAwKSAoTCAwKSkAKCh0YXBMYXllciAiaGlsaXRlIikgKHRhcFdpZHRoIDAuMCkgKHRhcEltcEVuYyAwLjApIChuSW1wbGFudCBuaWwpIChwSW1wbGFudCBuaWwpIChpbXBsYW50U3BjIDAuMCkgKHdlbGxMYXllciBuaWwpIChud2VsbFdpZHRoIDAuMCkgKG50YXBXZWxsU3BjIDAuMCkgKHB0YXBXZWxsU3BjIDAuMCkgKGRud2VsbExheWVyIG5pbCkgKGRud2VsbFdpZHRoIDAuMCkgKGRud1dlbGxFbmMgMC4wKSAoY29uTGF5ZXIgbmlsKSAoY29uV2lkdGggMC4wKSAoY29uTGVuZ3RoIDAuMCkgKGNvblNwYWNpbmcgMC4wKSAodGFwQ29uRW5jWCAwLjApICh0YXBDb25FbmNZIDAuMCkgKE0wTGF5ZXIgbmlsKSAoTTBjb25FbmNZIDAuMCkgKHZpYUxheWVyIG5pbCkgKHZpYVdpZHRoIDAuMCkgKHZpYUxlbmd0aCAwLjApICh2aWFTcGFjaW5nIDAuMCkgKE0xTGF5ZXIgbmlsKSAoTTF2aWFFbmNZIDAuMCkgKE0xdmlhRW5jWCAwLjApKQAoKGdOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZyIpKSAoZGJDcmVhdGVUZXJtIGdOZXQgImciICJpbnB1dCIpIChzTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInMiKSkgKGRiQ3JlYXRlVGVybSBzTmV0ICJzIiAiaW5wdXRPdXRwdXQiKSAoZE5ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJkIikpIChkYkNyZWF0ZVRlcm0gZE5ldCAiZCIgImlucHV0T3V0cHV0IikgaWYoKHNvdXJjZUZpcnN0ID09ICJUUlVFIikgdGhlbiAoY05ldCA9IHNOZXQpIChuZXRMID0gIlMiKSBlbHNlIChjTmV0ID0gZE5ldCkgKG5ldEwgPSAiRCIpKSB3aGVuKChtIDwgMSkgKG0gPSAxKSkgKHgxQ29vcmQgPSAwLjApICh5MUNvb3JkID0gMC4wKSAobGFzdFgxQ29vcmQgPSAoLSAoMi4wICogKGRlcFhFbmMgKyBkZXBTcGFjZSkpKSkgd2hlbihkZXBMYXllciAoeTFEZXBDb29yZCA9ICh5MUNvb3JkIC0gZGVwWUVuYykpICh5MkRlcENvb3JkID0gKHkxQ29vcmQgKyB3ICsgZGVwWUVuYykpKSB3aGVuKChmaXJzdENvbnRhY3QgIT0gIiIpIChjb250YWN0SWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZmlyc3RDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKHNwcmludGYobmlsICJDYW5ub3QgZmluZC9vcGVuIGZpcnN0Q29udGFjdCBjb250YWN0IGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIHVubGVzcygoY29udGFjdElkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgZmlyc3RDb250YWN0KSkpIGlmKChjTmV0ID09IHNOZXQpIHRoZW4gKG9mZnNldCA9IHNyY09mZnNldCkgZWxzZSAob2Zmc2V0ID0gZHJuT2Zmc2V0KSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgImMwIiAoKC0gb2Zmc2V0KTowKSAiTVkiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHcpKSkpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIGZpcnN0Q29udGFjdCkpKSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgoeDFDb29yZCAtIG9mZnNldCk6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiBmaXJzdENvbnRhY3QpKSkgKGJCb3ggPSBsaXN0KGxpc3QoKC0gKG9mZnNldCArIGNhYXIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBjYWRhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkgbGlzdCgoLSAob2Zmc2V0ICsgY2FhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSBjYWRhZHIoKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgKG1hc3Rlcn4+dG9wTGF5ZXIpIGJCb3gpKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gY05ldCBkYmlkKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGZpcnN0Q29udGFjdCkpKSAoeDFEaWZmQ29vcmQgPSBjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh4MVRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh4MVdlbGxDb29yZCA9ICgtIChvZmZzZXQgKyBtYXgoKHdlbGxFbmNEaWZmICsgeDFEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeDFUYXBDb29yZCkpKSkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxV2VsbENvb3JkID0gKC0gbWF4KCh3ZWxsRW5jRGlmZiArIHkxRGlmZkNvb3JkKSAod2VsbEVuY1RhcCArIHkxVGFwQ29vcmQpKSkpICh5MkRpZmZDb29yZCA9IGNhZGFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpICh5MlRhcENvb3JkID0gaWYoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSBhYnMoY2FkYWRyKChtYXN0ZXJ+PnRhcExheWVyQmJveCkpKSAwLjApKSAoeTJXZWxsQ29vcmQgPSBtYXgoKHdlbGxFbmNEaWZmICsgeTJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeTJUYXBDb29yZCkpKSkgKGRiQ2xvc2UgY29udGFjdElkKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKCh4MUNvb3JkIC0gZGlmZkV4dCk6eTFDb29yZCkgKHgxQ29vcmQ6dykpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGNOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IikgYWNjZXNzRGlyKSB3aGVuKChmaXJzdENvbnRhY3QgPT0gIiIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoLSAoeDFDb29yZCArIChkaWZmRXh0IC8gMi4wKSkpICh5MUNvb3JkICsgKHcgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4od2VsbExheWVyICh4MVdlbGxDb29yZCA9ICgtICh4MUNvb3JkICsgZGlmZkV4dCArIHdlbGxFbmNEaWZmKSkpICh5MVdlbGxDb29yZCA9ICgtICh5MUNvb3JkICsgd2VsbEVuY0RpZmYpKSkgKHkyV2VsbENvb3JkID0gKHkxQ29vcmQgKyB3ICsgd2VsbEVuY0RpZmYpKSkpIHdoZW4oKG0gPiAxKSB3aGVuKChzaGFyZWRTb3VyY2UgPT0gIiIpIGVycm9yKCJNaXNzaW5nIHNoYXJlZCBzb3VyY2UgY29udGFjdCBuYW1lIHByb3BlcnR5IikpIChzaGFyZWRTcmNJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzaGFyZWRTb3VyY2UgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhzaGFyZWRTcmNJZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBzaGFyZWQgc291cmNlIGNvbnRhY3QgY2VsbCBgJXMnIiBzaGFyZWRTb3VyY2UpKSkgdW5sZXNzKChzaGFyZWRTcmNJZH4+aXNQYXJhbUNlbGwpIGVycm9yKHNwcmludGYobmlsICJOYW1lZCBjZWxsIGlzIG5vdCBhIHBjZWxsIGAlcyciIHNoYXJlZFNvdXJjZSkpKSB3aGVuKChzaGFyZWREcmFpbiA9PSAiIikgZXJyb3IoIk1pc3Npbmcgc2hhcmVkIGRyYWluIGNvbnRhY3QgbmFtZSBwcm9wZXJ0eSIpKSAoc2hhcmVkRHJuSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgc2hhcmVkRHJhaW4gInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhzaGFyZWREcm5JZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBzaGFyZWQgZHJhaW4gY29udGFjdCBjZWxsIGAlcyciIHNoYXJlZERyYWluKSkpIHVubGVzcygoc2hhcmVkRHJuSWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBzaGFyZWREcmFpbikpKSkgKGNOZXQgPSBpZigoY05ldCA9PSBzTmV0KSBkTmV0IHNOZXQpKSAobmV0TCA9IGlmKChuZXRMID09ICJTIikgIkQiICJTIikpIGZvcihuIDEgbSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCAtIGdhdGVFeHQpKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcgKyBnYXRlRXh0KSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBnTmV0KSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBnYXRlTGF5ZXIgbGlzdCgoeDFDb29yZDooeTFDb29yZCArIHcpKSAoKHgxQ29vcmQgKyBsKTooeTFDb29yZCArIHcgKyBnYXRlRXh0KSkpKSkgKHBpbmlkID0gKGRiQ3JlYXRlUGluIGdOZXQgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiKSBhY2Nlc3NEaXIpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCh4MUNvb3JkOih5MUNvb3JkIC0gZ2F0ZUV4dCkpICgoeDFDb29yZCArIGwpOnkxQ29vcmQpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgiYm90dG9tIikgYWNjZXNzRGlyKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKCh4MUNvb3JkICsgbCk6KHkxQ29vcmQgKyB3KSkpKSB3aGVuKGRlcExheWVyIGNvbmQoKCgoeDFDb29yZCAtIGxhc3RYMUNvb3JkIC0gKDIuMCAqIGRlcFhFbmMpKSA8IGRlcFNwYWNlKSAoeDFEZXBDb29yZCA9IChsYXN0WDFDb29yZCArIGRlcFhFbmMpKSkgKHQgKHgxRGVwQ29vcmQgPSAoeDFDb29yZCAtIGRlcFhFbmMpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkZXBMYXllciBsaXN0KCh4MURlcENvb3JkOnkxRGVwQ29vcmQpICgoeDFDb29yZCArIGwgKyBkZXBYRW5jKTp5MkRlcENvb3JkKSkpKSAoeDFDb29yZCA9ICh4MUNvb3JkICsgbCkpIHdoZW4oKG4gIT0gbSkgaWYoKGNOZXQgPT0gc05ldCkgdGhlbiAoY29udGFjdElkID0gc2hhcmVkU3JjSWQpIChvZmZzZXQgPSBzcmNPZmZzZXQpIGVsc2UgKGNvbnRhY3RJZCA9IHNoYXJlZERybklkKSAob2Zmc2V0ID0gZHJuT2Zmc2V0KSkgKGluc3QgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgc3ByaW50ZihuaWwgImMlZCIgbikgKChvZmZzZXQgKyB4MUNvb3JkKTp5MUNvb3JkKSAiUjAiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHcpKSkpIHVubGVzcyhpbnN0IGVycm9yKHNwcmludGYobmlsICJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpIHVubGVzcygoKG1hc3Rlcn4+dG9wTGF5ZXIpICYmIChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIGVycm9yKHNwcmludGYobmlsICJNaXNzaW5nIHRvcExheWVyIGFuZC9vciB0b3BMYXllclBpbkJib3ggY2VsbCBwcm9wZXJ0aWVzIGluIGAlcyciIChjb250YWN0SWR+PmNlbGxOYW1lKSkpKSAoYkJveCA9IGxpc3QobGlzdCgoY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpIGNhZGFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSBsaXN0KChjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpIGNhZGFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAobWFzdGVyfj50b3BMYXllcikgYkJveCkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIikgYWNjZXNzRGlyKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKGNhYXIoYkJveCkgKyAoKGNhYWRyKGJCb3gpIC0gY2FhcihiQm94KSkgLyAyLjApKSAoY2FkYXIoYkJveCkgKyAoKGNhZGFkcihiQm94KSAtIGNhZGFyKGJCb3gpKSAvIDIuMCkpKSBuZXRMICJjZW50ZXJDZW50ZXIiICJSMCIgInJvbWFuIiBsYWJlbFdpZHRoKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKG9mZnNldCArIHgxQ29vcmQpOih5MUNvb3JkICsgdykpKSkpIHVubGVzcygobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyBkaWZmTGF5ZXJCYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiAoY29udGFjdElkfj5jZWxsTmFtZSkpKSkgKGxhc3RYMUNvb3JkID0geDFDb29yZCkgKHgxQ29vcmQgPSAoKDIuMCAqIG9mZnNldCkgKyAoeDFDb29yZCArIChjYWFkcigobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkgLSBjYWFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkpKSkgd2hlbigob2Zmc2V0ID4gMWUtMDYpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoKHgxQ29vcmQgLSBvZmZzZXQpOnkxQ29vcmQpICh4MUNvb3JkOih5MUNvb3JkICsgdykpKSkpIHdoZW4od2VsbExheWVyICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY0RpZmYgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB5MVRhcENvb3JkKSkpIHkxV2VsbENvb3JkKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmYgKyB5MkRpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB5MlRhcENvb3JkKSB5MldlbGxDb29yZCkpKSkgKGNOZXQgPSBpZigoY05ldCA9PSBzTmV0KSBkTmV0IHNOZXQpKSAobmV0TCA9IGlmKChuZXRMID09ICJTIikgIkQiICJTIikpKSB3aGVuKChtICE9IDEpIChkYkNsb3NlIHNoYXJlZFNyY0lkKSAoZGJDbG9zZSBzaGFyZWREcm5JZCkpIChjTmV0ID0gaWYoKGNOZXQgPT0gc05ldCkgZE5ldCBzTmV0KSkgKG5ldEwgPSBpZigobmV0TCA9PSAiUyIpICJEIiAiUyIpKSB3aGVuKChsYXN0Q29udGFjdCAhPSAiIikgKGNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBsYXN0Q29udGFjdCAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGNvbnRhY3RJZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBsYXN0Q29udGFjdCBjb250YWN0IGNlbGwgYCVzJyIgbGFzdENvbnRhY3QpKSkgdW5sZXNzKChjb250YWN0SWR+PmlzUGFyYW1DZWxsKSBlcnJvcihzcHJpbnRmKG5pbCAiTmFtZWQgY2VsbCBpcyBub3QgYSBwY2VsbCBgJXMnIiBsYXN0Q29udGFjdCkpKSBpZigoY05ldCA9PSBzTmV0KSB0aGVuIChvZmZzZXQgPSBzcmNPZmZzZXQpIGVsc2UgKG9mZnNldCA9IGRybk9mZnNldCkpIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkIHNwcmludGYobmlsICJjJWQiIG0pICgob2Zmc2V0ICsgeDFDb29yZCk6eTFDb29yZCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImZsb2F0IiB3KSkpKSB1bmxlc3MoaW5zdCBlcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvZiBmaXJzdCBzb3VyY2UgY29udGFjdCIpKSB3aGVuKChvZmZzZXQgPiAxZS0wNikgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgob2Zmc2V0ICsgeDFDb29yZCk6KHkxQ29vcmQgKyB3KSkpKSkgKG1hc3RlciA9IChpbnN0fj5tYXN0ZXIpKSB1bmxlc3MoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSBlcnJvcihzcHJpbnRmKG5pbCAiTWlzc2luZyB0b3BMYXllciBhbmQvb3IgdG9wTGF5ZXJQaW5CYm94IGNlbGwgcHJvcGVydGllcyBpbiBgJXMnIiBsYXN0Q29udGFjdCkpKSAoYkJveCA9IGxpc3QobGlzdCgoY2FhcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpIGNhZGFyKChtYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpKSBsaXN0KChjYWFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSArIHgxQ29vcmQgKyBvZmZzZXQpIGNhZGFkcigobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyAobWFzdGVyfj50b3BMYXllcikgYkJveCkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4obGFiZWxMYXllciAoZGJDcmVhdGVMYWJlbCB0Y0NlbGxWaWV3IGxhYmVsTGF5ZXIgbGlzdCgoY2FhcihiQm94KSArICgoY2FhZHIoYkJveCkgLSBjYWFyKGJCb3gpKSAvIDIuMCkpIChjYWRhcihiQm94KSArICgoY2FkYWRyKGJCb3gpIC0gY2FkYXIoYkJveCkpIC8gMi4wKSkpIG5ldEwgImNlbnRlckNlbnRlciIgIlIwIiAicm9tYW4iIGxhYmVsV2lkdGgpKSB3aGVuKHdlbGxMYXllciB1bmxlc3MoKG1hc3Rlcn4+ZGlmZkxheWVyQmJveCkgZXJyb3Ioc3ByaW50ZihuaWwgIkNhbm5vdCBmaW5kIGRpZmZMYXllckJib3ggcHJvcGVydHkgZm9yIGAlcyciIGxhc3RDb250YWN0KSkpICh5MURpZmZDb29yZCA9IGNhZGFyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkxVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHkxV2VsbENvb3JkID0gbWluKCgtIG1heCgod2VsbEVuY0RpZmYgKyB5MURpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB5MVRhcENvb3JkKSkpIHkxV2VsbENvb3JkKSkgKHkyRGlmZkNvb3JkID0gY2FkYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHkyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWRhZHIoKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkpIDAuMCkpICh5MldlbGxDb29yZCA9IG1heCgod2VsbEVuY0RpZmYgKyB5MkRpZmZDb29yZCkgKHdlbGxFbmNUYXAgKyB5MlRhcENvb3JkKSB5MldlbGxDb29yZCkpICh4MkRpZmZDb29yZCA9IGNhYWRyKChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKHgyVGFwQ29vcmQgPSBpZigobWFzdGVyfj50YXBMYXllckJib3gpIGFicyhjYWFkcigobWFzdGVyfj50YXBMYXllckJib3gpKSkgMC4wKSkgKHgyV2VsbENvb3JkID0gKG9mZnNldCArIHgxQ29vcmQgKyBtYXgoKHdlbGxFbmNEaWZmICsgeDJEaWZmQ29vcmQpICh3ZWxsRW5jVGFwICsgeDJUYXBDb29yZCkpKSkpIChkYkNsb3NlIGNvbnRhY3RJZCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICgoeDFDb29yZCArIGRpZmZFeHQpOih5MUNvb3JkICsgdykpKSkpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBjTmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4oKGxhc3RDb250YWN0ID09ICIiKSB3aGVuKGxhYmVsTGF5ZXIgKGRiQ3JlYXRlTGFiZWwgdGNDZWxsVmlldyBsYWJlbExheWVyIGxpc3QoKHgxQ29vcmQgKyAoZGlmZkV4dCAvIDIuMCkpICh5MUNvb3JkICsgKHcgLyAyLjApKSkgbmV0TCAiY2VudGVyQ2VudGVyIiAiUjAiICJyb21hbiIgbGFiZWxXaWR0aCkpIHdoZW4od2VsbExheWVyICh4MldlbGxDb29yZCA9ICh4MUNvb3JkICsgZGlmZkV4dCArIHdlbGxFbmNEaWZmKSkgKHkyV2VsbENvb3JkID0gbWF4KCh5MUNvb3JkICsgdyArIHdlbGxFbmNEaWZmKSB5MldlbGxDb29yZCkpKSkgd2hlbih3ZWxsTGF5ZXIgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciBsaXN0KGxpc3QoeDFXZWxsQ29vcmQgeTFXZWxsQ29vcmQpIGxpc3QoeDJXZWxsQ29vcmQgeTJXZWxsQ29vcmQpKSkpKQAoZGlmZkxheWVyIGdhdGVMYXllciB3ZWxsTGF5ZXIgZGVwTGF5ZXIgZGlmZkV4dCB3ZWxsRW5jRGlmZiB3ZWxsRW5jVGFwIGRlcFhFbmMgZGVwWUVuYyBkZXBTcGFjZSBsYWJlbExheWVyIGxhYmVsV2lkdGggc291cmNlRmlyc3Qgc2hhcmVkRHJhaW4gc2hhcmVkU291cmNlIGxhc3RDb250YWN0IGZpcnN0Q29udGFjdCBnYXRlRXh0IHNyY09mZnNldCBkcm5PZmZzZXQgbSBsIHcgZ05ldCBzTmV0IGROZXQgY05ldCBuZXRMIHgxQ29vcmQgeTFDb29yZCBsYXN0WDFDb29yZCB5MURlcENvb3JkIHkyRGVwQ29vcmQgY29udGFjdElkIG9mZnNldCBpbnN0IG1hc3RlciBiQm94IGRiaWQgcGluaWQgeDFEaWZmQ29vcmQgeDFUYXBDb29yZCB4MVdlbGxDb29yZCB5MURpZmZDb29yZCB5MVRhcENvb3JkIHkxV2VsbENvb3JkIHkyRGlmZkNvb3JkIHkyVGFwQ29vcmQgeTJXZWxsQ29vcmQgc2hhcmVkU3JjSWQgc2hhcmVkRHJuSWQgbiB4MURlcENvb3JkIHgyRGlmZkNvb3JkIHgyVGFwQ29vcmQgeDJXZWxsQ29vcmQpACgoc291cmNlRmlyc3QgIlRSVUUiKSAoc2hhcmVkRHJhaW4gIiIpIChzaGFyZWRTb3VyY2UgIiIpIChsYXN0Q29udGFjdCAiIikgKGZpcnN0Q29udGFjdCAiIikgKGdhdGVFeHQgMC4wKSAoc3JjT2Zmc2V0IDAuMCkgKGRybk9mZnNldCAwLjApIChtIDEpIChsIDAuMCkgKHcgMC4wKSkAKChkaWZmTGF5ZXIgImhpbGl0ZSIpIChnYXRlTGF5ZXIgIm1hcmtlciIpICh3ZWxsTGF5ZXIgbmlsKSAoZGVwTGF5ZXIgbmlsKSAoZGlmZkV4dCAwLjApICh3ZWxsRW5jRGlmZiAwLjApICh3ZWxsRW5jVGFwIDAuMCkgKGRlcFhFbmMgMC4wKSAoZGVwWUVuYyAwLjApIChkZXBTcGFjZSAwLjApIChsYWJlbExheWVyIGxpc3QoInRleHQiICJkcmF3aW5nIikpIChsYWJlbFdpZHRoIDAuNCkpACh1bmxlc3MoKG1ldG9wTGF5ZXIgPSBudGgobWV0b3BOdW1iZXIgb3B0aW9uT25MYXllcikpIGVycm9yKCJtZXRvcENsYXNzOiAgQ2Fubm90IGZpbmQgbGF5ZXIgZm9yIG9wdGlvbiBudW1iZXIgJWQiIG1ldG9wTnVtYmVyKSkgKG5ldDAgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgIm0wIikpIChkYkNyZWF0ZVRlcm0gbmV0MCAibTAiICJpbnB1dE91dHB1dCIpIChuZXQxID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJtMSIpKSAoZGJDcmVhdGVUZXJtIG5ldDEgIm0xIiAiaW5wdXRPdXRwdXQiKSAobmV0YiA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1ldG9wTGF5ZXIgbGlzdCgoMC4wOjAuMCkgKGw6dykpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXRiKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBwaW5MYXllciBsaXN0KCgoLSBtaW5QaW5XaWR0aCk6MC4wKSAoMC4wOncpKSkpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQwIGRiSWQpKSBzZXRTR3EocGluSWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIpIGFjY2Vzc0RpcikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcGluTGF5ZXIgbGlzdCgobDowLjApICgobCArIG1pblBpbldpZHRoKTp3KSkpKSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0MSBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoInRvcCIgImJvdHRvbSIgInJpZ2h0IikgYWNjZXNzRGlyKSkAKG9wdGlvbk9uTGF5ZXIgcGluTGF5ZXIgbWluUGluV2lkdGggbWV0b3BOdW1iZXIgdyBsIG1ldG9wTGF5ZXIgbmV0MCBuZXQxIG5ldGIgZGJJZCBwaW5JZCkAKChtZXRvcE51bWJlciA4KSAodyAwLjApIChsIDAuMCkpACgob3B0aW9uT25MYXllciAnKG5pbCAnKCJtZXQxIiAib3B0aW9uMSIpICcoIm1ldDEiICJvcHRpb24yIikgJygibWV0MSIgIm9wdGlvbjMiKSAnKCJtZXQxIiAib3B0aW9uNCIpICcoIm1ldDEiICJvcHRpb241IikgJygibWV0MSIgIm9wdGlvbjYiKSAnKCJtZXQxIiAib3B0aW9uNyIpICcoIm1ldDEiICJvcHRpb244IikpKSAocGluTGF5ZXIgJygibWV0MSIgImRyYXdpbmciKSkgKG1pblBpbldpZHRoIDAuMCkpACgoZGJ1cGVydXUgPSAodGNDZWxsVmlld34+REJVUGVyVVUpKSBmb3JlYWNoKHBhcmFtICcodyBsIHhPZmZzZXQgeU9mZnNldCByaW5nV2lkdGggYWRkaXRpb25hbFdpZHRoSW5CZXZlbCBsbEJldmVsTGVuZ3RoIHVsQmV2ZWxMZW5ndGggbHJCZXZlbExlbmd0aCB1ckJldmVsTGVuZ3RoKSB1bmxlc3MoemVyb3AobW9kKGV2YWwocGFyYW0pIGdyaWQpKSBzZXQocGFyYW0gKCgoZXZhbChwYXJhbSkgKyBncmlkKSAvIGdyaWQpICogZ3JpZCkpKSkgd2hlbigoYmV2ZWxUaGVPdXRzaWRlID09ICJGQUxTRSIpIChiZXZlbFRoZU91dHNpZGUgPSBuaWwpKSB3aGVuKChicmVha3VwUG9seWdvbnMgPT0gIkZBTFNFIikgKGJyZWFrdXBQb2x5Z29ucyA9IG5pbCkpIChzMiA9IHNxcnQoMi4wKSkgKGJldmVsSW5zaWRlT2Zmc2V0ID0gKChyaW5nV2lkdGggKiAoczIgLSAxLjApKSArIChzMiAqIGFkZGl0aW9uYWxXaWR0aEluQmV2ZWwpKSkgKGJldmVsSW5zaWRlT2Zmc2V0ID0gZml4KChiZXZlbEluc2lkZU9mZnNldCArIDAuOTk5KSkpIHVubGVzcyh6ZXJvcChtb2QoYmV2ZWxJbnNpZGVPZmZzZXQgZ3JpZCkpIChiZXZlbEluc2lkZU9mZnNldCA9ICgoKGJldmVsSW5zaWRlT2Zmc2V0ICsgZ3JpZCkgLyBncmlkKSAqIGdyaWQpKSkgKGNhbm5vdEJldmVsTGVuZ3RoID0gKHJpbmdXaWR0aCAtIGJldmVsSW5zaWRlT2Zmc2V0KSkgY29uZCgoKGxsQmV2ZWwgPSAobGxCZXZlbExlbmd0aCA+IGNhbm5vdEJldmVsTGVuZ3RoKSkgKGFycmF5U2l6ZSA9IDQpKSAodCAoYXJyYXlTaXplID0gMikpKSBjb25kKCgobHJCZXZlbCA9IChsckJldmVsTGVuZ3RoID4gY2Fubm90QmV2ZWxMZW5ndGgpKSAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDQpKSkgKHQgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyAyKSkpKSBjb25kKCgodXJCZXZlbCA9ICh1ckJldmVsTGVuZ3RoID4gY2Fubm90QmV2ZWxMZW5ndGgpKSAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDQpKSkgKHQgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyAyKSkpKSBjb25kKCgodWxCZXZlbCA9ICh1bEJldmVsTGVuZ3RoID4gY2Fubm90QmV2ZWxMZW5ndGgpKSAoYXJyYXlTaXplID0gKGFycmF5U2l6ZSArIDQpKSkgKHQgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyAyKSkpKSAoaW5zaWRlSW5kZXggPSAoYXJyYXlTaXplIC8gMikpIChvdXRzaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggKyAxKSkgKGFycmF5U2l6ZSA9IChhcnJheVNpemUgKyAzKSkgZGVjbGFyZSh0aGVSaW5nUG9pbnRzW2FycmF5U2l6ZV0pICh0aGVPdXRzaWRlWCA9IHhPZmZzZXQpICh0aGVPdXRzaWRlWSA9IHlPZmZzZXQpIGNvbmQoKCFsbEJldmVsICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgcmluZ1dpZHRoKSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyByaW5nV2lkdGgpKSAoYmVnaW5uaW5nSW5zaWRlUG9pbnQgPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGJlZ2lubmluZ091dHNpZGVQb2ludCA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nT3V0c2lkZVBvaW50KSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0ICh0aGVPdXRzaWRlWSA9ICh0aGVPdXRzaWRlWSArIGxsQmV2ZWxMZW5ndGgpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSArIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyByaW5nV2lkdGgpKSAoYmVnaW5uaW5nSW5zaWRlUG9pbnQgPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGJlZ2lubmluZ091dHNpZGVQb2ludCA9ICh0aGVPdXRzaWRlWDp0aGVPdXRzaWRlWSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgd2hlbihiZXZlbFRoZU91dHNpZGUgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9IGJlZ2lubmluZ091dHNpZGVQb2ludCkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0aGVPdXRzaWRlWCA9ICh0aGVPdXRzaWRlWCArIGxsQmV2ZWxMZW5ndGgpKSAodGhlT3V0c2lkZVkgPSB5T2Zmc2V0KSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCArIGJldmVsSW5zaWRlT2Zmc2V0KSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgKyByaW5nV2lkdGgpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAoeE9mZnNldDp0aGVPdXRzaWRlWSkpIChiZWdpbm5pbmdPdXRzaWRlUG9pbnQgPSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCghbHJCZXZlbCAodGhlT3V0c2lkZVggPSAoeE9mZnNldCArIGwpKSAodGhlSW5zaWRlWCA9ICh0aGVPdXRzaWRlWCAtIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVggPSAoeE9mZnNldCArIGwgKyAoLSBsckJldmVsTGVuZ3RoKSkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIHdoZW4oYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHRoZU91dHNpZGVYID0gKHRoZU91dHNpZGVYICsgbHJCZXZlbExlbmd0aCkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYIC0gcmluZ1dpZHRoKSkgKHRoZU91dHNpZGVZID0gKHRoZU91dHNpZGVZICsgbHJCZXZlbExlbmd0aCkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZICsgYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIGNvbmQoKGJldmVsVGhlT3V0c2lkZSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkpICh0ICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6eU9mZnNldCkpKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKCghdXJCZXZlbCAodGhlT3V0c2lkZVkgPSAoeU9mZnNldCArIHcpKSAodGhlSW5zaWRlWSA9ICh0aGVPdXRzaWRlWSAtIHJpbmdXaWR0aCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gKHRoZU91dHNpZGVYOnRoZU91dHNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAodGhlT3V0c2lkZVkgPSAoeU9mZnNldCArIHcgKyAoLSB1ckJldmVsTGVuZ3RoKSkpICh0aGVJbnNpZGVZID0gKHRoZU91dHNpZGVZIC0gYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIHdoZW4oYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHRoZU91dHNpZGVZID0gKHlPZmZzZXQgKyB3KSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgLSByaW5nV2lkdGgpKSAodGhlT3V0c2lkZVggPSAodGhlT3V0c2lkZVggLSB1ckJldmVsTGVuZ3RoKSkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggLSBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSkgKHQgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICgoeE9mZnNldCArIGwpOnRoZU91dHNpZGVZKSkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKCF1bEJldmVsICh0aGVPdXRzaWRlWCA9IHhPZmZzZXQpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgcmluZ1dpZHRoKSkgKHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdID0gKHRoZUluc2lkZVg6dGhlSW5zaWRlWSkpICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpICh0ICh0aGVPdXRzaWRlWCA9ICh4T2Zmc2V0ICsgdWxCZXZlbExlbmd0aCkpICh0aGVJbnNpZGVYID0gKHRoZU91dHNpZGVYICsgYmV2ZWxJbnNpZGVPZmZzZXQpKSAodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gPSAodGhlSW5zaWRlWDp0aGVJbnNpZGVZKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIHdoZW4oYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkgKHRoZU91dHNpZGVYID0geE9mZnNldCkgKHRoZUluc2lkZVggPSAodGhlT3V0c2lkZVggKyByaW5nV2lkdGgpKSAodGhlT3V0c2lkZVkgPSAodGhlT3V0c2lkZVkgLSB1bEJldmVsTGVuZ3RoKSkgKHRoZUluc2lkZVkgPSAodGhlT3V0c2lkZVkgLSBiZXZlbEluc2lkZU9mZnNldCkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9ICh0aGVJbnNpZGVYOnRoZUluc2lkZVkpKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlICh0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0gPSAodGhlT3V0c2lkZVg6dGhlT3V0c2lkZVkpKSkgKHQgKHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSA9ICh0aGVPdXRzaWRlWDooeU9mZnNldCArIHcpKSkpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpICh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSA9IGJlZ2lubmluZ0luc2lkZVBvaW50KSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nT3V0c2lkZVBvaW50KSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSAodGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdID0gYmVnaW5uaW5nSW5zaWRlUG9pbnQpIGNvbmQoKGJyZWFrdXBQb2x5Z29ucyAoaW5zaWRlSW5kZXggPSAoKGFycmF5U2l6ZSAtIDMpIC8gMikpIChvdXRzaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggKyAxKSkgY29uZCgoYmV2ZWxUaGVPdXRzaWRlIGNvbmQoKGxsQmV2ZWwgKHJpbmdMaXN0MSA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDEgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSBjb25kKChsckJldmVsIChyaW5nTGlzdDIgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMikpKSAodCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodXJCZXZlbCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDIpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDIpKSkgKHQgKHJpbmdMaXN0MyA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMSldIHRoZVJpbmdQb2ludHNbb3V0c2lkZUluZGV4XSkpIChpbnNpZGVJbmRleCA9IChpbnNpZGVJbmRleCAtIDEpKSAob3V0c2lkZUluZGV4ID0gKG91dHNpZGVJbmRleCArIDEpKSkpIGNvbmQoKHVsQmV2ZWwgKHJpbmdMaXN0NCA9IGxpc3QodGhlUmluZ1BvaW50c1tpbnNpZGVJbmRleF0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAxKV0gdGhlUmluZ1BvaW50c1soaW5zaWRlSW5kZXggLSAyKV0gdGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4ICsgMildIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAyKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAyKSkpICh0IChyaW5nTGlzdDQgPSBsaXN0KHRoZVJpbmdQb2ludHNbaW5zaWRlSW5kZXhdIHRoZVJpbmdQb2ludHNbKGluc2lkZUluZGV4IC0gMSldIHRoZVJpbmdQb2ludHNbKG91dHNpZGVJbmRleCArIDEpXSB0aGVSaW5nUG9pbnRzW291dHNpZGVJbmRleF0pKSAoaW5zaWRlSW5kZXggPSAoaW5zaWRlSW5kZXggLSAxKSkgKG91dHNpZGVJbmRleCA9IChvdXRzaWRlSW5kZXggKyAxKSkpKSkgKHQgY29uZCgobGxCZXZlbCAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAocmluZ0xpc3QxID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgobHJCZXZlbCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAocmluZ0xpc3QyID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodXJCZXZlbCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAocmluZ0xpc3QzID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkgY29uZCgodWxCZXZlbCAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDIpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMikpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSAodCAocmluZ0xpc3Q0ID0gbGlzdCh0aGVSaW5nUG9pbnRzW2luc2lkZUluZGV4XSB0aGVSaW5nUG9pbnRzWyhpbnNpZGVJbmRleCAtIDEpXSB0aGVSaW5nUG9pbnRzWyhvdXRzaWRlSW5kZXggKyAxKV0gdGhlUmluZ1BvaW50c1tvdXRzaWRlSW5kZXhdKSkgKGluc2lkZUluZGV4ID0gKGluc2lkZUluZGV4IC0gMSkpIChvdXRzaWRlSW5kZXggPSAob3V0c2lkZUluZGV4ICsgMSkpKSkpKSBmb3JlYWNoKHBvaW50IHJpbmdMaXN0MSAodGVtcFJpbmdMaXN0ID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSB0ZW1wUmluZ0xpc3QpKSkgKHJpbmdMaXN0MSA9IHRlbXBSaW5nTGlzdCkgKHRlbXBSaW5nTGlzdCA9IG5pbCkgZm9yZWFjaChwb2ludCByaW5nTGlzdDIgKHRlbXBSaW5nTGlzdCA9IGNvbnMoKChjYXIocG9pbnQpIC8gZGJ1cGVydXUpOihjYWRyKHBvaW50KSAvIGRidXBlcnV1KSkgdGVtcFJpbmdMaXN0KSkpIChyaW5nTGlzdDIgPSB0ZW1wUmluZ0xpc3QpICh0ZW1wUmluZ0xpc3QgPSBuaWwpIGZvcmVhY2gocG9pbnQgcmluZ0xpc3QzICh0ZW1wUmluZ0xpc3QgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHRlbXBSaW5nTGlzdCkpKSAocmluZ0xpc3QzID0gdGVtcFJpbmdMaXN0KSAodGVtcFJpbmdMaXN0ID0gbmlsKSBmb3JlYWNoKHBvaW50IHJpbmdMaXN0NCAodGVtcFJpbmdMaXN0ID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSB0ZW1wUmluZ0xpc3QpKSkgKHJpbmdMaXN0NCA9IHRlbXBSaW5nTGlzdCkgKHRlbXBSaW5nTGlzdCA9IG5pbCkgd2hlbihyaW5nTGF5ZXIgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICIiICJpbnB1dE91dHB1dCIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDEpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgcmluZ0xheWVyIHJpbmdMaXN0MikpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyByaW5nTGF5ZXIgcmluZ0xpc3QzKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCBuZXQpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdDQpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50czEiICJsaXN0IiByaW5nTGlzdDEpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50czIiICJsaXN0IiByaW5nTGlzdDIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50czMiICJsaXN0IiByaW5nTGlzdDMpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmluZ1BvaW50czQiICJsaXN0IiByaW5nTGlzdDQpKSAodCAocmluZ0xpc3QgPSBuaWwpIGZvcihpIDEgb3V0c2lkZUluZGV4IChyaW5nTGlzdCA9IGNvbnModGhlUmluZ1BvaW50c1sob3V0c2lkZUluZGV4IC0gaSldIHJpbmdMaXN0KSkpIGZvcmVhY2gocG9pbnQgcmluZ0xpc3QgKHRlbXBSaW5nTGlzdCA9IGNvbnMoKChjYXIocG9pbnQpIC8gZGJ1cGVydXUpOihjYWRyKHBvaW50KSAvIGRidXBlcnV1KSkgdGVtcFJpbmdMaXN0KSkpIChyaW5nTGlzdCA9IHRlbXBSaW5nTGlzdCkgKHRlbXBSaW5nTGlzdCA9IG5pbCkgd2hlbihyaW5nTGF5ZXIgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICIiICJpbnB1dE91dHB1dCIpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHJpbmdMYXllciByaW5nTGlzdCkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJyaW5nUG9pbnRzIiAibGlzdCIgcmluZ0xpc3QpKSkpACh3IGwgeE9mZnNldCB5T2Zmc2V0IHJpbmdMYXllciByaW5nV2lkdGggYWRkaXRpb25hbFdpZHRoSW5CZXZlbCBsbEJldmVsTGVuZ3RoIHVsQmV2ZWxMZW5ndGggbHJCZXZlbExlbmd0aCB1ckJldmVsTGVuZ3RoIGJldmVsVGhlT3V0c2lkZSBncmlkIGJyZWFrdXBQb2x5Z29ucyBkYnVwZXJ1dSBwYXJhbSBzMiBiZXZlbEluc2lkZU9mZnNldCBjYW5ub3RCZXZlbExlbmd0aCBsbEJldmVsIGFycmF5U2l6ZSBsckJldmVsIHVyQmV2ZWwgdWxCZXZlbCBpbnNpZGVJbmRleCBvdXRzaWRlSW5kZXggdGhlUmluZ1BvaW50cyB0aGVPdXRzaWRlWCB0aGVPdXRzaWRlWSB0aGVJbnNpZGVYIHRoZUluc2lkZVkgYmVnaW5uaW5nSW5zaWRlUG9pbnQgYmVnaW5uaW5nT3V0c2lkZVBvaW50IHJpbmdMaXN0MSByaW5nTGlzdDIgcmluZ0xpc3QzIHJpbmdMaXN0NCBwb2ludCB0ZW1wUmluZ0xpc3QgbmV0IGRiaWQgcmluZ0xpc3QgaSkAKCh3IDUwMDAwKSAobCA1MDAwMCkgKHhPZmZzZXQgMCkgKHlPZmZzZXQgMCkgKHJpbmdMYXllciBsaXN0KCJoaWxpdGUiICJkcmF3aW5nIikpIChyaW5nV2lkdGggNDAwMCkgKGFkZGl0aW9uYWxXaWR0aEluQmV2ZWwgMCkgKGxsQmV2ZWxMZW5ndGggMCkgKHVsQmV2ZWxMZW5ndGggMCkgKGxyQmV2ZWxMZW5ndGggMCkgKHVyQmV2ZWxMZW5ndGggMCkgKGJldmVsVGhlT3V0c2lkZSAiRkFMU0UiKSAoZ3JpZCA1MCkgKGJyZWFrdXBQb2x5Z29ucyAiRkFMU0UiKSkAKGlmKChsb1NoaWVsZE9mZnNldCA8PSAwKSB0aGVuIGVycm9yKCJsb1NoaWVsZE9mZnNldCBjYW4gbm90IGJlIHNtYWxsZXIgb3IgZXF1YWwgdG8gemVybyIpKSBpZigodXBTaGllbGRPZmZzZXQgPD0gMCkgdGhlbiBlcnJvcigidXBTaGllbGRPZmZzZXQgY2FuIG5vdCBiZSBzbWFsbGVyIG9yIGVxdWFsIHRvIHplcm8iKSkgaWYoKCh1cHBlclNoaWVsZCA9PSB0KSB8fCAodXBwZXJTaGllbGQgPT0gIlRSVUUiKSkgdGhlbiAodXBwZXJTaGllbGQgPSB0KSBlbHNlICh1cHBlclNoaWVsZCA9IG5pbCkpIGlmKCgobG93ZXJTaGllbGQgPT0gdCkgfHwgKGxvd2VyU2hpZWxkID09ICJUUlVFIikpIHRoZW4gKGxvd2VyU2hpZWxkID0gdCkgZWxzZSAobG93ZXJTaGllbGQgPSBuaWwpKSB3aGVuKHN0cmluZ3AoZnVzZU9uTGF5ZXIpIChmdXNlT25MYXllciA9IGxpc3QoZnVzZU9uTGF5ZXIgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChwaW5MYXllcikgKHBpbkxheWVyID0gbGlzdChwaW5MYXllciAiZHJhd2luZyIpKSkgKG5ldDAgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgImYwIikpIChuZXQxID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJmMSIpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKGRlbHRhWDEgPSAwLjApIChkZWx0YVkxID0gMC4wKSAob3JpZW50ID0gIlIwIikgd2hlbigoIWNvbnRhY3ROYW1lIHx8IChjb250YWN0TmFtZSA9PSAiIikpIGVycm9yKCJDb250YWN0IG5hbWUgc2hvdWxkIGFsd2F5cyBiZSBzcGVjaWZpZWRcbiIpKSB3aGVuKChjb250YWN0TmFtZSAmJiAoY29udGFjdE5hbWUgIT0gIiIpKSAoY29udGFjdElkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIGNvbnRhY3ROYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MoY29udGFjdElkIGVycm9yKCJDYW5ub3QgZmluZC9vcGVuIGNvbnRhY3QgY29udGFjdCBjZWxsIGAlcydcbiIgY29udGFjdE5hbWUpKSkgKGluc3QwID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJmMCIgKHlPZmZzZXQ6MC4wKSAiUjAiIDEpKSB1bmxlc3MoaW5zdDAgZXJyb3IoIkNhbm5vdCBjcmVhdGUgYW4gaW5zdCBvZiBgJXMnXG4iIGNvbnRhY3ROYW1lKSkgKG1hc3RlciA9IChpbnN0MH4+bWFzdGVyKSkgaWYoKChtYXN0ZXJ+PnRvcExheWVyKSAmJiAobWFzdGVyfj5ib3RMYXllcikgJiYgKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSAmJiAobWFzdGVyfj5ib3RMYXllckJib3gpKSB0aGVuIChib3RMYXllciA9IChtYXN0ZXJ+PmJvdExheWVyKSkgKHRvcExheWVyID0gKG1hc3Rlcn4+dG9wTGF5ZXIpKSAoYm90QmJveCA9IChtYXN0ZXJ+PmJvdExheWVyQmJveCkpICh0b3BCYm94ID0gKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgZWxzZSBlcnJvcigiQ2Fubm90IGZpbmQgdGhlIHByb3BlciBtYXN0ZXIgcHJvcGVydGllcyBvbiB0aGUgY29udGFjdFxuIikpIHdoZW4oKCFwaW5MYXllciB8fCAocGluTGF5ZXIgPT0gIiIpKSBlcnJvcigiUGlubGF5ZXIgaGFzIG5vdCBiZWVuIGRlZmluZWRcbiIpKSBjb25kKCgoKGZ1c2VPbkxheWVyID09IGJvdExheWVyKSAmJiAoKGNhYXIoKG1hc3Rlcn4+YkJveCkpIC0gY2Fhcihib3RCYm94KSkgPCAxZS0wNikpIChkZWx0YVkxID0gKC0gY2Fhcihib3RCYm94KSkpIChvcmllbnQgPSAiUjkwIikgKGRlbHRhWDEgPSAoY2FkYWRyKChtYXN0ZXJ+PmJCb3gpKSAtIGNhZGFyKChtYXN0ZXJ+PmJCb3gpKSkpKSAoKChmdXNlT25MYXllciA9PSB0b3BMYXllcikgJiYgKChjYWFyKChtYXN0ZXJ+PmJCb3gpKSAtIGNhYXIodG9wQmJveCkpIDwgMWUtMDYpKSAoZGVsdGFZMSA9ICgtICgoKGNhYWRyKChtYXN0ZXJ+PmJCb3gpKSAtIGNhYXIoKG1hc3Rlcn4+YkJveCkpKSAtIHJ3KSAvIDIuMCkpKSAob3JpZW50ID0gIlI5MCIpIChkZWx0YVgxID0gKGNhZGFkcigobWFzdGVyfj5iQm94KSkgLSBjYWRhcigobWFzdGVyfj5iQm94KSkpKSkpIChkYk1vdmVGaWcgaW5zdDAgbmlsIGxpc3QoKDAuMDpkZWx0YVkxKSBvcmllbnQpKSAoaW5zdDEgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyBjb250YWN0SWQgImYxIiAoKHJsICsgZGVsdGFYMSk6KGRlbHRhWTEgKyB5T2Zmc2V0KSkgb3JpZW50IDEpKSB1bmxlc3MoaW5zdDEgZXJyb3IoIkNhbm5vdCBjcmVhdGUgYW4gaW5zdCBvZiBgJXMnXG4iIGNvbnRhY3ROYW1lKSkgKGJCb3ggPSAobWFzdGVyfj5iQm94KSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcGluTGF5ZXIgKG1hc3Rlcn4+YkJveCkpKSAoZGJNb3ZlRmlnIGRiaWQgbmlsIGxpc3QoKDAuMDpkZWx0YVkxKSBvcmllbnQpKSAoZGJDcmVhdGVQaW4gbmV0MCBkYmlkKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBwaW5MYXllciAobWFzdGVyfj5iQm94KSkpIChkYk1vdmVGaWcgZGJpZCBuaWwgbGlzdCgoKHJsICsgZGVsdGFYMSk6ZGVsdGFZMSkgb3JpZW50KSkgKGRiQ3JlYXRlUGluIG5ldDEgZGJpZCkgKGZ1c2VYMSA9ICgtIGNhZGFkcigobWFzdGVyfj5iQm94KSkpKSAoZnVzZVgyID0gKHJsICsgY2FkYWRyKChtYXN0ZXJ+PmJCb3gpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGZ1c2VPbkxheWVyIGxpc3QoKGZ1c2VYMTp5T2Zmc2V0KSAoZnVzZVgyOihydyArIHlPZmZzZXQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgd2hlbih1cHBlclNoaWVsZCAodXBTaGllbGRYMSA9ICgocmwgLSBzaGllbGRMZW5ndGgpIC8gMikpICh1cFNoaWVsZFkxID0gKHlPZmZzZXQgKyAocncgLyAyKSArIHVwU2hpZWxkT2Zmc2V0KSkgKHVwU2hpZWxkWDIgPSAoKChybCAtIHNoaWVsZExlbmd0aCkgLyAyKSArIHNoaWVsZExlbmd0aCkpICh1cFNoaWVsZFkyID0gKHVwU2hpZWxkWTEgKyBzaGllbGRXaWR0aCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGZ1c2VPbkxheWVyIGxpc3QoKHVwU2hpZWxkWDE6dXBTaGllbGRZMSkgKHVwU2hpZWxkWDI6dXBTaGllbGRZMikpKSkpIHdoZW4obG93ZXJTaGllbGQgKGxvU2hpZWxkWDEgPSAoKHJsIC0gc2hpZWxkTGVuZ3RoKSAvIDIpKSAobG9TaGllbGRZMSA9ICh5T2Zmc2V0IC0gKGxvU2hpZWxkT2Zmc2V0IC0gKHJ3IC8gMikpKSkgKGxvU2hpZWxkWDIgPSAoKChybCAtIHNoaWVsZExlbmd0aCkgLyAyKSArIHNoaWVsZExlbmd0aCkpIChsb1NoaWVsZFkyID0gKGxvU2hpZWxkWTEgLSBzaGllbGRXaWR0aCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGZ1c2VPbkxheWVyIGxpc3QoKGxvU2hpZWxkWDE6bG9TaGllbGRZMSkgKGxvU2hpZWxkWDI6bG9TaGllbGRZMikpKSkpIHdoZW4oZnVzZUxheWVyIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGZ1c2VMYXllciBsaXN0KCgwLjA6eU9mZnNldCkgKHJsOihydyArIHlPZmZzZXQpKSkpKSkgKHgxQ29vcmQgPSAoKHJsIC0gdGFyZ1dpZHRoKSAvIDIuMCkpICh5MUNvb3JkID0gKCgocncgLSB0YXJnV2lkdGgpIC8gMi4wKSArIHlPZmZzZXQpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXJnTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoKHgxQ29vcmQgKyB0YXJnV2lkdGgpOih5MUNvb3JkICsgdGFyZ1dpZHRoKSkpKSkgd2hlbihmdXNlUGFkTGF5ZXIgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGZ1c2VQYWRMYXllciBsaXN0KCgoKHJsIC8gMi4wKSAtIHBhZFhFbmNDZW50ZXIpOigoLSBwYWRZRW5jRnVzZSkgKyB5T2Zmc2V0KSkgKCgocmwgLyAyLjApICsgcGFkWEVuY0NlbnRlcik6KHJ3ICsgcGFkWUVuY0Z1c2UgKyB5T2Zmc2V0KSkpKSkpAChmdXNlT25MYXllciBmdXNlTGF5ZXIgdGFyZ0xheWVyIHRhcmdXaWR0aCBmdXNlUGFkTGF5ZXIgcGFkWEVuY0NlbnRlciBwYWRZRW5jRnVzZSBjb250YWN0TmFtZSBwaW5MYXllciBzaGllbGRMZW5ndGggc2hpZWxkV2lkdGggbG9TaGllbGRPZmZzZXQgbG93ZXJTaGllbGQgdXBTaGllbGRPZmZzZXQgdXBwZXJTaGllbGQgcncgcmwgeU9mZnNldCBuZXQwIG5ldDEgbmV0IGRlbHRhWDEgZGVsdGFZMSBvcmllbnQgY29udGFjdElkIGluc3QwIG1hc3RlciBib3RMYXllciB0b3BMYXllciBib3RCYm94IHRvcEJib3ggaW5zdDEgYkJveCBkYmlkIGZ1c2VYMSBmdXNlWDIgZGJJZCB1cFNoaWVsZFgxIHVwU2hpZWxkWTEgdXBTaGllbGRYMiB1cFNoaWVsZFkyIGxvU2hpZWxkWDEgbG9TaGllbGRZMSBsb1NoaWVsZFgyIGxvU2hpZWxkWTIgeDFDb29yZCB5MUNvb3JkKQAoKGxvU2hpZWxkT2Zmc2V0IDAuMCkgKGxvd2VyU2hpZWxkICJGQUxTRSIpICh1cFNoaWVsZE9mZnNldCAwLjApICh1cHBlclNoaWVsZCAiRkFMU0UiKSAocncgMC4wKSAocmwgMC4wKSAoeU9mZnNldCAwLjApKQAoKGZ1c2VPbkxheWVyICJoaWxpdGUiKSAoZnVzZUxheWVyIGxpc3QoImZ1c2UiICJkcmF3aW5nIikpICh0YXJnTGF5ZXIgbGlzdCgidGFyZ2V0IiAiZHJhd2luZyIpKSAodGFyZ1dpZHRoIDAuMikgKGZ1c2VQYWRMYXllciBuaWwpIChwYWRYRW5jQ2VudGVyIDAuMCkgKHBhZFlFbmNGdXNlIDAuMCkgKGNvbnRhY3ROYW1lIG5pbCkgKHBpbkxheWVyIG5pbCkgKHNoaWVsZExlbmd0aCAwLjApIChzaGllbGRXaWR0aCAwLjApKQAoZGVjbGFyZSh0aGVQb2ludHNbMjhdKSAoeDEgPSAoeE9mZnNldCArICgtIGZsYXJlQW1vdW50X2luKSArICgtIGZsYXJlQW1vdW50X291dCkpKSAoeDIgPSB4T2Zmc2V0KSAoeDMgPSAoeDEgKyBmbGFyZUFtb3VudF9pbiArIGZsYXJlQW1vdW50X291dCArIGdhdGVUb0dhdGVTcGFjZSArIGwpKSAoeDFEZWx0YSA9IChmbGFyZUFtb3VudF9pbiArIGZsYXJlQW1vdW50X291dCArIGwpKSAoeDJEZWx0YSA9IGwpICh4M0RlbHRhID0gKGZsYXJlQW1vdW50X2luICsgZmxhcmVBbW91bnRfb3V0ICsgbCkpICh0aGVZID0gKCgtIGZsYXJlQW1vdW50X291dCkgKyAoLSBmbGFyZUV4dGVuc2lvbikpKSAodGhlUG9pbnRzWzBdID0gKHgxOnRoZVkpKSAodGhlUG9pbnRzWzddID0gKCh4MSArIHgxRGVsdGEpOnRoZVkpKSAodGhlUG9pbnRzWzhdID0gKHgzOnRoZVkpKSAodGhlUG9pbnRzWzE1XSA9ICgoeDMgKyB4M0RlbHRhKTp0aGVZKSkgKHRoZVkgPSAoLSBmbGFyZUFtb3VudF9vdXQpKSAodGhlUG9pbnRzWzFdID0gKHgxOnRoZVkpKSAodGhlUG9pbnRzWzE0XSA9ICgoeDMgKyB4M0RlbHRhKTp0aGVZKSkgKHRoZVkgPSBmbGFyZUFtb3VudF9pbikgKHRoZVBvaW50c1syXSA9ICh4Mjp0aGVZKSkgKHRoZVBvaW50c1sxM10gPSAoKHgzICsgeDJEZWx0YSk6dGhlWSkpICh0aGVQb2ludHNbMTZdID0gKHgyOih0aGVZICsgKC0gZmxhcmVBbW91bnRfaW4pKSkpICh0aGVQb2ludHNbMTddID0gKCh4MiArIHgyRGVsdGEpOih0aGVZICsgKC0gZmxhcmVBbW91bnRfaW4pKSkpICh0aGVQb2ludHNbMThdID0gKHgzOih0aGVZICsgKC0gZmxhcmVBbW91bnRfaW4pKSkpICh0aGVQb2ludHNbMTldID0gKCh4MyArIHgyRGVsdGEpOih0aGVZICsgKC0gZmxhcmVBbW91bnRfaW4pKSkpICh0aGVQb2ludHNbMjZdID0gKCh4MSArIHgxRGVsdGEpOnRoZVkpKSAodGhlUG9pbnRzWzI3XSA9ICh4Mzp0aGVZKSkgKHRoZVkgPSAodyArICgtIGZsYXJlQW1vdW50X2luKSkpICh0aGVQb2ludHNbM10gPSAoeDI6dGhlWSkpICh0aGVQb2ludHNbMTJdID0gKCh4MyArIHgyRGVsdGEpOnRoZVkpKSAodGhlUG9pbnRzWzIzXSA9ICh4MjoodGhlWSArIGZsYXJlQW1vdW50X2luKSkpICh0aGVQb2ludHNbMjJdID0gKCh4MiArIHgyRGVsdGEpOih0aGVZICsgZmxhcmVBbW91bnRfaW4pKSkgKHRoZVBvaW50c1syMV0gPSAoeDM6KHRoZVkgKyBmbGFyZUFtb3VudF9pbikpKSAodGhlUG9pbnRzWzIwXSA9ICgoeDMgKyB4MkRlbHRhKToodGhlWSArIGZsYXJlQW1vdW50X2luKSkpICh0aGVQb2ludHNbMjRdID0gKCh4MSArIHgxRGVsdGEpOnRoZVkpKSAodGhlUG9pbnRzWzI1XSA9ICh4Mzp0aGVZKSkgKHRoZVkgPSAodyArIGZsYXJlQW1vdW50X291dCkpICh0aGVQb2ludHNbNF0gPSAoeDE6dGhlWSkpICh0aGVQb2ludHNbMTFdID0gKCh4MyArIHgzRGVsdGEpOnRoZVkpKSAodGhlWSA9ICh3ICsgZmxhcmVBbW91bnRfb3V0ICsgZmxhcmVFeHRlbnNpb24pKSAodGhlUG9pbnRzWzVdID0gKHgxOnRoZVkpKSAodGhlUG9pbnRzWzZdID0gKCh4MSArIHgxRGVsdGEpOnRoZVkpKSAodGhlUG9pbnRzWzldID0gKHgzOnRoZVkpKSAodGhlUG9pbnRzWzEwXSA9ICgoeDMgKyB4M0RlbHRhKTp0aGVZKSkgKHBvaW50TGlzdDEgPSBuaWwpIChwb2ludExpc3QyID0gbmlsKSBmb3IoaSAxIDggKHBvaW50TGlzdDEgPSBjb25zKHRoZVBvaW50c1soOCAtIGkpXSBwb2ludExpc3QxKSkgKHBvaW50TGlzdDIgPSBjb25zKHRoZVBvaW50c1soMTYgLSBpKV0gcG9pbnRMaXN0MikpKSB3aGVuKGdhdGVMYXllciAoZGJpZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBnYXRlTGF5ZXIgcG9pbnRMaXN0MSkpIChkYmlkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGdhdGVMYXllciBwb2ludExpc3QyKSkpIHdoZW4oZ2F0ZVJlY29nbml0aW9uTGF5ZXIgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZVJlY29nbml0aW9uTGF5ZXIgbGlzdCh0aGVQb2ludHNbMTZdIHRoZVBvaW50c1syMl0pKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZVJlY29nbml0aW9uTGF5ZXIgbGlzdCh0aGVQb2ludHNbMThdIHRoZVBvaW50c1syMF0pKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiZ2F0ZVBvaW50cyIgImxpc3QiIGFwcGVuZChwb2ludExpc3QxIHBvaW50TGlzdDIpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInJnYXRlUG9pbnRzIiAibGlzdCIgbGlzdCh0aGVQb2ludHNbMTZdIHRoZVBvaW50c1syMl0gdGhlUG9pbnRzWzE4XSB0aGVQb2ludHNbMjBdKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJub2ZsYXJlUG9pbnRzIiAibGlzdCIgbGlzdCh0aGVQb2ludHNbM10gdGhlUG9pbnRzWzI2XSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAibm9mbGFyZVBvaW50czEiICJsaXN0IiBsaXN0KHRoZVBvaW50c1syNV0gdGhlUG9pbnRzWzEzXSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wRmxhcmVQb2ludHMiICJsaXN0IiBsaXN0KHRoZVBvaW50c1szXSB0aGVQb2ludHNbNF0gdGhlUG9pbnRzWzVdIHRoZVBvaW50c1s2XSB0aGVQb2ludHNbMjRdKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BGbGFyZVBvaW50czEiICJsaXN0IiBsaXN0KHRoZVBvaW50c1syNV0gdGhlUG9pbnRzWzldIHRoZVBvaW50c1sxMF0gdGhlUG9pbnRzWzExXSB0aGVQb2ludHNbMTJdKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3R0b21GbGFyZVBvaW50cyIgImxpc3QiIGxpc3QodGhlUG9pbnRzWzBdIHRoZVBvaW50c1sxXSB0aGVQb2ludHNbMl0gdGhlUG9pbnRzWzI2XSB0aGVQb2ludHNbN10pKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJvdHRvbUZsYXJlUG9pbnRzMSIgImxpc3QiIGxpc3QodGhlUG9pbnRzWzhdIHRoZVBvaW50c1syN10gdGhlUG9pbnRzWzEzXSB0aGVQb2ludHNbMTRdIHRoZVBvaW50c1sxNV0pKSkAKGdhdGVMYXllciBnYXRlUmVjb2duaXRpb25MYXllciB3IGwgZmxhcmVBbW91bnRfaW4gZmxhcmVBbW91bnRfb3V0IGZsYXJlRXh0ZW5zaW9uIHhPZmZzZXQgZ2F0ZVRvR2F0ZVNwYWNlIHRoZVBvaW50cyB4MSB4MiB4MyB4MURlbHRhIHgyRGVsdGEgeDNEZWx0YSB0aGVZIHBvaW50TGlzdDEgcG9pbnRMaXN0MiBpIGRiaWQpACgoZ2F0ZUxheWVyIGxpc3QoInBvbHkiICJkcmF3aW5nIikpIChnYXRlUmVjb2duaXRpb25MYXllciBsaXN0KCJwb2x5IiAiZ2F0ZSIpKSAodyAxMC4wKSAobCAxLjApIChmbGFyZUFtb3VudF9pbiAxLjApIChmbGFyZUFtb3VudF9vdXQgMC4zKSAoZmxhcmVFeHRlbnNpb24gMi4wKSAoeE9mZnNldCAwLjApIChnYXRlVG9HYXRlU3BhY2UgMC42KSkAKGRlY2xhcmUodGhlUG9pbnRzWzE2XSkgKHgxID0gKHhPZmZzZXQgKyAoLSBmbGFyZUFtb3VudF9pbikgKyAoLSBmbGFyZUFtb3VudCkpKSAoeDIgPSB4T2Zmc2V0KSAoeDFEZWx0YSA9ICgoMi4wICogKGZsYXJlQW1vdW50X2luICsgZmxhcmVBbW91bnQpKSArIGwpKSAoeDJEZWx0YSA9IGwpICh0aGVZID0gKCgtIGZsYXJlQW1vdW50KSArICgtIGZsYXJlRXh0ZW5zaW9uKSkpICh0aGVQb2ludHNbMF0gPSAoeDE6dGhlWSkpICh0aGVQb2ludHNbMTFdID0gKCh4MSArIHgxRGVsdGEpOnRoZVkpKSAodGhlWSA9ICgtIGZsYXJlQW1vdW50KSkgKHRoZVBvaW50c1sxXSA9ICh4MTp0aGVZKSkgKHRoZVBvaW50c1sxMF0gPSAoKHgxICsgeDFEZWx0YSk6dGhlWSkpICh0aGVZID0gZmxhcmVBbW91bnRfaW4pICh0aGVQb2ludHNbMl0gPSAoeDI6dGhlWSkpICh0aGVQb2ludHNbOV0gPSAoKHgyICsgeDJEZWx0YSk6dGhlWSkpICh0aGVQb2ludHNbMTJdID0gKHgyOih0aGVZICsgKC0gZmxhcmVBbW91bnRfaW4pKSkpICh0aGVQb2ludHNbMTNdID0gKCh4MiArIHgyRGVsdGEpOih0aGVZICsgKC0gZmxhcmVBbW91bnRfaW4pKSkpICh0aGVZID0gKHcgKyAoLSBmbGFyZUFtb3VudF9pbikpKSAodGhlUG9pbnRzWzNdID0gKHgyOnRoZVkpKSAodGhlUG9pbnRzWzhdID0gKCh4MiArIHgyRGVsdGEpOnRoZVkpKSAodGhlUG9pbnRzWzE0XSA9ICh4MjoodGhlWSArIGZsYXJlQW1vdW50X2luKSkpICh0aGVQb2ludHNbMTVdID0gKCh4MiArIHgyRGVsdGEpOih0aGVZICsgZmxhcmVBbW91bnRfaW4pKSkgKHRoZVkgPSAodyArIGZsYXJlQW1vdW50KSkgKHRoZVBvaW50c1s0XSA9ICh4MTp0aGVZKSkgKHRoZVBvaW50c1s3XSA9ICgoeDEgKyB4MURlbHRhKTp0aGVZKSkgKHRoZVkgPSAodyArIGZsYXJlQW1vdW50ICsgZmxhcmVFeHRlbnNpb24pKSAodGhlUG9pbnRzWzVdID0gKHgxOnRoZVkpKSAodGhlUG9pbnRzWzZdID0gKCh4MSArIHgxRGVsdGEpOnRoZVkpKSAocG9pbnRMaXN0ID0gbmlsKSBmb3IoaSAxIDE2IChwb2ludExpc3QgPSBjb25zKHRoZVBvaW50c1soMTYgLSBpKV0gcG9pbnRMaXN0KSkpIChwb2ludExpc3RfMTIgPSBuaWwpIGZvcihpIDEgMTIgKHBvaW50TGlzdF8xMiA9IGNvbnModGhlUG9pbnRzWygxMiAtIGkpXSBwb2ludExpc3RfMTIpKSkgd2hlbihnYXRlTGF5ZXIgKGRiaWQgPSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIHBvaW50TGlzdF8xMikpKSB3aGVuKGdhdGVSZWNvZ25pdGlvbkxheWVyIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVSZWNvZ25pdGlvbkxheWVyIGxpc3QodGhlUG9pbnRzWzEyXSB0aGVQb2ludHNbMTVdKSkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImdhdGVQb2ludHMiICJsaXN0IiBwb2ludExpc3QpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAicmdhdGVQb2ludHMiICJsaXN0IiBsaXN0KHRoZVBvaW50c1sxMl0gdGhlUG9pbnRzWzE1XSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAibm9mbGFyZVBvaW50cyIgImxpc3QiIGxpc3QodGhlUG9pbnRzWzJdIHRoZVBvaW50c1s4XSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wRmxhcmVQb2ludHMiICJsaXN0IiBsaXN0KHRoZVBvaW50c1szXSB0aGVQb2ludHNbNF0gdGhlUG9pbnRzWzVdIHRoZVBvaW50c1s2XSB0aGVQb2ludHNbN10gdGhlUG9pbnRzWzhdKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJib3R0b21GbGFyZVBvaW50cyIgImxpc3QiIGxpc3QodGhlUG9pbnRzWzBdIHRoZVBvaW50c1sxXSB0aGVQb2ludHNbMl0gdGhlUG9pbnRzWzldIHRoZVBvaW50c1sxMF0gdGhlUG9pbnRzWzExXSkpKQAoZ2F0ZUxheWVyIGdhdGVSZWNvZ25pdGlvbkxheWVyIHcgbCBmbGFyZUFtb3VudF9pbiBmbGFyZUFtb3VudCBmbGFyZUV4dGVuc2lvbiB4T2Zmc2V0IHRoZVBvaW50cyB4MSB4MiB4MURlbHRhIHgyRGVsdGEgdGhlWSBwb2ludExpc3QgaSBwb2ludExpc3RfMTIgZGJpZCkAKChnYXRlTGF5ZXIgbGlzdCgicG9seSIgImRyYXdpbmciKSkgKGdhdGVSZWNvZ25pdGlvbkxheWVyIGxpc3QoInBvbHkiICJnYXRlIikpICh3IDEwLjApIChsIDEuMCkgKGZsYXJlQW1vdW50X2luIDAuMCkgKGZsYXJlQW1vdW50IDAuMykgKGZsYXJlRXh0ZW5zaW9uIDIuMCkgKHhPZmZzZXQgMC4wKSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoZGlmZlhFbmNWaWExSW4gPSAoZml4KCgoZGlmZlhFbmNWaWExSW4gLyBzbmFwR3JpZCkgKyAxZS0wNSkpICogc25hcEdyaWQpKSBpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgobGVmdERpZmYgPT0gdCkgfHwgKGxlZnREaWZmID09ICJUUlVFIikpIHRoZW4gKGxlZnREaWZmID0gdCkgZWxzZSAobGVmdERpZmYgPSBuaWwpKSBpZigoKHJpZ2h0RGlmZiA9PSB0KSB8fCAocmlnaHREaWZmID09ICJUUlVFIikpIHRoZW4gKHJpZ2h0RGlmZiA9IHQpIGVsc2UgKHJpZ2h0RGlmZiA9IG5pbCkpIGlmKCgobm9MYXllcjMgPT0gdCkgfHwgKG5vTGF5ZXIzID09ICJUUlVFIikpIHRoZW4gKG5vTGF5ZXIzID0gdCkgZWxzZSAobm9MYXllcjMgPSBuaWwpKSBpZigoKG5vRW5kRW5jID09IHQpIHx8IChub0VuZEVuYyA9PSAiVFJVRSIpKSB0aGVuIChub0VuZEVuYyA9IHQpIGVsc2UgKG5vRW5kRW5jID0gbmlsKSkgaWYoKChzdHJhcCA9PSB0KSB8fCAoc3RyYXAgPT0gIlRSVUUiKSkgdGhlbiAoc3RyYXAgPSB0KSBlbHNlIChzdHJhcCA9IG5pbCkpIChuZXQgPSAoZGJNYWtlTmV0IHRjQ2VsbFZpZXcgInBwZCIpKSAoZGJDcmVhdGVUZXJtIG5ldCAicHBkIiAiaW5wdXQiKSAoYWxsRGlyID0gbGlzdCgicmlnaHQiICJsZWZ0IiAidG9wIiAiYm90dG9tIikpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBsYW50IGlmKGluV2VsbCB0aGVuIChkaWZmSW1wbGFudCA9IGNhZHIoZGlmZkltcGxhbnQpKSAoZGlmZkltcEVuYyA9IGNhZHIoZGlmZkltcEVuYykpIChkaWZmSW1wRW5jQnV0dCA9IGNhZHIoZGlmZkltcEVuY0J1dHQpKSBlbHNlIChkaWZmSW1wbGFudCA9IGNhcihkaWZmSW1wbGFudCkpIChkaWZmSW1wRW5jID0gY2FyKGRpZmZJbXBFbmMpKSAoZGlmZkltcEVuY0J1dHQgPSBjYXIoZGlmZkltcEVuY0J1dHQpKSkpIHdoZW4oZGlmZkNvcmVJbXBsYW50IGlmKGluV2VsbCB0aGVuIChkaWZmQ29yZUltcGxhbnQgPSBjYWRyKGRpZmZDb3JlSW1wbGFudCkpIChkaWZmQ29yZUltcEVuYyA9IGNhZHIoZGlmZkNvcmVJbXBFbmMpKSAoZGlmZkNvcmVJbXBFbmNCdXR0ID0gY2FkcihkaWZmQ29yZUltcEVuY0J1dHQpKSBlbHNlIChkaWZmQ29yZUltcGxhbnQgPSBjYXIoZGlmZkNvcmVJbXBsYW50KSkgKGRpZmZDb3JlSW1wRW5jID0gY2FyKGRpZmZDb3JlSW1wRW5jKSkgKGRpZmZDb3JlSW1wRW5jQnV0dCA9IGNhcihkaWZmQ29yZUltcEVuY0J1dHQpKSkpIHdoZW4odGFwSW1wbGFudCBpZihpbldlbGwgdGhlbiAodGFwSW1wbGFudCA9IGNhZHIodGFwSW1wbGFudCkpICh0YXBJbXBFbmMgPSBjYWRyKHRhcEltcEVuYykpICh0YXBJbXBFbmNCdXR0ID0gY2Fkcih0YXBJbXBFbmNCdXR0KSkgKHRhcEltcEVuY05vQnV0dCA9IGNhZHIodGFwSW1wRW5jTm9CdXR0KSkgZWxzZSAodGFwSW1wbGFudCA9IGNhcih0YXBJbXBsYW50KSkgKHRhcEltcEVuYyA9IGNhcih0YXBJbXBFbmMpKSAodGFwSW1wRW5jQnV0dCA9IGNhcih0YXBJbXBFbmNCdXR0KSkgKHRhcEltcEVuY05vQnV0dCA9IGNhcih0YXBJbXBFbmNOb0J1dHQpKSkpKSAodmlhMUNvbCA9IG1heChjb2x1bW4gMSkpICh2aWExWFBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh2aWExWVBpdGNoID0gKHZpYTFMZW5ndGggKyB2aWExU3BhY2UpKSAodmlhMlhQaXRjaCA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSAodmlhMllQaXRjaCA9ICh2aWEyTGVuZ3RoICsgdmlhMlNwYWNlKSkgKHRyYW5XaWR0aCA9IG1heCh0cmFuV2lkdGhMIHRyYW5XaWR0aFIpKSAoY2VudGVyVGFwQmJveCA9IGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KCgoMiAqIHRhcFhFbmNWaWExKSArICh2aWExQ29sICogdmlhMVdpZHRoKSArICgodmlhMUNvbCAtIDEpICogdmlhMVNwYWNlKSkgdHJhbldpZHRoKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGNlbnRlclRhcEJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgaWYoKHRyYW5XaWR0aEwgPT0gdHJhbldpZHRoUikgdGhlbiAoZXh0cmFUYXBDID0gbWF4KChkaWZmVGFwVmlhU3BhY2UgLSBkaWZmWEVuY1ZpYTFJbikgMC4wKSkgKGV4dHJhVGFwQ1IgPSBleHRyYVRhcEMpIChleHRyYVRhcENMID0gZXh0cmFUYXBDKSAod2lkdGhPZlRhcCA9IChleHRyYVRhcEwgKyBleHRyYVRhcFIgKyBleHRyYVRhcENSICsgZXh0cmFUYXBDTCArIGNhYWRyKGNlbnRlclRhcEJib3gpKSkgZWxzZSAoZXh0cmFUYXBDID0gbWF4KCh0YXBXaWR0aEJ1dHRpbmcgLSB2aWExV2lkdGgpIHRhcEJ1dHRTcGFjZSAwLjApKSAoZXh0cmFUYXBDUiA9IGlmKCh0cmFuV2lkdGhMIDwgdHJhbldpZHRoUikgZXh0cmFUYXBDIDAuMCkpIChleHRyYVRhcENMID0gaWYoKHRyYW5XaWR0aFIgPCB0cmFuV2lkdGhMKSBleHRyYVRhcEMgMC4wKSkgKHdpZHRoT2ZUYXAgPSAoZXh0cmFUYXBMICsgZXh0cmFUYXBSICsgZXh0cmFUYXBDTCArIGV4dHJhVGFwQ1IgKyBjYWFkcihjZW50ZXJUYXBCYm94KSArIHRhcE1pbk5hckV4dCkpKSB3aGVuKCh3aWR0aE9mVGFwIDwgdGFwV2lkdGhCZXR3ZWVuKSAoZXh0cmFUYXAgPSAoKGNlaWxpbmcgKCgoKHRhcFdpZHRoQmV0d2VlbiAtIHdpZHRoT2ZUYXApIC8gMi4wKSAvIHNuYXBHcmlkKSAtIDFlLTA2KSkgKiBzbmFwR3JpZCkpIChleHRyYVRhcEwgPSAoZXh0cmFUYXBMICsgZXh0cmFUYXApKSAoZXh0cmFUYXBSID0gKGV4dHJhVGFwUiArIGV4dHJhVGFwKSkpIChsZWZ0VGFwQmJveCA9IGxpc3QobGlzdCgoKC0gZXh0cmFUYXBMKSArICgtIGV4dHJhVGFwQ0wpICsgaWYoKHRyYW5XaWR0aEwgPCB0cmFuV2lkdGgpICgtIHRhcE1pbk5hckV4dCkgMC4wKSkgMC4wKSBsaXN0KDAuMCB0cmFuV2lkdGhMKSkpIChyaWdodFRhcEJib3ggPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KTowLjApIGxpc3QoKGNhYWRyKGNlbnRlclRhcEJib3gpICsgZXh0cmFUYXBSICsgZXh0cmFUYXBDUiArIGlmKCh0cmFuV2lkdGhSIDwgdHJhbldpZHRoKSB0YXBNaW5OYXJFeHQgMC4wKSkgdHJhbldpZHRoUikpKSB1bmxlc3MoKGNhYXIobGVmdFRhcEJib3gpID09IGNhYWRyKGxlZnRUYXBCYm94KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwTGF5ZXIgbGVmdFRhcEJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHVubGVzcygoY2FhcihyaWdodFRhcEJib3gpID09IGNhYWRyKHJpZ2h0VGFwQmJveCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIHJpZ2h0VGFwQmJveCkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0YXBMYXllckJib3giICJsaXN0IiBsaXN0KGNhcihsZWZ0VGFwQmJveCkgbGlzdChjYWFkcihyaWdodFRhcEJib3gpIGNhZGFkcihjZW50ZXJUYXBCYm94KSkpKSBpZihzdHJhcCB0aGVuIChkaWZmWFNpemUgPSAodmlhMVdpZHRoICsgZGlmZlhFbmNWaWExSW4gKyBkaWZmWEVuY1ZpYTFPdXQpKSAoZGlmZldpZGVFeHRyYUluID0gbWF4KDAuMCAodmlhMVNwYWNlICsgKC0gdGFwWEVuY1ZpYTEpICsgKC0gZXh0cmFUYXBDTCkgKyAoLSBleHRyYVRhcENSKSArIGlmKGV4dHJhVGFwICgtIGV4dHJhVGFwKSAwLjApICsgKC0gZGlmZlhFbmNWaWExSW4pKSAoZGlmZlNvdXJjZVdpZHRoIC0gZGlmZlhTaXplKSkpIChkaWZmTmFyRXh0cmFJbiA9IG1heCgwLjAgKHZpYTFTcGFjZSArICgtIHRhcFhFbmNWaWExKSArICgtIGV4dHJhVGFwQ0wpICsgKC0gZXh0cmFUYXBDUikgKyBpZihleHRyYVRhcCAoLSBleHRyYVRhcCkgMC4wKSArICgtIGRpZmZYRW5jVmlhMUluKSArICgtIHRhcE1pbk5hckV4dCkpIChkaWZmU291cmNlV2lkdGggLSBkaWZmWFNpemUpKSkgZWxzZSAoZGlmZlhTaXplID0gZGlmZlNvdXJjZVdpZHRoKSAoZGlmZldpZGVFeHRyYUluID0gMC4wKSAoZGlmZk5hckV4dHJhSW4gPSAwLjApKSB3aGVuKGxlZnREaWZmIChsZWZ0RGlmZkJib3ggPSBsaXN0KGxpc3QoKGNhYXIobGVmdFRhcEJib3gpICsgKC0gZGlmZlhTaXplKSArICgtIGV4dHJhRGlmZkwpICsgaWYoKHRyYW5XaWR0aEwgPCB0cmFuV2lkdGhSKSAoLSBkaWZmTmFyRXh0cmFJbikgKC0gZGlmZldpZGVFeHRyYUluKSkpIDAuMCkgbGlzdChjYWFyKGxlZnRUYXBCYm94KSB0cmFuV2lkdGhMKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsZWZ0RGlmZkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoImxlZnQiKSBhY2Nlc3NEaXIpKSB3aGVuKHJpZ2h0RGlmZiAocmlnaHREaWZmQmJveCA9IGxpc3QobGlzdChjYWFkcihyaWdodFRhcEJib3gpIDAuMCkgbGlzdCgoY2FhZHIocmlnaHRUYXBCYm94KSArIGRpZmZYU2l6ZSArIGV4dHJhRGlmZlIgKyBpZigodHJhbldpZHRoUiA8IHRyYW5XaWR0aEwpIGRpZmZOYXJFeHRyYUluIGRpZmZXaWRlRXh0cmFJbikpIHRyYW5XaWR0aFIpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkxheWVyIHJpZ2h0RGlmZkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoInJpZ2h0IikgYWNjZXNzRGlyKSkgd2hlbihpbXBsYW50IHdoZW4odGFwSW1wbGFudCAoZXh0cmFMZWZ0SW1wVGFwID0gKG5vdCAobGVmdERpZmYgfHwgbm9FbmRFbmMpKSkgKGV4dHJhUmlnaHRJbXBUYXAgPSAobm90IChyaWdodERpZmYgfHwgbm9FbmRFbmMpKSkgKHBvaW50X2EgPSBsaXN0KChjYWFyKGxlZnRUYXBCYm94KSAtIGlmKGV4dHJhTGVmdEltcFRhcCB0YXBJbXBFbmMgdGFwSW1wRW5jQnV0dCkpIChjYWRhcihsZWZ0VGFwQmJveCkgLSB0YXBJbXBFbmMpKSkgKHBvaW50X2IgPSBsaXN0KChjYWFyKGxlZnRUYXBCYm94KSAtIGlmKGV4dHJhTGVmdEltcFRhcCB0YXBJbXBFbmMgdGFwSW1wRW5jQnV0dCkpIChjYWRhZHIobGVmdFRhcEJib3gpICsgdGFwSW1wRW5jKSkpIChwb2ludF9jID0gbGlzdChtYXgoKGNhYWRyKGxlZnRUYXBCYm94KSAtIG1heCh0YXBJbXBFbmNOb0J1dHQgdGFwSW1wRW5jKSkgKGNhYXIobGVmdFRhcEJib3gpIC0gaWYoZXh0cmFMZWZ0SW1wVGFwIHRhcEltcEVuYyB0YXBJbXBFbmNCdXR0KSkpIChjYWRhZHIobGVmdFRhcEJib3gpICsgdGFwSW1wRW5jKSkpIChwb2ludF9kID0gbGlzdChtYXgoKGNhYXIoY2VudGVyVGFwQmJveCkgLSBtYXgodGFwSW1wRW5jTm9CdXR0IHRhcEltcEVuYykpIChjYWFyKGxlZnRUYXBCYm94KSAtIGlmKGV4dHJhTGVmdEltcFRhcCB0YXBJbXBFbmMgdGFwSW1wRW5jQnV0dCkpKSAoY2FkYWRyKGNlbnRlclRhcEJib3gpICsgdGFwSW1wRW5jKSkpIChwb2ludF9lID0gbGlzdChtaW4oKGNhYWRyKGNlbnRlclRhcEJib3gpICsgbWF4KHRhcEltcEVuY05vQnV0dCB0YXBJbXBFbmMpKSAoY2FhZHIocmlnaHRUYXBCYm94KSArIGlmKGV4dHJhUmlnaHRJbXBUYXAgdGFwSW1wRW5jIHRhcEltcEVuY0J1dHQpKSkgKGNhZGFkcihjZW50ZXJUYXBCYm94KSArIHRhcEltcEVuYykpKSAocG9pbnRfZiA9IGxpc3QobWluKChjYWFkcihjZW50ZXJUYXBCYm94KSArIG1heCh0YXBJbXBFbmNOb0J1dHQgdGFwSW1wRW5jKSkgKGNhYWRyKHJpZ2h0VGFwQmJveCkgKyBpZihleHRyYVJpZ2h0SW1wVGFwIHRhcEltcEVuYyB0YXBJbXBFbmNCdXR0KSkpIChjYWRhZHIocmlnaHRUYXBCYm94KSArIHRhcEltcEVuYykpKSAocG9pbnRfZyA9IGxpc3QoKGNhYWRyKHJpZ2h0VGFwQmJveCkgKyBpZihleHRyYVJpZ2h0SW1wVGFwIHRhcEltcEVuYyB0YXBJbXBFbmNCdXR0KSkgKGNhZGFkcihyaWdodFRhcEJib3gpICsgdGFwSW1wRW5jKSkpIChwb2ludF9oID0gbGlzdCgoY2FhZHIocmlnaHRUYXBCYm94KSArIGlmKGV4dHJhUmlnaHRJbXBUYXAgdGFwSW1wRW5jIHRhcEltcEVuY0J1dHQpKSAoY2FkYXIocmlnaHRUYXBCYm94KSAtIHRhcEltcEVuYykpKSAodGFwSW1wUG9pbnRzID0gbGlzdChwb2ludF9hIHBvaW50X2IgcG9pbnRfYyBwb2ludF9kIHBvaW50X2UgcG9pbnRfZiBwb2ludF9nIHBvaW50X2gpKSAoZGJJZCA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyB0YXBJbXBsYW50IHRhcEltcFBvaW50cykpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbihkaWZmSW1wbGFudCB3aGVuKGxlZnREaWZmIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdChpZihub0VuZEVuYyBjYWFyKGxlZnREaWZmQmJveCkgKGNhYXIobGVmdERpZmZCYm94KSAtIGRpZmZJbXBFbmMpKSAoY2FkYXIobGVmdERpZmZCYm94KSAtIGRpZmZJbXBFbmMpKSBsaXN0KChjYWFkcihsZWZ0RGlmZkJib3gpICsgZGlmZkltcEVuY0J1dHQpIChjYWRhZHIobGVmdERpZmZCYm94KSArIGRpZmZJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4ocmlnaHREaWZmIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoY2FhcihyaWdodERpZmZCYm94KSAtIGRpZmZJbXBFbmNCdXR0KSAoY2FkYXIocmlnaHREaWZmQmJveCkgLSBkaWZmSW1wRW5jKSkgbGlzdChpZihub0VuZEVuYyBjYWFkcihyaWdodERpZmZCYm94KSAoY2FhZHIocmlnaHREaWZmQmJveCkgKyBkaWZmSW1wRW5jKSkgKGNhZGFkcihyaWdodERpZmZCYm94KSArIGRpZmZJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSB3aGVuKGRpZmZDb3JlSW1wbGFudCB3aGVuKGxlZnREaWZmIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoaWYobm9FbmRFbmMgY2FhcihsZWZ0RGlmZkJib3gpIChjYWFyKGxlZnREaWZmQmJveCkgLSBkaWZmQ29yZUltcEVuYykpIChjYWRhcihsZWZ0RGlmZkJib3gpIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KChjYWFkcihsZWZ0RGlmZkJib3gpICsgZGlmZkNvcmVJbXBFbmNCdXR0KSAoY2FkYWRyKGxlZnREaWZmQmJveCkgKyBkaWZmQ29yZUltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbihyaWdodERpZmYgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoY2FhcihyaWdodERpZmZCYm94KSAtIGRpZmZDb3JlSW1wRW5jQnV0dCkgKGNhZGFyKHJpZ2h0RGlmZkJib3gpIC0gZGlmZkNvcmVJbXBFbmMpKSBsaXN0KGlmKG5vRW5kRW5jIGNhYWRyKHJpZ2h0RGlmZkJib3gpIChjYWFkcihyaWdodERpZmZCYm94KSArIGRpZmZDb3JlSW1wRW5jKSkgKGNhZGFkcihyaWdodERpZmZCYm94KSArIGRpZmZDb3JlSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSkgd2hlbigoaW5XZWxsICYmIHdlbGxMYXllcikgKHBvaW50X2EgPSBsaXN0KChpZihsZWZ0RGlmZiBjYWFyKGxlZnREaWZmQmJveCkgY2FhcihsZWZ0VGFwQmJveCkpIC0gaWYobGVmdERpZmYgd2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMpKSAoY2FkYXIobGVmdFRhcEJib3gpIC0gbWF4KHdlbGxMYXllckRpZmZFbmMgd2VsbExheWVyVGFwRW5jKSkpKSAocG9pbnRfYiA9IGxpc3QoKGlmKGxlZnREaWZmIGNhYXIobGVmdERpZmZCYm94KSBjYWFyKGxlZnRUYXBCYm94KSkgLSBpZihsZWZ0RGlmZiB3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYykpIG1heCgod2VsbFdpZHRoICsgY2Fkcihwb2ludF9hKSkgKGNhZGFkcihsZWZ0VGFwQmJveCkgKyBtYXgod2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMpKSkpKSAocG9pbnRfYyA9IGxpc3QoKGNhYWRyKGxlZnRUYXBCYm94KSAtIHdlbGxMYXllclRhcEVuYykgbWF4KCh3ZWxsV2lkdGggKyBjYWRyKHBvaW50X2EpKSAoY2FkYWRyKGxlZnRUYXBCYm94KSArIG1heCh3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYykpKSkpIChwb2ludF9kID0gbGlzdCgoY2FhcihjZW50ZXJUYXBCYm94KSAtIHdlbGxMYXllclRhcEVuYykgbWF4KCh3ZWxsV2lkdGggKyBjYWRyKHBvaW50X2EpKSAoY2FkYWRyKGNlbnRlclRhcEJib3gpICsgbWF4KHdlbGxMYXllckRpZmZFbmMgd2VsbExheWVyVGFwRW5jKSkpKSkgKHBvaW50X2UgPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KSArIHdlbGxMYXllclRhcEVuYykgbWF4KCh3ZWxsV2lkdGggKyBjYWRyKHBvaW50X2EpKSAoY2FkYWRyKGNlbnRlclRhcEJib3gpICsgbWF4KHdlbGxMYXllckRpZmZFbmMgd2VsbExheWVyVGFwRW5jKSkpKSkgKHBvaW50X2YgPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KSArIHdlbGxMYXllclRhcEVuYykgbWF4KCh3ZWxsV2lkdGggKyBjYWRyKHBvaW50X2EpKSAoY2FkYWRyKHJpZ2h0VGFwQmJveCkgKyBtYXgod2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMpKSkpKSAocG9pbnRfZyA9IGxpc3QoKGlmKHJpZ2h0RGlmZiBjYWFkcihyaWdodERpZmZCYm94KSBjYWFkcihyaWdodFRhcEJib3gpKSArIGlmKHJpZ2h0RGlmZiB3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYykpIG1heCgod2VsbFdpZHRoICsgY2Fkcihwb2ludF9hKSkgKGNhZGFkcihyaWdodFRhcEJib3gpICsgbWF4KHdlbGxMYXllckRpZmZFbmMgd2VsbExheWVyVGFwRW5jKSkpKSkgKHBvaW50X2ggPSBsaXN0KChpZihyaWdodERpZmYgY2FhZHIocmlnaHREaWZmQmJveCkgY2FhZHIocmlnaHRUYXBCYm94KSkgKyBpZihyaWdodERpZmYgd2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMpKSAoY2FkYXIocmlnaHRUYXBCYm94KSAtIG1heCh3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYykpKSkgKHdlbGxJbXBQb2ludHMgPSBsaXN0KHBvaW50X2EgcG9pbnRfYiBwb2ludF9jIHBvaW50X2QgcG9pbnRfZSBwb2ludF9mIHBvaW50X2cgcG9pbnRfaCkpIChkYklkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHdlbGxMYXllciB3ZWxsSW1wUG9pbnRzKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAid2VsbExheWVyQmJveCIgImxpc3QiIGxpc3QocG9pbnRfYSBsaXN0KGNhcihwb2ludF9oKSBjYWRyKHBvaW50X2QpKSkpKSkgd2hlbihpZExheWVyIGlmKChpbXBsYW50ICYmIGluV2VsbCAmJiB3ZWxsTGF5ZXIgJiYgaWRFbmNXZWxsKSB0aGVuIChwb2ludF9hID0gbGlzdCgoY2FyKHBvaW50X2EpIC0gaWRMYXllckVuY1dlbGwpIChjYWRyKHBvaW50X2EpIC0gaWRMYXllckVuY1dlbGwpKSkgKHBvaW50X2IgPSBsaXN0KChjYXIocG9pbnRfYikgLSBpZExheWVyRW5jV2VsbCkgKGNhZHIocG9pbnRfYikgKyBpZExheWVyRW5jV2VsbCkpKSAocG9pbnRfYyA9IGxpc3QoKGNhcihwb2ludF9jKSAtIGlkTGF5ZXJFbmNXZWxsKSAoY2Fkcihwb2ludF9jKSArIGlkTGF5ZXJFbmNXZWxsKSkpIChwb2ludF9kID0gbGlzdCgoY2FyKHBvaW50X2QpIC0gaWRMYXllckVuY1dlbGwpIChjYWRyKHBvaW50X2QpICsgaWRMYXllckVuY1dlbGwpKSkgKHBvaW50X2UgPSBsaXN0KChjYXIocG9pbnRfZSkgKyBpZExheWVyRW5jV2VsbCkgKGNhZHIocG9pbnRfZSkgKyBpZExheWVyRW5jV2VsbCkpKSAocG9pbnRfZiA9IGxpc3QoKGNhcihwb2ludF9mKSArIGlkTGF5ZXJFbmNXZWxsKSAoY2Fkcihwb2ludF9mKSArIGlkTGF5ZXJFbmNXZWxsKSkpIChwb2ludF9nID0gbGlzdCgoY2FyKHBvaW50X2cpICsgaWRMYXllckVuY1dlbGwpIChjYWRyKHBvaW50X2cpICsgaWRMYXllckVuY1dlbGwpKSkgKHBvaW50X2ggPSBsaXN0KChjYXIocG9pbnRfaCkgKyBpZExheWVyRW5jV2VsbCkgKGNhZHIocG9pbnRfaCkgLSBpZExheWVyRW5jV2VsbCkpKSBlbHNlIChwb2ludF9hID0gbGlzdCgoaWYobGVmdERpZmYgY2FhcihsZWZ0RGlmZkJib3gpIGNhYXIobGVmdFRhcEJib3gpKSAtIGlmKGxlZnREaWZmIGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSAoY2FkYXIobGVmdFRhcEJib3gpIC0gbWF4KGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSkpIChwb2ludF9iID0gbGlzdCgoaWYobGVmdERpZmYgY2FhcihsZWZ0RGlmZkJib3gpIGNhYXIobGVmdFRhcEJib3gpKSAtIGlmKGxlZnREaWZmIGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSAoY2FkYWRyKGxlZnRUYXBCYm94KSArIG1heChpZExheWVyRW5jRGlmZiBpZExheWVyRW5jVGFwKSkpKSAocG9pbnRfYyA9IGxpc3QoKGNhYWRyKGxlZnRUYXBCYm94KSAtIGlkTGF5ZXJFbmNUYXApIChjYWRhZHIobGVmdFRhcEJib3gpICsgbWF4KGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSkpIChwb2ludF9kID0gbGlzdCgoY2FhcihjZW50ZXJUYXBCYm94KSAtIGlkTGF5ZXJFbmNUYXApIChjYWRhZHIoY2VudGVyVGFwQmJveCkgKyBtYXgoaWRMYXllckVuY0RpZmYgaWRMYXllckVuY1RhcCkpKSkgKHBvaW50X2UgPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KSArIGlkTGF5ZXJFbmNUYXApIChjYWRhZHIoY2VudGVyVGFwQmJveCkgKyBtYXgoaWRMYXllckVuY0RpZmYgaWRMYXllckVuY1RhcCkpKSkgKHBvaW50X2YgPSBsaXN0KChjYWFkcihjZW50ZXJUYXBCYm94KSArIGlkTGF5ZXJFbmNUYXApIChjYWRhZHIocmlnaHRUYXBCYm94KSArIG1heChpZExheWVyRW5jRGlmZiBpZExheWVyRW5jVGFwKSkpKSAocG9pbnRfZyA9IGxpc3QoKGlmKHJpZ2h0RGlmZiBjYWFkcihyaWdodERpZmZCYm94KSBjYWFkcihyaWdodFRhcEJib3gpKSArIGlmKHJpZ2h0RGlmZiBpZExheWVyRW5jRGlmZiBpZExheWVyRW5jVGFwKSkgKGNhZGFkcihyaWdodFRhcEJib3gpICsgbWF4KGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSkpIChwb2ludF9oID0gbGlzdCgoaWYocmlnaHREaWZmIGNhYWRyKHJpZ2h0RGlmZkJib3gpIGNhYWRyKHJpZ2h0VGFwQmJveCkpICsgaWYocmlnaHREaWZmIGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXApKSAoY2FkYXIocmlnaHRUYXBCYm94KSAtIG1heChpZExheWVyRW5jRGlmZiBpZExheWVyRW5jVGFwKSkpKSkgKGlkTGF5ZXJQb2ludHMgPSBsaXN0KHBvaW50X2EgcG9pbnRfYiBwb2ludF9jIHBvaW50X2QgcG9pbnRfZSBwb2ludF9mIHBvaW50X2cgcG9pbnRfaCkpIChkYklkID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGlkTGF5ZXIgaWRMYXllclBvaW50cykpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImlkTGF5ZXJCYm94IiAibGlzdCIgbGlzdChwb2ludF9hIGxpc3QoY2FyKHBvaW50X2gpIGNhZHIocG9pbnRfZCkpKSkpIGlmKGNlbnRlclZpYTEgdGhlbiAodmlhMURyYXdTcGFjZVkgPSAodHJhbldpZHRoIC0gKHRhcFlFbmNWaWExICogMikpKSAodmlhMVJvdyA9IChmbG9vciAoKHZpYTFEcmF3U3BhY2VZICsgdmlhMVNwYWNlKSAvIHZpYTFZUGl0Y2gpKSkgKHZpYTFsZW5ndGggPSAoKHZpYTFSb3cgKiB2aWExWVBpdGNoKSAtIHZpYTFTcGFjZSkpICh2aWExWW9mZnNldCA9ICgodmlhMURyYXdTcGFjZVkgLSB2aWExbGVuZ3RoKSAvIDIpKSAoZmlyc3RWaWExWSA9ICh0YXBZRW5jVmlhMSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA1KSkgKiBzbmFwR3JpZCkpKSBlbHNlIGlmKCh0cmFuV2lkdGggPiAodmlhMVlQaXRjaCArIHZpYTFMZW5ndGgpKSB0aGVuICh2aWExUm93ID0gZml4KCgoKHRyYW5XaWR0aCArIHZpYTFTcGFjZSArICgtICgyICogdGFwWUVuY1ZpYTEpKSkgLyB2aWExWVBpdGNoKSArIDFlLTA2KSkpIGVsc2UgKHZpYTFSb3cgPSAxKSkgKGZpcnN0VmlhMVkgPSB0YXBZRW5jVmlhMSkpIChmaXJzdFZpYTFYID0gdGFwWEVuY1ZpYTEpICh0aGVZID0gZmlyc3RWaWExWSkgZm9yKHIgMSB2aWExUm93ICh0aGVYID0gZmlyc3RWaWExWCkgZm9yKGNvbCAxIHZpYTFDb2wgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHRoZVg6dGhlWSkgKCh0aGVYICsgdmlhMVdpZHRoKToodGhlWSArIHZpYTFMZW5ndGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVggPSAodGhlWCArIHZpYTFYUGl0Y2gpKSkgKHRoZVkgPSAodGhlWSArIHZpYTFZUGl0Y2gpKSkgKHZpYTFCYm94ID0gbGlzdChsaXN0KGZpcnN0VmlhMVggZmlyc3RWaWExWSkgY2FkcigoZGJJZH4+YkJveCkpKSkgd2hlbihzbG90VmlhIChjb250YWN0SW1wUGFyYW0gPSBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgIkZBTFNFIikpIChjb250YWN0V2VsbFBhcmFtID0gbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgIkZBTFNFIikpIChzbG90VmlhSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgc2xvdFZpYSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHNsb3RWaWFJZCBlcnJvcihzcHJpbnRmKG5pbCAiQ2Fubm90IGZpbmQvb3BlbiBzbG90VmlhIGNvbnRhY3QgY2VsbCBgJXMnIiBzbG90VmlhKSkpIHVubGVzcygoc2xvdFZpYUlkfj5pc1BhcmFtQ2VsbCkgZXJyb3Ioc3ByaW50ZihuaWwgIk5hbWVkIGNlbGwgaXMgbm90IGEgcGNlbGwgYCVzJyIgc2xvdFZpYSkpKSAocGFyYW1zID0gKHNsb3RWaWFJZH4+cGFyYW1ldGVycykpIChzbG90WDFkaWZmQ29vcmQgPSBjYWFyKChzbG90VmlhSWR+PmRpZmZMYXllckJib3gpKSkgKHNsb3RYMmRpZmZDb29yZCA9IGNhYWRyKChzbG90VmlhSWR+PmRpZmZMYXllckJib3gpKSkgKHNsb3RMZW5ndGggPSAoc2xvdFgyZGlmZkNvb3JkIC0gc2xvdFgxZGlmZkNvb3JkKSkgKHNsb3RWaWFXaWR0aCA9IChjYWFkcigoc2xvdFZpYUlkfj5iQm94VmlhMSkpIC0gY2Fhcigoc2xvdFZpYUlkfj5iQm94VmlhMSkpKSkgKHNsb3RWaWFMZW5ndGggPSAoY2FkYWRyKChzbG90VmlhSWR+PmJCb3hWaWExKSkgLSBjYWRhcigoc2xvdFZpYUlkfj5iQm94VmlhMSkpKSkgKHNsb3RWaWFFbmNYID0gKGNhYXIoKHNsb3RWaWFJZH4+YkJveFZpYTEpKSAtIHNsb3RYMWRpZmZDb29yZCkpIChzbG90VmlhRW5jWSA9IChjYWRhcigoc2xvdFZpYUlkfj5iQm94VmlhMSkpIC0gY2FkYXIoKHNsb3RWaWFJZH4+ZGlmZkxheWVyQmJveCkpKSkpIHdoZW4oc3RyYXAgd2hlbihyaWdodERpZmYgaWYoc2xvdFZpYSB0aGVuIChpbnN0UGFyYW1zID0gbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRyYW5XaWR0aFIpKSkgaWYoKHBhcmFtc34+aW1wbGFudCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RJbXBQYXJhbSkpKSBpZigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIChzbG90VmlhUl9YID0gKGNhYWRyKHJpZ2h0RGlmZkJib3gpIC0gc2xvdExlbmd0aCkpIChzbG90VmlhUl9ZID0gY2FkYXIocmlnaHREaWZmQmJveCkpIChpbnN0UiA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHNsb3RWaWFJZCAiYzAiIChzbG90VmlhUl9YOnNsb3RWaWFSX1kpICJSMCIgMSBpbnN0UGFyYW1zKSkgKHNsb3RWaWFSWTIgPSAoc2xvdFZpYVJfWSArIHNsb3RWaWFFbmNZICsgc2xvdFZpYUxlbmd0aCkpICh2aWExQmJveFIgPSBsaXN0KCgoc2xvdFZpYVJfWCArIHNsb3RWaWFFbmNYKTooc2xvdFZpYVJfWSArIGRpZmZZRW5jVmlhMSkpICgoc2xvdFZpYVJfWCArIHNsb3RWaWFXaWR0aCArIHNsb3RWaWFFbmNYKToodHJhbldpZHRoUiAtIHNsb3RWaWFFbmNZKSkpKSBlbHNlIGlmKGNlbnRlclZpYTEgdGhlbiAodmlhMURyYXdTcGFjZVkgPSAodHJhbldpZHRoUiAtIChkaWZmWUVuY1ZpYTEgKiAyKSkpICh2aWExUm93UiA9IChmbG9vciAoKHZpYTFEcmF3U3BhY2VZICsgdmlhMVNwYWNlKSAvIHZpYTFZUGl0Y2gpKSkgKHZpYTFsZW5ndGggPSAoKHZpYTFSb3dSICogdmlhMVlQaXRjaCkgLSB2aWExU3BhY2UpKSAodmlhMVlvZmZzZXQgPSAoKHZpYTFEcmF3U3BhY2VZIC0gdmlhMWxlbmd0aCkgLyAyKSkgKGZpcnN0VmlhMVkgPSAoZGlmZllFbmNWaWExICsgKGZpeCgoKHZpYTFZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDUpKSAqIHNuYXBHcmlkKSkpIGVsc2UgKHZpYTFSb3dSID0gbWF4KDEgZml4KCgoKHRyYW5XaWR0aFIgKyB2aWExU3BhY2UgKyAoLSAoMiAqIGRpZmZZRW5jVmlhMSkpKSAvIHZpYTFZUGl0Y2gpICsgMWUtMDYpKSkpIChmaXJzdFZpYTFZID0gZGlmZllFbmNWaWExKSkgKGZpcnN0VmlhMVggPSAoY2FhZHIocmlnaHREaWZmQmJveCkgKyAoLSBkaWZmWEVuY1ZpYTFPdXQpICsgKC0gdmlhMVdpZHRoKSArICgtIGV4dHJhRGlmZlIpKSkgKHRoZVkgPSBmaXJzdFZpYTFZKSBmb3IociAxIHZpYTFSb3dSIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChmaXJzdFZpYTFYOnRoZVkpICgoZmlyc3RWaWExWCArIHZpYTFXaWR0aCk6KHRoZVkgKyB2aWExTGVuZ3RoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVZID0gKHRoZVkgKyB2aWExWVBpdGNoKSkpICh2aWExQmJveFIgPSBsaXN0KGxpc3QoZmlyc3RWaWExWCBmaXJzdFZpYTFZKSBjYWRyKChkYklkfj5iQm94KSkpKSkpIHdoZW4obGVmdERpZmYgaWYoc2xvdFZpYSB0aGVuIChpbnN0UGFyYW1zID0gbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHRyYW5XaWR0aEwpKSkgaWYoKHBhcmFtc34+aW1wbGFudCkgKGluc3RQYXJhbXMgPSB4Y29ucyhpbnN0UGFyYW1zIGNvbnRhY3RJbXBQYXJhbSkpKSBpZigocGFyYW1zfj5pbldlbGwpIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBjb250YWN0V2VsbFBhcmFtKSkpIChzbG90VmlhTF9YID0gY2FhcihsZWZ0RGlmZkJib3gpKSAoc2xvdFZpYUxfWSA9IGNhZGFyKGxlZnREaWZmQmJveCkpIChpbnN0TCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHNsb3RWaWFJZCAiYzEiIChzbG90VmlhTF9YOnNsb3RWaWFMX1kpICJSMCIgMSBpbnN0UGFyYW1zKSkgKHZpYTFCYm94TCA9IGxpc3QoKChzbG90VmlhTF9YICsgc2xvdFZpYUVuY1gpOihzbG90VmlhTF9ZICsgc2xvdFZpYUVuY1kpKSAoKHNsb3RWaWFMX1ggKyBzbG90VmlhRW5jWCArIHNsb3RWaWFXaWR0aCk6KHRyYW5XaWR0aEwgLSBzbG90VmlhRW5jWSkpKSkgZWxzZSBpZihjZW50ZXJWaWExIHRoZW4gKHZpYTFEcmF3U3BhY2VZID0gKHRyYW5XaWR0aEwgLSAoZGlmZllFbmNWaWExICogMikpKSAodmlhMVJvd0wgPSAoZmxvb3IgKCh2aWExRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExWVBpdGNoKSkpICh2aWExbGVuZ3RoID0gKCh2aWExUm93TCAqIHZpYTFZUGl0Y2gpIC0gdmlhMVNwYWNlKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWExRHJhd1NwYWNlWSAtIHZpYTFsZW5ndGgpIC8gMikpIChmaXJzdFZpYTFZID0gKGRpZmZZRW5jVmlhMSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA1KSkgKiBzbmFwR3JpZCkpKSBlbHNlICh2aWExUm93TCA9IG1heCgxIGZpeCgoKCh0cmFuV2lkdGhMICsgdmlhMVNwYWNlICsgKC0gKDIgKiBkaWZmWUVuY1ZpYTEpKSkgLyB2aWExWVBpdGNoKSArIDFlLTA2KSkpKSAoZmlyc3RWaWExWSA9IGRpZmZZRW5jVmlhMSkpIChmaXJzdFZpYTFYID0gKGNhYXIobGVmdERpZmZCYm94KSArIGRpZmZYRW5jVmlhMU91dCArIGV4dHJhRGlmZkwpKSAodGhlWSA9IGZpcnN0VmlhMVkpIGZvcihyIDEgdmlhMVJvd0wgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKGZpcnN0VmlhMVg6dGhlWSkgKChmaXJzdFZpYTFYICsgdmlhMVdpZHRoKToodGhlWSArIHZpYTFMZW5ndGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVkgPSAodGhlWSArIHZpYTFZUGl0Y2gpKSkgKHZpYTFCYm94TCA9IGxpc3QobGlzdChmaXJzdFZpYTFYIGZpcnN0VmlhMVkpIGNhZHIoKGRiSWR+PmJCb3gpKSkpKSkpIChsYXllcjJCYm94ID0gbGlzdChsaXN0KChjYWFyKHZpYTFCYm94KSAtIGxheWVyMlhFbmNWaWExKSAoY2FkYXIodmlhMUJib3gpIC0gbGF5ZXIyWUVuY1ZpYTEpKSBsaXN0KChjYWFkcih2aWExQmJveCkgKyBsYXllcjJYRW5jVmlhMSkgKGNhZGFkcih2aWExQmJveCkgKyBsYXllcjJZRW5jVmlhMSkpKSkgdW5sZXNzKChub0xheWVyMyB8fCAhbGF5ZXIzKSBpZihjZW50ZXJWaWEyIHRoZW4gKHZpYTJSb3cgPSAoZmxvb3IgKHRyYW5XaWR0aCAvIHZpYTJZUGl0Y2gpKSkgaWYoKHZpYTJSb3cgPT0gMCkgKHZpYTJSb3cgPSAxKSkgKHZpYTJZb2Zmc2V0ID0gKCh0cmFuV2lkdGggLSAoKHZpYTJSb3cgKiB2aWEyWVBpdGNoKSAtIHZpYTJTcGFjZSkpIC8gMikpIChmaXJzdFZpYTJZID0gKGZpeCgoKHZpYTJZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkgZWxzZSAodmlhMlJvdyA9IG1heChmaXgoKCgodHJhbldpZHRoICsgdmlhMlNwYWNlICsgKC0gKDIgKiBsYXllcjJZRW5jVmlhMikpKSAvIHZpYTJZUGl0Y2gpICsgMWUtMDYpKSAxKSkgKGZpcnN0VmlhMlkgPSAoY2FkYXIobGF5ZXIyQmJveCkgKyBsYXllcjJZRW5jVmlhMikpKSAodmlhMkNvbCA9IG1heChmaXgoKCgoKGNhYWRyKGNlbnRlclRhcEJib3gpIC0gY2FhcihjZW50ZXJUYXBCYm94KSkgKyB2aWEyU3BhY2UgKyAoLSAoMiAqIGxheWVyMlhFbmNWaWEyKSkpIC8gdmlhMlhQaXRjaCkgKyAxZS0wNikpIDEpKSAodmlhMlhPZmZzZXQgPSAoKChjYWFkcihjZW50ZXJUYXBCYm94KSAtIGNhYXIoY2VudGVyVGFwQmJveCkpIC0gKCgtIHZpYTJTcGFjZSkgKyAodmlhMkNvbCAqIHZpYTJYUGl0Y2gpKSkgLyAyKSkgKHZpYTJYT2Zmc2V0ID0gKHJvdW5kKCgodmlhMlhPZmZzZXQgLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSAoZmlyc3RWaWEyWCA9IChjYWFyKGNlbnRlclRhcEJib3gpICsgdmlhMlhPZmZzZXQpKSAodGhlWSA9IGZpcnN0VmlhMlkpIGZvcihyIDEgdmlhMlJvdyAodGhlWCA9IGZpcnN0VmlhMlgpIGZvcihjb2wgMSB2aWEyQ29sIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh0aGVYOnRoZVkpICgodGhlWCArIHZpYTJXaWR0aCk6KHRoZVkgKyB2aWEyTGVuZ3RoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVYID0gKHRoZVggKyB2aWEyWFBpdGNoKSkpICh0aGVZID0gKHRoZVkgKyB2aWEyWVBpdGNoKSkpICh2aWEyQmJveCA9IGxpc3QobGlzdChmaXJzdFZpYTJYIGZpcnN0VmlhMlkpIGNhZHIoKGRiSWR+PmJCb3gpKSkpIChsYXllcjJCYm94ID0gbGlzdChsaXN0KG1pbihjYWFyKGxheWVyMkJib3gpIChjYWFyKHZpYTJCYm94KSAtIGxheWVyMlhFbmNWaWEyKSkgbWluKGNhZGFyKGxheWVyMkJib3gpIChjYWRhcih2aWEyQmJveCkgLSBsYXllcjJZRW5jVmlhMikpKSBsaXN0KG1heChjYWFkcihsYXllcjJCYm94KSAoY2FhZHIodmlhMkJib3gpICsgbGF5ZXIyWEVuY1ZpYTIpKSBtYXgoY2FkYWRyKGxheWVyMkJib3gpIChjYWRhZHIodmlhMkJib3gpICsgbGF5ZXIyWUVuY1ZpYTIpKSkpKSAobGF5ZXIzQmJveCA9IGxpc3QobGlzdCgoY2Fhcih2aWEyQmJveCkgLSBsYXllcjNYRW5jVmlhMikgKGNhZGFyKHZpYTJCYm94KSAtIGxheWVyM1lFbmNWaWEyKSkgbGlzdCgoY2FhZHIodmlhMkJib3gpICsgbGF5ZXIzWEVuY1ZpYTIpIChjYWRhZHIodmlhMkJib3gpICsgbGF5ZXIzWUVuY1ZpYTIpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMyBsYXllcjNCYm94KSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBhbGxEaXIgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMykpIHdoZW4oc3RyYXAgd2hlbihsZWZ0RGlmZiAobGF5ZXIyTFgxID0gKGNhYXIodmlhMUJib3hMKSAtIGxheWVyMlhFbmNWaWExKSkgaWYoZW11bGF0ZVNsb3RWaWFFbmMgdGhlbiAobGF5ZXIyTFkxID0gKGRpZmZZRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkgKGxheWVyMkxZMiA9ICgodHJhbldpZHRoTCAtIGRpZmZZRW5jVmlhMSkgKyBsYXllcjJZRW5jVmlhMSkpIGVsc2UgKGxheWVyMkxZMSA9IG1pbigoY2FkYXIodmlhMUJib3hMKSAtIGxheWVyMllFbmNWaWExKSBjYWRhcihsYXllcjJCYm94KSkpIGlmKCh0cmFuV2lkdGhMID09IHRyYW5XaWR0aCkgdGhlbiAobGF5ZXIyTFkyID0gbWF4KGNhZGFkcihsYXllcjJCYm94KSAoY2FkYWRyKHZpYTFCYm94TCkgKyBsYXllcjJZRW5jVmlhMSkpKSBlbHNlIChsYXllcjJMWTIgPSAoY2FkYWRyKHZpYTFCYm94TCkgKyBsYXllcjJZRW5jVmlhMSkpKSkgKGxheWVyMkxYMiA9IGNhYWRyKGxheWVyMkJib3gpKSAobGF5ZXIyQmJveEwgPSBsaXN0KChsYXllcjJMWDE6bGF5ZXIyTFkxKSAobGF5ZXIyTFgyOmxheWVyMkxZMikpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGF5ZXIyQmJveEwpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSB3aGVuKHJpZ2h0RGlmZiAobGF5ZXIyUlgyID0gKGNhYWRyKHZpYTFCYm94UikgKyBsYXllcjJYRW5jVmlhMSkpIGlmKGVtdWxhdGVTbG90VmlhRW5jIHRoZW4gKGxheWVyMlJZMSA9IChkaWZmWUVuY1ZpYTEgLSBsYXllcjJZRW5jVmlhMSkpIChsYXllcjJSWTIgPSAoKHRyYW5XaWR0aFIgLSBkaWZmWUVuY1ZpYTEpICsgbGF5ZXIyWUVuY1ZpYTEpKSBlbHNlIChsYXllcjJSWTEgPSBtaW4oKGNhZGFyKHZpYTFCYm94UikgLSBsYXllcjJZRW5jVmlhMSkgY2FkYXIobGF5ZXIyQmJveCkpKSBpZigodHJhbldpZHRoUiA9PSB0cmFuV2lkdGgpIHRoZW4gKGxheWVyMlJZMiA9IG1heChjYWRhZHIobGF5ZXIyQmJveCkgKGNhZGFkcih2aWExQmJveFIpICsgbGF5ZXIyWUVuY1ZpYTEpKSkgZWxzZSAobGF5ZXIyUlkyID0gKGNhZGFkcih2aWExQmJveFIpICsgbGF5ZXIyWUVuY1ZpYTEpKSkpIChsYXllcjJSWDEgPSBjYWFyKGxheWVyMkJib3gpKSAobGF5ZXIyQmJveFIgPSBsaXN0KChsYXllcjJSWDE6bGF5ZXIyUlkxKSAobGF5ZXIyUlgyOmxheWVyMlJZMikpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGF5ZXIyQmJveFIpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxheWVyMkJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIHVubGVzcyhsYXllcjMgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpKSkAKGRpZmZMYXllciB0YXBMYXllciB2aWExTGF5ZXIgbGF5ZXIyIHZpYTJMYXllciBsYXllcjMgd2VsbExheWVyIHdlbGxXaWR0aCBpZExheWVyIGlkTGF5ZXJFbmNEaWZmIGlkTGF5ZXJFbmNUYXAgaWRMYXllckVuY1dlbGwgaWRFbmNXZWxsIGRpZmZTb3VyY2VXaWR0aCBkaWZmWEVuY1ZpYTFJbiBkaWZmWEVuY1ZpYTFPdXQgZGlmZllFbmNWaWExIHRhcFhFbmNWaWExIHRhcFlFbmNWaWExIHRhcE1pbk5hckV4dCB0YXBXaWR0aEJldHdlZW4gdGFwQnV0dFNwYWNlIHRhcFdpZHRoQnV0dGluZyBsYXllcjJYRW5jVmlhMSBsYXllcjJYRW5jVmlhMiBsYXllcjJZRW5jVmlhMSBsYXllcjJZRW5jVmlhMiBsYXllcjNYRW5jVmlhMiBsYXllcjNZRW5jVmlhMiB2aWExV2lkdGggdmlhMUxlbmd0aCB2aWExU3BhY2UgdmlhMldpZHRoIHZpYTJMZW5ndGggdmlhMlNwYWNlIGRpZmZJbXBsYW50IGRpZmZJbXBFbmMgZGlmZkltcEVuY0J1dHQgZGlmZkNvcmVJbXBsYW50IGRpZmZDb3JlSW1wRW5jIGRpZmZDb3JlSW1wRW5jQnV0dCB0YXBJbXBsYW50IHRhcEltcEVuYyB0YXBJbXBFbmNCdXR0IHRhcEltcEVuY05vQnV0dCB3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYyBzbmFwR3JpZCBzbG90VmlhIGRpZmZUYXBWaWFTcGFjZSBlbXVsYXRlU2xvdFZpYUVuYyBjZW50ZXJWaWExIGNlbnRlclZpYTIgaW5XZWxsIGltcGxhbnQgbGVmdERpZmYgcmlnaHREaWZmIG5vTGF5ZXIzIG5vRW5kRW5jIHN0cmFwIHRyYW5XaWR0aEwgdHJhbldpZHRoUiBleHRyYURpZmZMIGV4dHJhRGlmZlIgZXh0cmFUYXBMIGV4dHJhVGFwUiBjb2x1bW4gbmV0IGFsbERpciB2aWExQ29sIHZpYTFYUGl0Y2ggdmlhMVlQaXRjaCB2aWEyWFBpdGNoIHZpYTJZUGl0Y2ggdHJhbldpZHRoIGNlbnRlclRhcEJib3ggZGJJZCBleHRyYVRhcEMgZXh0cmFUYXBDUiBleHRyYVRhcENMIHdpZHRoT2ZUYXAgZXh0cmFUYXAgbGVmdFRhcEJib3ggcmlnaHRUYXBCYm94IGRpZmZYU2l6ZSBkaWZmV2lkZUV4dHJhSW4gZGlmZk5hckV4dHJhSW4gbGVmdERpZmZCYm94IHBpbklkIHJpZ2h0RGlmZkJib3ggZXh0cmFMZWZ0SW1wVGFwIGV4dHJhUmlnaHRJbXBUYXAgcG9pbnRfYSBwb2ludF9iIHBvaW50X2MgcG9pbnRfZCBwb2ludF9lIHBvaW50X2YgcG9pbnRfZyBwb2ludF9oIHRhcEltcFBvaW50cyB3ZWxsSW1wUG9pbnRzIGlkTGF5ZXJQb2ludHMgdmlhMURyYXdTcGFjZVkgdmlhMVJvdyB2aWExbGVuZ3RoIHZpYTFZb2Zmc2V0IGZpcnN0VmlhMVkgZmlyc3RWaWExWCB0aGVZIHIgdGhlWCBjb2wgdmlhMUJib3ggY29udGFjdEltcFBhcmFtIGNvbnRhY3RXZWxsUGFyYW0gc2xvdFZpYUlkIHBhcmFtcyBzbG90WDFkaWZmQ29vcmQgc2xvdFgyZGlmZkNvb3JkIHNsb3RMZW5ndGggc2xvdFZpYVdpZHRoIHNsb3RWaWFMZW5ndGggc2xvdFZpYUVuY1ggc2xvdFZpYUVuY1kgaW5zdFBhcmFtcyBzbG90VmlhUl9YIHNsb3RWaWFSX1kgaW5zdFIgc2xvdFZpYVJZMiB2aWExQmJveFIgdmlhMVJvd1Igc2xvdFZpYUxfWCBzbG90VmlhTF9ZIGluc3RMIHZpYTFCYm94TCB2aWExUm93TCBsYXllcjJCYm94IHZpYTJSb3cgdmlhMllvZmZzZXQgZmlyc3RWaWEyWSB2aWEyQ29sIHZpYTJYT2Zmc2V0IGZpcnN0VmlhMlggdmlhMkJib3ggbGF5ZXIzQmJveCBsYXllcjJMWDEgbGF5ZXIyTFkxIGxheWVyMkxZMiBsYXllcjJMWDIgbGF5ZXIyQmJveEwgbGF5ZXIyUlgyIGxheWVyMlJZMSBsYXllcjJSWTIgbGF5ZXIyUlgxIGxheWVyMkJib3hSKQAoKGluV2VsbCAiRkFMU0UiKSAoaW1wbGFudCB0KSAobGVmdERpZmYgdCkgKHJpZ2h0RGlmZiB0KSAobm9MYXllcjMgIkZBTFNFIikgKG5vRW5kRW5jICJGQUxTRSIpIChzdHJhcCB0KSAodHJhbldpZHRoTCAwLjApICh0cmFuV2lkdGhSIDAuMCkgKGV4dHJhRGlmZkwgMC4wKSAoZXh0cmFEaWZmUiAwLjApIChleHRyYVRhcEwgMC4wKSAoZXh0cmFUYXBSIDAuMCkgKGNvbHVtbiAxKSkAKChkaWZmTGF5ZXIgInkxIikgKHRhcExheWVyICJoaWxpdGUiKSAodmlhMUxheWVyICJ5NCIpIChsYXllcjIgInByQm91bmRhcnkiKSAodmlhMkxheWVyIG5pbCkgKGxheWVyMyBuaWwpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbFdpZHRoIDAuMCkgKGlkTGF5ZXIgbmlsKSAoaWRMYXllckVuY0RpZmYgMC4wKSAoaWRMYXllckVuY1RhcCAwLjApIChpZExheWVyRW5jV2VsbCAwLjApIChpZEVuY1dlbGwgbmlsKSAoZGlmZlNvdXJjZVdpZHRoIDAuMCkgKGRpZmZYRW5jVmlhMUluIDAuMCkgKGRpZmZYRW5jVmlhMU91dCAwLjApIChkaWZmWUVuY1ZpYTEgMC4wKSAodGFwWEVuY1ZpYTEgMC4wKSAodGFwWUVuY1ZpYTEgMC4wKSAodGFwTWluTmFyRXh0IDAuMCkgKHRhcFdpZHRoQmV0d2VlbiAwLjApICh0YXBCdXR0U3BhY2UgMC4wKSAodGFwV2lkdGhCdXR0aW5nIDAuMCkgKGxheWVyMlhFbmNWaWExIDAuMCkgKGxheWVyMlhFbmNWaWEyIDAuMCkgKGxheWVyMllFbmNWaWExIDAuMCkgKGxheWVyMllFbmNWaWEyIDAuMCkgKGxheWVyM1hFbmNWaWEyIDAuMCkgKGxheWVyM1lFbmNWaWEyIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWExTGVuZ3RoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMkxlbmd0aCAwLjApICh2aWEyU3BhY2UgMC4wKSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkltcEVuY0J1dHQgbGlzdCgwLjAgMC4wKSkgKGRpZmZDb3JlSW1wbGFudCBuaWwpIChkaWZmQ29yZUltcEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkNvcmVJbXBFbmNCdXR0IGxpc3QoMC4wIDAuMCkpICh0YXBJbXBsYW50IG5pbCkgKHRhcEltcEVuYyBsaXN0KDAuMCAwLjApKSAodGFwSW1wRW5jQnV0dCBsaXN0KDAuMCAwLjApKSAodGFwSW1wRW5jTm9CdXR0IGxpc3QoMC4wIDAuMCkpICh3ZWxsTGF5ZXJEaWZmRW5jIDAuMCkgKHdlbGxMYXllclRhcEVuYyAwLjApIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAoc2xvdFZpYSBuaWwpIChkaWZmVGFwVmlhU3BhY2UgMC4wKSAoZW11bGF0ZVNsb3RWaWFFbmMgbmlsKSAoY2VudGVyVmlhMSBuaWwpIChjZW50ZXJWaWEyIG5pbCkpACgodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpICh2aWEyUGl0Y2ggPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgaWYoKG1pblNwYWNlRGlmZlRhcFZpYTEgIT0gMC4wKSB0aGVuIChkaWZmTGVuZ3RoID0gbWF4KChkaWZmTEVuY1ZpYSArIHZpYTFXaWR0aCArIGRpZmZSRW5jVmlhKSBtaW5TcmMpKSAoZGlmZkJ1dHRFbmMgPSAoZGlmZkxlbmd0aCAtIChkaWZmTEVuY1ZpYSArIHZpYTFXaWR0aCkpKSAoc2lkZVRhcFhJbkVuY1ZpYSA9IG1heCgobWluU3BhY2VEaWZmVGFwVmlhMSAtIGRpZmZCdXR0RW5jKSBzaWRlVGFwWEluRW5jVmlhKSkpIGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICIiICJpbnB1dCIpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKGRpZmZTcHJlYWQgPSAwLjApIHdoZW4oc3RyaW5ncChkaWZmKSAoZGlmZiA9IGxpc3QoZGlmZiAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKHRhcCkgKHRhcCA9IGxpc3QodGFwICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AobGF5ZXIyKSAobGF5ZXIyID0gbGlzdChsYXllcjIgImRyYXdpbmciKSkpIHdoZW4oKGxheWVyMyAmJiBzdHJpbmdwKGxheWVyMykpIChsYXllcjMgPSBsaXN0KGxheWVyMyAiZHJhd2luZyIpKSkgd2hlbihpbXBsYW50IHdoZW4oZGlmZkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGRpZmZJbXBsYW50ID0gY2FkcihkaWZmSW1wbGFudCkpIChkaWZmSW1wRW5jID0gY2FkcihkaWZmSW1wRW5jKSkgKGRpZmZJbXBFbmNCdXR0ID0gY2FkcihkaWZmSW1wRW5jQnV0dCkpIGVsc2UgKGRpZmZJbXBsYW50ID0gY2FyKGRpZmZJbXBsYW50KSkgKGRpZmZJbXBFbmMgPSBjYXIoZGlmZkltcEVuYykpIChkaWZmSW1wRW5jQnV0dCA9IGNhcihkaWZmSW1wRW5jQnV0dCkpKSkgd2hlbihkaWZmQ29yZUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGRpZmZDb3JlSW1wbGFudCA9IGNhZHIoZGlmZkNvcmVJbXBsYW50KSkgKGRpZmZDb3JlSW1wRW5jID0gY2FkcihkaWZmQ29yZUltcEVuYykpIChkaWZmQ29yZUltcEVuY0J1dHQgPSBjYWRyKGRpZmZDb3JlSW1wRW5jQnV0dCkpIGVsc2UgKGRpZmZDb3JlSW1wbGFudCA9IGNhcihkaWZmQ29yZUltcGxhbnQpKSAoZGlmZkNvcmVJbXBFbmMgPSBjYXIoZGlmZkNvcmVJbXBFbmMpKSAoZGlmZkNvcmVJbXBFbmNCdXR0ID0gY2FyKGRpZmZDb3JlSW1wRW5jQnV0dCkpKSkgd2hlbih0YXBJbXBsYW50IGlmKGluV2VsbCB0aGVuICh0YXBJbXBsYW50ID0gY2Fkcih0YXBJbXBsYW50KSkgKHRhcEltcEVuYyA9IGNhZHIodGFwSW1wRW5jKSkgKHRhcEltcEVuY0J1dHQgPSBjYWRyKHRhcEltcEVuY0J1dHQpKSBlbHNlICh0YXBJbXBsYW50ID0gY2FyKHRhcEltcGxhbnQpKSAodGFwSW1wRW5jID0gY2FyKHRhcEltcEVuYykpICh0YXBJbXBFbmNCdXR0ID0gY2FyKHRhcEltcEVuY0J1dHQpKSkpKSB3aGVuKGltcGxhbnQgd2hlbihkaWZmSW1wRW5jTGlzdCBpZihpbldlbGwgdGhlbiAoZW5jTGlzdCA9IGNhZHIobnRoKGRpZmZJbXBDaG9pY2UgZGlmZkltcEVuY0xpc3QpKSkgZWxzZSAoZW5jTGlzdCA9IGNhcihudGgoZGlmZkltcENob2ljZSBkaWZmSW1wRW5jTGlzdCkpKSkgKGRpZmZJbXBFbmNYTCA9IG50aCgwIGVuY0xpc3QpKSAoZGlmZkltcEVuY1hSID0gbnRoKDEgZW5jTGlzdCkpIChkaWZmSW1wRW5jWSA9IG50aCgyIGVuY0xpc3QpKSkgd2hlbih0YXBJbXBFbmNMaXN0IGlmKGluV2VsbCB0aGVuIChlbmNMaXN0ID0gY2FkcihudGgodGFwSW1wQ2hvaWNlIHRhcEltcEVuY0xpc3QpKSkgZWxzZSAoZW5jTGlzdCA9IGNhcihudGgodGFwSW1wQ2hvaWNlIHRhcEltcEVuY0xpc3QpKSkpICh0YXBJbXBFbmNYTCA9IG50aCgwIGVuY0xpc3QpKSAodGFwSW1wRW5jWFIgPSBudGgoMSBlbmNMaXN0KSkgKHRhcEltcEVuY1kgPSBudGgoMiBlbmNMaXN0KSkpIChkaWZmSW1wRW5jWSA9ICgoYm91bmRwKCdkaWZmSW1wRW5jWSkgJiYgZGlmZkltcEVuY1kpIHx8IGRpZmZJbXBFbmMpKSAoZGlmZkltcEVuY1hMID0gKChib3VuZHAoJ2RpZmZJbXBFbmNYTCkgJiYgZGlmZkltcEVuY1hMKSB8fCBkaWZmSW1wRW5jKSkgKGRpZmZJbXBFbmNYUiA9ICgoYm91bmRwKCdkaWZmSW1wRW5jWFIpICYmIGRpZmZJbXBFbmNYUikgfHwgZGlmZkltcEVuYykpICh0YXBJbXBFbmNZID0gKChib3VuZHAoJ3RhcEltcEVuY1kpICYmIHRhcEltcEVuY1kpIHx8IHRhcEltcEVuYykpICh0YXBJbXBFbmNYTCA9ICgoYm91bmRwKCd0YXBJbXBFbmNYTCkgJiYgdGFwSW1wRW5jWEwpIHx8IHRhcEltcEVuYykpICh0YXBJbXBFbmNYUiA9ICgoYm91bmRwKCd0YXBJbXBFbmNYUikgJiYgdGFwSW1wRW5jWFIpIHx8IHRhcEltcEVuYykpKSAoY29udGFjdFdpZHRoID0gbWF4KHRhcFdpZHRoQnV0dGluZ0RpZmYgKHRpcFRhcFlJbkVuY1ZpYSArIHRpcFRhcFlPdXRFbmNWaWEgKyB2aWExV2lkdGgpKSkgKGRpZmZDb250YWN0WXdpdGhUaXBUYXAgPSBtYXgoKHZpYTFTcGFjZSAtIHRpcFRhcFlJbkVuY1ZpYSkgZGlmZllFbmNWaWEpKSAodGFwQ29udGFjdFl3aXRoVGlwVGFwID0gbWF4KCh2aWExU3BhY2UgLSB0aXBUYXBZSW5FbmNWaWEpIHNpZGVUYXBZRW5jVmlhKSkgKGRpZmZDb250YWN0WXdpdGhvdXRUaXBUYXAgPSBkaWZmWUVuY1ZpYSkgKHRhcENvbnRhY3RZd2l0aG91dFRpcFRhcCA9IHNpZGVUYXBZRW5jVmlhKSBjb25kKCgoYm90dG9tRW5kVGFwID09ICJUUlVFIikgKGRpZmZDb250YWN0WW9yaWdpbiA9IGRpZmZDb250YWN0WXdpdGhUaXBUYXApICh0YXBDb250YWN0WW9yaWdpbiA9IHRhcENvbnRhY3RZd2l0aFRpcFRhcCkpICh0IChkaWZmQ29udGFjdFlvcmlnaW4gPSBkaWZmQ29udGFjdFl3aXRob3V0VGlwVGFwKSAodGFwQ29udGFjdFlvcmlnaW4gPSB0YXBDb250YWN0WXdpdGhvdXRUaXBUYXApKSkgY29uZCgoKHRvcEVuZFRhcCA9PSAiVFJVRSIpIChsYXN0RGlmZkNvbnRhY3RZb3JpZ2luID0gKHcgLSBkaWZmQ29udGFjdFl3aXRoVGlwVGFwIC0gdmlhMVdpZHRoKSkgKGxhc3RUYXBDb250YWN0WW9yaWdpbiA9ICh3IC0gdGFwQ29udGFjdFl3aXRoVGlwVGFwIC0gdmlhMVdpZHRoKSkgKGRpZmZDb250YWN0WWVuZEVuYyA9IGRpZmZDb250YWN0WXdpdGhUaXBUYXApICh0YXBDb250YWN0WWVuZEVuYyA9IHRhcENvbnRhY3RZd2l0aFRpcFRhcCkpICh0IChsYXN0RGlmZkNvbnRhY3RZb3JpZ2luID0gKHcgLSBkaWZmQ29udGFjdFl3aXRob3V0VGlwVGFwIC0gdmlhMVdpZHRoKSkgKGxhc3RUYXBDb250YWN0WW9yaWdpbiA9ICh3IC0gdGFwQ29udGFjdFl3aXRob3V0VGlwVGFwIC0gdmlhMVdpZHRoKSkgKGRpZmZDb250YWN0WWVuZEVuYyA9IGRpZmZDb250YWN0WXdpdGhvdXRUaXBUYXApICh0YXBDb250YWN0WWVuZEVuYyA9IHRhcENvbnRhY3RZd2l0aG91dFRpcFRhcCkpKSAobWluVyA9IG1heChkaWZmV2lkdGggdGFwV2lkdGggKHZpYTFXaWR0aCArICgyLjAgKiAodmlhMVNwYWNlIC0gdGlwVGFwWUluRW5jVmlhKSkpKSkgd2hlbigoKG1pblcgLSB3KSA+IDFlLTA2KSAoc21hbGxlck1pblcgPSBtYXgoZGlmZldpZHRoIHRhcFdpZHRoICh2aWExV2lkdGggKyAoMi4wICogbWF4KGRpZmZZRW5jVmlhIHNpZGVUYXBZRW5jVmlhKSkpKSkgd2hlbigoKHNtYWxsZXJNaW5XIC0gdykgPiAxZS0wNikgZXJyb3IoIkNhbm5vdCBkcmF3IGVuU3N0cmFwM1BvbEltcENsYXNzIC0gdyB0b28gc21hbGwiKSkgKGxhc3REaWZmQ29udGFjdFlvcmlnaW4gPSAodyAtIGRpZmZZRW5jVmlhIC0gdmlhMVdpZHRoKSkgKGxhc3RUYXBDb250YWN0WW9yaWdpbiA9ICh3IC0gc2lkZVRhcFlFbmNWaWEgLSB2aWExV2lkdGgpKSBjb25kKCgoKGJvdHRvbUVuZFRhcCA9PSAiVFJVRSIpICYmICh0b3BFbmRUYXAgPT0gIlRSVUUiKSkgKGRpZmZTcHJlYWQgPSAoKG1pblcgLSB3KSAvIDIuMCkpIChvZGRwKHJvdW5kKChkaWZmU3ByZWFkIC8gaGFsZkRpZmZ1c2lvbkdyaWQpKSkgJiYgKGRpZmZTcHJlYWQgPSAoZGlmZlNwcmVhZCArIGhhbGZEaWZmdXNpb25HcmlkKSkpIChkaWZmQ29udGFjdFlvcmlnaW4gPSAoKC0gZGlmZlNwcmVhZCkgKyAoLSB0aXBUYXBZSW5FbmNWaWEpICsgdmlhMVNwYWNlKSkgKHRhcENvbnRhY3RZb3JpZ2luID0gbWF4KHNpZGVUYXBZRW5jVmlhIGRpZmZDb250YWN0WW9yaWdpbikpIChjb250YWN0V2lkdGggPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAoZGlmZlNwcmVhZCArIHRpcFRhcFlJbkVuY1ZpYSArIHRpcFRhcFlPdXRFbmNWaWEgKyB2aWExV2lkdGgpKSkpICgoYm90dG9tRW5kVGFwID09ICJUUlVFIikgKGRpZmZDb250YWN0WW9yaWdpbiA9ICh3IC0gZGlmZllFbmNWaWEgLSB2aWExV2lkdGgpKSB3aGVuKChkaWZmQ29udGFjdFlvcmlnaW4gPiAodmlhMVNwYWNlIC0gdGlwVGFwWUluRW5jVmlhKSkgKGRpZmZDb250YWN0WW9yaWdpbiA9ICh2aWExU3BhY2UgLSB0aXBUYXBZSW5FbmNWaWEpKSkgKHRhcENvbnRhY3RZb3JpZ2luID0gKHcgLSBzaWRlVGFwWUVuY1ZpYSAtIHZpYTFXaWR0aCkpIChwb3RlbnRpYWxEaWZmU3ByZWFkID0gKHZpYTFTcGFjZSAtIG1pbihkaWZmQ29udGFjdFlvcmlnaW4gdGFwQ29udGFjdFlvcmlnaW4pKSkgd2hlbigocG90ZW50aWFsRGlmZlNwcmVhZCA+IHRpcFRhcFlJbkVuY1ZpYSkgKGRpZmZTcHJlYWQgPSBwb3RlbnRpYWxEaWZmU3ByZWFkKSkgKGNvbnRhY3RXaWR0aCA9IG1heCh0YXBXaWR0aEJ1dHRpbmdEaWZmICh0aXBUYXBZT3V0RW5jVmlhICsgdmlhMVdpZHRoICsgbWF4KHRpcFRhcFlJbkVuY1ZpYSBwb3RlbnRpYWxEaWZmU3ByZWFkKSkpKSkgKCh0b3BFbmRUYXAgPT0gIlRSVUUiKSAoZGlmZkNvbnRhY3RZb3JpZ2luID0gZGlmZllFbmNWaWEpICh0YXBDb250YWN0WW9yaWdpbiA9IHNpZGVUYXBZRW5jVmlhKSAocG90ZW50aWFsRGlmZlNwcmVhZCA9ICgobWF4KGRpZmZDb250YWN0WW9yaWdpbiB0YXBDb250YWN0WW9yaWdpbikgKyB2aWExV2lkdGggKyB2aWExU3BhY2UpIC0gdykpIHdoZW4oKHBvdGVudGlhbERpZmZTcHJlYWQgPiB0aXBUYXBZSW5FbmNWaWEpIChkaWZmU3ByZWFkID0gcG90ZW50aWFsRGlmZlNwcmVhZCkpIChjb250YWN0V2lkdGggPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAodGlwVGFwWU91dEVuY1ZpYSArIHZpYTFXaWR0aCArIG1heCh0aXBUYXBZSW5FbmNWaWEgcG90ZW50aWFsRGlmZlNwcmVhZCkpKSkpKSkgKHN0YWdnZXIgPSAoKHRyeVRvU3RhZ2dlciA9PSAiVFJVRSIpICYmICgodyAtIChkaWZmQ29udGFjdFlvcmlnaW4gKyB2aWExU3BhY2UgKyAoMiAqIHZpYTFXaWR0aCkgKyB0YXBDb250YWN0WWVuZEVuYykpID4gLTFlLTA2KSkpIChub0RpZmZDb250YWN0ID0gKG5vRGlmZkNvbnRhY3QgPT0gIlRSVUUiKSkgY29uZCgoc3RhZ2dlciAodGFwQ29udGFjdFlvcmlnaW4gPSAoZGlmZkNvbnRhY3RZb3JpZ2luICsgdmlhMVNwYWNlICsgdmlhMVdpZHRoKSkgKGNvbnRhY3RZb2Zmc2V0ID0gKDIgKiAodmlhMVdpZHRoICsgdmlhMVNwYWNlKSkpICh0YXBDb250YWN0WG9yaWdpbiA9IChkaWZmTEVuY1ZpYSArIHZpYTFXaWR0aCArIGRpZmZSRW5jVmlhICsgc2lkZVRhcFhJbkVuY1ZpYSkpICh0YXBPcmlnaW4gPSBtYXgoKGRpZmZMRW5jVmlhICsgdmlhMVdpZHRoICsgZGlmZlJFbmNWaWEpIG1pblNyYykpKSAodCAoY29udGFjdFlvZmZzZXQgPSAodmlhMVdpZHRoICsgdmlhMVNwYWNlKSkgY29uZCgobm9EaWZmQ29udGFjdCAodGFwQ29udGFjdFhvcmlnaW4gPSAobWluU3JjICsgc2lkZVRhcFhJbkVuY1ZpYSkpKSAodCAodGFwQ29udGFjdFhvcmlnaW4gPSBtYXgoKGRpZmZMRW5jVmlhICsgdmlhMVdpZHRoICsgZGlmZlJFbmNWaWEgKyBzaWRlVGFwWEluRW5jVmlhKSAoZGlmZkxFbmNWaWEgKyB2aWExV2lkdGggKyB2aWExU3BhY2UpIChtaW5TcmMgKyBzaWRlVGFwWEluRW5jVmlhKSkpKSkgKHRhcE9yaWdpbiA9IG1heCgoZGlmZkxFbmNWaWEgKyB2aWExV2lkdGggKyBkaWZmUkVuY1ZpYSkgbWluU3JjKSkpKSAoZGlmZkNvbnRhY3RYb3JpZ2luID0gZGlmZkxFbmNWaWEpIChkaWZmQ29udGFjdFhlbmQgPSAoZGlmZkNvbnRhY3RYb3JpZ2luICsgdmlhMVdpZHRoKSkgKHRhcENvbnRhY3RYZW5kID0gKHRhcENvbnRhY3RYb3JpZ2luICsgdmlhMVdpZHRoKSkgKHRhcFJpZ2h0RWRnZSA9IG1heCgodGFwQ29udGFjdFhvcmlnaW4gKyB2aWExV2lkdGggKyBzaWRlVGFwWE91dEVuY1ZpYSkgKHRhcE9yaWdpbiArIHRhcFdpZHRoQnV0dGluZ0RpZmYpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KCgwOjApICh0YXBPcmlnaW46dykpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiZGlmZkxheWVyQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KCgodGFwT3JpZ2luIC0gbWluUGluV2lkdGgpOjApICh0YXBPcmlnaW46dykpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJJZCkpIHNldFNHcShwaW5JZCBsaXN0KCJsZWZ0IikgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIHdoZW4oKGltcGxhbnQgJiYgZGlmZkltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoY2FhcigodGNDZWxsVmlld34+ZGlmZkxheWVyQmJveCkpIC0gZGlmZkltcEVuY1hMKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSAtIGRpZmZJbXBFbmNZKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSArIGRpZmZJbXBFbmNCdXR0KSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj5kaWZmTGF5ZXJCYm94KSkgKyBkaWZmSW1wRW5jWSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgd2hlbigoaW1wbGFudCAmJiBkaWZmQ29yZUltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZDb3JlSW1wbGFudCBsaXN0KGxpc3QoKGNhYXIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSAtIGRpZmZDb3JlSW1wRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSAtIGRpZmZDb3JlSW1wRW5jKSkgbGlzdCgoY2FhZHIoKHRjQ2VsbFZpZXd+PmRpZmZMYXllckJib3gpKSArIGRpZmZDb3JlSW1wRW5jQnV0dCkgKGNhZGFkcigodGNDZWxsVmlld34+ZGlmZkxheWVyQmJveCkpICsgZGlmZkNvcmVJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcCBsaXN0KCh0YXBPcmlnaW46MCkgKHRhcFJpZ2h0RWRnZTp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRhcExlZnRFZGdlID0gdGFwT3JpZ2luKSAodGFwQm90dG9tRWRnZSA9IDAuMCkgKHRhcFRvcEVkZ2UgPSB3KSB3aGVuKChpbXBsYW50ICYmIHRhcEltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcEltcGxhbnQgbGlzdChsaXN0KCh0YXBPcmlnaW4gLSB0YXBJbXBFbmNCdXR0KSAoLSB0YXBJbXBFbmNZKSkgbGlzdCgodGFwUmlnaHRFZGdlICsgdGFwSW1wRW5jWFIpICh3ICsgdGFwSW1wRW5jWSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgaWYoY2VudGVyVmlhMSB0aGVuICh2aWFEcmF3U3BhY2VZID0gKHcgLSAoZGlmZllFbmNWaWEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSkgaWYoKHZpYTFSb3cgPT0gMCkgKHZpYTFSb3cgPSAxKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWFEcmF3U3BhY2VZIC0gKCh2aWExUm93ICogdmlhMVBpdGNoKSAtIHZpYTFTcGFjZSkpIC8gMikpICh2aWExWW9yaWdpbiA9IChkaWZmWUVuY1ZpYSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSAoeVZhbHVlID0gdmlhMVlvcmlnaW4pIGZvcihyIDEgdmlhMVJvdyB1bmxlc3Mobm9EaWZmQ29udGFjdCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoZGlmZkNvbnRhY3RYb3JpZ2luOnlWYWx1ZSkgKGRpZmZDb250YWN0WGVuZDooeVZhbHVlICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTFQaXRjaCkpKSAoZGlmZkNvbnRhY3RZZW5kID0gKHlWYWx1ZSAtIHZpYTFTcGFjZSkpICh2aWFEcmF3U3BhY2VZID0gKHcgLSAoc2lkZVRhcFlFbmNWaWEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSkgaWYoKHZpYTFSb3cgPT0gMCkgKHZpYTFSb3cgPSAxKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWFEcmF3U3BhY2VZIC0gKCh2aWExUm93ICogdmlhMVBpdGNoKSAtIHZpYTFTcGFjZSkpIC8gMikpICh2aWExWW9yaWdpbiA9IChzaWRlVGFwWUVuY1ZpYSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSAoeVZhbHVlID0gdmlhMVlvcmlnaW4pIGZvcihyIDEgdmlhMVJvdyAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodGFwQ29udGFjdFhvcmlnaW46eVZhbHVlKSAodGFwQ29udGFjdFhlbmQ6KHlWYWx1ZSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTFQaXRjaCkpKSAodGFwQ29udGFjdFllbmQgPSAoeVZhbHVlIC0gdmlhMVNwYWNlKSkgZWxzZSAodmlhMVlvcmlnaW4gPSBkaWZmQ29udGFjdFlvcmlnaW4pICh5VmFsdWUgPSBkaWZmQ29udGFjdFlvcmlnaW4pIHdoaWxlKCgobGFzdERpZmZDb250YWN0WW9yaWdpbiAtIHlWYWx1ZSkgPiAtMWUtMDYpIHVubGVzcyhub0RpZmZDb250YWN0IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KChkaWZmQ29udGFjdFhvcmlnaW46eVZhbHVlKSAoZGlmZkNvbnRhY3RYZW5kOih5VmFsdWUgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpICh5VmFsdWUgPSAoeVZhbHVlICsgY29udGFjdFlvZmZzZXQpKSkgKGRpZmZDb250YWN0WWVuZCA9ICh2aWExV2lkdGggKyAoeVZhbHVlIC0gY29udGFjdFlvZmZzZXQpKSkgKHlWYWx1ZSA9IHRhcENvbnRhY3RZb3JpZ2luKSB3aGlsZSgoKGxhc3RUYXBDb250YWN0WW9yaWdpbiAtIHlWYWx1ZSkgPiAtMWUtMDYpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh0YXBDb250YWN0WG9yaWdpbjp5VmFsdWUpICh0YXBDb250YWN0WGVuZDooeVZhbHVlICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh5VmFsdWUgPSAoeVZhbHVlICsgY29udGFjdFlvZmZzZXQpKSkgKHRhcENvbnRhY3RZZW5kID0gKHZpYTFXaWR0aCArICh5VmFsdWUgLSBjb250YWN0WW9mZnNldCkpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJiQm94VmlhMSIgImxpc3QiIGxpc3QoKGRpZmZDb250YWN0WG9yaWdpbjp2aWExWW9yaWdpbikgKHRhcENvbnRhY3RZZW5kOnlWYWx1ZSkpKSBpZihub0RpZmZDb250YWN0IHRoZW4gKGxheWVyMlhvcmlnaW4gPSAodGFwQ29udGFjdFhvcmlnaW4gLSBsYXllcjJYRW5jVmlhKSkgZWxzZSAobGF5ZXIyWG9yaWdpbiA9IChkaWZmQ29udGFjdFhvcmlnaW4gLSBsYXllcjJYRW5jVmlhKSkpIChsYXllcjJYZW5kID0gKHRhcENvbnRhY3RYZW5kICsgbGF5ZXIyWEVuY1ZpYSkpIChsYXllcjJNaW5XaWR0aCA9IG1heChsYXllcjJXaWR0aCAoKDIgKiBsYXllcjJYRW5jVmlhMikgKyB2aWEyV2lkdGgpKSkgKCgobGF5ZXIyTWluV2lkdGggLSAobGF5ZXIyWGVuZCAtIGxheWVyMlhvcmlnaW4pKSA+IC0xZS0wNikgJiYgKGxheWVyMlhlbmQgPSAobGF5ZXIyWG9yaWdpbiArIGxheWVyMk1pbldpZHRoKSkpIGlmKGxheWVyMyB0aGVuIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKGxheWVyMllvcmlnaW4gPSAoZGlmZllFbmNWaWEgLSBtYXgobGF5ZXIyWUVuY1ZpYSBsYXllcjJZRW5jVmlhMikpKSBlbHNlIChsYXllcjJZb3JpZ2luID0gbWluKDAuMCAobWluKGRpZmZDb250YWN0WW9yaWdpbiB0YXBDb250YWN0WW9yaWdpbikgLSBtYXgobGF5ZXIyWUVuY1ZpYSBsYXllcjJZRW5jVmlhMikpKSkpIChudW1WaWEyID0gbWF4KGZpeCgoKCh3ICsgdmlhMlNwYWNlICsgKC0gKGxheWVyMllFbmNWaWEyICsgbGF5ZXIyWUVuY1ZpYTIpKSArICgtIGxheWVyMllvcmlnaW4pKSAvICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSArIDFlLTA2KSkgMSkpIChsYXN0VmlhMlllbmQgPSAoKHZpYTJXaWR0aCAqIG51bVZpYTIpICsgKHZpYTJTcGFjZSAqIChudW1WaWEyIC0gMSkpICsgbGF5ZXIyWW9yaWdpbiArIGxheWVyMllFbmNWaWEyKSkgaWYoZW11bGF0ZVNsb3RWaWEgdGhlbiAobGF5ZXIyWWVuZCA9IChsYXllcjJZRW5jVmlhICsgKHcgLSBkaWZmWUVuY1ZpYSkpKSBlbHNlIChsYXllcjJZZW5kID0gbWF4KChtYXgoZGlmZkNvbnRhY3RZZW5kIHRhcENvbnRhY3RZZW5kKSArIGxheWVyMllFbmNWaWEpIChsYXN0VmlhMlllbmQgKyBsYXllcjJZRW5jVmlhMikpKSkgaWYoY2VudGVyVmlhMiB0aGVuICh2aWEyWG9mZnNldCA9ICgodmlhMldpZHRoIC0gdmlhMVdpZHRoKSAvIDIpKSAodmlhMlhvZmZzZXQgPSAoZml4KCgodmlhMlhvZmZzZXQgLyBzbmFwR3JpZCkgKyAxZS0wNSkpICogc25hcEdyaWQpKSAodmlhMlhvcmlnaW4gPSAoZGlmZkNvbnRhY3RYb3JpZ2luIC0gdmlhMlhvZmZzZXQpKSAodmlhMlhlbmQgPSAodmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSAobGF5ZXIyWG9yaWdpbiA9ICh2aWEyWG9yaWdpbiAtIGxheWVyMlhFbmNWaWEyKSkpIGVsc2UgaWYobm9EaWZmQ29udGFjdCB0aGVuIGlmKGNlbnRlckxheWVyMiB0aGVuIChsYXllcjJZb3JpZ2luID0gKHZpYTFZb3JpZ2luIC0gbGF5ZXIyWUVuY1ZpYSkpIGVsc2UgKHRhcENvbnRhY3RZb3JpZ2luIC0gbGF5ZXIyWUVuY1ZpYSkpIChsYXllcjJZZW5kID0gKHRhcENvbnRhY3RZZW5kICsgbGF5ZXIyWUVuY1ZpYSkpIGVsc2UgaWYoZW11bGF0ZVNsb3RWaWEgdGhlbiAobGF5ZXIyWW9yaWdpbiA9IChkaWZmWUVuY1ZpYSAtIGxheWVyMllFbmNWaWEpKSAobGF5ZXIyWWVuZCA9IChsYXllcjJZRW5jVmlhICsgKHcgLSBkaWZmWUVuY1ZpYSkpKSBlbHNlIGlmKGNlbnRlckxheWVyMiB0aGVuIChsYXllcjJZb3JpZ2luID0gKHZpYTFZb3JpZ2luIC0gbGF5ZXIyWUVuY1ZpYSkpIGVsc2UgKGxheWVyMllvcmlnaW4gPSBtaW4oMC4wIChtaW4oZGlmZkNvbnRhY3RZb3JpZ2luIHRhcENvbnRhY3RZb3JpZ2luKSAtIGxheWVyMllFbmNWaWEpKSkpIChsYXllcjJZZW5kID0gKG1heChkaWZmQ29udGFjdFllbmQgdGFwQ29udGFjdFllbmQpICsgbGF5ZXIyWUVuY1ZpYSkpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KChsYXllcjJYb3JpZ2luOmxheWVyMllvcmlnaW4pIChsYXllcjJYZW5kOmxheWVyMlllbmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJiQm94TGF5ZXIyIiAiSUxMaXN0IiAoZGJJZH4+YkJveCkpIHVubGVzcyhsYXllcjMgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpKSAodmlhWG9yaWdpbiA9ICh0YXBTcGFjZVBvbHkgKyB0aXBUYXBYRW5jVmlhKSkgKHZpYVhlbmQgPSAodmlhWG9yaWdpbiArIHZpYTFXaWR0aCkpICh0YkxheWVyMlhvcmlnaW4gPSAodmlhWG9yaWdpbiAtIGxheWVyMlhFbmNUaXBWaWEpKSAodGJMYXllcjJYZW5kID0gKHZpYVhlbmQgKyBsYXllcjJYRW5jVGlwVmlhKSkgKCgobGF5ZXIyV2lkdGggLSAodGJMYXllcjJYZW5kIC0gdGJMYXllcjJYb3JpZ2luKSkgPiAtMWUtMDYpICYmICh0YkxheWVyMlhlbmQgPSAodGJMYXllcjJYb3JpZ2luICsgbGF5ZXIyV2lkdGgpKSkgd2hlbihzaWRlUmVjb2duaXRpb24gKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgc2lkZVJlY29nbml0aW9uIGxpc3QoKHRhcE9yaWdpbjppZigoYm90dG9tRW5kVGFwID09ICJUUlVFIikgKC0gY29udGFjdFdpZHRoKSAwLjApKSAodGFwUmlnaHRFZGdlOih3ICsgaWYoKHRvcEVuZFRhcCA9PSAiVFJVRSIpIGNvbnRhY3RXaWR0aCAwLjApKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSBjb25kKCgoYm90dG9tRW5kVGFwID09ICJUUlVFIikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwIGxpc3QoKHRhcFNwYWNlUG9seTowKSAodGFwUmlnaHRFZGdlOigtIGNvbnRhY3RXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKChpbXBsYW50ICYmIHRhcEltcGxhbnQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcEltcGxhbnQgbGlzdChsaXN0KCh0YXBTcGFjZVBvbHkgLSB0YXBJbXBFbmMpIHRhcEltcEVuY0J1dHQpIGxpc3QoKHRhcFJpZ2h0RWRnZSArIHRhcEltcEVuYykgKCgtIGNvbnRhY3RXaWR0aCkgLSB0YXBJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIHdoZW4oKHRhcFNwYWNlUG9seSA8IHRhcExlZnRFZGdlKSAodGFwTGVmdEVkZ2UgPSB0YXBTcGFjZVBvbHkpKSB3aGVuKCgoLSBjb250YWN0V2lkdGgpIDwgdGFwQm90dG9tRWRnZSkgKHRhcEJvdHRvbUVkZ2UgPSAoLSBjb250YWN0V2lkdGgpKSkgd2hlbigoY29udGFjdFdpZHRoID09IHRhcFdpZHRoQnV0dGluZ0RpZmYpICh0aXBUYXBZT3V0RW5jVmlhID0gKHRhcFdpZHRoQnV0dGluZ0RpZmYgLSB2aWExV2lkdGggLSB0aXBUYXBZSW5FbmNWaWEgLSBkaWZmU3ByZWFkKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh2aWFYb3JpZ2luOigoLSBjb250YWN0V2lkdGgpICsgdGlwVGFwWU91dEVuY1ZpYSkpICh2aWFYZW5kOigoLSBjb250YWN0V2lkdGgpICsgdGlwVGFwWU91dEVuY1ZpYSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgodGJMYXllcjJYb3JpZ2luOjAuMCkgKHRiTGF5ZXIyWGVuZDooKC0gY29udGFjdFdpZHRoKSArIHRpcFRhcFlPdXRFbmNWaWEgKyAoLSBsYXllcjJZRW5jVGlwVmlhKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpICh0IHQpKSBjb25kKCgodG9wRW5kVGFwID09ICJUUlVFIikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwIGxpc3QoKHRhcFNwYWNlUG9seTp3KSAodGFwUmlnaHRFZGdlOih3ICsgY29udGFjdFdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIHdoZW4oKGltcGxhbnQgJiYgdGFwSW1wbGFudCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwSW1wbGFudCBsaXN0KGxpc3QoKHRhcFNwYWNlUG9seSAtIHRhcEltcEVuYykgKHcgLSB0YXBJbXBFbmNCdXR0KSkgbGlzdCgodGFwUmlnaHRFZGdlICsgdGFwSW1wRW5jKSAoKHcgKyBjb250YWN0V2lkdGgpICsgdGFwSW1wRW5jKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKCh0YXBTcGFjZVBvbHkgPCB0YXBMZWZ0RWRnZSkgKHRhcExlZnRFZGdlID0gdGFwU3BhY2VQb2x5KSkgd2hlbigoKHcgKyBjb250YWN0V2lkdGgpID4gdGFwVG9wRWRnZSkgKHRhcFRvcEVkZ2UgPSAodyArIGNvbnRhY3RXaWR0aCkpKSB3aGVuKChjb250YWN0V2lkdGggPT0gdGFwV2lkdGhCdXR0aW5nRGlmZikgKHRpcFRhcFlPdXRFbmNWaWEgPSAodGFwV2lkdGhCdXR0aW5nRGlmZiAtIHZpYTFXaWR0aCAtIHRpcFRhcFlJbkVuY1ZpYSAtIGRpZmZTcHJlYWQpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYVhvcmlnaW46KHcgKyBjb250YWN0V2lkdGggKyAoLSB0aXBUYXBZT3V0RW5jVmlhKSArICgtIHZpYTFXaWR0aCkpKSAodmlhWGVuZDoodyArIGNvbnRhY3RXaWR0aCArICgtIHRpcFRhcFlPdXRFbmNWaWEpKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCh0YkxheWVyMlhvcmlnaW46dykgKHRiTGF5ZXIyWGVuZDoodyArIGNvbnRhY3RXaWR0aCArICgtIHRpcFRhcFlPdXRFbmNWaWEpICsgbGF5ZXIyWUVuY1RpcFZpYSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiSWQpKSBzZXRTR3EocGluSWQgYWxsRGlyIGFjY2Vzc0RpcikpICh0IHQpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRhcExheWVyQmJveCIgImxpc3QiIGxpc3QoKHRhcExlZnRFZGdlOnRhcEJvdHRvbUVkZ2UpICh0YXBSaWdodEVkZ2U6dGFwVG9wRWRnZSkpKSB3aGVuKHdlbGxMYXllciAod2VsbEJib3ggPSBsaXN0KGxpc3QobWluKChjYWFyKCh0Y0NlbGxWaWV3fj5kaWZmTGF5ZXJCYm94KSkgLSB3ZWxsTGF5ZXJEaWZmRW5jKSAoY2FhcigodGNDZWxsVmlld34+dGFwTGF5ZXJCYm94KSkgLSB3ZWxsTGF5ZXJUYXBFbmMpKSBtaW4oKGNhZGFyKCh0Y0NlbGxWaWV3fj5kaWZmTGF5ZXJCYm94KSkgLSB3ZWxsTGF5ZXJEaWZmRW5jKSAoY2FkYXIoKHRjQ2VsbFZpZXd+PnRhcExheWVyQmJveCkpIC0gd2VsbExheWVyVGFwRW5jKSkpIGxpc3QobWF4KChjYWFkcigodGNDZWxsVmlld34+ZGlmZkxheWVyQmJveCkpICsgd2VsbExheWVyRGlmZkVuYykgKGNhYWRyKCh0Y0NlbGxWaWV3fj50YXBMYXllckJib3gpKSArIHdlbGxMYXllclRhcEVuYykpIG1heCgoY2FkYWRyKCh0Y0NlbGxWaWV3fj5kaWZmTGF5ZXJCYm94KSkgKyB3ZWxsTGF5ZXJEaWZmRW5jKSAoY2FkYWRyKCh0Y0NlbGxWaWV3fj50YXBMYXllckJib3gpKSArIHdlbGxMYXllclRhcEVuYykpKSkpIHdoZW4oKGltcGxhbnQgJiYgaW5XZWxsKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgd2VsbEJib3gpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAid2VsbExheWVyQmJveCIgImxpc3QiIHdlbGxCYm94KSkgd2hlbihsYXllcjMgaWYoY2VudGVyVmlhMiB0aGVuIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKHZpYTJSb3cgPSAoZmxvb3IgKHcgLyB2aWEyUGl0Y2gpKSkgaWYoKHZpYTJSb3cgPT0gMCkgKHZpYTJSb3cgPSAxKSkgKHZpYTJZb2Zmc2V0ID0gKCh3IC0gKCh2aWEyUm93ICogdmlhMlBpdGNoKSAtIHZpYTJTcGFjZSkpIC8gMikpICh2aWEyWW9yaWdpbiA9IChmaXgoKCh2aWEyWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpIGVsc2UgKGxheWVyMll3aWR0aCA9IChsYXllcjJZZW5kIC0gbGF5ZXIyWW9yaWdpbikpICh2aWEyRHJhd1NwYWNlWSA9IChsYXllcjJZd2lkdGggLSAobGF5ZXIyWUVuY1ZpYTIgKiAyKSkpICh2aWEyUm93ID0gKGZsb29yICgodmlhMkRyYXdTcGFjZVkgKyB2aWEyU3BhY2UpIC8gdmlhMlBpdGNoKSkpIGlmKCh2aWEyUm93ID09IDApICh2aWEyUm93ID0gMSkpICh2aWEyWW9mZnNldCA9ICgodmlhMkRyYXdTcGFjZVkgLSAoKHZpYTJSb3cgKiB2aWEyUGl0Y2gpIC0gdmlhMlNwYWNlKSkgLyAyKSkgKHZpYTJZb3JpZ2luID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJZRW5jVmlhMiArIChmaXgoKCh2aWEyWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSkgKHlWYWx1ZSA9IHZpYTJZb3JpZ2luKSBmb3IociAxIHZpYTJSb3cgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHZpYTJYb3JpZ2luOnlWYWx1ZSkgKCh2aWEyWG9yaWdpbiArIHZpYTJXaWR0aCk6KHlWYWx1ZSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTJQaXRjaCkpKSBlbHNlICh2aWEyWG9yaWdpbiA9IChsYXllcjJYb3JpZ2luICsgbGF5ZXIyWEVuY1ZpYTIpKSAodmlhMlhlbmQgPSAodmlhMlhvcmlnaW4gKyB2aWEyV2lkdGgpKSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMllFbmNWaWEyKSkgKGxhc3RWaWEyWW9yaWdpbiA9IChsYXllcjJZZW5kIC0gbGF5ZXIyWUVuY1ZpYTIgLSB2aWEyV2lkdGgpKSAodmlhMllvZmZzZXQgPSAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKHlWYWx1ZSA9IHZpYTJZb3JpZ2luKSB3aGlsZSgoKGxhc3RWaWEyWW9yaWdpbiAtIHlWYWx1ZSkgPiAtMWUtMDYpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh2aWEyWG9yaWdpbjp5VmFsdWUpICh2aWEyWGVuZDooeVZhbHVlICsgdmlhMldpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh5VmFsdWUgPSAoeVZhbHVlICsgdmlhMllvZmZzZXQpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYkJveFZpYTIiICJsaXN0IiBsaXN0KCh2aWEyWG9yaWdpbjp2aWEyWW9yaWdpbikgKHZpYTJYZW5kOnlWYWx1ZSkpKSAobGF5ZXIzWG9yaWdpbiA9ICh2aWEyWG9yaWdpbiAtIGxheWVyM1hFbmNWaWEyKSkgKGxheWVyM1hlbmQgPSAodmlhMlhlbmQgKyBsYXllcjNYRW5jVmlhMikpICgoKGxheWVyM1hlbmQgLSBsYXllcjNYb3JpZ2luKSA8IGxheWVyM1dpZHRoKSAmJiAobGF5ZXIzWGVuZCA9IChsYXllcjNYb3JpZ2luICsgbGF5ZXIzV2lkdGgpKSkgKGxheWVyM1lvcmlnaW4gPSAodmlhMllvcmlnaW4gLSBsYXllcjNZRW5jVmlhMikpIChsYXllcjNZZW5kID0gKCh5VmFsdWUgLSB2aWEyU3BhY2UpICsgbGF5ZXIzWUVuY1ZpYTIpKSAoKChsYXllcjNZZW5kIC0gbGF5ZXIzWW9yaWdpbikgPCBsYXllcjNXaWR0aCkgJiYgKGxheWVyM1llbmQgPSAobGF5ZXIzWW9yaWdpbiArIGxheWVyM1dpZHRoKSkpIGNvbmQoKChsYXllcjNZZW5kIDwgKHcgLyAyLjApKSAobGF5ZXIzWWVuZCA9ICh3IC8gMi4wKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgobGF5ZXIzWG9yaWdpbjpsYXllcjNZb3JpZ2luKSAobGF5ZXIzWGVuZDpsYXllcjNZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYkJveExheWVyMyIgIklMTGlzdCIgKGRiSWR+PmJCb3gpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllciIgImxpc3QiIGxheWVyMykpKQAoZGlmZiB0YXAgbGF5ZXIyIGxheWVyMyB2aWExTGF5ZXIgdmlhMkxheWVyIHNpZGVSZWNvZ25pdGlvbiBkaWZmV2lkdGggdGFwV2lkdGggdGFwV2lkdGhCdXR0aW5nRGlmZiBtaW5TcmMgbGF5ZXIyV2lkdGggbGF5ZXIzV2lkdGggdmlhMVdpZHRoIHZpYTJXaWR0aCB2aWExU3BhY2UgdmlhMlNwYWNlIGRpZmZZRW5jVmlhIGRpZmZMRW5jVmlhIGRpZmZSRW5jVmlhIHRpcFRhcFlJbkVuY1ZpYSB0aXBUYXBZT3V0RW5jVmlhIHRpcFRhcFhFbmNWaWEgc2lkZVRhcFhJbkVuY1ZpYSBzaWRlVGFwWE91dEVuY1ZpYSBzaWRlVGFwWUVuY1ZpYSBsYXllcjJYRW5jVmlhIGxheWVyMllFbmNWaWEgbGF5ZXIyWEVuY1RpcFZpYSBsYXllcjJZRW5jVGlwVmlhIGxheWVyMlhFbmNWaWEyIGxheWVyMllFbmNWaWEyIGxheWVyM1hFbmNWaWEyIGxheWVyM1lFbmNWaWEyIHRhcFNwYWNlUG9seSBoYWxmRGlmZnVzaW9uR3JpZCBtaW5QaW5XaWR0aCBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIGRpZmZJbXBFbmNCdXR0IGRpZmZDb3JlSW1wbGFudCBkaWZmQ29yZUltcEVuYyBkaWZmQ29yZUltcEVuY0J1dHQgdGFwSW1wbGFudCB0YXBJbXBFbmMgdGFwSW1wRW5jQnV0dCBkaWZmSW1wRW5jTGlzdCB0YXBJbXBFbmNMaXN0IHdlbGxMYXllciB3ZWxsTGF5ZXJEaWZmRW5jIHdlbGxMYXllclRhcEVuYyBtaW5TcGFjZURpZmZUYXBWaWExIGVtdWxhdGVTbG90VmlhIGNlbnRlclZpYTEgY2VudGVyVmlhMiBjZW50ZXJMYXllcjIgc25hcEdyaWQgdyB0cnlUb1N0YWdnZXIgdG9wRW5kVGFwIGJvdHRvbUVuZFRhcCBub0RpZmZDb250YWN0IGluV2VsbCBpbXBsYW50IGRpZmZJbXBDaG9pY2UgdGFwSW1wQ2hvaWNlIHZpYTFQaXRjaCB2aWEyUGl0Y2ggZGlmZkxlbmd0aCBkaWZmQnV0dEVuYyBuZXQgYWxsRGlyIGRpZmZTcHJlYWQgZW5jTGlzdCBkaWZmSW1wRW5jWEwgZGlmZkltcEVuY1hSIGRpZmZJbXBFbmNZIHRhcEltcEVuY1hMIHRhcEltcEVuY1hSIHRhcEltcEVuY1kgY29udGFjdFdpZHRoIGRpZmZDb250YWN0WXdpdGhUaXBUYXAgdGFwQ29udGFjdFl3aXRoVGlwVGFwIGRpZmZDb250YWN0WXdpdGhvdXRUaXBUYXAgdGFwQ29udGFjdFl3aXRob3V0VGlwVGFwIGRpZmZDb250YWN0WW9yaWdpbiB0YXBDb250YWN0WW9yaWdpbiBsYXN0RGlmZkNvbnRhY3RZb3JpZ2luIGxhc3RUYXBDb250YWN0WW9yaWdpbiBkaWZmQ29udGFjdFllbmRFbmMgdGFwQ29udGFjdFllbmRFbmMgbWluVyBzbWFsbGVyTWluVyBwb3RlbnRpYWxEaWZmU3ByZWFkIHN0YWdnZXIgY29udGFjdFlvZmZzZXQgdGFwQ29udGFjdFhvcmlnaW4gdGFwT3JpZ2luIGRpZmZDb250YWN0WG9yaWdpbiBkaWZmQ29udGFjdFhlbmQgdGFwQ29udGFjdFhlbmQgdGFwUmlnaHRFZGdlIGRiSWQgcGluSWQgdGFwTGVmdEVkZ2UgdGFwQm90dG9tRWRnZSB0YXBUb3BFZGdlIHZpYURyYXdTcGFjZVkgdmlhMVJvdyB2aWExWW9mZnNldCB2aWExWW9yaWdpbiB5VmFsdWUgciBkaWZmQ29udGFjdFllbmQgdGFwQ29udGFjdFllbmQgbGF5ZXIyWG9yaWdpbiBsYXllcjJYZW5kIGxheWVyMk1pbldpZHRoIGxheWVyMllvcmlnaW4gbnVtVmlhMiBsYXN0VmlhMlllbmQgbGF5ZXIyWWVuZCB2aWEyWG9mZnNldCB2aWEyWG9yaWdpbiB2aWEyWGVuZCB2aWFYb3JpZ2luIHZpYVhlbmQgdGJMYXllcjJYb3JpZ2luIHRiTGF5ZXIyWGVuZCB3ZWxsQmJveCB2aWEyUm93IHZpYTJZb2Zmc2V0IHZpYTJZb3JpZ2luIGxheWVyMll3aWR0aCB2aWEyRHJhd1NwYWNlWSBsYXN0VmlhMllvcmlnaW4gbGF5ZXIzWG9yaWdpbiBsYXllcjNYZW5kIGxheWVyM1lvcmlnaW4gbGF5ZXIzWWVuZCkAKCh3IDAuMCkgKHRyeVRvU3RhZ2dlciAiVFJVRSIpICh0b3BFbmRUYXAgIlRSVUUiKSAoYm90dG9tRW5kVGFwICJUUlVFIikgKG5vRGlmZkNvbnRhY3QgIkZBTFNFIikgKGluV2VsbCAiRkFMU0UiKSAoaW1wbGFudCAiRkFMU0UiKSAoZGlmZkltcENob2ljZSAwKSAodGFwSW1wQ2hvaWNlIDApKQAoKGRpZmYgImhpbGl0ZSIpICh0YXAgInByQm91bmRhcnkiKSAobGF5ZXIyICJoaWxpdGUiKSAobGF5ZXIzIG5pbCkgKHZpYTFMYXllciAiaGlsaXRlIikgKHZpYTJMYXllciBuaWwpIChzaWRlUmVjb2duaXRpb24gbmlsKSAoZGlmZldpZHRoIDAuMCkgKHRhcFdpZHRoIDAuMCkgKHRhcFdpZHRoQnV0dGluZ0RpZmYgMC4wKSAobWluU3JjIDAuMCkgKGxheWVyMldpZHRoIDAuMCkgKGxheWVyM1dpZHRoIDAuMCkgKHZpYTFXaWR0aCAwLjApICh2aWEyV2lkdGggMC4wKSAodmlhMVNwYWNlIDAuMCkgKHZpYTJTcGFjZSAwLjApIChkaWZmWUVuY1ZpYSAwLjApIChkaWZmTEVuY1ZpYSAwLjApIChkaWZmUkVuY1ZpYSAwLjApICh0aXBUYXBZSW5FbmNWaWEgMC4wKSAodGlwVGFwWU91dEVuY1ZpYSAwLjApICh0aXBUYXBYRW5jVmlhIDAuMCkgKHNpZGVUYXBYSW5FbmNWaWEgMC4wKSAoc2lkZVRhcFhPdXRFbmNWaWEgMC4wKSAoc2lkZVRhcFlFbmNWaWEgMC4wKSAobGF5ZXIyWEVuY1ZpYSAwLjApIChsYXllcjJZRW5jVmlhIDAuMCkgKGxheWVyMlhFbmNUaXBWaWEgMC4wKSAobGF5ZXIyWUVuY1RpcFZpYSAwLjApIChsYXllcjJYRW5jVmlhMiAwLjApIChsYXllcjJZRW5jVmlhMiAwLjApIChsYXllcjNYRW5jVmlhMiAwLjApIChsYXllcjNZRW5jVmlhMiAwLjApICh0YXBTcGFjZVBvbHkgMC4wKSAoaGFsZkRpZmZ1c2lvbkdyaWQgMC4wKSAobWluUGluV2lkdGggMC4wNSkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZJbXBFbmNCdXR0IGxpc3QoMC4wIDAuMCkpIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZDb3JlSW1wRW5jQnV0dCBsaXN0KDAuMCAwLjApKSAodGFwSW1wbGFudCBuaWwpICh0YXBJbXBFbmMgbGlzdCgwLjAgMC4wKSkgKHRhcEltcEVuY0J1dHQgbGlzdCgwLjAgMC4wKSkgKGRpZmZJbXBFbmNMaXN0IG5pbCkgKHRhcEltcEVuY0xpc3QgbmlsKSAod2VsbExheWVyIG5pbCkgKHdlbGxMYXllckRpZmZFbmMgMC4wKSAod2VsbExheWVyVGFwRW5jIDAuMCkgKG1pblNwYWNlRGlmZlRhcFZpYTEgMC4wKSAoZW11bGF0ZVNsb3RWaWEgbmlsKSAoY2VudGVyVmlhMSBuaWwpIChjZW50ZXJWaWEyIG5pbCkgKGNlbnRlckxheWVyMiBuaWwpIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSkAKGlmKCgoaW1wbGFudCA9PSB0KSB8fCAoaW1wbGFudCA9PSAiVFJVRSIpKSB0aGVuIChpbXBsYW50ID0gdCkgZWxzZSAoaW1wbGFudCA9IG5pbCkpIGlmKCgoaW5XZWxsID09IHQpIHx8IChpbldlbGwgPT0gIlRSVUUiKSkgdGhlbiAoaW5XZWxsID0gdCkgZWxzZSAoaW5XZWxsID0gbmlsKSkgaWYoKChjZW50ZXJUYXAgPT0gdCkgfHwgKGNlbnRlclRhcCA9PSAiVFJVRSIpKSB0aGVuIChjZW50ZXJUYXAgPSB0KSBlbHNlIChjZW50ZXJUYXAgPSBuaWwpKSBpZigoKHRvcEVuZFRhcCA9PSB0KSB8fCAodG9wRW5kVGFwID09ICJUUlVFIikpIHRoZW4gKHRvcEVuZFRhcCA9IHQpIGVsc2UgKHRvcEVuZFRhcCA9IG5pbCkpIGlmKCgoYm90dG9tRW5kVGFwID09IHQpIHx8IChib3R0b21FbmRUYXAgPT0gIlRSVUUiKSkgdGhlbiAoYm90dG9tRW5kVGFwID0gdCkgZWxzZSAoYm90dG9tRW5kVGFwID0gbmlsKSkgaWYoKChhbGxvd0NlbnRlcmVkTUNPTnMgPT0gdCkgfHwgKGFsbG93Q2VudGVyZWRNQ09OcyA9PSAiVFJVRSIpKSB0aGVuIChhbGxvd0NlbnRlcmVkTUNPTnMgPSB0KSBlbHNlIChhbGxvd0NlbnRlcmVkTUNPTnMgPSBuaWwpKSAobm9EaWZmQ29udGFjdCA9IChub0RpZmZDb250YWN0ID09ICJUUlVFIikpICh2aWExUGl0Y2ggPSAodmlhMVdpZHRoICsgdmlhMVNwYWNlKSkgKHZpYTJQaXRjaCA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSB3aGVuKGltcGxhbnQgd2hlbihkaWZmSW1wbGFudCBpZihpbldlbGwgdGhlbiAoZGlmZkltcGxhbnQgPSBjYWRyKGRpZmZJbXBsYW50KSkgKGRpZmZJbXBFbmMgPSBjYWRyKGRpZmZJbXBFbmMpKSAoZGlmZkltcEVuY0J1dHQgPSBjYWRyKGRpZmZJbXBFbmNCdXR0KSkgZWxzZSAoZGlmZkltcGxhbnQgPSBjYXIoZGlmZkltcGxhbnQpKSAoZGlmZkltcEVuYyA9IGNhcihkaWZmSW1wRW5jKSkgKGRpZmZJbXBFbmNCdXR0ID0gY2FyKGRpZmZJbXBFbmNCdXR0KSkpKSB3aGVuKHRhcEltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKHRhcEltcGxhbnQgPSBjYWRyKHRhcEltcGxhbnQpKSAodGFwSW1wRW5jID0gY2Fkcih0YXBJbXBFbmMpKSAodGFwSW1wRW5jQnV0dCA9IGNhZHIodGFwSW1wRW5jQnV0dCkpIGVsc2UgKHRhcEltcGxhbnQgPSBjYXIodGFwSW1wbGFudCkpICh0YXBJbXBFbmMgPSBjYXIodGFwSW1wRW5jKSkgKHRhcEltcEVuY0J1dHQgPSBjYXIodGFwSW1wRW5jQnV0dCkpKSkpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBFbmNMaXN0IGlmKGluV2VsbCB0aGVuIChlbmNMaXN0ID0gY2FkcihudGgoZGlmZkltcENob2ljZSBkaWZmSW1wRW5jTGlzdCkpKSBlbHNlIChlbmNMaXN0ID0gY2FyKG50aChkaWZmSW1wQ2hvaWNlIGRpZmZJbXBFbmNMaXN0KSkpKSAoZGlmZkltcEVuY1hMID0gbnRoKDAgZW5jTGlzdCkpIChkaWZmSW1wRW5jWFIgPSBudGgoMSBlbmNMaXN0KSkgKGRpZmZJbXBFbmNZID0gbnRoKDIgZW5jTGlzdCkpKSB3aGVuKHRhcEltcEVuY0xpc3QgaWYoaW5XZWxsIHRoZW4gKGVuY0xpc3QgPSBjYWRyKG50aCh0YXBJbXBDaG9pY2UgdGFwSW1wRW5jTGlzdCkpKSBlbHNlIChlbmNMaXN0ID0gY2FyKG50aCh0YXBJbXBDaG9pY2UgdGFwSW1wRW5jTGlzdCkpKSkgKHRhcEltcEVuY1hMID0gbnRoKDAgZW5jTGlzdCkpICh0YXBJbXBFbmNYUiA9IG50aCgxIGVuY0xpc3QpKSAodGFwSW1wRW5jWSA9IG50aCgyIGVuY0xpc3QpKSkgKGRpZmZJbXBFbmNZID0gKChib3VuZHAoJ2RpZmZJbXBFbmNZKSAmJiBkaWZmSW1wRW5jWSkgfHwgZGlmZkltcEVuYykpIChkaWZmSW1wRW5jWEwgPSAoKGJvdW5kcCgnZGlmZkltcEVuY1hMKSAmJiBkaWZmSW1wRW5jWEwpIHx8IGRpZmZJbXBFbmMpKSAoZGlmZkltcEVuY1hSID0gKChib3VuZHAoJ2RpZmZJbXBFbmNYUikgJiYgZGlmZkltcEVuY1hSKSB8fCBkaWZmSW1wRW5jKSkgKHRhcEltcEVuY1kgPSAoKGJvdW5kcCgndGFwSW1wRW5jWSkgJiYgdGFwSW1wRW5jWSkgfHwgdGFwSW1wRW5jKSkgKHRhcEltcEVuY1hMID0gKChib3VuZHAoJ3RhcEltcEVuY1hMKSAmJiB0YXBJbXBFbmNYTCkgfHwgdGFwSW1wRW5jKSkgKHRhcEltcEVuY1hSID0gKChib3VuZHAoJ3RhcEltcEVuY1hSKSAmJiB0YXBJbXBFbmNYUikgfHwgdGFwSW1wRW5jKSkpIGlmKChjZW50ZXJUYXAgJiYgKHRvcEVuZFRhcCB8fCBib3R0b21FbmRUYXApKSB0aGVuIGVycm9yKCJlbkRzdHJhcDNQb2xJbXBDbGFzczogY2Fubm90IHNlbGVjdCBjZW50ZXJUYXAgYXQgdGhlIHNhbWUgdGltZSBhcyB0b3BFbmRUYXAgb3IgYm90dG9tRW5kVGFwXG4iKSkgKG5ldCA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicHBkIikpIChkYkNyZWF0ZVRlcm0gbmV0ICJwcGQiICJpbnB1dCIpIChhbGxEaXIgPSBsaXN0KCJyaWdodCIgImxlZnQiICJ0b3AiICJib3R0b20iKSkgKGhhc1RhcEluQ2VudGVyID0gKCgoKHcgKyAoMiAqIHRpcFRhcFlJbkVuY1ZpYSkpIC0gKDIgKiBtYXhEaWZmVG9UYXBDb250YWN0U3BhY2UpKSA+IC0xZS0wNikgJiYgIWNlbnRlclRhcCkpIGNvbmQoKGhhc1RhcEluQ2VudGVyIChkb3VibGVNYXhEaXN0YW5jZVRvVGFwID0gKDIgKiBtYXhEaWZmVG9UYXBDb250YWN0U3BhY2UpKSB3aGVuKG9kZHAoZml4KCgxZS0wNSArICh0YXBXaWR0aEJldHdlZW5EaWZmIC8gKDIuMCAqIGhhbGZEaWZmdXNpb25HcmlkKSkpKSkgKHRhcFdpZHRoQmV0d2VlbkRpZmYgPSAodGFwV2lkdGhCZXR3ZWVuRGlmZiArICgyLjAgKiBoYWxmRGlmZnVzaW9uR3JpZCkpKSkgKG1heENvbnNlY0RpZmZDb250YWN0cyA9IGZpeCgoKG1heERpZmZUb1RhcENvbnRhY3RTcGFjZSArICgtMi4wICogbWF4KHZpYTFTcGFjZSAoZGlmZllFbmNWaWEgKyB0aXBUYXBZSW5FbmNWaWEpKSkgKyB2aWExU3BhY2UpIC8gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpKSkgKHZpYTFYb3JpZ2luID0gbWF4KGRpZmZYRW5jVmlhICgoKHRhcFdpZHRoQmV0d2VlbkRpZmYgLSB2aWExV2lkdGgpIC8gMi4wKSArIG1heCh0YXBTcGFjZVBvbHkgdGFwU3BhY2VHYXRlKSkgKGNlbnRlclRhcFhFbmNWaWEgKyBtYXgodGFwU3BhY2VQb2x5IHRhcFNwYWNlR2F0ZSkpKSkgKHZpYTFYZW5kID0gKHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgKHRhcFhvcmlnaW4gPSBtaW4oKHZpYTFYb3JpZ2luIC0gY2VudGVyVGFwWEVuY1ZpYSkgbWF4KHRhcFNwYWNlR2F0ZSB0YXBTcGFjZVBvbHkpKSkgKHRhcFhlbmQgPSBtYXgoKHRhcFhvcmlnaW4gKyB0YXBXaWR0aEJldHdlZW5EaWZmKSAodmlhMVhlbmQgKyBjZW50ZXJUYXBYRW5jVmlhKSkpKSAoY2VudGVyVGFwIHdoZW4ob2RkcChmaXgoKDFlLTA1ICsgKHRhcFdpZHRoQmV0d2VlbkRpZmYgLyAoMi4wICogaGFsZkRpZmZ1c2lvbkdyaWQpKSkpKSAodGFwV2lkdGhCZXR3ZWVuRGlmZiA9ICh0YXBXaWR0aEJldHdlZW5EaWZmICsgKDIuMCAqIGhhbGZEaWZmdXNpb25HcmlkKSkpKSAodmlhMVhvcmlnaW4gPSBtYXgoZGlmZlhFbmNWaWEgKCgodGFwV2lkdGhCZXR3ZWVuRGlmZiAtIHZpYTFXaWR0aCkgLyAyLjApICsgdGFwU3BhY2VHYXRlKSAoY2VudGVyVGFwWEVuY1ZpYSArIHRhcFNwYWNlR2F0ZSkpKSAodmlhMVhlbmQgPSAodmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSAodGFwWG9yaWdpbiA9IG1pbigodmlhMVhvcmlnaW4gLSBjZW50ZXJUYXBYRW5jVmlhKSB0YXBTcGFjZUdhdGUpKSAodGFwWGVuZCA9IG1heCgodGFwWG9yaWdpbiArIHRhcFdpZHRoQmV0d2VlbkRpZmYpICh2aWExWGVuZCArIGNlbnRlclRhcFhFbmNWaWEpKSkpICh0IChkb3VibGVNYXhEaXN0YW5jZVRvVGFwID0gOTk5OTkuOSkgKHZpYTFYb3JpZ2luID0gbWF4KGRpZmZYRW5jVmlhICh0aXBUYXBYRW5jVmlhICsgdGFwU3BhY2VQb2x5KSkpICh2aWExWGVuZCA9ICh2aWExWG9yaWdpbiArIHZpYTFXaWR0aCkpICh0YXBYb3JpZ2luID0gKHZpYTFYb3JpZ2luIC0gdGlwVGFwWEVuY1ZpYSkpICh0YXBYZW5kID0gKHZpYTFYZW5kICsgdGlwVGFwWEVuY1ZpYSkpKSkgKHRiVGFwWG9yaWdpbiA9IG1pbigodmlhMVhvcmlnaW4gLSB0aXBUYXBYRW5jVmlhKSAoKHZpYTFYb3JpZ2luICsgKHZpYTFXaWR0aCAvIDIuMCkpIC0gKHRhcFdpZHRoIC8gMi4wKSkpKSAodGJUYXBYZW5kID0gKHZpYTFYZW5kICsgKHZpYTFYb3JpZ2luIC0gdGJUYXBYb3JpZ2luKSkpIChkaWZmWG9yaWdpbiA9IDAuMCkgKGRpZmZYZW5kID0gKHZpYTFYZW5kICsgdmlhMVhvcmlnaW4pKSAoZGlmZkNvbllvZmZzZXRBYnV0dGluZ1RhcCA9IG1heChkaWZmWUVuY1ZpYSAodmlhMVNwYWNlIC0gbWF4KHRpcFRhcFlJbkVuY1ZpYSAodGFwV2lkdGhCZXR3ZWVuRGlmZiAtIHZpYTFXaWR0aCAtIGNlbnRlclRhcFlFbmNWaWEpKSkpKSBjb25kKChib3R0b21FbmRUYXAgKGZpcnN0RGlmZkNvbllvZmZzZXQgPSBtYXgoZGlmZllFbmNWaWEgKHZpYTFTcGFjZSAtIHRpcFRhcFlJbkVuY1ZpYSkpKSkgKHQgKGZpcnN0RGlmZkNvbllvZmZzZXQgPSBkaWZmWUVuY1ZpYSkpKSBjb25kKCh0b3BFbmRUYXAgKGxhc3REaWZmQ29uWW9mZnNldCA9IG1heChkaWZmWUVuY1ZpYSAodmlhMVNwYWNlIC0gdGlwVGFwWUluRW5jVmlhKSkpKSAodCAobGFzdERpZmZDb25Zb2Zmc2V0ID0gZGlmZllFbmNWaWEpKSkgKHRhcFlvZmZzZXQgPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAodmlhMVdpZHRoICsgdGlwVGFwWUluRW5jVmlhICsgdGlwVGFwWU91dEVuY1ZpYSkpKSAobWluVyA9IG1heChkaWZmV2lkdGggKGZpcnN0RGlmZkNvbllvZmZzZXQgKyB2aWExV2lkdGggKyBsYXN0RGlmZkNvbllvZmZzZXQpKSkgd2hlbigoKHcgLSBtaW5XKSA8IC0xZS0wNikgKHNtYWxsZXJNaW5XID0gbWF4KGRpZmZXaWR0aCB0YXBXaWR0aCAodmlhMVdpZHRoICsgKDIuMCAqIGRpZmZZRW5jVmlhKSkpKSB3aGVuKCgoc21hbGxlck1pblcgLSB3KSA+IDFlLTA2KSBlcnJvcigiQ2Fubm90IGRyYXcgY29udGFjdCAtIHcgdG9vIHNtYWxsIikpIGNvbmQoKChib3R0b21FbmRUYXAgJiYgdG9wRW5kVGFwKSAoZGlmZkRpdmlzb3IgPSAyLjApKSAodCAoZGlmZkRpdmlzb3IgPSAxLjApKSkgKGRpZmZTcHJlYWQgPSAoKG1pblcgLSB3KSAvIGRpZmZEaXZpc29yKSkgKG9kZHAocm91bmQoKGRpZmZTcHJlYWQgLyBoYWxmRGlmZnVzaW9uR3JpZCkpKSAmJiAoZGlmZlNwcmVhZCA9IChkaWZmU3ByZWFkICsgaGFsZkRpZmZ1c2lvbkdyaWQpKSkgY29uZCgoKGJvdHRvbUVuZFRhcCAmJiB0b3BFbmRUYXApIChmaXJzdERpZmZDb25Zb2Zmc2V0ID0gKCgtIGRpZmZTcHJlYWQpICsgKC0gdGlwVGFwWUluRW5jVmlhKSArIHZpYTFTcGFjZSkpIChsYXN0RGlmZkNvbllvZmZzZXQgPSBkaWZmWUVuY1ZpYSkgKHRhcFlvZmZzZXQgPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAoZGlmZlNwcmVhZCArIHRpcFRhcFlJbkVuY1ZpYSArIHRpcFRhcFlPdXRFbmNWaWEgKyB2aWExV2lkdGgpKSkpIChib3R0b21FbmRUYXAgKGZpcnN0RGlmZkNvbllvZmZzZXQgPSAoKC0gZGlmZlNwcmVhZCkgKyAoLSB0aXBUYXBZSW5FbmNWaWEpICsgdmlhMVNwYWNlKSkgKHRhcFlvZmZzZXQgPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAodGlwVGFwWU91dEVuY1ZpYSArIHZpYTFXaWR0aCArIHZpYTFTcGFjZSArICgtIGZpcnN0RGlmZkNvbllvZmZzZXQpKSkpKSAodG9wRW5kVGFwIChmaXJzdERpZmZDb25Zb2Zmc2V0ID0gZGlmZllFbmNWaWEpIChsYXN0RGlmZkNvbllvZmZzZXQgPSBkaWZmWUVuY1ZpYSkgKHRhcFlvZmZzZXQgPSBtYXgodGFwV2lkdGhCdXR0aW5nRGlmZiAodGlwVGFwWU91dEVuY1ZpYSArIHRpcFRhcFlJbkVuY1ZpYSArIHZpYTFXaWR0aCArIHZpYTFTcGFjZSArIGZpcnN0RGlmZkNvbllvZmZzZXQgKyB2aWExV2lkdGggKyAoLSB3KSkpKSkgKGNlbnRlclRhcCAoZmlyc3REaWZmQ29uWW9mZnNldCA9IGRpZmZZRW5jVmlhKSAodGFwWW9mZnNldCA9IDAuMCkpKSkgKHlWYWx1ZSA9IDAuMCkgKHlSZW1haW5pbmcgPSB3KSAoeVZpYTFPZmZzZXQgPSAodmlhMVNwYWNlICsgdmlhMVdpZHRoKSkgKGNlbnRlckRpZmZDb25Zb2Zmc2V0ID0gKHZpYTFTcGFjZSAtIGNlbnRlclRhcFlFbmNWaWEpKSAoY2VudGVyVGFwcyA9IG5pbCkgd2hpbGUoKCFjZW50ZXJUYXAgJiYgKCgoKDIgKiB0aXBUYXBZSW5FbmNWaWEpICsgeVJlbWFpbmluZykgLSBkb3VibGVNYXhEaXN0YW5jZVRvVGFwKSA+IC0xZS0wNikpIGNvbmQoKCFjZW50ZXJUYXBzIChkaWZmRGVsdGEgPSAoZmlyc3REaWZmQ29uWW9mZnNldCArIChtYXhDb25zZWNEaWZmQ29udGFjdHMgKiB2aWExV2lkdGgpICsgKChtYXhDb25zZWNEaWZmQ29udGFjdHMgLSAxKSAqIHZpYTFTcGFjZSkgKyBjZW50ZXJEaWZmQ29uWW9mZnNldCkpKSAodCAoZGlmZkRlbHRhID0gKGNlbnRlckRpZmZDb25Zb2Zmc2V0ICsgZGlmZkNvbllvZmZzZXRBYnV0dGluZ1RhcCArIChtYXhDb25zZWNEaWZmQ29udGFjdHMgKiB2aWExV2lkdGgpICsgKChtYXhDb25zZWNEaWZmQ29udGFjdHMgLSAxKSAqIHZpYTFTcGFjZSkpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdCgoZGlmZlhvcmlnaW46eVZhbHVlKSAoZGlmZlhlbmQ6KHlWYWx1ZSArIGRpZmZEZWx0YSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZJbXBFbmNYTCkgeVZhbHVlKSBsaXN0KChkaWZmWGVuZCArIGRpZmZJbXBFbmNYUikgKHlWYWx1ZSArIGRpZmZEZWx0YSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgY29uZCgoY2VudGVyVGFwcyAoeVZhbHVlID0gKHlWYWx1ZSArIGRpZmZDb25Zb2Zmc2V0QWJ1dHRpbmdUYXApKSkgKHQgKHlWYWx1ZSA9ICh5VmFsdWUgKyBmaXJzdERpZmZDb25Zb2Zmc2V0KSkpKSBmb3IoaSAxIG1heENvbnNlY0RpZmZDb250YWN0cyAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46eVZhbHVlKSAodmlhMVhlbmQ6KHlWYWx1ZSArIHZpYTFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHlWaWExT2Zmc2V0KSkpICh5VmFsdWUgPSAoeVZhbHVlICsgY2VudGVyRGlmZkNvbllvZmZzZXQgKyAoLSB2aWExU3BhY2UpKSkgKHRhcFlXaWR0aEJldHdlZW5EaWZmID0gbWF4KHRhcFdpZHRoQmV0d2VlbkRpZmYgKCgyLjAgKiBjZW50ZXJUYXBZRW5jVmlhKSArIHZpYTFXaWR0aCkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXAgbGlzdCgodGFwWG9yaWdpbjp5VmFsdWUpICh0YXBYZW5kOih5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwSW1wbGFudCBsaXN0KCh0YXBYb3JpZ2luOnlWYWx1ZSkgKHRhcFhlbmQ6KHlWYWx1ZSArIHRhcFlXaWR0aEJldHdlZW5EaWZmKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSB3aGVuKGNlbnRlclJlY29nbml0aW9uIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGNlbnRlclJlY29nbml0aW9uIGxpc3QoKHRhcFhvcmlnaW46eVZhbHVlKSAodGFwWGVuZDooeVZhbHVlICsgdGFwWVdpZHRoQmV0d2VlbkRpZmYpKSkpKSkgdW5sZXNzKChjZW50ZXJUYXBzIHx8IGJvdHRvbUVuZFRhcCkgKHRhcEJvdHRvbUVkZ2UgPSB5VmFsdWUpKSB1bmxlc3ModG9wRW5kVGFwICh0YXBUb3BFZGdlID0geVZhbHVlKSkgKGNlbnRlclRhcHMgPSB0KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46KHlWYWx1ZSArIGNlbnRlclRhcFlFbmNWaWEpKSAodmlhMVhlbmQ6KHlWYWx1ZSArIGNlbnRlclRhcFlFbmNWaWEgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KChkaWZmWG9yaWdpbjp5VmFsdWUpICh0YXBYb3JpZ2luOih5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZJbXBFbmNYTCkgeVZhbHVlKSBsaXN0KCh0YXBYb3JpZ2luICsgZGlmZkltcEVuY0J1dHQpICh5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KCh0YXBYZW5kOnlWYWx1ZSkgKGRpZmZYZW5kOih5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KCh0YXBYZW5kIC0gZGlmZkltcEVuY0J1dHQpIHlWYWx1ZSkgbGlzdCgoZGlmZlhlbmQgKyBkaWZmSW1wRW5jWFIpICh5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKHlWYWx1ZSA9ICh5VmFsdWUgKyB0YXBZV2lkdGhCZXR3ZWVuRGlmZikpICh5UmVtYWluaW5nID0gKHcgLSB5VmFsdWUpKSkgd2hlbihjZW50ZXJUYXAgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwIGxpc3QoKHRhcFhvcmlnaW46MC4wKSAodGFwWGVuZDp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgd2hlbihjZW50ZXJSZWNvZ25pdGlvbiAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjZW50ZXJSZWNvZ25pdGlvbiBsaXN0KCh0YXBYb3JpZ2luOjAuMCkgKHRhcFhlbmQ6dykpKSkpIHdoZW4oaW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB0YXBJbXBsYW50IGxpc3QobGlzdCgodGFwWG9yaWdpbiAtIHRhcEltcEVuY0J1dHQpICgtIHRhcEltcEVuY1kpKSBsaXN0KCh0YXBYZW5kICsgdGFwSW1wRW5jQnV0dCkgKHcgKyB0YXBJbXBFbmNZKSkpKSkpIGlmKGNlbnRlclZpYTEgdGhlbiAodmlhRHJhd1NwYWNlWSA9ICh3IC0gKGNlbnRlclRhcFlFbmNWaWEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSkgaWYoKHZpYTFSb3cgPT0gMCkgKHZpYTFSb3cgPSAxKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWFEcmF3U3BhY2VZIC0gKCh2aWExUm93ICogdmlhMVBpdGNoKSAtIHZpYTFTcGFjZSkpIC8gMikpICh2aWExWW9yaWdpbiA9IChjZW50ZXJUYXBZRW5jVmlhICsgKGZpeCgoKHZpYTFZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpICh0aGVZID0gdmlhMVlvcmlnaW4pIGZvcihyIDEgdmlhMVJvdyAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46dGhlWSkgKHZpYTFYZW5kOih0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVZID0gKHRoZVkgKyB2aWExUGl0Y2gpKSkgZWxzZSAodGhlWSA9IGNlbnRlclRhcFlFbmNWaWEpIHdoaWxlKCgodGhlWSAtICh3ICsgKC0gY2VudGVyVGFwWUVuY1ZpYSkgKyAoLSB2aWExV2lkdGgpKSkgPCAxZS0wNikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh2aWExWG9yaWdpbiB0aGVZKSBsaXN0KHZpYTFYZW5kICh0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh0aGVZID0gKHRoZVkgKyB2aWExV2lkdGggKyB2aWExU3BhY2UpKSkpICh0YXBWaWExWE8gPSB2aWExWG9yaWdpbikgKHRhcFZpYTFYRSA9IHZpYTFYZW5kKSAobGFzdERpZmZDb25Zb2Zmc2V0ID0gKHcgKyAoLSB0aGVZKSArIHZpYTFTcGFjZSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdChsaXN0KGRpZmZYb3JpZ2luIDAuMCkgbGlzdCh0YXBYb3JpZ2luIHcpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkltcGxhbnQgbGlzdChsaXN0KChkaWZmWG9yaWdpbiAtIGRpZmZJbXBFbmNYTCkgKC0gZGlmZkltcEVuY1kpKSBsaXN0KCh0YXBYb3JpZ2luICsgZGlmZkltcEVuY0J1dHQpICh3ICsgZGlmZkltcEVuY1kpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpICh2aWExWG9yaWdpbiA9IGRpZmZYT3V0RW5jVmlhKSAodmlhMVhlbmQgPSAodmlhMVhvcmlnaW4gKyB2aWExV2lkdGgpKSBpZihjZW50ZXJWaWExIHRoZW4gKHZpYURyYXdTcGFjZVkgPSAodyAtIChkaWZmWUVuY1ZpYSAqIDIpKSkgKHZpYTFSb3cgPSAoZmxvb3IgKCh2aWFEcmF3U3BhY2VZICsgdmlhMVNwYWNlKSAvIHZpYTFQaXRjaCkpKSBpZigodmlhMVJvdyA9PSAwKSAodmlhMVJvdyA9IDEpKSAodmlhMVlvZmZzZXQgPSAoKHZpYURyYXdTcGFjZVkgLSAoKHZpYTFSb3cgKiB2aWExUGl0Y2gpIC0gdmlhMVNwYWNlKSkgLyAyKSkgKHZpYTFZb3JpZ2luID0gKGRpZmZZRW5jVmlhICsgKGZpeCgoKHZpYTFZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpICh0aGVZID0gdmlhMVlvcmlnaW4pIGZvcihyIDEgdmlhMVJvdyB1bmxlc3Mobm9EaWZmQ29udGFjdCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46dGhlWSkgKHZpYTFYZW5kOih0aGVZICsgdmlhMVdpZHRoKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWSA9ICh0aGVZICsgdmlhMVBpdGNoKSkpIGVsc2UgKHRoZVkgPSBkaWZmWUVuY1ZpYSkgd2hpbGUoKCh0aGVZIC0gKHcgKyAoLSBkaWZmWUVuY1ZpYSkgKyAoLSB2aWExV2lkdGgpKSkgPCAxZS0wNikgdW5sZXNzKG5vRGlmZkNvbnRhY3QgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QobGlzdCh2aWExWG9yaWdpbiB0aGVZKSBsaXN0KHZpYTFYZW5kICh0aGVZICsgdmlhMVdpZHRoKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodGhlWSA9ICh0aGVZICsgdmlhMVdpZHRoICsgdmlhMVNwYWNlKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmIGxpc3QobGlzdCh0YXBYZW5kIDAuMCkgbGlzdChkaWZmWGVuZCB3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgd2hlbihpbXBsYW50IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgodGFwWGVuZCAtIGRpZmZJbXBFbmNCdXR0KSAoLSBkaWZmSW1wRW5jWSkpIGxpc3QoKGRpZmZYZW5kICsgZGlmZkltcEVuY1hSKSAodyArIGRpZmZJbXBFbmNZKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpKSAodmlhMVhvcmlnaW4gPSAoZGlmZlhlbmQgKyAoLSBkaWZmWE91dEVuY1ZpYSkgKyAoLSB2aWExV2lkdGgpKSkgKHZpYTFYZW5kID0gKHZpYTFYb3JpZ2luICsgdmlhMVdpZHRoKSkgaWYoY2VudGVyVmlhMSB0aGVuICh2aWFEcmF3U3BhY2VZID0gKHcgLSAoZGlmZllFbmNWaWEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhRHJhd1NwYWNlWSArIHZpYTFTcGFjZSkgLyB2aWExUGl0Y2gpKSkgaWYoKHZpYTFSb3cgPT0gMCkgKHZpYTFSb3cgPSAxKSkgKHZpYTFZb2Zmc2V0ID0gKCh2aWFEcmF3U3BhY2VZIC0gKCh2aWExUm93ICogdmlhMVBpdGNoKSAtIHZpYTFTcGFjZSkpIC8gMikpICh2aWExWW9yaWdpbiA9IChkaWZmWUVuY1ZpYSArIChmaXgoKCh2aWExWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSAodGhlWSA9IHZpYTFZb3JpZ2luKSBmb3IociAxIHZpYTFSb3cgdW5sZXNzKG5vRGlmZkNvbnRhY3QgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOnRoZVkpICh2aWExWGVuZDoodGhlWSArIHZpYTFXaWR0aCkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVkgPSAodGhlWSArIHZpYTFQaXRjaCkpKSBlbHNlICh0aGVZID0gZGlmZllFbmNWaWEpIHdoaWxlKCgodGhlWSAtICh3ICsgKC0gZGlmZllFbmNWaWEpICsgKC0gdmlhMVdpZHRoKSkpIDwgMWUtMDYpIHVubGVzcyhub0RpZmZDb250YWN0IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KGxpc3QodmlhMVhvcmlnaW4gdGhlWSkgbGlzdCh2aWExWGVuZCAodGhlWSArIHZpYTFXaWR0aCkpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHRoZVkgPSAodGhlWSArIHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpKSkgKHZpYTFYb3JpZ2luID0gZGlmZlhPdXRFbmNWaWEpKSB1bmxlc3MoY2VudGVyVGFwIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdCgoZGlmZlhvcmlnaW46eVZhbHVlKSAoZGlmZlhlbmQ6dykpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpIHdoZW4oaW1wbGFudCAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gZGlmZkltcEVuYykgeVZhbHVlKSBsaXN0KChkaWZmWGVuZCArIGRpZmZJbXBFbmMpICh3ICsgZGlmZkltcEVuYykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKGRpZmZYb3JpZ2luIC0gZGlmZkltcEVuYykgKC0gZGlmZkltcEVuYykpIGxpc3QoKGRpZmZYZW5kICsgZGlmZkltcEVuYykgMC4wKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpKSBjb25kKCgoIWNlbnRlclRhcHMgJiYgIWNlbnRlclRhcCkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZiBsaXN0KCh2aWExWG9yaWdpbjowKSAodmlhMVhlbmQ6dykpKSkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiZGlmZkxheWVyUGluQmJveCIgImxpc3QiIChkYklkfj5iQm94KSkpICh0IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdCgoZGlmZlhvcmlnaW46MCkgKChkaWZmWG9yaWdpbiArIG1pblBpbldpZHRoKTp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoImxlZnQiKSBhY2Nlc3NEaXIpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmYgbGlzdCgoKGRpZmZYZW5kIC0gbWluUGluV2lkdGgpOjApIChkaWZmWGVuZDp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoInJpZ2h0IikgYWNjZXNzRGlyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllclBpbkJib3giICJsaXN0IiBsaXN0KChkaWZmWG9yaWdpbjowKSAoZGlmZlhlbmQ6dykpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiZGlmZkxheWVyQmJveCIgImxpc3QiIGxpc3QoKGRpZmZYb3JpZ2luOjApIChkaWZmWGVuZDp3KSkpIGNvbmQoKCghY2VudGVyVGFwcyAmJiAhY2VudGVyVGFwKSAoeVZhbHVlID0gKHlWYWx1ZSArIGZpcnN0RGlmZkNvbllvZmZzZXQpKSkgKHQgKHlWYWx1ZSA9ICh5VmFsdWUgKyBkaWZmQ29uWW9mZnNldEFidXR0aW5nVGFwKSkpKSB1bmxlc3MoY2VudGVyVGFwIHdoaWxlKCgodyAtICh5VmFsdWUgKyB2aWExV2lkdGggKyBsYXN0RGlmZkNvbllvZmZzZXQpKSA+IC0xZS0wNikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOnlWYWx1ZSkgKHZpYTFYZW5kOih5VmFsdWUgKyB2aWExV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHlWYWx1ZSA9ICh5VmFsdWUgKyB5VmlhMU9mZnNldCkpKSkgY29uZCgoYm90dG9tRW5kVGFwIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcCBsaXN0KCh0YlRhcFhvcmlnaW46MC4wKSAodGJUYXBYZW5kOigtIHRhcFlvZmZzZXQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgd2hlbihpbXBsYW50IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcEltcGxhbnQgbGlzdChsaXN0KCh0YlRhcFhvcmlnaW4gLSB0YXBJbXBFbmMpIHRhcEltcEVuY0J1dHQpIGxpc3QoKHRiVGFwWGVuZCArIHRhcEltcEVuYykgKCgtIHRhcFlvZmZzZXQpICsgKC0gdGFwSW1wRW5jKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSkgKHRhcEJvdHRvbUVkZ2UgPSAoLSB0YXBZb2Zmc2V0KSkgdW5sZXNzKChjZW50ZXJUYXBzIHx8IHRvcEVuZFRhcCkgKHRhcFRvcEVkZ2UgPSAwLjApKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgodmlhMVhvcmlnaW46KCgtIHRhcFlvZmZzZXQpICsgdGlwVGFwWU91dEVuY1ZpYSArIHZpYTFXaWR0aCkpICh2aWExWGVuZDooKC0gdGFwWW9mZnNldCkgKyB0aXBUYXBZT3V0RW5jVmlhKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXQpICh2aWExTWluWSA9ICgoLSB0YXBZb2Zmc2V0KSArIHRpcFRhcFlPdXRFbmNWaWEpKSkgKHQgKHZpYTFNaW5ZID0gZmlyc3REaWZmQ29uWW9mZnNldCkpKSBjb25kKCh0b3BFbmRUYXAgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwIGxpc3QoKHRiVGFwWG9yaWdpbjp3KSAodGJUYXBYZW5kOih3ICsgdGFwWW9mZnNldCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSB3aGVuKGltcGxhbnQgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdGFwSW1wbGFudCBsaXN0KGxpc3QoKHRiVGFwWG9yaWdpbiAtIHRhcEltcEVuYykgKHcgLSB0YXBJbXBFbmNCdXR0KSkgbGlzdCgodGJUYXBYZW5kICsgdGFwSW1wRW5jKSAodyArIHRhcFlvZmZzZXQgKyB0YXBJbXBFbmMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkpICh0YXBUb3BFZGdlID0gKHcgKyB0YXBZb2Zmc2V0KSkgdW5sZXNzKChjZW50ZXJUYXBzIHx8IGJvdHRvbUVuZFRhcCkgKHRhcEJvdHRvbUVkZ2UgPSB3KSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMUxheWVyIGxpc3QoKHZpYTFYb3JpZ2luOih3ICsgdGFwWW9mZnNldCArICgtIHRpcFRhcFlPdXRFbmNWaWEpICsgKC0gdmlhMVdpZHRoKSkpICh2aWExWGVuZDoodyArIHRhcFlvZmZzZXQgKyAoLSB0aXBUYXBZT3V0RW5jVmlhKSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAodmlhMU1heFkgPSAodyArIHRhcFlvZmZzZXQgKyAoLSB0aXBUYXBZT3V0RW5jVmlhKSkpKSAodCAodmlhMU1heFkgPSAodyAtIGxhc3REaWZmQ29uWW9mZnNldCkpKSkgd2hlbigoY2VudGVyVGFwcyB8fCB0b3BFbmRUYXAgfHwgYm90dG9tRW5kVGFwKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRhcExheWVyQmJveCIgImxpc3QiIGxpc3QoKG1pbih0YlRhcFhvcmlnaW4gdGFwWG9yaWdpbik6dGFwQm90dG9tRWRnZSkgKG1heCh0YlRhcFhlbmQgdGFwWGVuZCk6dGFwVG9wRWRnZSkpKSkgd2hlbihjZW50ZXJUYXAgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0YXBMYXllckJib3giICJsaXN0IiBsaXN0KCh0YXBYb3JpZ2luOjAuMCkgKHRhcFhlbmQ6dykpKSkgd2hlbihub0RpZmZDb250YWN0ICh2aWExWG9yaWdpbiA9IHRhcFZpYTFYTykgKHZpYTFYZW5kID0gdGFwVmlhMVhFKSkgKGxheWVyMkxlbmd0aCA9IG1heChsYXllcjJXaWR0aCAoKHZpYTFYZW5kIC0gdmlhMVhvcmlnaW4pICsgKDIgKiBsYXllcjJYRW5jVmlhKSkpKSB3aGVuKGxheWVyMyAobGF5ZXIyTGVuZ3RoID0gbWF4KGxheWVyMkxlbmd0aCAodmlhMldpZHRoICsgKDIgKiBsYXllcjJYRW5jVmlhMikpKSkpIGlmKGNlbnRlclRhcCB0aGVuIChsYXllcjJYb3JpZ2luID0gKHZpYTFYb3JpZ2luICsgKCh2aWExWGVuZCAtIHZpYTFYb3JpZ2luKSAvIDIuMCkgKyAoLSAobGF5ZXIyTGVuZ3RoIC8gMi4wKSkpKSBlbHNlIChsYXllcjJYb3JpZ2luID0gKHZpYTFYb3JpZ2luICsgKCh2aWExV2lkdGggKyAoLSBsYXllcjJMZW5ndGgpKSAvIDIuMCkpKSkgKGxheWVyMlhlbmQgPSAobGF5ZXIyWG9yaWdpbiArIGxheWVyMkxlbmd0aCkpIChsYXllcjJYb3JpZ2luID0gKGZpeCgoKGxheWVyMlhvcmlnaW4gLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSAobGF5ZXIyWGVuZCA9ICgoY2VpbGluZyAoKGxheWVyMlhlbmQgLyBzbmFwR3JpZCkgKyAtMWUtMDYpKSAqIHNuYXBHcmlkKSkgaWYoZW11bGF0ZVNsb3RWaWEgdGhlbiAobGF5ZXIyWW9yaWdpbiA9IChkaWZmWUVuY1ZpYSAtIG1heChsYXllcjJZRW5jVmlhIGxheWVyMllFbmNWaWEyKSkpIGVsc2UgaWYoY2VudGVyTGF5ZXIyIHRoZW4gKGxheWVyMllvcmlnaW4gPSAodmlhMVlvcmlnaW4gLSBsYXllcjJZRW5jVmlhKSkgZWxzZSAobGF5ZXIyWW9yaWdpbiA9ICh2aWExTWluWSAtIGxheWVyMllFbmNWaWEpKSkpIGlmKGxheWVyMyB0aGVuIChudW1WaWEyID0gbWF4KGZpeCgoKCh3ICsgdmlhMlNwYWNlICsgKC0gKGxheWVyMllFbmNWaWEyICsgbGF5ZXIyWUVuY1ZpYTIpKSArICgtIGxheWVyMllvcmlnaW4pKSAvICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSArIDFlLTA2KSkgMSkpIChsYXN0VmlhMlllbmQgPSAoKHZpYTJXaWR0aCAqIG51bVZpYTIpICsgKHZpYTJTcGFjZSAqIChudW1WaWEyIC0gMSkpICsgbGF5ZXIyWW9yaWdpbiArIGxheWVyMllFbmNWaWEyKSkgaWYoZW11bGF0ZVNsb3RWaWEgdGhlbiAobGF5ZXIyWWVuZCA9IChsYXllcjJZRW5jVmlhICsgKHcgLSBkaWZmWUVuY1ZpYSkpKSBlbHNlIChsYXllcjJZZW5kID0gbWF4KCh2aWExTWF4WSArIGxheWVyMllFbmNWaWEpIChsYXN0VmlhMlllbmQgKyBsYXllcjJZRW5jVmlhMikpKSkgZWxzZSBpZihlbXVsYXRlU2xvdFZpYSB0aGVuIChsYXllcjJZZW5kID0gKGxheWVyMllFbmNWaWEgKyAodyAtIGRpZmZZRW5jVmlhKSkpIGVsc2UgKGxheWVyMlllbmQgPSAodmlhMU1heFkgKyBsYXllcjJZRW5jVmlhKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgobGF5ZXIyWG9yaWdpbjpsYXllcjJZb3JpZ2luKSAobGF5ZXIyWGVuZDpsYXllcjJZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIGNvbmQoKCFsYXllcjMgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJ0b3BMYXllclBpbkJib3giICJsaXN0IiAoZGJJZH4+YkJveCkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjIpKSAodCBpZihhbGxvd0NlbnRlcmVkTUNPTnMgdGhlbiAodmlhMllvcmlnaW4gPSAoMC4wICsgbGF5ZXIyWUVuY1ZpYTIpKSAobGFzdFZpYTJZb3JpZ2luID0gdykgZWxzZSAodmlhMllvcmlnaW4gPSAobGF5ZXIyWW9yaWdpbiArIGxheWVyMllFbmNWaWEyKSkgKGxhc3RWaWEyWW9yaWdpbiA9IChsYXllcjJZZW5kIC0gbGF5ZXIyWUVuY1ZpYTIgLSB2aWEyV2lkdGgpKSkgaWYoY2VudGVyVGFwIHRoZW4gKHZpYTJYb3JpZ2luID0gKGxheWVyMlhvcmlnaW4gKyAoKGxheWVyMlhlbmQgLSBsYXllcjJYb3JpZ2luKSAvIDIuMCkgKyAoLSAodmlhMldpZHRoIC8gMi4wKSkpKSAodmlhMlhvcmlnaW4gPSAoZml4KCgodmlhMlhvcmlnaW4gLyBzbmFwR3JpZCkgKyAxZS0wNikpICogc25hcEdyaWQpKSBlbHNlICh2aWEyWG9yaWdpbiA9IChsYXllcjJYb3JpZ2luICsgbGF5ZXIyWEVuY1ZpYTIpKSkgKHZpYTJYZW5kID0gKHZpYTJYb3JpZ2luICsgdmlhMldpZHRoKSkgaWYoY2VudGVyVmlhMiB0aGVuIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKHZpYTJSb3cgPSAoZmxvb3IgKHcgLyB2aWEyUGl0Y2gpKSkgaWYoKHZpYTJSb3cgPT0gMCkgKHZpYTJSb3cgPSAxKSkgKHZpYTJZb2Zmc2V0ID0gKCh3IC0gKCh2aWEyUm93ICogdmlhMlBpdGNoKSAtIHZpYTJTcGFjZSkpIC8gMikpICh2aWEyWW9yaWdpbiA9IChmaXgoKCh2aWEyWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpIGVsc2UgKGxheWVyMll3aWR0aCA9IChsYXllcjJZZW5kIC0gbGF5ZXIyWW9yaWdpbikpICh2aWEyRHJhd1NwYWNlWSA9IChsYXllcjJZd2lkdGggLSAobGF5ZXIyWUVuY1ZpYTIgKiAyKSkpICh2aWEyUm93ID0gKGZsb29yICgodmlhMkRyYXdTcGFjZVkgKyB2aWEyU3BhY2UpIC8gdmlhMlBpdGNoKSkpIGlmKCh2aWEyUm93ID09IDApICh2aWEyUm93ID0gMSkpICh2aWEyWW9mZnNldCA9ICgodmlhMkRyYXdTcGFjZVkgLSAoKHZpYTJSb3cgKiB2aWEyUGl0Y2gpIC0gdmlhMlNwYWNlKSkgLyAyKSkgKHZpYTJZb3JpZ2luID0gKGxheWVyMllvcmlnaW4gKyBsYXllcjJZRW5jVmlhMiArIChmaXgoKCh2aWEyWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSkgKHlWYWx1ZSA9IHZpYTJZb3JpZ2luKSBmb3IociAxIHZpYTJSb3cgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHZpYTJYb3JpZ2luOnlWYWx1ZSkgKCh2aWEyWG9yaWdpbiArIHZpYTJXaWR0aCk6KHlWYWx1ZSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTJQaXRjaCkpKSBlbHNlICh2aWEyWW9mZnNldCA9ICh2aWEyV2lkdGggKyB2aWEyU3BhY2UpKSAoeVZhbHVlID0gdmlhMllvcmlnaW4pIGlmKGFsbG93Q2VudGVyZWRNQ09OcyB0aGVuIHdoaWxlKCgoKGxhc3RWaWEyWW9yaWdpbiAtIHZpYTJXaWR0aCkgLSB5VmFsdWUpID4gLTFlLTA2KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodmlhMlhvcmlnaW46eVZhbHVlKSAodmlhMlhlbmQ6KHlWYWx1ZSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTJZb2Zmc2V0KSkpIGVsc2Ugd2hpbGUoKChsYXN0VmlhMllvcmlnaW4gLSB5VmFsdWUpID4gLTFlLTA2KSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWEyTGF5ZXIgbGlzdCgodmlhMlhvcmlnaW46eVZhbHVlKSAodmlhMlhlbmQ6KHlWYWx1ZSArIHZpYTJXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0KSAoeVZhbHVlID0gKHlWYWx1ZSArIHZpYTJZb2Zmc2V0KSkpKSkgKGxheWVyM1hvcmlnaW4gPSAodmlhMlhvcmlnaW4gLSBsYXllcjNYRW5jVmlhMikpIChsYXllcjNYZW5kID0gKHZpYTJYZW5kICsgbGF5ZXIzWEVuY1ZpYTIpKSAoKChsYXllcjNYZW5kIC0gbGF5ZXIzWG9yaWdpbikgPCBsYXllcjNXaWR0aCkgJiYgKGxheWVyM1hlbmQgPSAobGF5ZXIzWG9yaWdpbiArIGxheWVyM1dpZHRoKSkpIChsYXllcjNZb3JpZ2luID0gKHZpYTJZb3JpZ2luIC0gbGF5ZXIzWUVuY1ZpYTIpKSAobGF5ZXIzWWVuZCA9ICgoeVZhbHVlIC0gdmlhMlNwYWNlKSArIGxheWVyM1lFbmNWaWEyKSkgKCgobGF5ZXIzWWVuZCAtIGxheWVyM1lvcmlnaW4pIDwgbGF5ZXIzV2lkdGgpICYmIChsYXllcjNZZW5kID0gKGxheWVyM1lvcmlnaW4gKyBsYXllcjNXaWR0aCkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjMgbGlzdCgobGF5ZXIzWG9yaWdpbjpsYXllcjNZb3JpZ2luKSAobGF5ZXIzWGVuZDpsYXllcjNZZW5kKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldCkgKHBpbklkID0gKGRiQ3JlYXRlUGluIG5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGFsbERpciBhY2Nlc3NEaXIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAibGlzdCIgKGRiSWR+PmJCb3gpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAibGlzdCIgbGF5ZXIzKSkpKQAoZGlmZiB0YXAgbGF5ZXIyIGxheWVyMyB2aWExTGF5ZXIgdmlhMkxheWVyIGNlbnRlclJlY29nbml0aW9uIGRpZmZXaWR0aCB0YXBXaWR0aCB0YXBXaWR0aEJldHdlZW5EaWZmIHRhcFdpZHRoQnV0dGluZ0RpZmYgbGF5ZXIyV2lkdGggbGF5ZXIzV2lkdGggdmlhMVdpZHRoIHZpYTJXaWR0aCB2aWExU3BhY2UgdmlhMlNwYWNlIGRpZmZZRW5jVmlhIGRpZmZYRW5jVmlhIGRpZmZYT3V0RW5jVmlhIHRpcFRhcFlJbkVuY1ZpYSB0aXBUYXBZT3V0RW5jVmlhIHRpcFRhcFhFbmNWaWEgY2VudGVyVGFwWEVuY1ZpYSBjZW50ZXJUYXBZRW5jVmlhIGxheWVyMlhFbmNWaWEgbGF5ZXIyWUVuY1ZpYSBsYXllcjJYRW5jVmlhMiBsYXllcjJZRW5jVmlhMiBsYXllcjNYRW5jVmlhMiBsYXllcjNZRW5jVmlhMiB0YXBTcGFjZUdhdGUgdGFwU3BhY2VQb2x5IG1heERpZmZUb1RhcENvbnRhY3RTcGFjZSBoYWxmRGlmZnVzaW9uR3JpZCBtaW5QaW5XaWR0aCBkaWZmSW1wbGFudCBkaWZmSW1wRW5jIGRpZmZJbXBFbmNCdXR0IHRhcEltcGxhbnQgdGFwSW1wRW5jIHRhcEltcEVuY0J1dHQgZGlmZkltcEVuY0xpc3QgdGFwSW1wRW5jTGlzdCB3ZWxsTGF5ZXIgd2VsbExheWVyRGlmZkVuYyB3ZWxsTGF5ZXJUYXBFbmMgc25hcEdyaWQgZW11bGF0ZVNsb3RWaWEgY2VudGVyVmlhMSBjZW50ZXJWaWEyIGNlbnRlckxheWVyMiB3IGltcGxhbnQgaW5XZWxsIGNlbnRlclRhcCB0b3BFbmRUYXAgYm90dG9tRW5kVGFwIG5vRGlmZkNvbnRhY3QgYWxsb3dDZW50ZXJlZE1DT05zIGRpZmZJbXBDaG9pY2UgdGFwSW1wQ2hvaWNlIHZpYTFQaXRjaCB2aWEyUGl0Y2ggZW5jTGlzdCBkaWZmSW1wRW5jWEwgZGlmZkltcEVuY1hSIGRpZmZJbXBFbmNZIHRhcEltcEVuY1hMIHRhcEltcEVuY1hSIHRhcEltcEVuY1kgbmV0IGFsbERpciBoYXNUYXBJbkNlbnRlciBkb3VibGVNYXhEaXN0YW5jZVRvVGFwIG1heENvbnNlY0RpZmZDb250YWN0cyB2aWExWG9yaWdpbiB2aWExWGVuZCB0YXBYb3JpZ2luIHRhcFhlbmQgdGJUYXBYb3JpZ2luIHRiVGFwWGVuZCBkaWZmWG9yaWdpbiBkaWZmWGVuZCBkaWZmQ29uWW9mZnNldEFidXR0aW5nVGFwIGZpcnN0RGlmZkNvbllvZmZzZXQgbGFzdERpZmZDb25Zb2Zmc2V0IHRhcFlvZmZzZXQgbWluVyBzbWFsbGVyTWluVyBkaWZmRGl2aXNvciBkaWZmU3ByZWFkIHlWYWx1ZSB5UmVtYWluaW5nIHlWaWExT2Zmc2V0IGNlbnRlckRpZmZDb25Zb2Zmc2V0IGNlbnRlclRhcHMgZGlmZkRlbHRhIGRiSWQgaSB0YXBZV2lkdGhCZXR3ZWVuRGlmZiB0YXBCb3R0b21FZGdlIHRhcFRvcEVkZ2UgdmlhRHJhd1NwYWNlWSB2aWExUm93IHZpYTFZb2Zmc2V0IHZpYTFZb3JpZ2luIHRoZVkgciB0YXBWaWExWE8gdGFwVmlhMVhFIGRiaWQgcGluSWQgdmlhMU1pblkgdmlhMU1heFkgbGF5ZXIyTGVuZ3RoIGxheWVyMlhvcmlnaW4gbGF5ZXIyWGVuZCBsYXllcjJZb3JpZ2luIG51bVZpYTIgbGFzdFZpYTJZZW5kIGxheWVyMlllbmQgdmlhMllvcmlnaW4gbGFzdFZpYTJZb3JpZ2luIHZpYTJYb3JpZ2luIHZpYTJYZW5kIHZpYTJSb3cgdmlhMllvZmZzZXQgbGF5ZXIyWXdpZHRoIHZpYTJEcmF3U3BhY2VZIGxheWVyM1hvcmlnaW4gbGF5ZXIzWGVuZCBsYXllcjNZb3JpZ2luIGxheWVyM1llbmQpACgodyAwLjApIChpbXBsYW50IHQpIChpbldlbGwgIkZBTFNFIikgKGNlbnRlclRhcCAiRkFMU0UiKSAodG9wRW5kVGFwIHQpIChib3R0b21FbmRUYXAgdCkgKG5vRGlmZkNvbnRhY3QgIkZBTFNFIikgKGFsbG93Q2VudGVyZWRNQ09OcyAiRkFMU0UiKSAoZGlmZkltcENob2ljZSAwKSAodGFwSW1wQ2hvaWNlIDApKQAoKGRpZmYgImhpbGl0ZSIpICh0YXAgInByQm91bmRhcnkiKSAobGF5ZXIyICgibWFya2VyIiAid2FybmluZyIpKSAobGF5ZXIzIG5pbCkgKHZpYTFMYXllciAoIm1hcmtlciIgImVycm9yIikpICh2aWEyTGF5ZXIgbmlsKSAoY2VudGVyUmVjb2duaXRpb24gbmlsKSAoZGlmZldpZHRoIDAuMCkgKHRhcFdpZHRoIDAuMCkgKHRhcFdpZHRoQmV0d2VlbkRpZmYgMC4wKSAodGFwV2lkdGhCdXR0aW5nRGlmZiAwLjApIChsYXllcjJXaWR0aCAwLjApIChsYXllcjNXaWR0aCAwLjApICh2aWExV2lkdGggMC4wKSAodmlhMldpZHRoIDAuMCkgKHZpYTFTcGFjZSAwLjApICh2aWEyU3BhY2UgMC4wKSAoZGlmZllFbmNWaWEgMC4wKSAoZGlmZlhFbmNWaWEgMC4wKSAoZGlmZlhPdXRFbmNWaWEgMC4wKSAodGlwVGFwWUluRW5jVmlhIDAuMCkgKHRpcFRhcFlPdXRFbmNWaWEgMC4wKSAodGlwVGFwWEVuY1ZpYSAwLjApIChjZW50ZXJUYXBYRW5jVmlhIDAuMCkgKGNlbnRlclRhcFlFbmNWaWEgMC4wKSAobGF5ZXIyWEVuY1ZpYSAwLjApIChsYXllcjJZRW5jVmlhIDAuMCkgKGxheWVyMlhFbmNWaWEyIDAuMCkgKGxheWVyMllFbmNWaWEyIDAuMCkgKGxheWVyM1hFbmNWaWEyIDAuMCkgKGxheWVyM1lFbmNWaWEyIDAuMCkgKHRhcFNwYWNlR2F0ZSAwLjApICh0YXBTcGFjZVBvbHkgMC4wKSAobWF4RGlmZlRvVGFwQ29udGFjdFNwYWNlIDk5OTk5LjkpIChoYWxmRGlmZnVzaW9uR3JpZCAwLjApIChtaW5QaW5XaWR0aCAwLjA1KSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkltcEVuY0J1dHQgbGlzdCgwLjAgMC4wKSkgKHRhcEltcGxhbnQgbmlsKSAodGFwSW1wRW5jIGxpc3QoMC4wIDAuMCkpICh0YXBJbXBFbmNCdXR0IGxpc3QoMC4wIDAuMCkpIChkaWZmSW1wRW5jTGlzdCBuaWwpICh0YXBJbXBFbmNMaXN0IG5pbCkgKHdlbGxMYXllciBuaWwpICh3ZWxsTGF5ZXJEaWZmRW5jIDAuMCkgKHdlbGxMYXllclRhcEVuYyAwLjApIChzbmFwR3JpZCAoVEVDSGdldFByb3Agc25hcEdyaWQpKSAoZW11bGF0ZVNsb3RWaWEgbmlsKSAoY2VudGVyVmlhMSBuaWwpIChjZW50ZXJWaWEyIG5pbCkgKGNlbnRlckxheWVyMiBuaWwpKQAoKGdOZXQgPSAoZGJDcmVhdGVOZXQgdGNDZWxsVmlldyAiZyIpKSAoc05ldCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJzIikpIChkTmV0ID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgImQiKSkgKHNyY0NvbklkID0gKGRybkNvbklkID0gKHNyY1BpbklkID0gKGRyblBpbklkID0gbmlsKSkpKSB3aGVuKHN0cmluZ3AoZGlmZkxheWVyKSAoZGlmZkxheWVyID0gbGlzdChkaWZmTGF5ZXIgImRyYXdpbmciKSkpIHdoZW4oKHNvdXJjZUNvbnRhY3QgIT0gIiIpIChzcmNDb25JZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBzb3VyY2VDb250YWN0ICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Moc3JjQ29uSWQgZXJyb3Ioc3RyY2F0KCJDYW5ub3QgZmluZC9vcGVuIHNvdXJjZUNvbnRhY3QgY29udGFjdCBjZWxsIGAiIHNvdXJjZUNvbnRhY3QgIiciKSkpKSB3aGVuKChkcmFpbkNvbnRhY3QgIT0gIiIpIChkcm5Db25JZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBkcmFpbkNvbnRhY3QgInN5bWJvbGljIiBuaWwgInJuIikpIHVubGVzcyhkcm5Db25JZCBlcnJvcihzdHJjYXQoIkNhbm5vdCBmaW5kL29wZW4gZHJhaW5Db250YWN0IGNvbnRhY3QgY2VsbCBgIiBkcmFpbkNvbnRhY3QgIiciKSkpKSBjb25kKCgodGFwU291cmNlID09ICJUUlVFIikgKHRhcFhvcmlnaW4gPSAoLSB0YXBFeHQpKSB3aGVuKHNyY0NvbklkIChpbnN0ID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgc3JjQ29uSWQgImMwIiAoKC0gc3JjT2Zmc2V0KTowKSAiTVkiIDEgbGlzdChsaXN0KCJ3IiAiZmxvYXQiIHcpKSkpIHVubGVzcyhpbnN0IGVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIG9mIHNvdXJjZSBjb250YWN0IikpIHdoZW4oKChtYXN0ZXIgPSAoaW5zdH4+bWFzdGVyKSkgJiYgKHRvcEJib3ggPSAobWFzdGVyfj50b3BMYXllclBpbkJib3gpKSAmJiAodG9wTGF5ZXIgPSAobWFzdGVyfj50b3BMYXllcikpICYmIChkaWZmQmJveCA9IChtYXN0ZXJ+PmRpZmZMYXllckJib3gpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdG9wTGF5ZXIgbGlzdCgoKDAuMCAtIHNyY09mZnNldCAtIGNhYXIodG9wQmJveCkpOmNhZGFyKHRvcEJib3gpKSAoKDAuMCAtIHNyY09mZnNldCAtIGNhYWRyKHRvcEJib3gpKTpjYWRhZHIodG9wQmJveCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgc05ldCkgKHNyY1BpbklkID0gKGRiQ3JlYXRlUGluIHNOZXQgZGJJZCkpICh0YXBYb3JpZ2luID0gbWluKCgtIHRhcEV4dCkgKDAuMCAtIHNyY09mZnNldCAtIG1heChjYWFyKGRpZmZCYm94KSBjYWFkcihkaWZmQmJveCkpKSkpICh3ZWxsWG9yaWdpbiA9IG1pbigoLSB3ZWxsRW5jRGlmZikgKDAuMCAtIHdlbGxFbmNUYXAgLSBtYXgodGFwRXh0IChzcmNPZmZzZXQgKyBtYXgoY2FhcihkaWZmQmJveCkgY2FhZHIoZGlmZkJib3gpKSkpKSkpICh3ZWxsWW9yaWdpbiA9IG1pbigoMC4wIC0gd2VsbEVuY1RhcCAtIG1pbigwLjAgY2FkYXIoZGlmZkJib3gpIGNhZGFkcihkaWZmQmJveCkpKSAoLSB3ZWxsRW5jVGFwKSkpICh3ZWxsWWVuZCA9IG1heCgod2VsbEVuY1RhcCArIG1heChjYWRhcihkaWZmQmJveCkgY2FkYWRyKGRpZmZCYm94KSkpICh3ICsgd2VsbEVuY1RhcCkpKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRhcExheWVyIGxpc3QoKHRhcFhvcmlnaW46MC4wKSAoMC4wOncpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgc05ldCkgdW5sZXNzKHNyY1BpbklkIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBzTmV0IGRiSWQpKSBzZXRTR3EocGluSWQgbGlzdCgibGVmdCIpIGFjY2Vzc0RpcikgKHdlbGxYb3JpZ2luID0gKDAuMCAtIHRhcEV4dCAtIHdlbGxFbmNUYXApKSAod2VsbFlvcmlnaW4gPSBtaW4oKC0gd2VsbEVuY0RpZmYpICgtIHdlbGxFbmNUYXApKSkgKHdlbGxZZW5kID0gKHcgLSB3ZWxsWW9yaWdpbikpKSkgKHQgKHdlbGxYb3JpZ2luID0gKC0gd2VsbEVuY0RpZmYpKSAod2VsbFlvcmlnaW4gPSAoLSB3ZWxsRW5jRGlmZikpICh3ZWxsWWVuZCA9ICh3IC0gd2VsbFlvcmlnaW4pKSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCgwLjA6MC4wKSAobDp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIGdOZXQpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGdhdGVMYXllciBsaXN0KCgwLjA6KC0gcG9seUV4dCkpIChsOjAuMCkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBnTmV0KSAocGluSWQgPSAoZGJDcmVhdGVQaW4gZ05ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoImJvdHRvbSIpIGFjY2Vzc0RpcikgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZ2F0ZUxheWVyIGxpc3QoKDAuMDp3KSAobDoodyArIHBvbHlFeHQpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIGdOZXQpIChwaW5JZCA9IChkYkNyZWF0ZVBpbiBnTmV0IGRiSWQpKSBzZXRTR3EocGluSWQgbGlzdCgidG9wIikgYWNjZXNzRGlyKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoMC4wOjAuMCkgKGw6dykpKSkgKGRpZmZYZW5kID0gKGwgKyBkaWZmRXh0KSkgd2hlbihkcm5Db25JZCAoaW5zdCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IGRybkNvbklkICJjMSIgKChsICsgZHJuT2Zmc2V0KTowKSAiMCIgMSBsaXN0KGxpc3QoInciICJmbG9hdCIgdykpKSkgdW5sZXNzKGluc3QgZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2Ugb2YgZHJhaW4gY29udGFjdCIpKSB3aGVuKCgobWFzdGVyID0gKGluc3R+Pm1hc3RlcikpICYmICh0b3BCYm94ID0gKG1hc3Rlcn4+dG9wTGF5ZXJQaW5CYm94KSkgJiYgKHRvcExheWVyID0gKG1hc3Rlcn4+dG9wTGF5ZXIpKSAmJiAoZGlmZkJib3ggPSAobWFzdGVyfj5kaWZmTGF5ZXJCYm94KSkpIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHRvcExheWVyIGxpc3QoKChsICsgZHJuT2Zmc2V0ICsgY2Fhcih0b3BCYm94KSk6Y2FkYXIodG9wQmJveCkpICgobCArIGRybk9mZnNldCArIGNhYWRyKHRvcEJib3gpKTpjYWRhZHIodG9wQmJveCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgZE5ldCkgKGRyblBpbklkID0gKGRiQ3JlYXRlUGluIGROZXQgZGJJZCkpIChkaWZmWGVuZCA9IChsICsgbWF4KGRpZmZFeHQgKGRybk9mZnNldCArIG1heChjYWFyKGRpZmZCYm94KSBjYWFkcihkaWZmQmJveCkpKSkpKSAod2VsbFhlbmQgPSAobCArIHdlbGxFbmNEaWZmICsgbWF4KGRpZmZFeHQgKGRybk9mZnNldCArIG1heChjYWFyKGRpZmZCYm94KSBjYWFkcihkaWZmQmJveCkpKSkpKSAod2VsbFlvcmlnaW4gPSBtaW4od2VsbFlvcmlnaW4gKDAuMCAtIHdlbGxFbmNEaWZmIC0gbWluKGNhZGFyKGRpZmZCYm94KSBjYWRhZHIoZGlmZkJib3gpKSkpKSAod2VsbFllbmQgPSBtYXgod2VsbFllbmQgKHdlbGxFbmNEaWZmICsgbWF4KGNhZGFyKGRpZmZCYm94KSBjYWRhZHIoZGlmZkJib3gpKSkpKSB3aGVuKCh0YXBCYm94ID0gKG1hc3Rlcn4+dGFwTGF5ZXJCYm94KSkgKHdlbGxZb3JpZ2luID0gbWluKHdlbGxZb3JpZ2luIChtaW4oY2FkYXIodGFwQmJveCkgY2FkYWRyKHRhcEJib3gpKSAtIHdlbGxFbmNUYXApKSkgKHdlbGxZZW5kID0gbWF4KHdlbGxZZW5kICh3ZWxsRW5jVGFwICsgbWF4KGNhZGFyKHRhcEJib3gpIGNhZGFkcih0YXBCYm94KSkpKSkgKHdlbGxYZW5kID0gbWF4KHdlbGxYZW5kIChsICsgZHJuT2Zmc2V0ICsgd2VsbEVuY1RhcCArIG1heChjYWFyKHRhcEJib3gpIGNhYWRyKHRhcEJib3gpKSkpKSkpKSAoZGJJZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgobDowLjApIChkaWZmWGVuZDp3KSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIGROZXQpIHVubGVzcyhkcm5QaW5JZCAocGluSWQgPSAoZGJDcmVhdGVQaW4gZE5ldCBkYklkKSkgc2V0U0dxKHBpbklkIGxpc3QoInJpZ2h0IikgYWNjZXNzRGlyKSAod2VsbFhlbmQgPSAobCArIGRpZmZFeHQgKyB3ZWxsRW5jRGlmZikpKSB3aGVuKHdlbGxMYXllciB3aGVuKCgod2VsbFhlbmQgLSB3ZWxsWG9yaWdpbikgPCB3ZWxsbWluV2lkdGgpIChEaWZmX3dlbGxfd2lkdGggPSAod2VsbG1pbldpZHRoIC0gKHdlbGxYZW5kIC0gd2VsbFhvcmlnaW4pKSkgKHdlbGxYZW5kID0gKHdlbGxYZW5kICsgKERpZmZfd2VsbF93aWR0aCAvIDIpKSkgKHdlbGxYb3JpZ2luID0gKHdlbGxYb3JpZ2luIC0gKERpZmZfd2VsbF93aWR0aCAvIDIpKSkpIHdoZW4oKCh3ZWxsWWVuZCAtIHdlbGxZb3JpZ2luKSA8IHdlbGxtaW5XaWR0aCkgKERpZmZfd2VsbF93aWR0aCA9ICh3ZWxsbWluV2lkdGggLSAod2VsbFllbmQgLSB3ZWxsWW9yaWdpbikpKSAod2VsbFllbmQgPSAod2VsbFllbmQgKyAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSAod2VsbFlvcmlnaW4gPSAod2VsbFlvcmlnaW4gLSAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSkgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgd2VsbExheWVyIGxpc3QoKHdlbGxYb3JpZ2luOndlbGxZb3JpZ2luKSAod2VsbFhlbmQ6d2VsbFllbmQpKSkpKSB3aGVuKGRlcExheWVyIChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRlcExheWVyIGxpc3QoKCgtIGRlcEVuY0RpZmYpOigtIGRlcEVuY0dhdGUpKSAoKGwgKyBkZXBFbmNEaWZmKToodyArIGRlcEVuY0dhdGUpKSkpKSkpAChkaWZmTGF5ZXIgZ2F0ZUxheWVyIHRhcExheWVyIHdlbGxMYXllciB3ZWxsbWluV2lkdGggZGVwTGF5ZXIgZGlmZkV4dCB0YXBFeHQgd2VsbEVuY0RpZmYgd2VsbEVuY1RhcCBkZXBFbmNEaWZmIGRlcEVuY0dhdGUgZHJhaW5Db250YWN0IHNvdXJjZUNvbnRhY3QgcG9seUV4dCBzcmNPZmZzZXQgZHJuT2Zmc2V0IGwgdyB0YXBTb3VyY2UgZ05ldCBzTmV0IGROZXQgc3JjQ29uSWQgZHJuQ29uSWQgc3JjUGluSWQgZHJuUGluSWQgdGFwWG9yaWdpbiBpbnN0IG1hc3RlciB0b3BCYm94IHRvcExheWVyIGRpZmZCYm94IGRiSWQgd2VsbFhvcmlnaW4gd2VsbFlvcmlnaW4gd2VsbFllbmQgcGluSWQgZGlmZlhlbmQgd2VsbFhlbmQgdGFwQmJveCBEaWZmX3dlbGxfd2lkdGgpACgoZHJhaW5Db250YWN0ICIiKSAoc291cmNlQ29udGFjdCAiIikgKHBvbHlFeHQgMC4wKSAoc3JjT2Zmc2V0IDAuMCkgKGRybk9mZnNldCAwLjApIChsIDAuMCkgKHcgMC4wKSAodGFwU291cmNlIHQpKQAoKGRpZmZMYXllciAiaGlsaXRlIikgKGdhdGVMYXllciAibWFya2VyIikgKHRhcExheWVyICJ5NCIpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbG1pbldpZHRoIDAuMCkgKGRlcExheWVyIG5pbCkgKGRpZmZFeHQgMC4wKSAodGFwRXh0IDAuMCkgKHdlbGxFbmNEaWZmIDAuMCkgKHdlbGxFbmNUYXAgMC4wKSAoZGVwRW5jRGlmZiAwLjApIChkZXBFbmNHYXRlIDAuMCkpAChpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIChuZXRJZCA9IChkYkNyZWF0ZU5ldCB0Y0NlbGxWaWV3ICJwZGQiKSkgd2hlbihzdHJpbmdwKGRpZmZMYXllcikgKGRpZmZMYXllciA9IGxpc3QoZGlmZkxheWVyICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AobGF5ZXIzKSAobGF5ZXIzID0gbGlzdChsYXllcjMgImRyYXdpbmciKSkpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBsYW50IGlmKGluV2VsbCB0aGVuIChkaWZmSW1wbGFudCA9IGNhZHIoZGlmZkltcGxhbnQpKSAoZGlmZkltcFhMRW5jID0gY2FkcihkaWZmSW1wWExFbmMpKSAoZGlmZkltcFhSRW5jID0gY2FkcihkaWZmSW1wWFJFbmMpKSAoZGlmZkltcFlFbmMgPSBjYWRyKGRpZmZJbXBZRW5jKSkgZWxzZSAoZGlmZkltcGxhbnQgPSBjYXIoZGlmZkltcGxhbnQpKSAoZGlmZkltcFhMRW5jID0gY2FyKGRpZmZJbXBYTEVuYykpIChkaWZmSW1wWFJFbmMgPSBjYXIoZGlmZkltcFhSRW5jKSkgKGRpZmZJbXBZRW5jID0gY2FyKGRpZmZJbXBZRW5jKSkpKSkgd2hlbihkaWZmQ29yZUltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGRpZmZDb3JlSW1wbGFudCA9IGNhZHIoZGlmZkNvcmVJbXBsYW50KSkgKGRpZmZDb3JlSW1wWExFbmMgPSBjYWRyKGRpZmZDb3JlSW1wWExFbmMpKSAoZGlmZkNvcmVJbXBYUkVuYyA9IGNhZHIoZGlmZkNvcmVJbXBYUkVuYykpIChkaWZmQ29yZUltcFlFbmMgPSBjYWRyKGRpZmZDb3JlSW1wWUVuYykpIGVsc2UgKGRpZmZDb3JlSW1wbGFudCA9IGNhcihkaWZmQ29yZUltcGxhbnQpKSAoZGlmZkNvcmVJbXBYTEVuYyA9IGNhcihkaWZmQ29yZUltcFhMRW5jKSkgKGRpZmZDb3JlSW1wWFJFbmMgPSBjYXIoZGlmZkNvcmVJbXBYUkVuYykpIChkaWZmQ29yZUltcFlFbmMgPSBjYXIoZGlmZkNvcmVJbXBZRW5jKSkpKSAoZGlmZkxlbiA9ICh2aWExV2lkdGggKyBkaWZmTEVuY1ZpYTEgKyBkaWZmUkVuY1ZpYTEpKSB3aGVuKCgoKHZpYTFXaWR0aCArICgyLjAgKiBkaWZmWUVuY1ZpYTEpKSAtIHcpID4gMWUtMDYpIGVycm9yKHNwcmludGYobmlsICJTcGVjaWZpZWQgd2lkdGggJWYgaXMgbGVzcyB0aGFuIHRoYXQgcmVxdWlyZWQgJWZcbiIgdyAodmlhMVdpZHRoICsgKDIuMCAqIGRpZmZZRW5jVmlhMSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZMYXllciBsaXN0KCgwOjApIChkaWZmTGVuOncpKSkpIChkYkNyZWF0ZVBpbiBuZXRJZCBkYmlkKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllciIgIklMTGlzdCIgZGlmZkxheWVyKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImRpZmZMYXllckJib3giICJJTExpc3QiIGxpc3QobGlzdCgwLjAgMC4wKSBsaXN0KGRpZmZMZW4gdykpKSB3aGVuKG1heHZMYXllciAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbWF4dkxheWVyIGxpc3QoKDA6MCkgKGRpZmZMZW46dykpKSkgd2hlbihpbXBsYW50IHdoZW4oZGlmZkltcGxhbnQgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRpZmZJbXBsYW50IGxpc3QobGlzdCgoLSBkaWZmSW1wWExFbmMpICgtIGRpZmZJbXBZRW5jKSkgbGlzdCgoZGlmZkxlbiArIGRpZmZJbXBYUkVuYykgKHcgKyBkaWZmSW1wWUVuYykpKSkpIHdoZW4oZGlmZkNvcmVJbXBsYW50IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmQ29yZUltcGxhbnQgbGlzdChsaXN0KCgtIGRpZmZDb3JlSW1wWExFbmMpICgtIGRpZmZDb3JlSW1wWUVuYykpIGxpc3QoKGRpZmZMZW4gKyBkaWZmQ29yZUltcFhSRW5jKSAodyArIGRpZmZDb3JlSW1wWUVuYykpKSkpIHdoZW4oKGluV2VsbCAmJiB3ZWxsTGF5ZXIpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgbGlzdChsaXN0KCgtIHdlbGxMYXllckVuYykgKC0gd2VsbExheWVyRW5jKSkgbGlzdCgoZGlmZkxlbiArIHdlbGxMYXllckVuYykgKHcgKyB3ZWxsTGF5ZXJFbmMpKSkpKSkgKHgxQ29vcmQgPSBkaWZmTEVuY1ZpYTEpICh5MUNvb3JkID0gZGlmZllFbmNWaWExKSAoeDJDb29yZCA9IChkaWZmTEVuY1ZpYTEgKyB2aWExV2lkdGgpKSAodmlhMVBpdGNoID0gKHZpYTFXaWR0aCArIHZpYTFTcGFjZSkpIGlmKGNlbnRlclZpYTEgdGhlbiAodmlhMURyYXdTcGFjZVkgPSAodyAtIChkaWZmWUVuY1ZpYTEgKiAyKSkpICh2aWExUm93ID0gKGZsb29yICgodmlhMURyYXdTcGFjZVkgKyB2aWExU3BhY2UpIC8gdmlhMVBpdGNoKSkpIGlmKCh2aWExUm93ID09IDApICh2aWExUm93ID0gMSkpICh2aWExWW9mZnNldCA9ICgodmlhMURyYXdTcGFjZVkgLSAoKHZpYTFSb3cgKiB2aWExUGl0Y2gpIC0gdmlhMVNwYWNlKSkgLyAyKSkgKHkxQ29vcmQgPSAoZGlmZllFbmNWaWExICsgKGZpeCgoKHZpYTFZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkpICh0aGVZID0geTFDb29yZCkgZm9yKHIgMSB2aWExUm93IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTFMYXllciBsaXN0KCh4MUNvb3JkOnRoZVkpICh4MkNvb3JkOih0aGVZICsgdmlhMVdpZHRoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJJZCBuZXRJZCkgKHRoZVkgPSAodGhlWSArIHZpYTFQaXRjaCkpKSAoeTJDb29yZCA9ICh0aGVZIC0gdmlhMVNwYWNlKSkgZWxzZSAoeU5vdENvdmVyZWQgPSAodyAtICgyLjAgKiBkaWZmWUVuY1ZpYTEpKSkgd2hpbGUoKCh5Tm90Q292ZXJlZCAtIHZpYTFXaWR0aCkgPiAtMWUtMDYpICh5MkNvb3JkID0gKHkxQ29vcmQgKyB2aWExV2lkdGgpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB2aWExTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDp5MkNvb3JkKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldElkKSAoeTFDb29yZCA9ICh5MUNvb3JkICsgdmlhMVBpdGNoKSkgKHlOb3RDb3ZlcmVkID0gKHlOb3RDb3ZlcmVkIC0gdmlhMVBpdGNoKSkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hWaWExIiAibGlzdCIgbGlzdCgoZGlmZkxFbmNWaWExOmRpZmZZRW5jVmlhMSkgKHgyQ29vcmQ6eTJDb29yZCkpKSAobGF5ZXIyTGVuID0gbWF4KGxheWVyMldpZHRoICh2aWExV2lkdGggKyAoMi4wICogbGF5ZXIyWEVuY1ZpYTEpKSAodmlhMldpZHRoICsgKDIuMCAqIGxheWVyMlhFbmNWaWEyKSkpKSAobnVtVmlhMiA9IG1heChmaXgoKCgodyArIHZpYTJTcGFjZSArICgtIChsYXllcjJZRW5jVmlhMiArIGxheWVyMllFbmNWaWEyKSkgKyAoLSAoZGlmZllFbmNWaWExIC0gbGF5ZXIyWUVuY1ZpYTEpKSkgLyAodmlhMldpZHRoICsgdmlhMlNwYWNlKSkgKyAxZS0wNikpIDEpKSAobGF5ZXIyV2lkID0gbWF4KGxheWVyMldpZHRoICgoeTJDb29yZCArIGxheWVyMllFbmNWaWExKSAtIChkaWZmWUVuY1ZpYTEgLSBsYXllcjJZRW5jVmlhMSkpICgodmlhMldpZHRoICogbnVtVmlhMikgKyAodmlhMlNwYWNlICogKG51bVZpYTIgLSAxKSkgKyAoMi4wICogbGF5ZXIyWUVuY1ZpYTIpKSkpIGNvbmQoKChjZW50ZXJWaWEyICYmIChjZW50ZXJWaWEyICE9ICJGQUxTRSIpKSAoaGFsZlZpYTJHcmlkID0gKHZpYTJHcmlkIC8gMi4wKSkgKHgxQ29vcmQgPSAoeDFDb29yZCArICgtIGxheWVyMlhFbmNWaWEyKSArICgodmlhMVdpZHRoIC0gdmlhMldpZHRoKSAvIDIuMCkpKSB3aGVuKG9kZHAoZml4KCgwLjk5ICsgKHgxQ29vcmQgLyBoYWxmVmlhMkdyaWQpKSkpICh4MUNvb3JkID0gKGhhbGZWaWEyR3JpZCAqIGZpeCgoMS45OSArICh4MUNvb3JkIC8gaGFsZlZpYTJHcmlkKSkpKSkpKSAodCAoeDFDb29yZCA9ICh4MUNvb3JkIC0gbGF5ZXIyWEVuY1ZpYTIpKSkpICh4MkNvb3JkID0gKHgxQ29vcmQgKyBsYXllcjJMZW4pKSBpZihlbXVsYXRlU2xvdFZpYSB0aGVuICh5MUNvb3JkID0gKGRpZmZZRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkgKHkyQ29vcmQgPSAoKHcgLSBkaWZmWUVuY1ZpYTEpICsgbGF5ZXIyWUVuY1ZpYTEpKSBlbHNlIGlmKGNlbnRlclZpYTEgdGhlbiAoeTFDb29yZCA9ICh5MUNvb3JkIC0gbGF5ZXIyWUVuY1ZpYTEpKSBlbHNlICh5MUNvb3JkID0gKGRpZmZZRW5jVmlhMSAtIGxheWVyMllFbmNWaWExKSkpICh5MkNvb3JkID0gKHkxQ29vcmQgKyBsYXllcjJXaWQpKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIyIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKHgyQ29vcmQ6eTJDb29yZCkpKSkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJiQm94TGF5ZXIyIiAibGlzdCIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDp5MkNvb3JkKSkpIChkYkNyZWF0ZVBpbiBuZXRJZCBkYmlkKSAodmlhMlBpdGNoID0gKHZpYTJXaWR0aCArIHZpYTJTcGFjZSkpICh2aWEyTG93ZXJYID0gKHgxQ29vcmQgKyBsYXllcjJYRW5jVmlhMikpICh4MUNvb3JkID0gdmlhMkxvd2VyWCkgKHgyQ29vcmQgPSAoeDFDb29yZCArIHZpYTJXaWR0aCkpIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKHZpYTJSb3cgPSAoZmxvb3IgKHcgLyB2aWEyUGl0Y2gpKSkgaWYoKHZpYTJSb3cgPT0gMCkgKHZpYTJSb3cgPSAxKSkgKHZpYTJZb2Zmc2V0ID0gKCh3IC0gKCh2aWEyUm93ICogdmlhMlBpdGNoKSAtIHZpYTJTcGFjZSkpIC8gMikpICh2aWEyTG93ZXJZID0gKGZpeCgoKHZpYTJZb2Zmc2V0IC8gc25hcEdyaWQpICsgMWUtMDYpKSAqIHNuYXBHcmlkKSkgKHRoZVkgPSB2aWEyTG93ZXJZKSBmb3IociAxIHZpYTJSb3cgKGRiSWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhMkxheWVyIGxpc3QoKHgxQ29vcmQ6dGhlWSkgKHgyQ29vcmQ6KHRoZVkgKyB2aWEyV2lkdGgpKSkpKSAoZGJBZGRGaWdUb05ldCBkYklkIG5ldElkKSAodGhlWSA9ICh0aGVZICsgdmlhMlBpdGNoKSkpICh5MkNvb3JkID0gKHRoZVkgLSB2aWEyU3BhY2UpKSBlbHNlICh2aWEyTG93ZXJZID0gKHkxQ29vcmQgKyBsYXllcjJZRW5jVmlhMikpICh5MUNvb3JkID0gdmlhMkxvd2VyWSkgKHlOb3RDb3ZlcmVkID0gKGxheWVyMldpZCAtICgyLjAgKiBsYXllcjJZRW5jVmlhMikpKSB3aGlsZSgoKHlOb3RDb3ZlcmVkIC0gdmlhMldpZHRoKSA+IC0xZS0wNikgKHkyQ29vcmQgPSAoeTFDb29yZCArIHZpYTJXaWR0aCkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYTJMYXllciBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICh4MkNvb3JkOnkyQ29vcmQpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0SWQpICh5MUNvb3JkID0gKHkxQ29vcmQgKyB2aWEyUGl0Y2gpKSAoeU5vdENvdmVyZWQgPSAoeU5vdENvdmVyZWQgLSB2aWEyUGl0Y2gpKSkpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAiYkJveFZpYTIiICJsaXN0IiBsaXN0KCh2aWEyTG93ZXJYOnZpYTJMb3dlclkpICh4MkNvb3JkOnkyQ29vcmQpKSkgKGxheWVyM0xlbiA9IG1heChsYXllcjNXaWR0aCAodmlhMldpZHRoICsgbGF5ZXIzUkVuY1ZpYTIgKyBsYXllcjNMRW5jVmlhMikpKSAobGF5ZXIzV2lkID0gbWF4KGxheWVyM1dpZHRoICgoeTJDb29yZCArIGxheWVyM1lFbmNWaWEyKSAtICh2aWEyTG93ZXJZIC0gbGF5ZXIzWUVuY1ZpYTIpKSkpICh4MUNvb3JkID0gKHgxQ29vcmQgLSBsYXllcjNMRW5jVmlhMikpICh4MkNvb3JkID0gKHgxQ29vcmQgKyBsYXllcjNMZW4pKSAoeTFDb29yZCA9ICh2aWEyTG93ZXJZIC0gbGF5ZXIzWUVuY1ZpYTIpKSAoeTJDb29yZCA9ICh5MUNvb3JkICsgbGF5ZXIzV2lkKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGF5ZXIzIGxpc3QoKHgxQ29vcmQ6eTFDb29yZCkgKHgyQ29vcmQ6eTJDb29yZCkpKSkgKGRiQ3JlYXRlUGluIG5ldElkIGRiaWQpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXIiICJsaXN0IiBsYXllcjMpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAiSUxMaXN0IiBsaXN0KGxpc3QoeDFDb29yZCB5MUNvb3JkKSBsaXN0KHgyQ29vcmQgeTJDb29yZCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hMYXllcjMiICJJTExpc3QiIGxpc3QobGlzdCh4MUNvb3JkIHkxQ29vcmQpIGxpc3QoeDJDb29yZCB5MkNvb3JkKSkpKQAoZGlmZkxheWVyIGxheWVyMiBsYXllcjMgbWF4dkxheWVyIHZpYTFMYXllciB2aWExV2lkdGggdmlhMVNwYWNlIHZpYTJMYXllciB2aWEyV2lkdGggdmlhMlNwYWNlIGRpZmZSRW5jVmlhMSBkaWZmTEVuY1ZpYTEgZGlmZllFbmNWaWExIGxheWVyMlhFbmNWaWExIGxheWVyMllFbmNWaWExIGxheWVyMlhFbmNWaWEyIGxheWVyMllFbmNWaWEyIGxheWVyM1JFbmNWaWEyIGxheWVyM0xFbmNWaWEyIGxheWVyM1lFbmNWaWEyIGxheWVyMldpZHRoIGxheWVyM1dpZHRoIGNlbnRlclZpYTIgdmlhMkdyaWQgZGlmZkltcGxhbnQgZGlmZkltcFhMRW5jIGRpZmZJbXBYUkVuYyBkaWZmSW1wWUVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBYTEVuYyBkaWZmQ29yZUltcFhSRW5jIGRpZmZDb3JlSW1wWUVuYyB3ZWxsTGF5ZXIgd2VsbExheWVyRW5jIGVtdWxhdGVTbG90VmlhIGNlbnRlclZpYTEgc25hcEdyaWQgdyBpbldlbGwgaW1wbGFudCBuZXRJZCBkaWZmTGVuIGRiaWQgeDFDb29yZCB5MUNvb3JkIHgyQ29vcmQgdmlhMVBpdGNoIHZpYTFEcmF3U3BhY2VZIHZpYTFSb3cgdmlhMVlvZmZzZXQgdGhlWSByIGRiSWQgeTJDb29yZCB5Tm90Q292ZXJlZCBsYXllcjJMZW4gbnVtVmlhMiBsYXllcjJXaWQgaGFsZlZpYTJHcmlkIHZpYTJQaXRjaCB2aWEyTG93ZXJYIHZpYTJSb3cgdmlhMllvZmZzZXQgdmlhMkxvd2VyWSBsYXllcjNMZW4gbGF5ZXIzV2lkKQAoKHcgMC4wKSAoaW5XZWxsICJGQUxTRSIpIChpbXBsYW50ICJGQUxTRSIpKQAoKGRpZmZMYXllciAiaGlsaXRlIikgKGxheWVyMiAicHJCb3VuZGFyeSIpIChsYXllcjMgImhpbGl0ZSIpIChtYXh2TGF5ZXIgbmlsKSAodmlhMUxheWVyICJ0ZXh0IikgKHZpYTFXaWR0aCAwLjApICh2aWExU3BhY2UgMC4wKSAodmlhMkxheWVyICJ0ZXh0IikgKHZpYTJXaWR0aCAwLjApICh2aWEyU3BhY2UgMC4wKSAoZGlmZlJFbmNWaWExIDAuMCkgKGRpZmZMRW5jVmlhMSAwLjApIChkaWZmWUVuY1ZpYTEgMC4wKSAobGF5ZXIyWEVuY1ZpYTEgMC4wKSAobGF5ZXIyWUVuY1ZpYTEgMC4wKSAobGF5ZXIyWEVuY1ZpYTIgMC4wKSAobGF5ZXIyWUVuY1ZpYTIgMC4wKSAobGF5ZXIzUkVuY1ZpYTIgMC4wKSAobGF5ZXIzTEVuY1ZpYTIgMC4wKSAobGF5ZXIzWUVuY1ZpYTIgMC4wKSAobGF5ZXIyV2lkdGggMC4wKSAobGF5ZXIzV2lkdGggMC4wKSAoY2VudGVyVmlhMiAiRkFMU0UiKSAodmlhMkdyaWQgMC4wKSAoZGlmZkltcGxhbnQgbmlsKSAoZGlmZkltcFhMRW5jIGxpc3QoMC4wIDAuMCkpIChkaWZmSW1wWFJFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZJbXBZRW5jIGxpc3QoMC4wIDAuMCkpIChkaWZmQ29yZUltcGxhbnQgbmlsKSAoZGlmZkNvcmVJbXBYTEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkNvcmVJbXBYUkVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkNvcmVJbXBZRW5jIGxpc3QoMC4wIDAuMCkpICh3ZWxsTGF5ZXIgbmlsKSAod2VsbExheWVyRW5jIDAuMCkgKGVtdWxhdGVTbG90VmlhIG5pbCkgKGNlbnRlclZpYTEgbmlsKSAoc25hcEdyaWQgKFRFQ0hnZXRQcm9wIHNuYXBHcmlkKSkpAChpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKGluV2VsbCA9PSB0KSB8fCAoaW5XZWxsID09ICJUUlVFIikpIHRoZW4gKGluV2VsbCA9IHQpIGVsc2UgKGluV2VsbCA9IG5pbCkpIHdoZW4oc3RyaW5ncChkaWZmTGF5ZXIpIChkaWZmTGF5ZXIgPSBsaXN0KGRpZmZMYXllciAiZHJhd2luZyIpKSkgd2hlbihzdHJpbmdwKG1heHZMYXllcikgKG1heHZMYXllciA9IGxpc3QobWF4dkxheWVyICJkcmF3aW5nIikpKSB3aGVuKHN0cmluZ3AodmlhTGF5ZXIpICh2aWFMYXllciA9IGxpc3QodmlhTGF5ZXIgImRyYXdpbmciKSkpIHdoZW4oc3RyaW5ncChsYXllcjIpIChsYXllcjIgPSBsaXN0KGxheWVyMiAiZHJhd2luZyIpKSkgd2hlbihpbXBsYW50IHdoZW4oZGlmZkltcGxhbnQgaWYoaW5XZWxsIHRoZW4gKGRpZmZJbXBsYW50ID0gY2FkcihkaWZmSW1wbGFudCkpIChkaWZmSW1wWExFbmMgPSBjYWRyKGRpZmZJbXBYTEVuYykpIChkaWZmSW1wWFJFbmMgPSBjYWRyKGRpZmZJbXBYUkVuYykpIChkaWZmSW1wWUVuYyA9IGNhZHIoZGlmZkltcFlFbmMpKSBlbHNlIChkaWZmSW1wbGFudCA9IGNhcihkaWZmSW1wbGFudCkpIChkaWZmSW1wWExFbmMgPSBjYXIoZGlmZkltcFhMRW5jKSkgKGRpZmZJbXBYUkVuYyA9IGNhcihkaWZmSW1wWFJFbmMpKSAoZGlmZkltcFlFbmMgPSBjYXIoZGlmZkltcFlFbmMpKSkpIHdoZW4oZGlmZkNvcmVJbXBsYW50IGlmKGluV2VsbCB0aGVuIChkaWZmQ29yZUltcGxhbnQgPSBjYWRyKGRpZmZDb3JlSW1wbGFudCkpIChkaWZmQ29yZUltcFhMRW5jID0gY2FkcihkaWZmQ29yZUltcFhMRW5jKSkgKGRpZmZDb3JlSW1wWFJFbmMgPSBjYWRyKGRpZmZDb3JlSW1wWFJFbmMpKSAoZGlmZkNvcmVJbXBZRW5jID0gY2FkcihkaWZmQ29yZUltcFlFbmMpKSBlbHNlIChkaWZmQ29yZUltcGxhbnQgPSBjYXIoZGlmZkNvcmVJbXBsYW50KSkgKGRpZmZDb3JlSW1wWExFbmMgPSBjYXIoZGlmZkNvcmVJbXBYTEVuYykpIChkaWZmQ29yZUltcFhSRW5jID0gY2FyKGRpZmZDb3JlSW1wWFJFbmMpKSAoZGlmZkNvcmVJbXBZRW5jID0gY2FyKGRpZmZDb3JlSW1wWUVuYykpKSkpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBFbmNMaXN0IGlmKGluV2VsbCB0aGVuIChlbmNMaXN0ID0gY2FkcihudGgoZGlmZkltcENob2ljZSBkaWZmSW1wRW5jTGlzdCkpKSBlbHNlIChlbmNMaXN0ID0gY2FyKG50aChkaWZmSW1wQ2hvaWNlIGRpZmZJbXBFbmNMaXN0KSkpKSAoZGlmZkltcFhMRW5jID0gbnRoKDAgZW5jTGlzdCkpIChkaWZmSW1wWFJFbmMgPSBudGgoMSBlbmNMaXN0KSkgKGRpZmZJbXBZRW5jID0gbnRoKDIgZW5jTGlzdCkpKSkgKG5ldElkID0gKGRiQ3JlYXRlTmV0IHRjQ2VsbFZpZXcgInBkZCIpKSAoZGlmZkxlbiA9ICh2aWFXaWR0aCArIGRpZmZMRW5jICsgZGlmZlJFbmMpKSB3aGVuKCgoKHZpYVdpZHRoICsgKDIuMCAqIGRpZmZZRW5jKSkgLSB3KSA+IDFlLTA2KSBlcnJvcihzcHJpbnRmKG5pbCAiU3BlY2lmaWVkIHdpZHRoICVMIGlzIGxlc3MgdGhhbiBuZWVkZWQgJUxcbiIgdyAodmlhV2lkdGggKyAoMi4wICogZGlmZllFbmMpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmTGF5ZXIgbGlzdCgoMDowKSAoZGlmZkxlbjp3KSkpKSAoZGJDcmVhdGVQaW4gbmV0SWQgZGJpZCkgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJkaWZmTGF5ZXIiICJJTExpc3QiIGRpZmZMYXllcikgKGRiQ3JlYXRlUHJvcCB0Y0NlbGxWaWV3ICJkaWZmTGF5ZXJCYm94IiAiSUxMaXN0IiBsaXN0KGxpc3QoMC4wIDAuMCkgbGlzdChkaWZmTGVuIHcpKSkgd2hlbihtYXh2TGF5ZXIgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IG1heHZMYXllciBsaXN0KCgwOjApIChkaWZmTGVuOncpKSkpIHdoZW4oaW1wbGFudCB3aGVuKGRpZmZJbXBsYW50IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkaWZmSW1wbGFudCBsaXN0KGxpc3QoKC0gZGlmZkltcFhMRW5jKSAoLSBkaWZmSW1wWUVuYykpIGxpc3QoKGRpZmZMZW4gKyBkaWZmSW1wWFJFbmMpICh3ICsgZGlmZkltcFlFbmMpKSkpKSB3aGVuKGRpZmZDb3JlSW1wbGFudCAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZGlmZkNvcmVJbXBsYW50IGxpc3QobGlzdCgoLSBkaWZmQ29yZUltcFhMRW5jKSAoLSBkaWZmQ29yZUltcFlFbmMpKSBsaXN0KChkaWZmTGVuICsgZGlmZkNvcmVJbXBYUkVuYykgKHcgKyBkaWZmQ29yZUltcFlFbmMpKSkpKSB3aGVuKChpbldlbGwgJiYgd2VsbExheWVyKSAod2VsbExheWVyX1hvcmlnaW4gPSAoLSB3ZWxsTGF5ZXJFbmMpKSAod2VsbExheWVyX1lvcmlnaW4gPSAoLSB3ZWxsTGF5ZXJFbmMpKSAod2VsbExheWVyX1hlbmQgPSAoZGlmZkxlbiArIHdlbGxMYXllckVuYykpICh3ZWxsTGF5ZXJfWWVuZCA9ICh3ICsgd2VsbExheWVyRW5jKSkgd2hlbigoKHdlbGxMYXllcl9YZW5kIC0gd2VsbExheWVyX1hvcmlnaW4pIDwgd2VsbG1pbldpZHRoKSAoRGlmZl93ZWxsX3dpZHRoID0gKHdlbGxtaW5XaWR0aCAtICh3ZWxsTGF5ZXJfWGVuZCAtIHdlbGxMYXllcl9Yb3JpZ2luKSkpICh3ZWxsTGF5ZXJfWGVuZCA9ICh3ZWxsTGF5ZXJfWGVuZCArIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpICh3ZWxsTGF5ZXJfWG9yaWdpbiA9ICh3ZWxsTGF5ZXJfWG9yaWdpbiAtIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpKSB3aGVuKCgod2VsbExheWVyX1llbmQgLSB3ZWxsTGF5ZXJfWW9yaWdpbikgPCB3ZWxsbWluV2lkdGgpIChEaWZmX3dlbGxfd2lkdGggPSAod2VsbG1pbldpZHRoIC0gKHdlbGxMYXllcl9ZZW5kIC0gd2VsbExheWVyX1lvcmlnaW4pKSkgKHdlbGxMYXllcl9ZZW5kID0gKHdlbGxMYXllcl9ZZW5kICsgKERpZmZfd2VsbF93aWR0aCAvIDIpKSkgKHdlbGxMYXllcl9Zb3JpZ2luID0gKHdlbGxMYXllcl9Zb3JpZ2luIC0gKERpZmZfd2VsbF93aWR0aCAvIDIpKSkpICh3ZWxsTGF5ZXJfYkJveCA9IGxpc3QoKHdlbGxMYXllcl9Yb3JpZ2luOndlbGxMYXllcl9Zb3JpZ2luKSAod2VsbExheWVyX1hlbmQ6d2VsbExheWVyX1llbmQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHdlbGxMYXllciB3ZWxsTGF5ZXJfYkJveCkpKSAoeDFDb29yZCA9IGRpZmZMRW5jKSAoeDJDb29yZCA9IChkaWZmTEVuYyArIHZpYVdpZHRoKSkgKHZpYVBpdGNoID0gKHZpYVdpZHRoICsgdmlhU3BhY2UpKSBpZihjZW50ZXJWaWExIHRoZW4gKHZpYURyYXdTcGFjZVkgPSAodyAtIChkaWZmWUVuYyAqIDIpKSkgKHZpYVJvdyA9IChmbG9vciAoKHZpYURyYXdTcGFjZVkgKyB2aWFTcGFjZSkgLyB2aWFQaXRjaCkpKSBpZigodmlhUm93ID09IDApICh2aWFSb3cgPSAxKSkgKHZpYVlvZmZzZXQgPSAoKHZpYURyYXdTcGFjZVkgLSAoKHZpYVJvdyAqIHZpYVBpdGNoKSAtIHZpYVNwYWNlKSkgLyAyKSkgKHkxQ29vcmQgPSAoZGlmZllFbmMgKyAoZml4KCgodmlhWW9mZnNldCAvIHNuYXBHcmlkKSArIDFlLTA2KSkgKiBzbmFwR3JpZCkpKSAodGhlWSA9IHkxQ29vcmQpIGZvcihyIDEgdmlhUm93IChkYklkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHZpYUxheWVyIGxpc3QoKHgxQ29vcmQ6dGhlWSkgKHgyQ29vcmQ6KHRoZVkgKyB2aWFXaWR0aCkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiSWQgbmV0SWQpICh0aGVZID0gKHRoZVkgKyB2aWFQaXRjaCkpKSAoeTJDb29yZCA9ICh0aGVZIC0gdmlhU3BhY2UpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hWaWExIiAibGlzdCIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDp5MkNvb3JkKSkpIGVsc2UgKHkxQ29vcmQgPSBkaWZmWUVuYykgKHlOb3RDb3ZlcmVkID0gKHcgLSAoMi4wICogZGlmZllFbmMpKSkgd2hpbGUoKCh5Tm90Q292ZXJlZCAtIHZpYVdpZHRoKSA+IC0xZS0wNikgKHkyQ29vcmQgPSAoeTFDb29yZCArIHZpYVdpZHRoKSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgdmlhTGF5ZXIgbGlzdCgoeDFDb29yZDp5MUNvb3JkKSAoeDJDb29yZDp5MkNvb3JkKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIG5ldElkKSAoeTFDb29yZCA9ICh5MUNvb3JkICsgdmlhUGl0Y2gpKSAoeU5vdENvdmVyZWQgPSAoeU5vdENvdmVyZWQgLSB2aWFQaXRjaCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hWaWExIiAibGlzdCIgbGlzdCgoeDFDb29yZDpkaWZmWUVuYykgKHgyQ29vcmQ6eTJDb29yZCkpKSkgKGxheWVyMkxlbiA9IG1heChsYXllcjJXaWR0aCAodmlhV2lkdGggKyBsYXllcjJSRW5jICsgbGF5ZXIyTEVuYykpKSBpZihjZW50ZXJMYXllcjIgdGhlbiAobGF5ZXIybG93ZXJZID0gKHkxQ29vcmQgLSBsYXllcjJZRW5jKSkgZWxzZSAobGF5ZXIybG93ZXJZID0gKGRpZmZZRW5jIC0gbGF5ZXIyWUVuYykpKSAobGF5ZXIyV2lkID0gbWF4KGxheWVyMldpZHRoICgoeTJDb29yZCArIGxheWVyMllFbmMpIC0gbGF5ZXIybG93ZXJZKSkpICh4MUNvb3JkID0gKHgxQ29vcmQgLSBsYXllcjJMRW5jKSkgKHgyQ29vcmQgPSAoeDFDb29yZCArIGxheWVyMkxlbikpIGlmKGVtdWxhdGVTbG90VmlhIHRoZW4gKHkxQ29vcmQgPSAoZGlmZllFbmMgLSBsYXllcjJZRW5jKSkgKHkyQ29vcmQgPSAoKHcgLSBkaWZmWUVuYykgKyBsYXllcjJZRW5jKSkgZWxzZSBpZihjZW50ZXJWaWExIHRoZW4gKHkxQ29vcmQgPSAoeTFDb29yZCAtIGxheWVyMllFbmMpKSBlbHNlICh5MUNvb3JkID0gKGRpZmZZRW5jIC0gbGF5ZXIyWUVuYykpKSAoeTJDb29yZCA9ICh5MUNvb3JkICsgbGF5ZXIyV2lkKSkpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KCh4MUNvb3JkOnkxQ29vcmQpICh4MkNvb3JkOnkyQ29vcmQpKSkpIChkYkNyZWF0ZVBpbiBuZXRJZCBkYmlkKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgInRvcExheWVyIiAiSUxMaXN0IiBsYXllcjIpIChkYkNyZWF0ZVByb3AgdGNDZWxsVmlldyAidG9wTGF5ZXJQaW5CYm94IiAiSUxMaXN0IiBsaXN0KGxpc3QoeDFDb29yZCB5MUNvb3JkKSBsaXN0KHgyQ29vcmQgeTJDb29yZCkpKSAoZGJDcmVhdGVQcm9wIHRjQ2VsbFZpZXcgImJCb3hMYXllcjIiICJJTExpc3QiIGxpc3QobGlzdCh4MUNvb3JkIHkxQ29vcmQpIGxpc3QoeDJDb29yZCB5MkNvb3JkKSkpKQAoZGlmZkxheWVyIGxheWVyMiBtYXh2TGF5ZXIgdmlhTGF5ZXIgdmlhV2lkdGggdmlhU3BhY2UgZGlmZlJFbmMgZGlmZkxFbmMgZGlmZllFbmMgbGF5ZXIyUkVuYyBsYXllcjJMRW5jIGxheWVyMllFbmMgbGF5ZXIyV2lkdGggZGlmZkltcGxhbnQgZGlmZkltcFhMRW5jIGRpZmZJbXBYUkVuYyBkaWZmSW1wWUVuYyBkaWZmQ29yZUltcGxhbnQgZGlmZkNvcmVJbXBYTEVuYyBkaWZmQ29yZUltcFhSRW5jIGRpZmZDb3JlSW1wWUVuYyBkaWZmSW1wRW5jTGlzdCB3ZWxsTGF5ZXIgd2VsbG1pbldpZHRoIHdlbGxMYXllckVuYyBlbXVsYXRlU2xvdFZpYSBjZW50ZXJWaWExIGNlbnRlckxheWVyMiBzbmFwR3JpZCB3IGluV2VsbCBpbXBsYW50IGRpZmZJbXBDaG9pY2UgZW5jTGlzdCBuZXRJZCBkaWZmTGVuIGRiaWQgd2VsbExheWVyX1hvcmlnaW4gd2VsbExheWVyX1lvcmlnaW4gd2VsbExheWVyX1hlbmQgd2VsbExheWVyX1llbmQgRGlmZl93ZWxsX3dpZHRoIHdlbGxMYXllcl9iQm94IHgxQ29vcmQgeDJDb29yZCB2aWFQaXRjaCB2aWFEcmF3U3BhY2VZIHZpYVJvdyB2aWFZb2Zmc2V0IHkxQ29vcmQgdGhlWSByIGRiSWQgeTJDb29yZCB5Tm90Q292ZXJlZCBsYXllcjJMZW4gbGF5ZXIybG93ZXJZIGxheWVyMldpZCkAKCh3IDAuMCkgKGluV2VsbCAiRkFMU0UiKSAoaW1wbGFudCAiRkFMU0UiKSAoZGlmZkltcENob2ljZSAwKSkAKChkaWZmTGF5ZXIgImhpbGl0ZSIpIChsYXllcjIgInByQm91bmRhcnkiKSAobWF4dkxheWVyIG5pbCkgKHZpYUxheWVyIG5pbCkgKHZpYVdpZHRoIDAuMCkgKHZpYVNwYWNlIDAuMCkgKGRpZmZSRW5jIDAuMCkgKGRpZmZMRW5jIDAuMCkgKGRpZmZZRW5jIDAuMCkgKGxheWVyMlJFbmMgMC4wKSAobGF5ZXIyTEVuYyAwLjApIChsYXllcjJZRW5jIDAuMCkgKGxheWVyMldpZHRoIDAuMCkgKGRpZmZJbXBsYW50IG5pbCkgKGRpZmZJbXBYTEVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkltcFhSRW5jIGxpc3QoMC4wIDAuMCkpIChkaWZmSW1wWUVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkNvcmVJbXBsYW50IG5pbCkgKGRpZmZDb3JlSW1wWExFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZDb3JlSW1wWFJFbmMgbGlzdCgwLjAgMC4wKSkgKGRpZmZDb3JlSW1wWUVuYyBsaXN0KDAuMCAwLjApKSAoZGlmZkltcEVuY0xpc3QgbmlsKSAod2VsbExheWVyIG5pbCkgKHdlbGxtaW5XaWR0aCAwLjApICh3ZWxsTGF5ZXJFbmMgMC4wKSAoZW11bGF0ZVNsb3RWaWEgbmlsKSAoY2VudGVyVmlhMSBuaWwpIChjZW50ZXJMYXllcjIgbmlsKSAoc25hcEdyaWQgKFRFQ0hnZXRQcm9wIHNuYXBHcmlkKSkpACgoZXh0cmFMTGN1dF9vcmlnID0gZXh0cmFMTGN1dCkgKGV4dHJhVUxjdXRfb3JpZyA9IGV4dHJhVUxjdXQpIChleHRyYUxSY3V0X29yaWcgPSBleHRyYUxSY3V0KSAoZXh0cmFVUmN1dF9vcmlnID0gZXh0cmFVUmN1dCkgKGRidXBlcnV1ID0gKHRjQ2VsbFZpZXd+PkRCVVBlclVVKSkgKGdyaWQgPSBmaXgoKGRidXBlcnV1ICogc2VhbHJpbmdHcmlkKSkpIChzMiA9IHNxcnQoMi4wKSkgZm9yZWFjaChwYXJhbSAnKHNlYWxyaW5nSWRXaWR0aCBwYWRFbmNOaWtvbiBwYWRFbmNOaWtvbkluc2lkZSB3IGwgZXh0cmFMTGN1dCBleHRyYVVMY3V0IGV4dHJhTFJjdXQgZXh0cmFVUmN1dCBwYWRHcmlkKSBzZXQocGFyYW0gZml4KChkYnVwZXJ1dSAqIGV2YWwocGFyYW0pKSkpIHVubGVzcyh6ZXJvcChtb2QoZXZhbChwYXJhbSkgZ3JpZCkpIHNldChwYXJhbSAoKChldmFsKHBhcmFtKSArIGdyaWQpIC8gZ3JpZCkgKiBncmlkKSkpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJwcGQiKSkgKG1pblNlYWxSaW5nSWRXaWR0aCA9IDApIChyaW5nSWQgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgZ2VuZXJpY1JpbmdOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3MocmluZ0lkIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBnZW5lcmljIHJpbmcgJXNcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgdW5sZXNzKChyaW5nSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzczogIFJpbmcgJXMgaXMgbm90IGEgcGNlbGxcbiIgZ2VuZXJpY1JpbmdOYW1lKSkgd2hlbigoZ2VuZXJpY1JpdmV0UmluZ05hbWUgIT0gIiIpIChyaXZldFJpbmdJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBnZW5lcmljUml2ZXRSaW5nTmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKHJpdmV0UmluZ0lkIGVycm9yKCJkaWVTZWFsUmluZ0NsYXNzOiAgQ2Fubm90IGZpbmQvb3BlbiBnZW5lcmljIHJpdmV0IHJpbmcgJXNcbiIgZ2VuZXJpY1JpdmV0UmluZ05hbWUpKSB1bmxlc3MoKHJpdmV0UmluZ0lkfj5pc1BhcmFtQ2VsbCkgZXJyb3IoImRpZVNlYWxSaW5nQ2xhc3M6ICBSaXZldCByaW5nICVzIGlzIG5vdCBhIHBjZWxsXG4iIGdlbmVyaWNSaXZldFJpbmdOYW1lKSkpIChuaWtvbklkID0gKGRiT3BlbkNlbGxWaWV3ICh0Y0NlbGxWaWV3fj5saWIpIG5pa29uQ3Jvc3NOYW1lICJzeW1ib2xpYyIgbmlsICJybiIpKSB1bmxlc3Mobmlrb25JZCBlcnJvcigiZGllU2VhbFJpbmdDbGFzczogIENhbm5vdCBmaW5kL29wZW4gbmlrb24gY3Jvc3MgJXNcbiIgbmlrb25Dcm9zc05hbWUpKSB1bmxlc3MoKG5pa29uSWR+PmlzUGFyYW1DZWxsKSBlcnJvcigiZGllU2VhbFJpbmdDbGFzczogIE5pa29uIGNyb3NzICVzIGlzIG5vdCBhIHBjZWxsXG4iIG5pa29uQ3Jvc3NOYW1lKSkgZm9yZWFjaChsYXllciByaW5nTGF5ZXJzICh0aGlzTHBwID0gY2FyKGxheWVyKSkgKHNwYWNpbmcgPSBmaXgoKGRidXBlcnV1ICogY2FkcihsYXllcikpKSkgKHJpbmdXaWR0aCA9IGZpeCgoZGJ1cGVydXUgKiBjYWRkcihsYXllcikpKSkgKG1ha2VQaW4gPSBudGgoMyBsYXllcikpIChsYXlHcmlkID0gZml4KChkYnVwZXJ1dSAqIG50aCg0IGxheWVyKSkpKSAoaW50UmluZ0xheWVycyA9IGNvbnMobGlzdCh0aGlzTHBwIHNwYWNpbmcgcmluZ1dpZHRoIG1ha2VQaW4gbGF5R3JpZCkgaW50UmluZ0xheWVycykpIHdoZW4oKG1pblNlYWxSaW5nSWRXaWR0aCA8IChzcGFjaW5nICsgcmluZ1dpZHRoKSkgKG1pblNlYWxSaW5nSWRXaWR0aCA9IChzcGFjaW5nICsgcmluZ1dpZHRoKSkpKSAoc2VhbHJpbmdJZFdpZHRoID0gbWF4KHNlYWxyaW5nSWRXaWR0aCBtaW5TZWFsUmluZ0lkV2lkdGgpKSAodyA9ICh3ICsgKDIgKiBzZWFscmluZ0lkV2lkdGgpKSkgKGwgPSAobCArICgyICogc2VhbHJpbmdJZFdpZHRoKSkpIChsZW4gPSAobCAvIGRidXBlcnV1KSkgKHdpZCA9ICh3IC8gZGJ1cGVydXUpKSAoc21hbGxkaWUgPSBuaWwpIGlmKChsID4gdykgdGhlbiAoYXIgPSAobGVuIC8gd2lkKSkgaWYoKGxlbiA8IChjcml0aWNhbEwgLyBzY2FsZUYpKSB0aGVuIChzbWFsbGRpZSA9IHQpKSBlbHNlIChhciA9ICh3aWQgLyBsZW4pKSBpZigod2lkIDwgKGNyaXRpY2FsTCAvIHNjYWxlRikpIHRoZW4gKHNtYWxsZGllID0gdCkpKSBpZihzbWFsbGRpZSB0aGVuIChyZCA9IChkZWZSZCAvIHNjYWxlRikpIChyYyA9IChkZWZSYyAvIHNjYWxlRikpIChkID0gKGRlZkQgLyBzY2FsZUYpKSBlbHNlIChyZCA9ICgoKCg2LjQzIC0gKDEuMjggKiBhcikpICsgKDAuNjkgKiBhciAqIGFyKSkgKiAyNS40KSAvIHNjYWxlRikpIChyYyA9ICgoKDExLjI1ICsgKDMuNDcgKiBhcikpICogMjUuNCkgLyBzY2FsZUYpKSAoZCA9ICgoKC0xLjMxICsgKDMuODcgKiBhcikpICogMjUuNCkgLyBzY2FsZUYpKSkgaWYoKHJkTGF5ZXIgJiYgKHJkID4gMCkpIHRoZW4gKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJkTGF5ZXIgbGlzdCgoKC0gcmQpOigtIHJkKSkgKHJkOnJkKSkpIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByZExheWVyIGxpc3QoKCgtIHJkKTood2lkIC0gcmQpKSAocmQ6KHdpZCArIHJkKSkpKSAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmRMYXllciBsaXN0KCgobGVuIC0gcmQpOigtIHJkKSkgKChsZW4gKyByZCk6cmQpKSkgKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJkTGF5ZXIgbGlzdCgoKGxlbiAtIHJkKTood2lkIC0gcmQpKSAoKGxlbiArIHJkKTood2lkICsgcmQpKSkpKSBpZihyY0xheWVyIHRoZW4gKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJjTGF5ZXIgbGlzdCgoKC0gcmMpOigtIHJjKSkgKHJjOnJjKSkpIChkYkNyZWF0ZUVsbGlwc2UgdGNDZWxsVmlldyByY0xheWVyIGxpc3QoKCgtIHJjKTood2lkIC0gcmMpKSAocmM6KHdpZCArIHJjKSkpKSAoZGJDcmVhdGVFbGxpcHNlIHRjQ2VsbFZpZXcgcmNMYXllciBsaXN0KCgobGVuIC0gcmMpOigtIHJjKSkgKChsZW4gKyByYyk6cmMpKSkgKGRiQ3JlYXRlRWxsaXBzZSB0Y0NlbGxWaWV3IHJjTGF5ZXIgbGlzdCgoKGxlbiAtIHJjKTood2lkIC0gcmMpKSAoKGxlbiArIHJjKTood2lkICsgcmMpKSkpKSBpZihkTGF5ZXIgdGhlbiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgZExheWVyIGxpc3QoKDA6MCkgKGQ6d2lkKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBkTGF5ZXIgbGlzdCgoMDowKSAobGVuOmQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRMYXllciBsaXN0KCgwOih3aWQgLSBkKSkgKGxlbjp3aWQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGRMYXllciBsaXN0KCgobGVuIC0gZCk6MCkgKGxlbjp3aWQpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbmlrb25JZCAibGxOaWtvbiIgKChwYWRFbmNOaWtvbiAvIGRidXBlcnV1KToocGFkRW5jTmlrb24gLyBkYnVwZXJ1dSkpICJSMCIgMSBuaWwpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChjdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykgKGN1dFBvaW50cyA9IGNvbnMoKChwYWRFbmNOaWtvbiArIGZpeCgoZGJ1cGVydXUgKiBjYXIocG9pbnQpKSkpOihwYWRFbmNOaWtvbiArIGZpeCgoZGJ1cGVydXUgKiBjYWRyKHBvaW50KSkpKSkgY3V0UG9pbnRzKSkpIHdoZW4oemVyb3AocGFkRW5jTmlrb25JbnNpZGUpIChwYWRFbmNOaWtvbkluc2lkZSA9IHBhZEVuY05pa29uKSkgKGNvcm5lckN1dCA9IGZpeCgoKDIuMCAqIHBhZEVuY05pa29uKSArIChzMiAqIHBhZEVuY05pa29uSW5zaWRlKSArIChkYnVwZXJ1dSAqIGNhcihudGgoMyAodGhlTWFzdGVyfj5vdXRsaW5lUG9pbnRzKSkpKSArIChkYnVwZXJ1dSAqIGNhcihudGgoMiAodGhlTWFzdGVyfj5vdXRsaW5lUG9pbnRzKSkpKSkpKSB1bmxlc3MoemVyb3AobW9kKGNvcm5lckN1dCBwYWRHcmlkKSkgKGNvcm5lckN1dCA9ICgoKGNvcm5lckN1dCArIHBhZEdyaWQpIC8gcGFkR3JpZCkgKiBwYWRHcmlkKSkpIChiZXZlbEFkZCA9IDApIGZvcmVhY2gobGF5ZXIgaW50UmluZ0xheWVycyAoc3BhY2luZyA9IGNhZHIobGF5ZXIpKSAoYmV2ZWxMZW5ndGggPSAoY29ybmVyQ3V0ICsgKC0gc3BhY2luZykgKyBmaXgoKHNwYWNpbmcgKiAoczIgLSAxLjApKSkpKSAobWluQmV2ZWxSZXF1aXJlZCA9IChjZWlsaW5nIChjYWRkcihsYXllcikgKiAxLjApKSkgKGJldmVsQWpkdXN0ID0gKG1pbkJldmVsUmVxdWlyZWQgLSBiZXZlbExlbmd0aCkpIGlmKCgoYmV2ZWxBamR1c3QgPiAwKSAmJiAoYmV2ZWxBZGQgPD0gYmV2ZWxBamR1c3QpKSB0aGVuIChiZXZlbEFkZCA9IGJldmVsQWpkdXN0KSkpIChwYWRHcmlkRmxvYXQgPSAocGFkR3JpZCAqIDEuMCkpIChiZXZlbEFkZCA9ICgoY2VpbGluZyAoYmV2ZWxBZGQgLyBwYWRHcmlkRmxvYXQpKSAqIHBhZEdyaWQpKSAoZXh0cmFMTGN1dCA9IChleHRyYUxMY3V0ICsgYmV2ZWxBZGQpKSAoZXh0cmFVTGN1dCA9IChleHRyYVVMY3V0ICsgYmV2ZWxBZGQpKSAoZXh0cmFMUmN1dCA9IChleHRyYUxSY3V0ICsgYmV2ZWxBZGQpKSAoZXh0cmFVUmN1dCA9IChleHRyYVVSY3V0ICsgYmV2ZWxBZGQpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF8xID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKDAuMDowLjApIGFwcGVuZChyZWFsQ3V0UG9pbnRzIGxpc3QoY2FyKHJlYWxDdXRQb2ludHMpICgwLjA6MC4wKSAoKChjb3JuZXJDdXQgKyBleHRyYUxMY3V0KSAvIGRidXBlcnV1KTowLjApICgwLjA6KChjb3JuZXJDdXQgKyBleHRyYUxMY3V0KSAvIGRidXBlcnV1KSkpKSkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IG5pa29uSWQgImxyTmlrb24iICgoKGwgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSk6KHBhZEVuY05pa29uIC8gZGJ1cGVydXUpKSAiTVkiIDEgbmlsKSkgKHRoZU1hc3RlciA9IChkYmlkfj5tYXN0ZXIpKSAoY3V0UG9pbnRzID0gbmlsKSBmb3JlYWNoKHBvaW50ICh0aGVNYXN0ZXJ+Pm91dGxpbmVQb2ludHMpIChjdXRQb2ludHMgPSBjb25zKCgobCAtIHBhZEVuY05pa29uIC0gZml4KChkYnVwZXJ1dSAqIGNhcihwb2ludCkpKSk6KHBhZEVuY05pa29uICsgZml4KChkYnVwZXJ1dSAqIGNhZHIocG9pbnQpKSkpKSBjdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgY3V0UG9pbnRzIChyZWFsQ3V0UG9pbnRzID0gY29ucygoKGNhcihwb2ludCkgLyBkYnVwZXJ1dSk6KGNhZHIocG9pbnQpIC8gZGJ1cGVydXUpKSByZWFsQ3V0UG9pbnRzKSkpIChyZWFsQ3V0UG9pbnRzID0gcmV2ZXJzZShyZWFsQ3V0UG9pbnRzKSkgKHBhZExheWVySWRfMiA9IChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBwYWRMYXllciBjb25zKCgobCAvIGRidXBlcnV1KTowLjApIGFwcGVuZChyZWFsQ3V0UG9pbnRzIGxpc3QoY2FyKHJlYWxDdXRQb2ludHMpICgobCAvIGRidXBlcnV1KTowLjApICgoKGwgLSBjb3JuZXJDdXQgLSBleHRyYUxSY3V0KSAvIGRidXBlcnV1KTowLjApICgobCAvIGRidXBlcnV1KTooKGNvcm5lckN1dCArIGV4dHJhTFJjdXQpIC8gZGJ1cGVydXUpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbmlrb25JZCAidXJOaWtvbiIgKCgobCAtIHBhZEVuY05pa29uKSAvIGRidXBlcnV1KTooKHcgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSkpICJSMTgwIiAxIG5pbCkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCAodGhlTWFzdGVyfj5vdXRsaW5lUG9pbnRzKSAoY3V0UG9pbnRzID0gY29ucygoKGwgLSBwYWRFbmNOaWtvbiAtIGZpeCgoZGJ1cGVydXUgKiBjYXIocG9pbnQpKSkpOih3IC0gcGFkRW5jTmlrb24gLSBmaXgoKGRidXBlcnV1ICogY2Fkcihwb2ludCkpKSkpIGN1dFBvaW50cykpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF8zID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKChsIC8gZGJ1cGVydXUpOih3IC8gZGJ1cGVydXUpKSBhcHBlbmQocmVhbEN1dFBvaW50cyBsaXN0KGNhcihyZWFsQ3V0UG9pbnRzKSAoKGwgLyBkYnVwZXJ1dSk6KHcgLyBkYnVwZXJ1dSkpICgoKGwgLSBjb3JuZXJDdXQgLSBleHRyYVVSY3V0KSAvIGRidXBlcnV1KToodyAvIGRidXBlcnV1KSkgKChsIC8gZGJ1cGVydXUpOigodyAtIGNvcm5lckN1dCAtIGV4dHJhVVJjdXQpIC8gZGJ1cGVydXUpKSkpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgbmlrb25JZCAidWxOaWtvbiIgKChwYWRFbmNOaWtvbiAvIGRidXBlcnV1KTooKHcgLSBwYWRFbmNOaWtvbikgLyBkYnVwZXJ1dSkpICJNWCIgMSBuaWwpKSAodGhlTWFzdGVyID0gKGRiaWR+Pm1hc3RlcikpIChjdXRQb2ludHMgPSBuaWwpIGZvcmVhY2gocG9pbnQgKHRoZU1hc3Rlcn4+b3V0bGluZVBvaW50cykgKGN1dFBvaW50cyA9IGNvbnMoKChwYWRFbmNOaWtvbiArIGZpeCgoY2FyKHBvaW50KSAqIGRidXBlcnV1KSkpOih3IC0gcGFkRW5jTmlrb24gLSBmaXgoKGRidXBlcnV1ICogY2Fkcihwb2ludCkpKSkpIGN1dFBvaW50cykpKSAocmVhbEN1dFBvaW50cyA9IG5pbCkgZm9yZWFjaChwb2ludCBjdXRQb2ludHMgKHJlYWxDdXRQb2ludHMgPSBjb25zKCgoY2FyKHBvaW50KSAvIGRidXBlcnV1KTooY2Fkcihwb2ludCkgLyBkYnVwZXJ1dSkpIHJlYWxDdXRQb2ludHMpKSkgKHJlYWxDdXRQb2ludHMgPSByZXZlcnNlKHJlYWxDdXRQb2ludHMpKSAocGFkTGF5ZXJJZF80ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHBhZExheWVyIGNvbnMoKDAuMDoodyAvIGRidXBlcnV1KSkgYXBwZW5kKHJlYWxDdXRQb2ludHMgbGlzdChjYXIocmVhbEN1dFBvaW50cykgKDAuMDoodyAvIGRidXBlcnV1KSkgKCgoY29ybmVyQ3V0ICsgZXh0cmFVTGN1dCkgLyBkYnVwZXJ1dSk6KHcgLyBkYnVwZXJ1dSkpICgwLjA6KCh3IC0gY29ybmVyQ3V0IC0gZXh0cmFVTGN1dCkgLyBkYnVwZXJ1dSkpKSkpKSkgaWYocmVtRGVmYXVsdFBhZCB0aGVuIChkYkRlbGV0ZU9iamVjdCBwYWRMYXllcklkXzQpIChkYkRlbGV0ZU9iamVjdCBwYWRMYXllcklkXzMpIChkYkRlbGV0ZU9iamVjdCBwYWRMYXllcklkXzIpIChkYkRlbGV0ZU9iamVjdCBwYWRMYXllcklkXzEpKSAocmluZ0NvdW50ID0gMCkgZm9yZWFjaChsYXllciBpbnRSaW5nTGF5ZXJzIChzcGFjaW5nID0gY2FkcihsYXllcikpIChyaW5nV2lkdGggPSBjYWRkcihsYXllcikpIChncmlkID0gbnRoKDQgbGF5ZXIpKSAoZXh0cmFPZmZzZXQgPSBmaXgoKHNwYWNpbmcgKiAoczIgLSAxLjApKSkpIChiZXZlbExlbmd0aCA9IChjb3JuZXJDdXQgKyAoLSBzcGFjaW5nKSArIGV4dHJhT2Zmc2V0KSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgc3ByaW50ZihuaWwgInJpbmclZCIgcmluZ0NvdW50KSAoMC4wOjAuMCkgIlIwIiAxIGxpc3QobGlzdCgidyIgImludCIgZml4KCh3IC0gKDIgKiBzcGFjaW5nKSkpKSBsaXN0KCJsIiAiaW50IiBmaXgoKGwgLSAoMiAqIHNwYWNpbmcpKSkpIGxpc3QoInhPZmZzZXQiICJpbnQiIHNwYWNpbmcpIGxpc3QoInlPZmZzZXQiICJpbnQiIHNwYWNpbmcpIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiaW50IiByaW5nV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJpbnQiIDApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJpbnQiIChleHRyYUxMY3V0ICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJ1bEJldmVsTGVuZ3RoIiAiaW50IiAoZXh0cmFVTGN1dCArIGJldmVsTGVuZ3RoKSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImludCIgKGV4dHJhTFJjdXQgKyBiZXZlbExlbmd0aCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJpbnQiIChleHRyYVVSY3V0ICsgYmV2ZWxMZW5ndGgpKSBsaXN0KCJiZXZlbFRoZU91dHNpZGUiICJib29sZWFuIiB0KSBsaXN0KCJncmlkIiAiaW50IiBncmlkKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiaWQxID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czEpKSkgKGRiaWQyID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSkgKGRiaWQzID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czMpKSkgKGRiaWQ0ID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGNhcihsYXllcikgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czQpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZDEgbmV0KSAoZGJBZGRGaWdUb05ldCBkYmlkMiBuZXQpIChkYkFkZEZpZ1RvTmV0IGRiaWQzIG5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZDQgbmV0KSB3aGVuKG50aCgzIGxheWVyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQxKSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldCBkYmlkMikpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIChwaW5pZCA9IChkYkNyZWF0ZVBpbiBuZXQgZGJpZDMpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQ0KSkgc2V0U0dxKHBpbmlkIGxpc3QoInRvcCIgImJvdHRvbSIgImxlZnQiICJyaWdodCIpIGFjY2Vzc0RpcikpIChyaW5nQ291bnQgPSAocmluZ0NvdW50ICsgMSkpKSB3aGVuKGxpc3RwKGRpc2NyZXRlVmlhTGF5ZXJzKSB3aGVuKHJpdmV0UmluZ0lkICh2aWFDb3VudCA9IDApIGZvcmVhY2gobGF5ZXIgZGlzY3JldGVWaWFMYXllcnMgKHRoaXNMcHAgPSBjYXIobGF5ZXIpKSAoc3BhY2luZyA9IGNhZHIobGF5ZXIpKSAodmlhV2lkdGggPSBjYWRkcihsYXllcikpICh2aWFTcGFjZVkgPSBudGgoMyBsYXllcikpICh2aWFTcGFjZVggPSBudGgoNCBsYXllcikpIChncmlkX29yaWcgPSBudGgoNSBsYXllcikpIChiZXZlbF9vZmZzZXQgPSBudGgoNiBsYXllcikpIChyaW5nV2lkdGggPSBudGgoNyBsYXllcikpIChsZXNzUml2ZXROZWFyQmV2ZWwgPSBudGgoOCBsYXllcikpIChudW1Db2xzTGVzcyA9IG50aCg5IGxheWVyKSkgKHVwZGF0ZWRDbGFzcyA9IG50aCgxMCBsYXllcikpIChhbHRDb3JDb24gPSBudGgoMTEgbGF5ZXIpKSAocml2ZXRMYXllcjIgPSBudGgoMTIgbGF5ZXIpKSAoZXh0cmFPZmZzZXQgPSBmaXgoKHNwYWNpbmcgKiAoczIgLSAxLjApKSkpIChiZXZlbExlbmd0aCA9ICgoY29ybmVyQ3V0IC8gZGJ1cGVydXUpICsgKC0gc3BhY2luZykgKyBleHRyYU9mZnNldCkpIChwYXJhbUxpc3QgPSBsaXN0KGxpc3QoInciICJmbG9hdCIgKHdpZCAtICgyICogc3BhY2luZykpKSBsaXN0KCJsIiAiZmxvYXQiIChsZW4gLSAoMiAqIHNwYWNpbmcpKSkgbGlzdCgieE9mZnNldCIgImZsb2F0IiBzcGFjaW5nKSBsaXN0KCJ5T2Zmc2V0IiAiZmxvYXQiIHNwYWNpbmcpIGxpc3QoInJpdmV0TGF5ZXIiICJsaXN0IiBjYXIobGF5ZXIpKSBsaXN0KCJyaW5nV2lkdGgiICJmbG9hdCIgcmluZ1dpZHRoKSBsaXN0KCJyaXZldFdpZHRoIiAiZmxvYXQiIHZpYVdpZHRoKSBsaXN0KCJyaXZldFNwYWNlIiAiZmxvYXQiIHZpYVNwYWNlWSkgbGlzdCgicml2ZXRTcGFjZVgiICJmbG9hdCIgdmlhU3BhY2VYKSBsaXN0KCJsbEJldmVsTGVuZ3RoIiAiZmxvYXQiIChleHRyYUxMY3V0X29yaWcgKyBiZXZlbExlbmd0aCArIGJldmVsX29mZnNldCkpIGxpc3QoInVsQmV2ZWxMZW5ndGgiICJmbG9hdCIgKGV4dHJhVUxjdXRfb3JpZyArIGJldmVsTGVuZ3RoICsgYmV2ZWxfb2Zmc2V0KSkgbGlzdCgibHJCZXZlbExlbmd0aCIgImZsb2F0IiAoZXh0cmFMUmN1dF9vcmlnICsgYmV2ZWxMZW5ndGggKyBiZXZlbF9vZmZzZXQpKSBsaXN0KCJ1ckJldmVsTGVuZ3RoIiAiZmxvYXQiIChleHRyYVVSY3V0X29yaWcgKyBiZXZlbExlbmd0aCArIGJldmVsX29mZnNldCkpIGxpc3QoImF1dG9JbmNyZWFzZUJldmVsV2lkdGgiICJib29sZWFuIiAiRkFMU0UiKSBsaXN0KCJncmlkIiAiZmxvYXQiIGdyaWRfb3JpZykgbGlzdCgibGVzc0Nvbk5lYXJiZXZlbCIgImJvb2xlYW4iIGxlc3NSaXZldE5lYXJCZXZlbCkgbGlzdCgibnVtQ29sc0xlc3MiICJpbnQiIG51bUNvbHNMZXNzKSBsaXN0KCJ1cGRhdGVkQ2xhc3MiICJib29sZWFuIiB1cGRhdGVkQ2xhc3MpIGxpc3QoImFsdENvckNvbiIgImJvb2xlYW4iIGFsdENvckNvbikpKSB3aGVuKHJpdmV0TGF5ZXIyIChwYXJhbUxpc3QgPSBjb25zKGxpc3QoInJpdmV0TGF5ZXIyIiAibGlzdCIgcml2ZXRMYXllcjIpIHBhcmFtTGlzdCkpKSAoZGJpZCA9IChkYkNyZWF0ZVBhcmFtSW5zdCB0Y0NlbGxWaWV3IHJpdmV0UmluZ0lkIHNwcmludGYobmlsICIlcyVkIiBjYWFyKGxheWVyKSB2aWFDb3VudCkgKDAuMDowLjApICJSMCIgMSBwYXJhbUxpc3QpKSAodmlhQ291bnQgPSAodmlhQ291bnQgKyAxKSkpKSkgKGRiaWQgPSAoZGJDcmVhdGVQYXJhbUluc3QgdGNDZWxsVmlldyByaW5nSWQgInNlYWxpZCIgKDAuMDowLjApICJSMCIgMSBsaXN0KGxpc3QoInciICJpbnQiIHcpIGxpc3QoImwiICJpbnQiIGwpIGxpc3QoInhPZmZzZXQiICJpbnQiIDApIGxpc3QoInlPZmZzZXQiICJpbnQiIDApIGxpc3QoInJpbmdMYXllciIgImxpc3QiIG5pbCkgbGlzdCgicmluZ1dpZHRoIiAiaW50IiBzZWFscmluZ0lkV2lkdGgpIGxpc3QoImFkZGl0aW9uYWxXaWR0aEluQmV2ZWwiICJpbnQiIDApIGxpc3QoImxsQmV2ZWxMZW5ndGgiICJpbnQiIChjb3JuZXJDdXQgKyBleHRyYUxMY3V0KSkgbGlzdCgidWxCZXZlbExlbmd0aCIgImludCIgKGNvcm5lckN1dCArIGV4dHJhVUxjdXQpKSBsaXN0KCJsckJldmVsTGVuZ3RoIiAiaW50IiAoY29ybmVyQ3V0ICsgZXh0cmFMUmN1dCkpIGxpc3QoInVyQmV2ZWxMZW5ndGgiICJpbnQiIChjb3JuZXJDdXQgKyBleHRyYVVSY3V0KSkgbGlzdCgiYmV2ZWxUaGVPdXRzaWRlIiAiYm9vbGVhbiIgIkZBTFNFIikgbGlzdCgiZ3JpZCIgImludCIgZml4KChkYnVwZXJ1dSAqIHNlYWxyaW5nR3JpZCkpKSBsaXN0KCJicmVha3VwUG9seWdvbnMiICJib29sZWFuIiAiVFJVRSIpKSkpIHdoZW4oc2VhbHJpbmdJZExheWVyICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNlYWxyaW5nSWRMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzMSkpIChkYkNyZWF0ZVBvbHlnb24gdGNDZWxsVmlldyBzZWFscmluZ0lkTGF5ZXIgKHRoZU1hc3Rlcn4+cmluZ1BvaW50czIpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgc2VhbHJpbmdJZExheWVyICh0aGVNYXN0ZXJ+PnJpbmdQb2ludHMzKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IHNlYWxyaW5nSWRMYXllciAodGhlTWFzdGVyfj5yaW5nUG9pbnRzNCkpKSAoZGJDbG9zZSByaW5nSWQpIChkYkNsb3NlIG5pa29uSWQpKQAocmluZ0xheWVycyBkaXNjcmV0ZVZpYUxheWVycyBzZWFscmluZ0lkTGF5ZXIgc2VhbHJpbmdJZFdpZHRoIHNlYWxyaW5nR3JpZCBnZW5lcmljUmluZ05hbWUgbmlrb25Dcm9zc05hbWUgZ2VuZXJpY1JpdmV0UmluZ05hbWUgcGFkTGF5ZXIgcmVtRGVmYXVsdFBhZCBwYWRHcmlkIHBhZEVuY05pa29uIHBhZEVuY05pa29uSW5zaWRlIHJkTGF5ZXIgcmNMYXllciBkTGF5ZXIgc2NhbGVGIGNyaXRpY2FsTCBkZWZSZCBkZWZSYyBkZWZEIHcgbCBleHRyYUxMY3V0IGV4dHJhVUxjdXQgZXh0cmFMUmN1dCBleHRyYVVSY3V0IGV4dHJhTExjdXRfb3JpZyBleHRyYVVMY3V0X29yaWcgZXh0cmFMUmN1dF9vcmlnIGV4dHJhVVJjdXRfb3JpZyBkYnVwZXJ1dSBncmlkIHMyIHBhcmFtIG5ldCBtaW5TZWFsUmluZ0lkV2lkdGggcmluZ0lkIHJpdmV0UmluZ0lkIG5pa29uSWQgbGF5ZXIgdGhpc0xwcCBzcGFjaW5nIHJpbmdXaWR0aCBtYWtlUGluIGxheUdyaWQgaW50UmluZ0xheWVycyBsZW4gd2lkIHNtYWxsZGllIGFyIHJkIHJjIGQgZGJpZCB0aGVNYXN0ZXIgY3V0UG9pbnRzIHBvaW50IGNvcm5lckN1dCBiZXZlbEFkZCBiZXZlbExlbmd0aCBtaW5CZXZlbFJlcXVpcmVkIGJldmVsQWpkdXN0IHBhZEdyaWRGbG9hdCByZWFsQ3V0UG9pbnRzIHBhZExheWVySWRfMSBwYWRMYXllcklkXzIgcGFkTGF5ZXJJZF8zIHBhZExheWVySWRfNCByaW5nQ291bnQgZXh0cmFPZmZzZXQgZGJpZDEgZGJpZDIgZGJpZDMgZGJpZDQgcGluaWQgdmlhQ291bnQgdmlhV2lkdGggdmlhU3BhY2VZIHZpYVNwYWNlWCBncmlkX29yaWcgYmV2ZWxfb2Zmc2V0IGxlc3NSaXZldE5lYXJCZXZlbCBudW1Db2xzTGVzcyB1cGRhdGVkQ2xhc3MgYWx0Q29yQ29uIHJpdmV0TGF5ZXIyIHBhcmFtTGlzdCkAKCh3IDAuMCkgKGwgMC4wKSAoZXh0cmFMTGN1dCAwLjApIChleHRyYVVMY3V0IDAuMCkgKGV4dHJhTFJjdXQgMC4wKSAoZXh0cmFVUmN1dCAwLjApKQAoKHJpbmdMYXllcnMgJygnKCgidGFwIiAiZHJhd2luZyIpIDUuMCAzLjAgbmlsIDAuMDUpICcoKCJtZXQxIiAiZHJhd2luZyIpIDYuMCAyLjUgbmlsIDAuMDUpICcoKCJtZXQyIiAiZHJhd2luZyIpIDUuNSA0LjAgdCAwLjA1KSkpIChkaXNjcmV0ZVZpYUxheWVycyBuaWwpIChzZWFscmluZ0lkTGF5ZXIgbGlzdCgieTEiICJkcmF3aW5nIikpIChzZWFscmluZ0lkV2lkdGggMC4wKSAoc2VhbHJpbmdHcmlkIDAuMCkgKGdlbmVyaWNSaW5nTmFtZSAiIikgKG5pa29uQ3Jvc3NOYW1lICIiKSAoZ2VuZXJpY1JpdmV0UmluZ05hbWUgIiIpIChwYWRMYXllciBsaXN0KCJ5MCIgImRyYXdpbmciKSkgKHJlbURlZmF1bHRQYWQgbmlsKSAocGFkR3JpZCAwLjApIChwYWRFbmNOaWtvbiAwLjApIChwYWRFbmNOaWtvbkluc2lkZSAwLjApIChyZExheWVyIG5pbCkgKHJjTGF5ZXIgbmlsKSAoZExheWVyIG5pbCkgKHNjYWxlRiAxKSAoY3JpdGljYWxMIDUwODAuMCkgKGRlZlJkIDAuMCkgKGRlZlJjIDE1Mi40KSAoZGVmRCAxMDEuNikpAChpZigoKGltcGxhbnQgPT0gdCkgfHwgKGltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoaW1wbGFudCA9IHQpIGVsc2UgKGltcGxhbnQgPSBuaWwpKSBpZigoKHNlY29uZEltcGxhbnQgPT0gdCkgfHwgKHNlY29uZEltcGxhbnQgPT0gIlRSVUUiKSkgdGhlbiAoc2Vjb25kSW1wbGFudCA9IHQpIGVsc2UgKHNlY29uZEltcGxhbnQgPSBuaWwpKSAobmV0ID0gKGRiTWFrZU5ldCB0Y0NlbGxWaWV3ICJyMCIpKSAobmV0MiA9IChkYk1ha2VOZXQgdGNDZWxsVmlldyAicjEiKSkgKGltcE9mZnNldCA9IGltcFNwYWNlQ29udGFjdCkgd2hlbigobWluUmVzU3BhY2UgPiAoMWUtMDYgKyBzcGFjZUJldHdlZW5SdW5zKSkgZXJyb3IoImJlbnRSZXNJbXBDbGFzcyAgc3BhY2VCZXR3ZWVuUnVucyBtdXN0IGJlIGF0IGxlYXN0ICVmXG4iIG1pblJlc1NwYWNlKSkgd2hlbigoKHJ3ICsgc3BhY2VCZXR3ZWVuUnVucykgPiAoKG1heFJ1bkxlbmd0aCAvIDIuMCkgKyAxZS0wNikpIGVycm9yKCJiZW50UmVzSW1wQ2xhc3MgIG1heFJ1bkxlbmd0aCBtdXN0IGJlIGF0IGxlYXN0IDIgKiBydyArIHNwYWNlQmV0d2VlblJ1bnMgKCVmKVxuIiAoc3BhY2VCZXR3ZWVuUnVucyArICgyLjAgKiBydykpKSkgKGNvbnRhY3RJZCA9IChkYk9wZW5DZWxsVmlldyAodGNDZWxsVmlld34+bGliKSBjb250YWN0TmFtZSAic3ltYm9saWMiIG5pbCAicm4iKSkgdW5sZXNzKGNvbnRhY3RJZCBlcnJvcigiYmVudFJlc0ltcENsYXNzICBDYW5ub3QgZmluZC9vcGVuIGNvbnRhY3QgJXNcbiIgY29udGFjdE5hbWUpKSB1bmxlc3MoKGNvbnRhY3RJZH4+aXNQYXJhbUNlbGwpIGVycm9yKCJiZW50UmVzSW1wQ2xhc3MgIENvbnRhY3QgJXMgaXMgbm90IGEgcGNlbGxcbiIgY29udGFjdE5hbWUpKSBjb25kKCgocmVzaXN0b3JMYXllciA9PSAoY29udGFjdElkfj5ib3RMYXllcikpIChyZXNJbkNvbnRhY3RCYm94ID0gKGNvbnRhY3RJZH4+Ym90TGF5ZXJCYm94KSkgKGxheWVyMiA9IChjb250YWN0SWR+PnRvcExheWVyKSkpICgocmVzaXN0b3JMYXllciA9PSAoY29udGFjdElkfj50b3BMYXllcikpIChyZXNJbkNvbnRhY3RCYm94ID0gKGNvbnRhY3RJZH4+dG9wTGF5ZXJQaW5CYm94KSkgKGxheWVyMiA9IChjb250YWN0SWR+PmJvdExheWVyKSkpICh0IGVycm9yKCJiZW50UmVzSW1wQ2xhc3MgIENhbm5vdCBmaW5kIGxheWVyICVMIGluIGNvbnRhY3QgJXMgIChmb3VuZCAlTCBhbmQgJUwpXG4iIHJlc2lzdG9yTGF5ZXIgY29udGFjdE5hbWUgKGNvbnRhY3RJZH4+Ym90TGF5ZXIpIChjb250YWN0SWR+PnRvcExheWVyKSkpKSAodmlhQmJveCA9IChjb250YWN0SWR+PmNvbnRhY3RMYXllckJib3gpKSAocmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UgPSAoY2FhZHIodmlhQmJveCkgLSBjYWFyKHJlc0luQ29udGFjdEJib3gpKSkgKGRvZ2JvbmUgPSAoY2FkYWRyKHJlc0luQ29udGFjdEJib3gpID4gKHJ3ICsgMWUtMDYpKSkgKGNvbnRhY3RXaWR0aCA9IChjYWRhZHIodmlhQmJveCkgLSBjYWRhcih2aWFCYm94KSkpIChwYXJhbXMgPSAoY29udGFjdElkfj5wYXJhbWV0ZXJzKSkgaWYoKHBhcmFtc34+eVBpdGNoKSB0aGVuIChjb250YWN0UGl0Y2ggPSAocGFyYW1zfj55UGl0Y2gpKSBlbHNlIChjb250YWN0UGl0Y2ggPSAoKGNvbnRhY3RJZH4+Y29udGFjdFdpZHRoKSArIChjb250YWN0SWR+PmNvbnRhY3RTcGFjZSkpKSkgaWYoKHBhcmFtc34+bCkgdGhlbiAoY29udGFjdFNwYWNlID0gKGNvbnRhY3RQaXRjaCAtIChwYXJhbXN+PmwpKSkgZWxzZSAoY29udGFjdFNwYWNlID0gKGNvbnRhY3RJZH4+Y29udGFjdFNwYWNlKSkpIChlZmZlY3RpdmVSdyA9IChydyArICgtMi4wICogY2FkYXIodmlhQmJveCkpICsgY29udGFjdFNwYWNlKSkgKG51bVJvd3NDb250YWN0cyA9IG1heCgxIGZpeCgoMWUtMDYgKyAoZWZmZWN0aXZlUncgLyBjb250YWN0UGl0Y2gpKSkpKSAoaW5zdFBhcmFtcyA9IGxpc3QobGlzdCgicm93IiAiaW50ZWdlciIgbnVtUm93c0NvbnRhY3RzKSBsaXN0KCJjb2x1bW4iICJpbnRlZ2VyIiAxKSkpIHdoZW4oKHBhcmFtc34+aW1wbGFudCkgaWYoaW1wbGFudCB0aGVuIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgdCkpKSBlbHNlIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbXBsYW50IiAiYm9vbGVhbiIgIkZBTFNFIikpKSkpIHdoZW4oKHBhcmFtc34+aW5XZWxsKSBpZih3ZWxsTGF5ZXIgdGhlbiAoaW5zdFBhcmFtcyA9IHhjb25zKGluc3RQYXJhbXMgbGlzdCgiaW5XZWxsIiAiYm9vbGVhbiIgdCkpKSBlbHNlIChpbnN0UGFyYW1zID0geGNvbnMoaW5zdFBhcmFtcyBsaXN0KCJpbldlbGwiICJib29sZWFuIiAiRkFMU0UiKSkpKSkgKGFjdHVhbENvbnRhY3RXID0gKChjb250YWN0UGl0Y2ggKiBudW1Sb3dzQ29udGFjdHMpICsgKC0gY29udGFjdFNwYWNlKSArICgyLjAgKiBjYWRhcih2aWFCYm94KSkpKSAoY29udGFjdFlkZWx0YSA9ICgocncgLSBhY3R1YWxDb250YWN0VykgLyAyLjApKSAoY29udGFjdFlkZWx0YSA9IChyZXNpc3RvckxheWVyR3JpZCAqIGZpeCgoMC45OTkgKyAoY29udGFjdFlkZWx0YSAvIHJlc2lzdG9yTGF5ZXJHcmlkKSkpKSkgKGVmZmVjdGl2ZVJsID0gKHJsICsgKC0gcncpICsgKDIuMCAqIHJlc0NvbnRhY3RFZGdlVG9FbmRPZlZpYVNwYWNlKSkpIHdoZW4oZG9nYm9uZSAoZWZmZWN0aXZlUmwgPSAoZWZmZWN0aXZlUmwgKyAoMi4wICogY2Fhcih2aWFCYm94KSkpKSkgKGVmZmVjdGl2ZVJsID0gKGVmZmVjdGl2ZVJsICsgKDIuMCAqIGltcE9mZnNldCkgKyAoMi4wICogaW1wRW5jKSkpIGNvbmQoKChlZmZlY3RpdmVSbCA8IG1heFJ1bkxlbmd0aCkgKG51bUJlbmRzID0gMSkgKHRoZVJ1bkxlbmd0aCA9IGVmZmVjdGl2ZVJsKSkgKHQgKGVmZmVjdGl2ZVJsID0gKGVmZmVjdGl2ZVJsICsgc3BhY2VCZXR3ZWVuUnVucykpIChudW1CZW5kcyA9IGZpeCgoMC45OTkgKyAoZWZmZWN0aXZlUmwgLyAobWF4UnVuTGVuZ3RoICsgc3BhY2VCZXR3ZWVuUnVucykpKSkpIGNvbmQoKCh2YXJpYWJpbGl0eSAmJiAodmFyaWFiaWxpdHkgIT0gIkZBTFNFIikpICh0aGVSdW5MZW5ndGggPSBtYXhSdW5MZW5ndGgpKSAodCAocnVuRGVsdGEgPSAoKChudW1CZW5kcyAqIChzcGFjZUJldHdlZW5SdW5zICsgbWF4UnVuTGVuZ3RoKSkgLSBlZmZlY3RpdmVSbCkgLyBudW1CZW5kcykpIChydW5EZWx0YSA9IChmaXgoKDFlLTA2ICsgKHJ1bkRlbHRhIC8gcmVzaXN0b3JMYXllckdyaWQpKSkgKiByZXNpc3RvckxheWVyR3JpZCkpICh0aGVSdW5MZW5ndGggPSAobWF4UnVuTGVuZ3RoIC0gcnVuRGVsdGEpKSkpKSkgd2hlbigoZG9nYm9uZSAmJiAobnVtQmVuZHMgPiAyKSAmJiAoKHNwYWNlQmV0d2VlblJ1bnMgKyBjb250YWN0WWRlbHRhICsgMWUtMDYpIDwgbWluUmVzU3BhY2UpKSBlcnJvcigiYmVudFJlc0ltcENsYXNzICBkb2dib25lJ2QgY29udGFjdHMgcmVxdWlyZSBhIGxhcmdlciBzcGFjZUJldHdlZW5SdW5zXG4iKSkgd2hlbigoZG9nYm9uZSAmJiAobnVtQmVuZHMgPT0gMikgJiYgKChzcGFjZUJldHdlZW5SdW5zICsgKGNvbnRhY3RZZGVsdGEgKiAyKSArIDFlLTA2KSA8IG1pblJlc1NwYWNlKSkgZXJyb3IoImJlbnRSZXNJbXBDbGFzcyAgZG9nYm9uZSdkIGNvbnRhY3RzIHJlcXVpcmUgYSBsYXJnZXIgc3BhY2VCZXR3ZWVuUnVuc1xuIikpIChyZXNYb3JpZ2luID0gKC0gcmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UpKSAocmVzWGVuZCA9IChyZXNYb3JpZ2luICsgdGhlUnVuTGVuZ3RoICsgcncpKSAobGVmdEJlbmRYZW5kID0gKHJlc1hvcmlnaW4gKyBydykpIChyaWdodEJlbmRYb3JpZ2luID0gKHJlc1hlbmQgLSBydykpIChyZXNZb3JpZ2luID0gMC4wKSAocmVzWWRlbHRhID0gKHJ3ICsgc3BhY2VCZXR3ZWVuUnVucykpIGNvbmQoKChudW1CZW5kcyA+IDEpIChsYXN0Q29udGFjdFZhcmlhYmlsaXR5ID0gKChudW1CZW5kcyAqICh0aGVSdW5MZW5ndGggKyBzcGFjZUJldHdlZW5SdW5zKSkgKyAoLSBzcGFjZUJldHdlZW5SdW5zKSArIChydyAtICgyLjAgKiByZXNDb250YWN0RWRnZVRvRW5kT2ZWaWFTcGFjZSkpICsgKC0gcmwpKSkpICh0IChsYXN0Q29udGFjdFZhcmlhYmlsaXR5ID0gMC4wKSkpIChmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSA9IDAuMCkgd2hlbigobnVtQmVuZHMgPiAxKSB3aGVuKGRvZ2JvbmUgKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgPSAobGFzdENvbnRhY3RWYXJpYWJpbGl0eSAtICgyLjAgKiBjYWFyKHZpYUJib3gpKSkpKSAobWF4VmFyaWFiaWxpdHkgPSAodGhlUnVuTGVuZ3RoIC0gbWluUmVzU3BhY2UgLSBjYWFkcihyZXNJbkNvbnRhY3RCYm94KSkpIHdoZW4oKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgPiBtYXhWYXJpYWJpbGl0eSkgKGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5ID0gKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgLSBtYXhWYXJpYWJpbGl0eSkpIChsYXN0Q29udGFjdFZhcmlhYmlsaXR5ID0gKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgLSBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSkpKSkgKGhhbGZSdyA9IChmaXgoKDFlLTA2ICsgKHJ3IC8gKDIuMCAqIHJlc2lzdG9yTGF5ZXJHcmlkICogMi4wKSkpKSAqIHJlc2lzdG9yTGF5ZXJHcmlkKSkgKGN1dExlbmd0aCA9IChybCAvIDIuMCkpIGNvbmQoKGRvZ2JvbmUgKGN1dExlbmd0aCA9IChjdXRMZW5ndGggKyBjYWFkcihyZXNJbkNvbnRhY3RCYm94KSArICgtIGhhbGZSdykgKyBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSkpKSAodCAoY3V0TGVuZ3RoID0gKGN1dExlbmd0aCArIHJlc0NvbnRhY3RFZGdlVG9FbmRPZlZpYVNwYWNlICsgKC0gaGFsZlJ3KSArIGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5KSkpKSAodGhlTmV0ID0gbmV0KSBmb3Iocm93IDEgbnVtQmVuZHMgY29uZCgoKHRoZVJ1bkxlbmd0aCA8IChjdXRMZW5ndGggKyBoYWxmUncpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNpc3RvckxheWVyIGxpc3QoKHJlc1hvcmlnaW46cmVzWW9yaWdpbikgKHJlc1hlbmQ6KHJlc1lvcmlnaW4gKyBydykpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgdGhlTmV0KSkgKHQgY29uZCgoZXZlbnAocm93KSAoY3V0WG9yaWdpbiA9IChyZXNYZW5kIC0gY3V0TGVuZ3RoIC0gaGFsZlJ3KSkgd2hlbigoY3V0WG9yaWdpbiA+IChyZXNYZW5kIC0gcncgLSByZXNDdXRXaWR0aCkpIChjdXRYb3JpZ2luID0gKHJlc1hlbmQgLSBydyAtIHJlc0N1dFdpZHRoKSkpKSAodCAoY3V0WG9yaWdpbiA9IChyZXNYb3JpZ2luICsgY3V0TGVuZ3RoICsgaGFsZlJ3KSkgd2hlbigoY3V0WG9yaWdpbiA8IChyZXNYb3JpZ2luICsgcncpKSAoY3V0WG9yaWdpbiA9IChyZXNYb3JpZ2luICsgcncpKSkpKSAoZGJpZEwgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KChyZXNYb3JpZ2luOnJlc1lvcmlnaW4pIChjdXRYb3JpZ2luOihyZXNZb3JpZ2luICsgcncpKSkpKSAoZGJpZFIgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KChjdXRYb3JpZ2luOnJlc1lvcmlnaW4pIChyZXNYZW5kOihyZXNZb3JpZ2luICsgcncpKSkpKSB1bmxlc3MoKChyb3cgPT0gMSkgfHwgKHJvdyA9PSBudW1CZW5kcykpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNJZExheWVyIGxpc3QoKHJlc1hvcmlnaW46cmVzWW9yaWdpbikgKHJlc1hlbmQ6KHJlc1lvcmlnaW4gKyBydykpKSkgd2hlbigoaW1wbGFudExheWVyICYmIHNlY29uZEltcGxhbnQpIChpbXBYb3JpZ2luID0gKHJlc1hvcmlnaW4gLSBpbXBFbmMpKSAoaW1wWW9yaWdpbiA9IChyZXNZb3JpZ2luIC0gaW1wRW5jKSkgKGltcFhlbmQgPSBtYXgoKHJlc1hlbmQgKyBpbXBFbmMpIChpbXBYb3JpZ2luICsgaW1wV2lkdGgpKSkgKGltcFllbmQgPSBtYXgoKHJlc1lvcmlnaW4gKyBydyArIGltcEVuYykgKGltcFlvcmlnaW4gKyBpbXBXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKGltcFhvcmlnaW46aW1wWW9yaWdpbikgKGltcFhlbmQ6aW1wWWVuZCkpKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNDdXRMYXllciBsaXN0KChjdXRYb3JpZ2luOnJlc1lvcmlnaW4pICgoY3V0WG9yaWdpbiArIHJlc0N1dFdpZHRoKToocmVzWW9yaWdpbiArIHJ3KSkpKSBjb25kKChldmVucChyb3cpIChkYkFkZEZpZ1RvTmV0IGRiaWRMIG5ldCkgKGRiQWRkRmlnVG9OZXQgZGJpZFIgbmV0MikpICh0IChkYkFkZEZpZ1RvTmV0IGRiaWRMIG5ldDIpIChkYkFkZEZpZ1RvTmV0IGRiaWRSIG5ldCkpKSAodGhlTmV0ID0gbmV0MikgKGN1dExlbmd0aCA9IChjdXRMZW5ndGggKyB0aGVSdW5MZW5ndGgpKSkpIHdoZW4oKHRoZU5ldCA9PSBuZXQpIChjdXRMZW5ndGggPSAoY3V0TGVuZ3RoIC0gdGhlUnVuTGVuZ3RoKSkpIHdoZW4oKHJvdyAhPSBudW1CZW5kcykgdW5sZXNzKCgxID09IHJvdykgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0lkTGF5ZXIgKGRiaWR+PmJCb3gpKSB3aGVuKChpbXBsYW50TGF5ZXIgJiYgc2Vjb25kSW1wbGFudCkgKGltcFhvcmlnaW4gPSAoY2FhcigoZGJpZH4+YkJveCkpIC0gaW1wRW5jKSkgKGltcFlvcmlnaW4gPSAoY2FkYXIoKGRiaWR+PmJCb3gpKSAtIGltcEVuYykpIChpbXBYZW5kID0gbWF4KChjYWFkcigoZGJpZC0+YkJveCkpICsgaW1wRW5jKSAoaW1wWG9yaWdpbiArIGltcFdpZHRoKSkpIChpbXBZZW5kID0gbWF4KChjYWRhZHIoKGRiaWR+PmJCb3gpKSArIGltcEVuYykgKGltcFlvcmlnaW4gKyBpbXBXaWR0aCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKGltcFhvcmlnaW46aW1wWW9yaWdpbikgKGltcFhlbmQ6aW1wWWVuZCkpKSkpIHdoZW4ob2RkcChyb3cpIChzdHViWG9yaWdpbiA9IHJpZ2h0QmVuZFhvcmlnaW4pIChzdHViWGVuZCA9IHJlc1hlbmQpKSB3aGVuKGV2ZW5wKHJvdykgKHN0dWJYb3JpZ2luID0gcmVzWG9yaWdpbikgKHN0dWJYZW5kID0gbGVmdEJlbmRYZW5kKSkgY29uZCgoKHNwYWNlQmV0d2VlblJ1bnMgPCAoY3V0TGVuZ3RoIC0gaGFsZlJ3KSkgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KChzdHViWG9yaWdpbjpyZXNZb3JpZ2luKSAoc3R1YlhlbmQ6KHJlc1lvcmlnaW4gLSBzcGFjZUJldHdlZW5SdW5zKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNJZExheWVyIChkYmlkfj5iQm94KSkgd2hlbigoaW1wbGFudExheWVyICYmIHNlY29uZEltcGxhbnQpIChpbXBYb3JpZ2luID0gKGNhYXIoKGRiaWR+PmJCb3gpKSAtIGltcEVuYykpIChpbXBZb3JpZ2luID0gKGNhZGFyKChkYmlkfj5iQm94KSkgLSBpbXBFbmMpKSAoaW1wWGVuZCA9IG1heCgoY2FhZHIoKGRiaWQtPmJCb3gpKSArIGltcEVuYykgKGltcFhvcmlnaW4gKyBpbXBXaWR0aCkpKSAoaW1wWWVuZCA9IG1heCgoY2FkYWRyKChkYmlkfj5iQm94KSkgKyBpbXBFbmMpIChpbXBZb3JpZ2luICsgaW1wV2lkdGgpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGltcGxhbnRMYXllciBsaXN0KChpbXBYb3JpZ2luOmltcFlvcmlnaW4pIChpbXBYZW5kOmltcFllbmQpKSkpIHdoZW4oKHRoZU5ldCA9PSBuZXQpIChjdXRMZW5ndGggPSAoY3V0TGVuZ3RoIC0gc3BhY2VCZXR3ZWVuUnVucykpKSkgKHQgKGN1dExlbmd0aCA9IChjdXRMZW5ndGggLSBoYWxmUncpKSAoY3V0TGVuZ3RoID0gbWF4KDAuMCBjdXRMZW5ndGgpKSB3aGVuKChjdXRMZW5ndGggPiAwLjApIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgoc3R1YlhvcmlnaW46cmVzWW9yaWdpbikgKHN0dWJYZW5kOihyZXNZb3JpZ2luIC0gY3V0TGVuZ3RoKSkpKSkgKGRiQWRkRmlnVG9OZXQgZGJpZCB0aGVOZXQpKSAodGhlTmV0ID0gbmV0MikgKGRiaWQgPSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KChzdHViWG9yaWdpbjoocmVzWW9yaWdpbiAtIGN1dExlbmd0aCkpIChzdHViWGVuZDoocmVzWW9yaWdpbiAtIHNwYWNlQmV0d2VlblJ1bnMpKSkpKSAoZGJBZGRGaWdUb05ldCBkYmlkIHRoZU5ldCkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0lkTGF5ZXIgbGlzdCgoc3R1YlhvcmlnaW46cmVzWW9yaWdpbikgKHN0dWJYZW5kOihyZXNZb3JpZ2luIC0gc3BhY2VCZXR3ZWVuUnVucykpKSkgd2hlbigoaW1wbGFudExheWVyICYmIHNlY29uZEltcGxhbnQpIChzdHViWG9yaWdpbkltcENvb3JkID0gKHN0dWJYb3JpZ2luIC0gaW1wRW5jKSkgKHN0dWJYZW5kSW1wQ29vcmQgPSBtYXgoKHN0dWJYZW5kICsgaW1wRW5jKSAoc3R1YlhvcmlnaW5JbXBDb29yZCArIGltcFdpZHRoKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpbXBsYW50TGF5ZXIgbGlzdCgoc3R1YlhvcmlnaW5JbXBDb29yZDpyZXNZb3JpZ2luKSAoc3R1YlhlbmRJbXBDb29yZDoocmVzWW9yaWdpbiAtIHNwYWNlQmV0d2VlblJ1bnMpKSkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzQ3V0TGF5ZXIgbGlzdCgoc3R1YlhvcmlnaW46KHJlc1lvcmlnaW4gLSBjdXRMZW5ndGgpKSAoc3R1YlhlbmQ6KHJlc1lvcmlnaW4gLSBjdXRMZW5ndGggLSByZXNDdXRXaWR0aCkpKSkgKGN1dExlbmd0aCA9ICh0aGVSdW5MZW5ndGggKyBjdXRMZW5ndGgpKSkpIChyZXNZb3JpZ2luID0gKHJlc1lvcmlnaW4gLSByZXNZZGVsdGEpKSkpIChkYmlkID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJicmMwIiAoKGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5ICsgKC0gcmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UpKTpjb250YWN0WWRlbHRhKSAiUjAiIDEgaW5zdFBhcmFtcykpICh0aGVNYXN0ZXIgPSAoZGJpZH4+bWFzdGVyKSkgY29uZCgoKHJlc2lzdG9yTGF5ZXIgPT0gKHRoZU1hc3Rlcn4+Ym90TGF5ZXIpKSAobGF5ZXIyQmJveCA9ICh0aGVNYXN0ZXJ+PnRvcExheWVyUGluQmJveCkpIChyZXNJbkNvbnRhY3RCYm94ID0gKHRoZU1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkpICh0IChsYXllcjJCYm94ID0gKHRoZU1hc3Rlcn4+Ym90TGF5ZXJCYm94KSkgKHJlc0luQ29udGFjdEJib3ggPSAodGhlTWFzdGVyfj50b3BMYXllclBpbkJib3gpKSkpIGNvbmQoKGRvZ2JvbmUgKHJlc1ZhcmlhYmlsaXR5VyA9IGNhZGFkcihyZXNJbkNvbnRhY3RCYm94KSkpICh0IChyZXNWYXJpYWJpbGl0eVcgPSBydykpKSAobGF5ZXIyVmFyWW9mZnNldDEgPSBjYWRhcihsYXllcjJCYm94KSkgKGxheWVyMlZhcllvZmZzZXQyID0gY2FkYWRyKGxheWVyMkJib3gpKSAoZGJpZCA9IChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsYXllcjIgbGlzdCgoKHJlc1hvcmlnaW4gKyBjYWFyKGxheWVyMkJib3gpKToobGF5ZXIyVmFyWW9mZnNldDEgKyBjb250YWN0WWRlbHRhKSkgKChyZXNYb3JpZ2luICsgY2FhZHIobGF5ZXIyQmJveCkgKyBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSk6KGxheWVyMlZhcllvZmZzZXQyICsgY29udGFjdFlkZWx0YSkpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0KSAocGluaWQgPSAoZGJDcmVhdGVQaW4gbmV0IGRiaWQpKSBzZXRTR3EocGluaWQgbGlzdCgidG9wIiAiYm90dG9tIiAibGVmdCIgInJpZ2h0IikgYWNjZXNzRGlyKSB3aGVuKGRvZ2JvbmUgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc2lzdG9yTGF5ZXIgbGlzdCgocmVzWG9yaWdpbjpjb250YWN0WWRlbHRhKSAoKHJlc1hvcmlnaW4gKyBjYWFkcihyZXNJbkNvbnRhY3RCYm94KSArIGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5KToocmVzVmFyaWFiaWxpdHlXICsgY29udGFjdFlkZWx0YSkpKSkgKGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5ID0gKGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5ICsgY2Fhcih2aWFCYm94KSkpKSAocmVzSWRYZW5kID0gKHJlc1hvcmlnaW4gKyB0aGVSdW5MZW5ndGggKyBydyArIGNvbmQoKCgobnVtQmVuZHMgPT0gMSkgJiYgZG9nYm9uZSkgKCgtIGNhYWRyKHJlc0luQ29udGFjdEJib3gpKSArICgtIGltcE9mZnNldCkgKyAoLSBpbXBFbmMpKSkgKChudW1CZW5kcyA9PSAxKSAoKC0gcmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UpICsgKC0gaW1wT2Zmc2V0KSArICgtIGltcEVuYykpKSAodCAwLjApKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyByZXNJZExheWVyIGxpc3QoKChpbXBPZmZzZXQgKyBpbXBFbmMgKyBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSk6MC4wKSAocmVzSWRYZW5kOnJ3KSkpIHdoZW4oKGltcGxhbnRMYXllciAmJiBzZWNvbmRJbXBsYW50KSAocmVzSWRYZW5kID0gKHJlc0lkWGVuZCArIGltcEVuYykpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBpbXBsYW50TGF5ZXIgbGlzdCgoKGltcE9mZnNldCArIGZpcnN0Q29udGFjdFZhcmlhYmlsaXR5KTooLSBpbXBFbmMpKSAobWF4KHJlc0lkWGVuZCAoZmlyc3RDb250YWN0VmFyaWFiaWxpdHkgKyBpbXBXaWR0aCkpOm1heCgocncgKyBpbXBFbmMpICgoLSBpbXBFbmMpICsgaW1wV2lkdGgpKSkpKSkgY29uZCgob25lcChudW1CZW5kcykgY29uZCgoZG9nYm9uZSAobGFzdENvbnRhY3RYb3JpZ2luID0gKHJlc0lkWGVuZCArIGltcE9mZnNldCArICgtIGNhYXIocmVzSW5Db250YWN0QmJveCkpKSkpICh0IChsYXN0Q29udGFjdFhvcmlnaW4gPSAocmVzSWRYZW5kICsgaW1wT2Zmc2V0ICsgKC0gY2Fhcih2aWFCYm94KSkpKSkpIChsYXllcjJWYXJYb3JpZ2luID0gKGxhc3RDb250YWN0WG9yaWdpbiArIGNhYXIobGF5ZXIyQmJveCkpKSAobGF5ZXIyVmFyWGVuZCA9IChyZXNYZW5kIC0gY2FhcihsYXllcjJCYm94KSkpKSAob2RkcChudW1CZW5kcykgKGxhc3RDb250YWN0WG9yaWdpbiA9IChyZXNYZW5kIC0gcmVzQ29udGFjdEVkZ2VUb0VuZE9mVmlhU3BhY2UgLSBjYWFyKHZpYUJib3gpIC0gbGFzdENvbnRhY3RWYXJpYWJpbGl0eSAtICgtIGltcEVuYykgLSAoLSBpbXBFbmMpIC0gKC0gaW1wT2Zmc2V0KSAtICgtIGltcE9mZnNldCkpKSAobGF5ZXIyVmFyWG9yaWdpbiA9IChsYXN0Q29udGFjdFhvcmlnaW4gKyBjYWFyKGxheWVyMkJib3gpKSkgKGxheWVyMlZhclhlbmQgPSAocmVzWGVuZCAtIGNhYXIobGF5ZXIyQmJveCkpKSAocmVzSWRYb3JpZ2luID0gcmVzWG9yaWdpbikgKHJlc0lkWGVuZCA9IChyZXNYZW5kICsgKC0gbGFzdENvbnRhY3RWYXJpYWJpbGl0eSkgKyAoLSByZXNDb250YWN0RWRnZVRvRW5kT2ZWaWFTcGFjZSkgKyBpbXBFbmMgKyBpbXBPZmZzZXQpKSkgKHQgKGxhc3RDb250YWN0WG9yaWdpbiA9IChyZXNYb3JpZ2luICsgbGFzdENvbnRhY3RWYXJpYWJpbGl0eSArICgtIGltcEVuYykgKyAoLSBpbXBFbmMpICsgKC0gaW1wT2Zmc2V0KSArICgtIGltcE9mZnNldCkpKSAobGF5ZXIyVmFyWG9yaWdpbiA9IChyZXNYb3JpZ2luICsgY2FhcihsYXllcjJCYm94KSkpIChsYXllcjJWYXJYZW5kID0gKGxhc3RDb250YWN0VmFyaWFiaWxpdHkgKyAoLSBpbXBPZmZzZXQpICsgKC0gaW1wT2Zmc2V0KSArICgtIGltcEVuYykgKyAoLSBpbXBFbmMpKSkgKHJlc0lkWG9yaWdpbiA9IChsYXN0Q29udGFjdFZhcmlhYmlsaXR5ICsgKC0gaW1wT2Zmc2V0KSArICgtIGltcEVuYykpKSAocmVzSWRYZW5kID0gcmVzWGVuZCkpKSAobGFzdENvbnRhY3RZb3JpZ2luID0gKHJlc1lvcmlnaW4gLSBjb250YWN0WWRlbHRhIC0gKC0gcncpIC0gY2FkYWRyKHJlc0luQ29udGFjdEJib3gpKSkgKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY29udGFjdElkICJicmMxIiAobGFzdENvbnRhY3RYb3JpZ2luOmxhc3RDb250YWN0WW9yaWdpbikgIlIwIiAxIGluc3RQYXJhbXMpIChkYmlkID0gKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxheWVyMiBsaXN0KChsYXllcjJWYXJYb3JpZ2luOihsYXN0Q29udGFjdFlvcmlnaW4gKyBsYXllcjJWYXJZb2Zmc2V0MSkpIChsYXllcjJWYXJYZW5kOihsYXN0Q29udGFjdFlvcmlnaW4gKyBsYXllcjJWYXJZb2Zmc2V0MikpKSkpIChkYkFkZEZpZ1RvTmV0IGRiaWQgbmV0MikgKHBpbmlkID0gKGRiQ3JlYXRlUGluIG5ldDIgZGJpZCkpIHNldFNHcShwaW5pZCBsaXN0KCJ0b3AiICJib3R0b20iICJsZWZ0IiAicmlnaHQiKSBhY2Nlc3NEaXIpIHdoZW4oZG9nYm9uZSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgcmVzaXN0b3JMYXllciBsaXN0KCgobGF5ZXIyVmFyWG9yaWdpbiAtIGNhYXIobGF5ZXIyQmJveCkpOmxhc3RDb250YWN0WW9yaWdpbikgKChsYXllcjJWYXJYZW5kICsgY2FhcihsYXllcjJCYm94KSk6KGxhc3RDb250YWN0WW9yaWdpbiArIHJlc1ZhcmlhYmlsaXR5VykpKSkgY29uZCgob2RkcChudW1CZW5kcykgKHJlc0lkWGVuZCA9IChyZXNJZFhlbmQgLSBjYWFyKHZpYUJib3gpKSkpICh0IChyZXNJZFhvcmlnaW4gPSAocmVzSWRYb3JpZ2luICsgY2Fhcih2aWFCYm94KSkpKSkpIHVubGVzcygoMSA9PSBudW1CZW5kcykgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IHJlc0lkTGF5ZXIgbGlzdCgocmVzSWRYb3JpZ2luOnJlc1lvcmlnaW4pIChyZXNJZFhlbmQ6KHJlc1lvcmlnaW4gKyBydykpKSkgd2hlbigoaW1wbGFudExheWVyICYmIHNlY29uZEltcGxhbnQpIChyZXNJZFhvcmlnaW4gPSAocmVzSWRYb3JpZ2luIC0gaW1wRW5jKSkgKHJlc0lkWGVuZCA9IChyZXNJZFhlbmQgKyBpbXBFbmMpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgaW1wbGFudExheWVyIGxpc3QoKHJlc0lkWG9yaWdpbjoocmVzWW9yaWdpbiAtIGltcEVuYykpIChtYXgocmVzSWRYZW5kIChyZXNJZFhvcmlnaW4gKyBpbXBXaWR0aCkpOm1heCgocmVzWW9yaWdpbiArIHJ3ICsgaW1wRW5jKSAoKHJlc1lvcmlnaW4gLSBpbXBFbmMpICsgaW1wV2lkdGgpKSkpKSkpIHdoZW4od2VsbExheWVyICh3ZWxsTGF5ZXJfWG9yaWdpbiA9IChyZXNYb3JpZ2luIC0gd2VsbEVuYykpICh3ZWxsTGF5ZXJfWW9yaWdpbiA9IG1heCgocncgKyB3ZWxsRW5jKSAoY29udGFjdFlkZWx0YSArIHdlbGxFbmMgKyBjYWRhZHIocmVzSW5Db250YWN0QmJveCkpKSkgKHdlbGxMYXllcl9YZW5kID0gKHJlc1hlbmQgKyB3ZWxsRW5jKSkgKHdlbGxMYXllcl9ZZW5kID0gbWluKChyZXNZb3JpZ2luIC0gd2VsbEVuYykgKGxhc3RDb250YWN0WW9yaWdpbiArICgtIHdlbGxFbmMpKSkpIHdoZW4oKCh3ZWxsTGF5ZXJfWGVuZCAtIHdlbGxMYXllcl9Yb3JpZ2luKSA8IHdlbGxtaW5XaWR0aCkgKERpZmZfd2VsbF93aWR0aCA9ICh3ZWxsbWluV2lkdGggLSAod2VsbExheWVyX1hlbmQgLSB3ZWxsTGF5ZXJfWG9yaWdpbikpKSAod2VsbExheWVyX1hlbmQgPSAod2VsbExheWVyX1hlbmQgKyAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSAod2VsbExheWVyX1hvcmlnaW4gPSAod2VsbExheWVyX1hvcmlnaW4gLSAoRGlmZl93ZWxsX3dpZHRoIC8gMikpKSkgd2hlbigoKHdlbGxMYXllcl9Zb3JpZ2luIC0gd2VsbExheWVyX1llbmQpIDwgd2VsbG1pbldpZHRoKSAoRGlmZl93ZWxsX3dpZHRoID0gKHdlbGxtaW5XaWR0aCAtICh3ZWxsTGF5ZXJfWW9yaWdpbiAtIHdlbGxMYXllcl9ZZW5kKSkpICh3ZWxsTGF5ZXJfWWVuZCA9ICh3ZWxsTGF5ZXJfWWVuZCAtIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpICh3ZWxsTGF5ZXJfWW9yaWdpbiA9ICh3ZWxsTGF5ZXJfWW9yaWdpbiArIChEaWZmX3dlbGxfd2lkdGggLyAyKSkpKSAod2VsbExheWVyX2JCb3ggPSBsaXN0KCh3ZWxsTGF5ZXJfWG9yaWdpbjp3ZWxsTGF5ZXJfWW9yaWdpbikgKHdlbGxMYXllcl9YZW5kOndlbGxMYXllcl9ZZW5kKSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyB3ZWxsTGF5ZXIgd2VsbExheWVyX2JCb3gpKSB3aGVuKChmdWxsSW1wbGFudExheWVyICYmIGltcGxhbnQpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBmdWxsSW1wbGFudExheWVyIGxpc3QobGlzdCgocmVzWG9yaWdpbiAtIGZ1bGxJbXBFbmMpIG1heCgocncgKyBmdWxsSW1wRW5jKSAoY29udGFjdFlkZWx0YSArIGZ1bGxJbXBFbmMgKyBjYWRhZHIocmVzSW5Db250YWN0QmJveCkpKSkgbGlzdCgocmVzWGVuZCArIGZ1bGxJbXBFbmMpIG1pbigocmVzWW9yaWdpbiAtIGZ1bGxJbXBFbmMpIChsYXN0Q29udGFjdFlvcmlnaW4gLSBmdWxsSW1wRW5jKSkpKSkpKQAocmVzaXN0b3JMYXllciByZXNJZExheWVyIG1pblJlc1NwYWNlIHJlc0N1dExheWVyIHJlc0N1dFdpZHRoIHJlc2lzdG9yTGF5ZXJHcmlkIGltcGxhbnRMYXllciBpbXBFbmMgaW1wV2lkdGggZnVsbEltcGxhbnRMYXllciBmdWxsSW1wRW5jIHdlbGxMYXllciB3ZWxsbWluV2lkdGggd2VsbEVuYyBpbXBTcGFjZUNvbnRhY3Qgcncgcmwgc3BhY2VCZXR3ZWVuUnVucyBtYXhSdW5MZW5ndGggdmFyaWFiaWxpdHkgY29udGFjdE5hbWUgaW1wbGFudCBzZWNvbmRJbXBsYW50IG5ldCBuZXQyIGltcE9mZnNldCBjb250YWN0SWQgcmVzSW5Db250YWN0QmJveCBsYXllcjIgdmlhQmJveCByZXNDb250YWN0RWRnZVRvRW5kT2ZWaWFTcGFjZSBkb2dib25lIGNvbnRhY3RXaWR0aCBwYXJhbXMgY29udGFjdFBpdGNoIGNvbnRhY3RTcGFjZSBlZmZlY3RpdmVSdyBudW1Sb3dzQ29udGFjdHMgaW5zdFBhcmFtcyBhY3R1YWxDb250YWN0VyBjb250YWN0WWRlbHRhIGVmZmVjdGl2ZVJsIG51bUJlbmRzIHRoZVJ1bkxlbmd0aCBydW5EZWx0YSByZXNYb3JpZ2luIHJlc1hlbmQgbGVmdEJlbmRYZW5kIHJpZ2h0QmVuZFhvcmlnaW4gcmVzWW9yaWdpbiByZXNZZGVsdGEgbGFzdENvbnRhY3RWYXJpYWJpbGl0eSBmaXJzdENvbnRhY3RWYXJpYWJpbGl0eSBtYXhWYXJpYWJpbGl0eSBoYWxmUncgY3V0TGVuZ3RoIHRoZU5ldCByb3cgZGJpZCBjdXRYb3JpZ2luIGRiaWRMIGRiaWRSIGltcFhvcmlnaW4gaW1wWW9yaWdpbiBpbXBYZW5kIGltcFllbmQgc3R1YlhvcmlnaW4gc3R1YlhlbmQgc3R1YlhvcmlnaW5JbXBDb29yZCBzdHViWGVuZEltcENvb3JkIHRoZU1hc3RlciBsYXllcjJCYm94IHJlc1ZhcmlhYmlsaXR5VyBsYXllcjJWYXJZb2Zmc2V0MSBsYXllcjJWYXJZb2Zmc2V0MiBwaW5pZCByZXNJZFhlbmQgbGFzdENvbnRhY3RYb3JpZ2luIGxheWVyMlZhclhvcmlnaW4gbGF5ZXIyVmFyWGVuZCByZXNJZFhvcmlnaW4gbGFzdENvbnRhY3RZb3JpZ2luIHdlbGxMYXllcl9Yb3JpZ2luIHdlbGxMYXllcl9Zb3JpZ2luIHdlbGxMYXllcl9YZW5kIHdlbGxMYXllcl9ZZW5kIERpZmZfd2VsbF93aWR0aCB3ZWxsTGF5ZXJfYkJveCkAKChydyAwLjApIChybCAwLjApIChzcGFjZUJldHdlZW5SdW5zIDAuMCkgKG1heFJ1bkxlbmd0aCAwLjApICh2YXJpYWJpbGl0eSAiRkFMU0UiKSAoY29udGFjdE5hbWUgIiIpIChpbXBsYW50IHQpIChzZWNvbmRJbXBsYW50IHQpKQAoKHJlc2lzdG9yTGF5ZXIgInkwIikgKHJlc0lkTGF5ZXIgInkxIikgKG1pblJlc1NwYWNlIDAuMCkgKHJlc0N1dExheWVyICJ5MiIpIChyZXNDdXRXaWR0aCAwLjApIChyZXNpc3RvckxheWVyR3JpZCAwLjApIChpbXBsYW50TGF5ZXIgbmlsKSAoaW1wRW5jIDAuMCkgKGltcFdpZHRoIDAuMCkgKGZ1bGxJbXBsYW50TGF5ZXIgbmlsKSAoZnVsbEltcEVuYyAwLjApICh3ZWxsTGF5ZXIgbmlsKSAod2VsbG1pbldpZHRoIDAuMCkgKHdlbGxFbmMgMC4wKSAoaW1wU3BhY2VDb250YWN0IDAuMCkpAChmb3JlYWNoKHhMaXN0IGFuY2hvckxheWVycyB3aGVuKChzcGxMYXllciAmJiBsaXN0cCh4TGlzdCkpIGVycm9yKHNwcmludGYobmlsICJhbmNob3JDbGFzczogYW5jaG9yTGF5ZXJzIChsaXN0IChsaXN0ICogKikpIGNhbiBub3QgYmUgdXNlZCBpbiBwYXJhbGxlbCB3aXRoIHNwbExheWVyXG4iKSkpKSBpZigoKGNoYW1mZXIgPT0gdCkgfHwgKGNoYW1mZXIgPT0gIlRSVUUiKSB8fCAoZW5kU3R5bGUgPT0gIlNUQUdHRVIiKSkgdGhlbiAoY2hhbWZlciA9IHQpIGVsc2UgKGNoYW1mZXIgPSBuaWwpKSBpZigoKGV2ZW5FbmRzID09IHQpIHx8IChldmVuRW5kcyA9PSAiVFJVRSIpKSB0aGVuIChldmVuRW5kcyA9IHQpIGVsc2UgKGV2ZW5FbmRzID0gbmlsKSkgaWYoKChmdWxsQW5jaG9yID09IHQpIHx8IChmdWxsQW5jaG9yID09ICJUUlVFIikpIHRoZW4gKGZ1bGxBbmNob3IgPSB0KSBlbHNlIChmdWxsQW5jaG9yID0gbmlsKSkgaWYoKChob3Jpek9yNDUgPT0gdCkgfHwgKGhvcml6T3I0NSA9PSAiVFJVRSIpKSB0aGVuIChob3Jpek9yNDUgPSB0KSBlbHNlIChob3Jpek9yNDUgPSBuaWwpKSBpZigoYW5jVHlwZSA9PSAiZnVsbCIpIHRoZW4gKGZ1bGxBbmNob3IgPSB0KSkgaWYoKGFuY1R5cGUgPT0gInNsYW50IikgdGhlbiAoZnVsbEFuY2hvciA9IG5pbCkgKGhvcml6T3I0NSA9IG5pbCkpIGlmKChhbmNUeXBlID09ICJob3Jpem9udGFsIikgdGhlbiAoZnVsbEFuY2hvciA9IG5pbCkgKGhvcml6T3I0NSA9IHQpKSAocm9vdDIgPSBzcXJ0KDIpKSAoZ3JpZE11bHQgPSByb3VuZCgoMS4wIC8gZ3JpZCkpKSAobnVtQW5jaG9ycyA9IChmbG9vciBudW1BbmNob3JzKSkgKGFuY2hvcldpZHRoID0gKChjZWlsaW5nICgoYW5jaG9yV2lkdGggLyBncmlkKSArIC0xZS0wNikpICogZ3JpZCkpIChhbmNob3JDZW50ZXIgPSAoYW5jaG9yV2lkdGggLyAyKSkgKGFuY2hvclNwYWNlID0gKGdyaWQgKiAoY2VpbGluZyAoYW5jaG9yU3BhY2UgKiBncmlkTXVsdCkpKSkgKGFuY2hvckxlbmd0aFggPSAoZ3JpZCAqIChjZWlsaW5nIChhbmNob3JMZW5ndGhYICogZ3JpZE11bHQpKSkpIChhbmNob3JMZW5ndGhZID0gKGdyaWQgKiAoY2VpbGluZyAoYW5jaG9yTGVuZ3RoWSAqIGdyaWRNdWx0KSkpKSAoYW5jaG9yTGVuZ3RoWiA9IChncmlkICogKGNlaWxpbmcgKChhbmNob3JMZW5ndGhaIC8gcm9vdDIpICogZ3JpZE11bHQpKSkpIChhbmNob3JDZW50ZXJaID0gKGdyaWQgKiAoY2VpbGluZyAoKGFuY2hvckNlbnRlciAvIHJvb3QyKSAqIGdyaWRNdWx0KSkpKSAoYW5jaG9yV2lkdGhaID0gKGdyaWQgKiAoZmxvb3IgKChhbmNob3JXaWR0aCAvIHJvb3QyKSAqIGdyaWRNdWx0KSkpKSAoYW5jaG9yU3BhY2VaID0gKGdyaWQgKiAoY2VpbGluZyAoKGFuY2hvclNwYWNlIC8gcm9vdDIpICogZ3JpZE11bHQpKSkpICh0YW5DYWwgPSAwLjQxNDIxMzYpIChkQW5jaG9yTGVuZ3RoID0gKGdyaWQgKiAoY2VpbGluZyAodGFuQ2FsICogKGFuY2hvcldpZHRoICsgYW5jaG9yU3BhY2UpICogZ3JpZE11bHQpKSkpIChkQW5jaG9yTGVuZ3RoID0gKGRBbmNob3JMZW5ndGggKyBncmlkKSkgKGFuY2hvckxlbmd0aFogPSBtYXgoYW5jaG9yTGVuZ3RoWiBhbmNob3JXaWR0aCkpIChjaGFtZmVyTCA9IDAuMCkgd2hlbihjaGFtZmVyIChjaGFtZmVyTCA9IChhbmNob3JXaWR0aCArIGFuY2hvclNwYWNlKSkpIChudW1Db250YWN0cyA9IGxlbmd0aChhbmNob3JDb250YWN0cykpIChtaW5TcGFjZSA9IDApIGZvcmVhY2goY29udGFjdCBhbmNob3JDb250YWN0cyAobWluU3BhY2UgPSAobWluU3BhY2UgKyBjYWRyKGNvbnRhY3QpKSkpIChtaW5TcGFjZTQ1ID0gKG1pblNwYWNlICogcm9vdDIpKSBpZigodmlhUGl0Y2ggPj0gY29udGFjdFBpdGNoKSB0aGVuICh1c2VQaXRjaCA9IHZpYVBpdGNoKSBlbHNlICh1c2VQaXRjaCA9IGNvbnRhY3RQaXRjaCkpICh1c2VQaXRjaDQ1ID0gKHVzZVBpdGNoICsgKG1pblNwYWNlNDUgLSBtaW5TcGFjZSkpKSAodXNlUGl0Y2ggPSAoKGdyaWQgKiAoY2VpbGluZyAodXNlUGl0Y2ggKiBncmlkTXVsdCkpKSArIGdyaWQpKSAodXNlUGl0Y2g0NSA9ICgoZ3JpZCAqIChjZWlsaW5nICh1c2VQaXRjaDQ1ICogZ3JpZE11bHQpKSkgKyBncmlkKSkgdW5sZXNzKCh1c2VQaXRjaCA+PSBtaW5TcGFjZSkgKHVzZVBpdGNoID0gbWluU3BhY2UpKSB1bmxlc3MoKHVzZVBpdGNoNDUgPj0gbWluU3BhY2U0NSkgKHVzZVBpdGNoNDUgPSBtaW5TcGFjZTQ1KSkgKGNvbnRhY3RTcGFjZSA9IChncmlkICogKGZsb29yICgoKHVzZVBpdGNoIC0gbWluU3BhY2UpIC8gbnVtQ29udGFjdHMpICogZ3JpZE11bHQpKSkpIChjb250YWN0U3BhY2U0NSA9IChncmlkICogKGZsb29yICgoKHVzZVBpdGNoNDUgLSBtaW5TcGFjZTQ1KSAvIG51bUNvbnRhY3RzKSAqIGdyaWRNdWx0KSkpKSAobWluTGVuZ3RoID0gKHVzZVBpdGNoICsgY29udGFjdFNwYWNlKSkgd2hlbigoYW5jaG9yTGVuZ3RoWCA8IG1pbkxlbmd0aCkgKGFuY2hvckxlbmd0aFggPSBtaW5MZW5ndGgpKSB3aGVuKChhbmNob3JMZW5ndGhZIDwgbWluTGVuZ3RoKSAoYW5jaG9yTGVuZ3RoWSA9IG1pbkxlbmd0aCkpIHdoZW4oZnVsbEFuY2hvciAoeDAgPSAwKSAoeTAgPSAoLSBhbmNob3JMZW5ndGhZKSkgd2hlbihldmVuRW5kcyAoZHgwID0gKGFuY2hvcldpZHRoICsgYW5jaG9yU3BhY2UpKSAoZHkwID0gKC0gY2hhbWZlckwpKSkgdW5sZXNzKGV2ZW5FbmRzIChkeDAgPSAoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSArIGdyaWQpKSAoZHkwID0gKCgtIGNoYW1mZXJMKSArIGdyaWQpKSkgKGR4ID0gYW5jaG9yV2lkdGgpIChkeSA9IGFuY2hvckxlbmd0aFkpIChkZHggPSAwKSAoZGR5ID0gKGRBbmNob3JMZW5ndGggKyBjaGFtZmVyTCkpIGZvcihpIDEgbnVtQW5jaG9ycyBmb3JlYWNoKHRoaXNMYXllciBhbmNob3JMYXllcnMgaWYoKCh0aGlzTGF5ZXIgPT0gc3BsTGF5ZXIpIHx8IGxpc3RwKHRoaXNMYXllcikpIHRoZW4gd2hlbihsaXN0cCh0aGlzTGF5ZXIpIChzcGxMYXllck1heFdpZHRoID0gY2Fkcih0aGlzTGF5ZXIpKSAodGhpc0xheWVyID0gY2FyKHRoaXNMYXllcikpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdCh0aGlzTGF5ZXIgImRyYXdpbmciKSBsaXN0KCgoeDAgKyAoKGFuY2hvcldpZHRoIC0gc3BsTGF5ZXJNYXhXaWR0aCkgLyAyKSk6eTApICgoKHgwICsgZHgpIC0gKChhbmNob3JXaWR0aCAtIHNwbExheWVyTWF4V2lkdGgpIC8gMikpOih5MCArIChkeSAtIChzcGxMYXllck1heFdpZHRoIC8gMikpKSkpKSBlbHNlIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KHRoaXNMYXllciAiZHJhd2luZyIpIGxpc3QoKHgwOnkwKSAoKHgwICsgZHgpOih5MCArIGR5KSkpKSkpIHdoZW4oKGkgPT0gbnVtQW5jaG9ycykgKHBWZXJ0ID0gbGlzdCgoKHgwICsgZHgpOnkwKSkpKSAobnVtQXJyYXlzID0gKGNlaWxpbmcgKChkeSAvIHVzZVBpdGNoKSAtIDAuNSkpKSAoeE9mZnNldCA9ICh4MCArIGFuY2hvckNlbnRlcikpICh2ZXJPZmZTZXQgPSAoKHkwICsgZHkpIC0gYW5jaG9yV2lkdGgpKSBmb3IoaiAxIG51bUFycmF5cyAoayA9IDEpIChvY2N1cGllZFNwYWNlID0gMCkgZm9yZWFjaChjb250YWN0IGFuY2hvckNvbnRhY3RzIChjb250YWN0V2lkdGggPSBjYWRyKGNvbnRhY3QpKSAoeGwgPSAoZ3JpZCAqIChjZWlsaW5nICgoeE9mZnNldCAtIChjb250YWN0V2lkdGggLyAyKSkgKiBncmlkTXVsdCkpKSkgKHlsID0gKGdyaWQgKiAoY2VpbGluZyAoKHkwICsgKChqIC0gMSkgKiB1c2VQaXRjaCkgKyAoayAqIGNvbnRhY3RTcGFjZSkgKyBvY2N1cGllZFNwYWNlKSAqIGdyaWRNdWx0KSkpKSAoeHUgPSAoeGwgKyBjb250YWN0V2lkdGgpKSAoeXUgPSAoeWwgKyBjb250YWN0V2lkdGgpKSBpZigoeXUgPD0gdmVyT2ZmU2V0KSB0aGVuIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBsaXN0KGNhcihjb250YWN0KSAiZHJhd2luZyIpIGxpc3QoKHhsOnlsKSAoeHU6eXUpKSkgKGsgPSAoayArIDEpKSAob2NjdXBpZWRTcGFjZSA9IChvY2N1cGllZFNwYWNlICsgY29udGFjdFdpZHRoKSkgd2hlbihjYWRkcihjb250YWN0KSAoY29udGFjdEltcGxhbnQgPSBtZW1iZXIoY2FkZHIoY29udGFjdCkgY29udGFjdCkpIGlmKG50aCgyIGNvbnRhY3RJbXBsYW50KSB0aGVuIChjb250YWN0SW1wRW5jWCA9IG50aCgxIGNvbnRhY3RJbXBsYW50KSkgKGNvbnRhY3RJbXBFbmNZID0gbnRoKDIgY29udGFjdEltcGxhbnQpKSBlbHNlIChjb250YWN0SW1wRW5jWCA9IG50aCgxIGNvbnRhY3RJbXBsYW50KSkgKGNvbnRhY3RJbXBFbmNZID0gbnRoKDEgY29udGFjdEltcGxhbnQpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGNhcihjb250YWN0SW1wbGFudCkgbGlzdChsaXN0KCh4bCArICgtIGNvbnRhY3RJbXBFbmNYKSkgKHlsICsgKC0gY29udGFjdEltcEVuY1kpKSkgbGlzdCgoeHUgKyBjb250YWN0SW1wRW5jWCkgKHl1ICsgY29udGFjdEltcEVuY1kpKSkpKSkpKSAoeDAgPSAoeDAgKyBkeDApKSAoeTAgPSAoeTAgKyBkeTApKSAoZHggPSAoZHggKyBkZHgpKSAoZHkgPSAoZHkgKyBkZHkpKSkpIHdoZW4oKGZ1bGxBbmNob3IgfHwgKG5vdCBob3Jpek9yNDUpKSBpZihmdWxsQW5jaG9yIHRoZW4gKHgwID0gYW5jaG9yV2lkdGgpICh5MCA9IDAuMCkgKGR4ID0gYW5jaG9yTGVuZ3RoWikgKGR5ID0gYW5jaG9yTGVuZ3RoWikgKGRkeCA9ICgoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkgLSBkQW5jaG9yTGVuZ3RoKSkgKGRkeSA9ICgoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkgLSBkQW5jaG9yTGVuZ3RoKSkgZWxzZSAoeDAgPSAwLjApICh5MCA9IDAuMCkgKGR4ID0gYW5jaG9yTGVuZ3RoWikgKGR5ID0gYW5jaG9yTGVuZ3RoWikgKGRkeCA9ICgoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkgLSBkQW5jaG9yTGVuZ3RoKSkgKGRkeSA9ICgoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkgLSBkQW5jaG9yTGVuZ3RoKSkpIHdoZW4oZXZlbkVuZHMgKGR4MCA9IChhbmNob3JXaWR0aCArIGFuY2hvclNwYWNlKSkgKGR5MCA9IGRBbmNob3JMZW5ndGgpKSB1bmxlc3MoZXZlbkVuZHMgKGR4MCA9IChhbmNob3JXaWR0aCArIGFuY2hvclNwYWNlICsgZ3JpZCkpIChkeTAgPSAoZEFuY2hvckxlbmd0aCArIGdyaWQpKSkgZm9yKGkgMSBudW1BbmNob3JzIGZvcmVhY2godGhpc0xheWVyIGFuY2hvckxheWVycyAoeDEgPSAoeDAgLSBkeCkpICh5MSA9ICh5MCArIGR5KSkgKHgyID0gKHgxIC0gYW5jaG9yV2lkdGhaKSkgKHkyID0gKHkxIC0gYW5jaG9yV2lkdGhaKSkgKHgzID0gKHgwIC0gYW5jaG9yV2lkdGhaKSkgKHkzID0gKHkwIC0gYW5jaG9yV2lkdGhaKSkgaWYoKCh0aGlzTGF5ZXIgPT0gc3BsTGF5ZXIpIHx8IGxpc3RwKHRoaXNMYXllcikpIHRoZW4gd2hlbihsaXN0cCh0aGlzTGF5ZXIpIChzcGxMYXllck1heFdpZHRoID0gY2Fkcih0aGlzTGF5ZXIpKSAodGhpc0xheWVyID0gY2FyKHRoaXNMYXllcikpKSBpZihmdWxsQW5jaG9yIHRoZW4gKHNqbl9YNiA9ICh4MCAtICgoYW5jaG9yV2lkdGggLSBzcGxMYXllck1heFdpZHRoKSAvIDIpKSkgKHNqbl9ZNiA9ICh5MCAtIChzcGxMYXllck1heFdpZHRoIC8gMikpKSAoc2puX1g3ID0gKHgxIC0gKHNwbExheWVyTWF4V2lkdGggLyAyKSkpIChzam5fWTcgPSAoeTEgLSAoKGFuY2hvcldpZHRoIC0gc3BsTGF5ZXJNYXhXaWR0aCkgLyAyKSkpIChzam5fWDggPSAoZ3JpZCAqIChjZWlsaW5nICgoc2puX1g3IC0gKHNwbExheWVyTWF4V2lkdGggLyByb290MikpICogZ3JpZE11bHQpKSkpIChzam5fWTggPSAoZ3JpZCAqIChjZWlsaW5nICgoc2puX1k3IC0gKHNwbExheWVyTWF4V2lkdGggLyByb290MikpICogZ3JpZE11bHQpKSkpIChzam5fWDUgPSAoZ3JpZCAqIChjZWlsaW5nICgoc2puX1g2IC0gKHNwbExheWVyTWF4V2lkdGggLyByb290MikpICogZ3JpZE11bHQpKSkpIChzam5fWTUgPSAoZ3JpZCAqIChjZWlsaW5nICgoc2puX1k2IC0gKHNwbExheWVyTWF4V2lkdGggLyByb290MikpICogZ3JpZE11bHQpKSkpIGVsc2UgKHRlbXBfT2Zmc2V0ID0gKCgoYW5jaG9yV2lkdGggLSBzcGxMYXllck1heFdpZHRoKSAqIHJvb3QyKSAvIDQpKSAoc2puX1g2ID0gKHgwIC0gdGVtcF9PZmZzZXQpKSAoc2puX1k2ID0gKHkwIC0gdGVtcF9PZmZzZXQpKSAoc2puX1g3ID0gKHgxIC0gdGVtcF9PZmZzZXQpKSAoc2puX1k3ID0gKHkxIC0gdGVtcF9PZmZzZXQpKSAoc2puX1g4ID0gKHgyICsgdGVtcF9PZmZzZXQpKSAoc2puX1k4ID0gKHkyICsgdGVtcF9PZmZzZXQpKSAoc2puX1g1ID0gKHgzICsgdGVtcF9PZmZzZXQpKSAoc2puX1k1ID0gKHkzICsgdGVtcF9PZmZzZXQpKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QodGhpc0xheWVyICJkcmF3aW5nIikgbGlzdCgoc2puX1g2OnNqbl9ZNikgKHNqbl9YNzpzam5fWTcpIChzam5fWDg6c2puX1k4KSAoc2puX1g1OnNqbl9ZNSkgKHNqbl9YNjpzam5fWTYpKSkgZWxzZSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdCh0aGlzTGF5ZXIgImRyYXdpbmciKSBsaXN0KCh4MDp5MCkgKHgxOnkxKSAoeDI6eTIpICh4Mzp5MykgKHgwOnkwKSkpKSkgd2hlbigoaSA9PSBudW1BbmNob3JzKSAocDQ1ID0gbGlzdCgoeDA6eTApICh4MTp5MSkpKSkgKG51bUFycmF5cyA9IChjZWlsaW5nICgoZHggLyB1c2VQaXRjaDQ1KSAqIHJvb3QyKSkpIChvZmZzZXQgPSBhbmNob3JDZW50ZXJaKSBpZihmdWxsQW5jaG9yIHRoZW4gKHNsdE9mZnNldCA9ICgoZ3JpZCAqIChjZWlsaW5nICgoeDAgLSBkeCAtIChhbmNob3JXaWR0aFogLyAyKSkgKiBncmlkTXVsdCkpKSArIChhbmNob3JaU2hyaW5rIC8gMikpKSBlbHNlIChzbHRPZmZzZXQgPSAoKGdyaWQgKiAoY2VpbGluZyAoKCh4MCAtIGR4IC0gKGFuY2hvcldpZHRoWiAvIDIpKSArIChjb250YWN0U3BhY2U0NSAvIHJvb3QyKSkgKiBncmlkTXVsdCkpKSArIChhbmNob3JaU2hyaW5rIC8gMikpKSkgaWYoZnVsbEFuY2hvciB0aGVuIChzdGFydCA9IDEpIGVsc2UgKHN0YXJ0ID0gMSkpIGZvcihqIHN0YXJ0IG51bUFycmF5cyAoayA9IDEpIChvY2N1cGllZFNwYWNlID0gMCkgZm9yZWFjaChjb250YWN0IGFuY2hvckNvbnRhY3RzIChjb250YWN0V2lkdGggPSBjYWRyKGNvbnRhY3QpKSAoeGwgPSAoZ3JpZCAqIChjZWlsaW5nICgoeDAgLSBvZmZzZXQgLSAoKCgoaiAtIDEpICogdXNlUGl0Y2g0NSkgKyAoayAqIGNvbnRhY3RTcGFjZTQ1KSArIG9jY3VwaWVkU3BhY2UpIC8gcm9vdDIpKSAqIGdyaWRNdWx0KSkpKSAoeWwgPSAoZ3JpZCAqIChjZWlsaW5nICgoKHkwIC0gb2Zmc2V0KSArICgoKChqIC0gMSkgKiB1c2VQaXRjaDQ1KSArIChrICogY29udGFjdFNwYWNlNDUpICsgb2NjdXBpZWRTcGFjZSkgLyByb290MikpICogZ3JpZE11bHQpKSkpICh4dSA9ICh4bCAtIGNvbnRhY3RXaWR0aCkpICh5dSA9ICh5bCArIGNvbnRhY3RXaWR0aCkpIGlmKCgoeGwgLSBjb250YWN0U3BhY2UpID49IHNsdE9mZnNldCkgdGhlbiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChjYXIoY29udGFjdCkgImRyYXdpbmciKSBsaXN0KCh4bDp5bCkgKHh1Onl1KSkpIChrID0gKGsgKyAxKSkgKG9jY3VwaWVkU3BhY2UgPSAob2NjdXBpZWRTcGFjZSArIChjb250YWN0V2lkdGggKiByb290MikpKSB3aGVuKGNhZGRyKGNvbnRhY3QpIChjb250YWN0SW1wbGFudCA9IG1lbWJlcihjYWRkcihjb250YWN0KSBjb250YWN0KSkgaWYobnRoKDIgY29udGFjdEltcGxhbnQpIHRoZW4gKGNvbnRhY3RJbXBFbmNYID0gbnRoKDEgY29udGFjdEltcGxhbnQpKSAoY29udGFjdEltcEVuY1kgPSBudGgoMiBjb250YWN0SW1wbGFudCkpIGVsc2UgKGNvbnRhY3RJbXBFbmNYID0gbnRoKDEgY29udGFjdEltcGxhbnQpKSAoY29udGFjdEltcEVuY1kgPSBudGgoMSBjb250YWN0SW1wbGFudCkpKSAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgY2FyKGNvbnRhY3RJbXBsYW50KSBsaXN0KGxpc3QoKHhsICsgY29udGFjdEltcEVuY1gpICh5bCAtIGNvbnRhY3RJbXBFbmNZKSkgbGlzdCgoeHUgLSBjb250YWN0SW1wRW5jWCkgKHl1ICsgY29udGFjdEltcEVuY1kpKSkpKSkpKSAoeDAgPSAoeDAgKyBkeDApKSAoeTAgPSAoeTAgKyBkeTApKSAoZHggPSAoZHggKyBkZHgpKSAoZHkgPSAoZHkgKyBkZHkpKSkpIHdoZW4oKGZ1bGxBbmNob3IgfHwgaG9yaXpPcjQ1KSBpZihmdWxsQW5jaG9yIHRoZW4gKHgwID0gKCgtIGFuY2hvckxlbmd0aFgpIC0gKGFuY2hvckxlbmd0aFogLSBhbmNob3JXaWR0aCkpKSAoeTAgPSAoYW5jaG9yTGVuZ3RoWiAtIGFuY2hvcldpZHRoKSkgd2hlbihldmVuRW5kcyAoZHgwID0gKC0gY2hhbWZlckwpKSAoZHkwID0gKGFuY2hvcldpZHRoICsgYW5jaG9yU3BhY2UpKSkgdW5sZXNzKGV2ZW5FbmRzIChkeDAgPSAoKC0gY2hhbWZlckwpICsgZ3JpZCkpIChkeTAgPSAoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSArIGdyaWQpKSkgKGR4ID0gYW5jaG9yTGVuZ3RoWCkgKGR5ID0gYW5jaG9yV2lkdGgpIChkZHggPSAoZEFuY2hvckxlbmd0aCArIGNoYW1mZXJMKSkgKGRkeSA9IDApIGVsc2UgKHgwID0gMCkgKHkwID0gMCkgKGR4MCA9IDApIChkeTAgPSAoYW5jaG9yV2lkdGggKyBhbmNob3JTcGFjZSkpIChkeCA9IGFuY2hvckxlbmd0aFgpIChkeSA9IGFuY2hvcldpZHRoKSAoZGR4ID0gMCkgKGRkeSA9IDApKSAoaG9yaXpPZmZTZXQgPSBhbmNob3JMZW5ndGhYKSBmb3IoaSAxIG51bUFuY2hvcnMgZm9yZWFjaCh0aGlzTGF5ZXIgYW5jaG9yTGF5ZXJzIGlmKCgodGhpc0xheWVyID09IHNwbExheWVyKSB8fCBsaXN0cCh0aGlzTGF5ZXIpKSB0aGVuIHdoZW4obGlzdHAodGhpc0xheWVyKSAoc3BsTGF5ZXJNYXhXaWR0aCA9IGNhZHIodGhpc0xheWVyKSkgKHRoaXNMYXllciA9IGNhcih0aGlzTGF5ZXIpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxpc3QodGhpc0xheWVyICJkcmF3aW5nIikgY29uZCgoZnVsbEFuY2hvciBsaXN0KCh4MDooeTAgKyAoKGFuY2hvcldpZHRoIC0gc3BsTGF5ZXJNYXhXaWR0aCkgLyAyKSkpICgoeDAgKyAoZHggLSAoc3BsTGF5ZXJNYXhXaWR0aCAvIDIpKSk6KCh5MCArIGR5KSAtICgoYW5jaG9yV2lkdGggLSBzcGxMYXllck1heFdpZHRoKSAvIDIpKSkpKSAodCBsaXN0KCh4MDooeTAgKyAoKGFuY2hvcldpZHRoIC0gc3BsTGF5ZXJNYXhXaWR0aCkgLyAyKSkpICgoeDAgKyBkeCk6KCh5MCArIGR5KSAtICgoYW5jaG9yV2lkdGggLSBzcGxMYXllck1heFdpZHRoKSAvIDIpKSkpKSkpIGVsc2UgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxpc3QodGhpc0xheWVyICJkcmF3aW5nIikgbGlzdCgoeDA6eTApICgoeDAgKyBkeCk6KHkwICsgZHkpKSkpKSkgd2hlbigoaSA9PSBudW1BbmNob3JzKSAocEhvciA9IGxpc3QoKHgwOih5MCArIGR5KSkpKSkgKG51bUFycmF5cyA9IChjZWlsaW5nIChkeCAvIHVzZVBpdGNoKSkpICh5T2Zmc2V0ID0gKHkwICsgYW5jaG9yQ2VudGVyKSkgaWYoZnVsbEFuY2hvciAoaG9yaXpPZmZTZXQgPSAoZ3JpZCAqIChjZWlsaW5nICgoKHgwICsgZHgpIC0gKGFuY2hvcldpZHRoIC8gMi4wKSkgKiBncmlkTXVsdCkpKSkpIGZvcihqIDEgbnVtQXJyYXlzIChrID0gMSkgKG9jY3VwaWVkU3BhY2UgPSAwKSBmb3JlYWNoKGNvbnRhY3QgYW5jaG9yQ29udGFjdHMgKGNvbnRhY3RXaWR0aCA9IGNhZHIoY29udGFjdCkpICh4bCA9IChncmlkICogKGNlaWxpbmcgKCh4MCArICgoaiAtIDEpICogdXNlUGl0Y2gpICsgKGsgKiBjb250YWN0U3BhY2UpICsgb2NjdXBpZWRTcGFjZSkgKiBncmlkTXVsdCkpKSkgKHlsID0gKGdyaWQgKiAoY2VpbGluZyAoKHlPZmZzZXQgLSAoY29udGFjdFdpZHRoIC8gMikpICogZ3JpZE11bHQpKSkpICh4dSA9ICh4bCArIGNvbnRhY3RXaWR0aCkpICh5dSA9ICh5bCArIGNvbnRhY3RXaWR0aCkpIGlmKCh4dSA8PSBob3Jpek9mZlNldCkgdGhlbiAoZGJDcmVhdGVSZWN0IHRjQ2VsbFZpZXcgbGlzdChjYXIoY29udGFjdCkgImRyYXdpbmciKSBsaXN0KCh4bDp5bCkgKHh1Onl1KSkpIChrID0gKGsgKyAxKSkgKG9jY3VwaWVkU3BhY2UgPSAob2NjdXBpZWRTcGFjZSArIGNvbnRhY3RXaWR0aCkpIHdoZW4oY2FkZHIoY29udGFjdCkgKGNvbnRhY3RJbXBsYW50ID0gbWVtYmVyKGNhZGRyKGNvbnRhY3QpIGNvbnRhY3QpKSBpZihudGgoMiBjb250YWN0SW1wbGFudCkgdGhlbiAoY29udGFjdEltcEVuY1ggPSBudGgoMSBjb250YWN0SW1wbGFudCkpIChjb250YWN0SW1wRW5jWSA9IG50aCgyIGNvbnRhY3RJbXBsYW50KSkgZWxzZSAoY29udGFjdEltcEVuY1ggPSBudGgoMSBjb250YWN0SW1wbGFudCkpIChjb250YWN0SW1wRW5jWSA9IG50aCgxIGNvbnRhY3RJbXBsYW50KSkpIChkYkNyZWF0ZVJlY3QgdGNDZWxsVmlldyBjYXIoY29udGFjdEltcGxhbnQpIGxpc3QobGlzdCgoeGwgKyAoLSBjb250YWN0SW1wRW5jWCkpICh5bCArICgtIGNvbnRhY3RJbXBFbmNZKSkpIGxpc3QoKHh1ICsgY29udGFjdEltcEVuY1gpICh5dSArIGNvbnRhY3RJbXBFbmNZKSkpKSkpKSkgKHgwID0gKHgwICsgZHgwKSkgKHkwID0gKHkwICsgZHkwKSkgKGR4ID0gKGR4ICsgZGR4KSkgKGR5ID0gKGR5ICsgZGR5KSkpKSB3aGVuKGFuY2hvckltcExheWVycyBmb3JlYWNoKGltcFNldCBhbmNob3JJbXBMYXllcnMgKGltcExheWVyID0gY2FyKGltcFNldCkpIChpbXBFbmMgPSBjYWRyKGltcFNldCkpIChhbmNXID0gKChudW1BbmNob3JzICogKGFuY2hvcldpZHRoICsgYW5jaG9yU3BhY2UpKSAtIGFuY2hvclNwYWNlKSkgKGFuY1c0NSA9ICgoZ3JpZCAqIChjZWlsaW5nICgoYW5jVyAvIHJvb3QyKSAqIGdyaWRNdWx0KSkpICsgaW1wRW5jKSkgKGltcEVuYzQ1ID0gKGdyaWQgKiAoY2VpbGluZyAoaW1wRW5jICogcm9vdDIgKiBncmlkTXVsdCkpKSkgKGltcFcgPSAoYW5jVyArICgyICogaW1wRW5jKSkpIChpbXBXNDUgPSAoZ3JpZCAqIChjZWlsaW5nIChpbXBXICogcm9vdDIgKiBncmlkTXVsdCkpKSkgKGltcEwgPSAoYW5jaG9yTGVuZ3RoWCArICgyICogaW1wRW5jKSkpIGNvbmQoKGZ1bGxBbmNob3IgKHgxYW5jID0gY2FhcihwVmVydCkpICh5MWFuYyA9IGNhZGFyKHBWZXJ0KSkgKHgyYW5jID0gY2FhcihwNDUpKSAoeTJhbmMgPSBjYWRhcihwNDUpKSAoeDNhbmMgPSBjYWFkcihwNDUpKSAoeTNhbmMgPSBjYWRhZHIocDQ1KSkgKHg0YW5jID0gY2FhcihwSG9yKSkgKHk0YW5jID0gY2FkYXIocEhvcikpICh4NWFuYyA9IHg0YW5jKSAoeTVhbmMgPSAoeTRhbmMgLSBhbmNXKSkgKHg2YW5jID0gKHgzYW5jIC0gKGFuY1cgKiB0YW5DYWwpKSkgKHk2YW5jID0gKHkzYW5jIC0gYW5jVykpICh4N2FuYyA9ICh4MmFuYyAtIGFuY1cpKSAoeTdhbmMgPSAoeTJhbmMgLSAoYW5jVyAqIHRhbkNhbCkpKSAoeDhhbmMgPSAoeDFhbmMgLSBhbmNXKSkgKHk4YW5jID0geTFhbmMpICh4NmFuYyA9IChncmlkICogKGZsb29yICh4NmFuYyAqIGdyaWRNdWx0KSkpKSAoeTdhbmMgPSAoZ3JpZCAqIChmbG9vciAoeTdhbmMgKiBncmlkTXVsdCkpKSkgKHgxID0gKHgxYW5jICsgaW1wRW5jNDUpKSAoeTEgPSAoeTFhbmMgLSBpbXBFbmMpKSAoeDIgPSAoeDJhbmMgKyBpbXBFbmM0NSkpICh5MiA9IHkyYW5jKSAoeDMgPSB4M2FuYykgKHkzID0gKHkzYW5jICsgaW1wRW5jNDUpKSAoeDQgPSAoeDRhbmMgLSBpbXBFbmMpKSAoeTQgPSAoeTRhbmMgKyBpbXBFbmM0NSkpICh4NSA9ICh4NWFuYyAtIGltcEVuYykpICh5NSA9ICh5NWFuYyAtIGltcEVuYzQ1KSkgKHg2ID0gKHg2YW5jIC0gaW1wRW5jKSkgKHk2ID0gKHk2YW5jIC0gaW1wRW5jNDUpKSAoeDcgPSAoeDdhbmMgLSBpbXBFbmM0NSkpICh5NyA9ICh5N2FuYyAtIGltcEVuYykpICh4OCA9ICh4OGFuYyAtIGltcEVuYzQ1KSkgKHk4ID0gKHk4YW5jIC0gaW1wRW5jKSkgKHBBbGwgPSBsaXN0KCh4MTp5MSkgKHgyOnkyKSAoeDM6eTMpICh4NDp5NCkgKHg1Onk1KSAoeDY6eTYpICh4Nzp5NykgKHg4Onk4KSAoeDE6eTEpKSkgKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxpc3QoaW1wTGF5ZXIgImRyYXdpbmciKSBwQWxsKSkgKGhvcml6T3I0NSAoeDFhbmMgPSBjYWFyKHBIb3IpKSAoeTFhbmMgPSBjYWRhcihwSG9yKSkgKHgyYW5jID0gKHgxYW5jICsgYW5jaG9yTGVuZ3RoWCkpICh5MmFuYyA9ICh5MWFuYyAtIGFuY1cpKSAoeDEgPSAoeDFhbmMgLSBpbXBFbmMpKSAoeTEgPSAoeTFhbmMgKyBpbXBFbmMpKSAoeDIgPSAoeDJhbmMgKyBpbXBFbmMpKSAoeTIgPSAoeTJhbmMgLSBpbXBFbmMpKSAocEFsbCA9IGxpc3QoKHgxOnkxKSAoeDI6eTIpKSkgKGRiQ3JlYXRlUmVjdCB0Y0NlbGxWaWV3IGxpc3QoaW1wTGF5ZXIgImRyYXdpbmciKSBwQWxsKSkgKHQgKHgxYW5jID0gY2FhcihwNDUpKSAoeTFhbmMgPSBjYWRhcihwNDUpKSAoeDJhbmMgPSBjYWFkcihwNDUpKSAoeTJhbmMgPSBjYWRhZHIocDQ1KSkgKHgzYW5jID0gKHgyYW5jIC0gYW5jVzQ1KSkgKHkzYW5jID0gKHkyYW5jIC0gYW5jVzQ1KSkgKHg0YW5jID0gKHgxYW5jIC0gYW5jVzQ1KSkgKHk0YW5jID0gKHkxYW5jIC0gYW5jVzQ1KSkgKHgxID0gKHgxYW5jICsgaW1wRW5jNDUpKSAoeTEgPSB5MWFuYykgKHgyID0geDJhbmMpICh5MiA9ICh5MmFuYyArIGltcEVuYzQ1KSkgKHgzID0gKHgzYW5jIC0gaW1wRW5jNDUpKSAoeTMgPSB5M2FuYykgKHg0ID0geDRhbmMpICh5NCA9ICh5NGFuYyAtIGltcEVuYzQ1KSkgKHBBbGwgPSBsaXN0KCh4MTp5MSkgKHgyOnkyKSAoeDM6eTMpICh4NDp5NCkpKSAoZGJDcmVhdGVQb2x5Z29uIHRjQ2VsbFZpZXcgbGlzdChpbXBMYXllciAiZHJhd2luZyIpIHBBbGwpKSkpKSkAKGFuY2hvckxheWVycyBhbmNob3JJbXBMYXllcnMgYW5jaG9yQ29udGFjdHMgYW5jaG9yV2lkdGggYW5jaG9yU3BhY2UgdmlhUGl0Y2ggY29udGFjdFBpdGNoIGdyaWQgc3BsTGF5ZXIgc3BsTGF5ZXJNYXhXaWR0aCBhbmNob3JaU2hyaW5rIGFuY1R5cGUgZW5kU3R5bGUgZnVsbEFuY2hvciBob3Jpek9yNDUgYW5jaG9yTGVuZ3RoWCBhbmNob3JMZW5ndGhZIGFuY2hvckxlbmd0aFogbnVtQW5jaG9ycyBjaGFtZmVyIGV2ZW5FbmRzIHhMaXN0IHJvb3QyIGdyaWRNdWx0IGFuY2hvckNlbnRlciBhbmNob3JDZW50ZXJaIGFuY2hvcldpZHRoWiBhbmNob3JTcGFjZVogdGFuQ2FsIGRBbmNob3JMZW5ndGggY2hhbWZlckwgbnVtQ29udGFjdHMgbWluU3BhY2UgY29udGFjdCBtaW5TcGFjZTQ1IHVzZVBpdGNoIHVzZVBpdGNoNDUgY29udGFjdFNwYWNlIGNvbnRhY3RTcGFjZTQ1IG1pbkxlbmd0aCB4MCB5MCBkeDAgZHkwIGR4IGR5IGRkeCBkZHkgaSB0aGlzTGF5ZXIgcFZlcnQgbnVtQXJyYXlzIHhPZmZzZXQgdmVyT2ZmU2V0IGogayBvY2N1cGllZFNwYWNlIGNvbnRhY3RXaWR0aCB4bCB5bCB4dSB5dSBjb250YWN0SW1wbGFudCBjb250YWN0SW1wRW5jWCBjb250YWN0SW1wRW5jWSB4MSB5MSB4MiB5MiB4MyB5MyBzam5fWDYgc2puX1k2IHNqbl9YNyBzam5fWTcgc2puX1g4IHNqbl9ZOCBzam5fWDUgc2puX1k1IHRlbXBfT2Zmc2V0IHA0NSBvZmZzZXQgc2x0T2Zmc2V0IHN0YXJ0IGhvcml6T2ZmU2V0IHBIb3IgeU9mZnNldCBpbXBTZXQgaW1wTGF5ZXIgaW1wRW5jIGFuY1cgYW5jVzQ1IGltcEVuYzQ1IGltcFcgaW1wVzQ1IGltcEwgeDFhbmMgeTFhbmMgeDJhbmMgeTJhbmMgeDNhbmMgeTNhbmMgeDRhbmMgeTRhbmMgeDVhbmMgeTVhbmMgeDZhbmMgeTZhbmMgeDdhbmMgeTdhbmMgeDhhbmMgeThhbmMgeDQgeTQgeDUgeTUgeDYgeTYgeDcgeTcgeDggeTggcEFsbCkAKChhbmNUeXBlICIiKSAoZW5kU3R5bGUgIiIpIChmdWxsQW5jaG9yICJGQUxTRSIpIChob3Jpek9yNDUgIkZBTFNFIikgKGFuY2hvckxlbmd0aFggMjAuMCkgKGFuY2hvckxlbmd0aFkgMjAuMCkgKGFuY2hvckxlbmd0aFogMC4wKSAobnVtQW5jaG9ycyAxKSAoY2hhbWZlciAiRkFMU0UiKSAoZXZlbkVuZHMgIkZBTFNFIikpACgoYW5jaG9yTGF5ZXJzICcoInBvbHkiICJtZXQxIikpIChhbmNob3JJbXBMYXllcnMgJ25pbCkgKGFuY2hvckNvbnRhY3RzICcoJygibWNvbiIgMC41KSAnKCJ2aWEiIDAuNykpKSAoYW5jaG9yV2lkdGggNy41KSAoYW5jaG9yU3BhY2UgMTIuNSkgKHZpYVBpdGNoIDcuNzUpIChjb250YWN0UGl0Y2ggNy43NSkgKGdyaWQgMC4wMjUpIChzcGxMYXllciBuaWwpIChzcGxMYXllck1heFdpZHRoIDcuNSkgKGFuY2hvclpTaHJpbmsgMC4wKSkAKChsYWJlbCA9IHVwcGVyQ2FzZSh0ZXh0KSkgaWYoKHRleHRTcGFjaW5nIDwgMCkgZXJyb3IoInBhcnROdW1DbGFzczogdGV4dFNwYWNpbmcgbXVzdCBiZSA+PSAwIikpIGlmKCh0ZXh0ID09ICIiKSBlcnJvcigicGFydE51bUNsYXNzOiB0ZXh0IHBhcmFtZXRlciBtdXN0IGV4aXN0IikpIChjb29yZCA9IDApIGZvcihjIDEgc3RybGVuKGxhYmVsKSAoY3VycmVudExldHRlck5hbWUgPSBzdHJjYXQoInBhcnRudW0iIHN1YnN0cmluZyhsYWJlbCBjIDEpKSkgKGN1cnJlbnRMZXR0ZXIgPSAoZGJPcGVuQ2VsbFZpZXcgKHRjQ2VsbFZpZXd+PmxpYikgY3VycmVudExldHRlck5hbWUgInN5bWJvbGljIiBuaWwgInIiKSkgdW5sZXNzKGN1cnJlbnRMZXR0ZXIgZXJyb3IoInBhcnROdW1DbGFzczogIENhbm5vdCBmaW5kL29wZW4gbGV0dGVyIGNlbGwgJXNcbiIgY3VycmVudExldHRlck5hbWUpKSB1bmxlc3MoKGN1cnJlbnRMZXR0ZXJ+PmlzUGFyYW1DZWxsKSBlcnJvcigicGFydE51bUNsYXNzOiAgTGV0dGVyIGNlbGwgJXMgaXMgbm90IGEgcGNlbGxcbiIgY3VycmVudExldHRlck5hbWUpKSAocG9seUlEID0gKGRiQ3JlYXRlUGFyYW1JbnN0IHRjQ2VsbFZpZXcgY3VycmVudExldHRlciBzdHJjYXQoImxldHRlciIgc3ByaW50ZihuaWwgIiVkIiBjKSkgKDA6MCkgIlIwIiAxIGxpc3QobGlzdCgibGF5ZXJzIiAibGlzdCIgbGF5ZXJzKSkpKSAobWFnbmlmaWNhdGlvbiA9ICgxICsgKCh0ZXh0U2NhbGUgLSAxKSAqIDAuNSkpKSAoZGJNb3ZlRmlnIHBvbHlJRCBuaWwgbGlzdCgoY29vcmQ6MCkgIlIwIiBtYWduaWZpY2F0aW9uKSkgKGNvb3JkID0gKGNvb3JkICsgKGNhYWRyKChwb2x5SUQtPmJCb3gpKSAtIGNhYXIoKHBvbHlJRC0+YkJveCkpKSkpIChjb29yZCA9IChjb29yZCArIHRleHRTcGFjaW5nKSkpKQAodGV4dCBsYXllcnMgdGV4dFNwYWNpbmcgdGV4dFNjYWxlIGxhYmVsIGNvb3JkIGMgY3VycmVudExldHRlck5hbWUgY3VycmVudExldHRlciBwb2x5SUQgbWFnbmlmaWNhdGlvbikAKCh0ZXh0ICJhYmMiKSAobGF5ZXJzIGxpc3QobGlzdCgibWV0MSIgImRyYXdpbmciKSkpICh0ZXh0U3BhY2luZyAxLjI1KSAodGV4dFNjYWxlIDEuMCkpACgoc2hhcGUgPSBjYWFhcihzaGFwZSkpIGZvcmVhY2gobHBwIGxheWVycyAocG9seUlEID0gKGRiQ3JlYXRlUG9seWdvbiB0Y0NlbGxWaWV3IGxwcCBzaGFwZSkpKSkAKHNoYXBlIGxheWVycyBscHAgcG9seUlEKQAoKGxheWVycyBsaXN0KGxpc3QoIm1ldDEiICJkcmF3aW5nIikpKSkAKChzaGFwZSBuaWwpKQAoKGRiaVBERENyZWF0ZVJ1bGVDb250YWN0IHRjQ2VsbFZpZXcgbGlzdCgodGNDZWxsVmlld34+Y2VsbE5hbWUpIGxpc3QobGF5ZXIwIGxheWVyMExpc3QpIGxpc3QodmlhMDEgdmlhMDFMaXN0KSBsaXN0KGxheWVyMSBsYXllcjFMaXN0KSBsaXN0KHZpYTEyIHZpYTEyTGlzdCkgbGlzdChsYXllcjIgbGF5ZXIyTGlzdCkgbGlzdCh2aWEyMyB2aWEyM0xpc3QpIGxpc3QobGF5ZXIzIGxheWVyM0xpc3QpIGxpc3QodmlhMzQgdmlhMzRMaXN0KSBsaXN0KGxheWVyNCBsYXllcjRMaXN0KSBsaXN0KHZpYTQ1IHZpYTQ1TGlzdCkgbGlzdChsYXllcjUgbGF5ZXI1TGlzdCkgbGlzdCh2aWE1NiB2aWE1Nkxpc3QpIGxpc3QobGF5ZXI2IGxheWVyNkxpc3QpKSkpAChsYXllcjAgbGF5ZXIwTGlzdCB2aWEwMSB2aWEwMUxpc3QgbGF5ZXIxIGxheWVyMUxpc3QgdmlhMTIgdmlhMTJMaXN0IGxheWVyMiBsYXllcjJMaXN0IHZpYTIzIHZpYTIzTGlzdCBsYXllcjMgbGF5ZXIzTGlzdCB2aWEzNCB2aWEzNExpc3QgbGF5ZXI0IGxheWVyNExpc3QgdmlhNDUgdmlhNDVMaXN0IGxheWVyNSBsYXllcjVMaXN0IHZpYTU2IHZpYTU2TGlzdCBsYXllcjYgbGF5ZXI2TGlzdCkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKChsYXllcjAgbmlsKSAobGF5ZXIwTGlzdCBuaWwpICh2aWEwMSBuaWwpICh2aWEwMUxpc3QgbmlsKSAobGF5ZXIxIG5pbCkgKGxheWVyMUxpc3QgbmlsKSAodmlhMTIgbmlsKSAodmlhMTJMaXN0IG5pbCkgKGxheWVyMiBuaWwpIChsYXllcjJMaXN0IG5pbCkgKHZpYTIzIG5pbCkgKHZpYTIzTGlzdCBuaWwpIChsYXllcjMgbmlsKSAobGF5ZXIzTGlzdCBuaWwpICh2aWEzNCBuaWwpICh2aWEzNExpc3QgbmlsKSAobGF5ZXI0IG5pbCkgKGxheWVyNExpc3QgbmlsKSAodmlhNDUgbmlsKSAodmlhNDVMaXN0IG5pbCkgKGxheWVyNSBuaWwpIChsYXllcjVMaXN0IG5pbCkgKHZpYTU2IG5pbCkgKHZpYTU2TGlzdCBuaWwpIChsYXllcjYgbmlsKSAobGF5ZXI2TGlzdCBuaWwpKQAoKGRiaVBERENyZWF0ZVJlY3RQaW4gdGNDZWxsVmlldyBsYXllcjEgbGF5ZXIxSW1wTGF5ZXIgbGF5ZXIxSW1wRW5jIG1hc2thYmxlIHcgbCkpAChsYXllcjEgbGF5ZXIxSW1wTGF5ZXIgbGF5ZXIxSW1wRW5jIG1hc2thYmxlIHcgbCkAKCh3IDAuMCkgKGwgMC4wKSkAKChsYXllcjEgImhpbGl0ZSIpIChsYXllcjFJbXBMYXllciBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobWFza2FibGUgdCkpACgoZGJpUEREQ3JlYXRlUGluIHRjQ2VsbFZpZXcgbGF5ZXIxIGxheWVyMiBsYXllcjFJbXBMYXllciBsYXllcjFJbXBFbmMgbGF5ZXIySW1wTGF5ZXIgbGF5ZXIySW1wRW5jIG1hc2thYmxlIHcxIHcyKSkAKGxheWVyMSBsYXllcjIgbGF5ZXIxSW1wTGF5ZXIgbGF5ZXIxSW1wRW5jIGxheWVyMkltcExheWVyIGxheWVyMkltcEVuYyBtYXNrYWJsZSB3MSB3MikAKCh3MSAwLjApICh3MiAwLjApKQAoKGxheWVyMSAiaGlsaXRlIikgKGxheWVyMiBuaWwpIChsYXllcjFJbXBMYXllciBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wTGF5ZXIgbmlsKSAobGF5ZXIySW1wRW5jIDAuMCkgKG1hc2thYmxlIHQpKQAoKGRiaVBERENyZWF0ZUNvbnRhY3QgdGNDZWxsVmlldyB2aWFMYXllciBsYXllcjEgbGF5ZXIyIGVuY0J5TGF5ZXIxIGVuY0J5TGF5ZXIyIGxheWVyMUltcExheWVyIGxheWVyMUltcEVuYyBsYXllcjJJbXBMYXllciBsYXllcjJJbXBFbmMgdyBsIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB4QmlhcyB5QmlhcykpACh2aWFMYXllciBsYXllcjEgbGF5ZXIyIGVuY0J5TGF5ZXIxIGVuY0J5TGF5ZXIyIGxheWVyMUltcExheWVyIGxheWVyMUltcEVuYyBsYXllcjJJbXBMYXllciBsYXllcjJJbXBFbmMgdyBsIHJvdyBjb2x1bW4geFBpdGNoIHlQaXRjaCB4QmlhcyB5QmlhcykAKCh3IDAuMCkgKGwgMC4wKSAocm93IDEpIChjb2x1bW4gMSkgKHhQaXRjaCAwLjApICh5UGl0Y2ggMC4wKSAoeEJpYXMgImNlbnRlciIpICh5QmlhcyAiY2VudGVyIikpACgodmlhTGF5ZXIgImhpbGl0ZSIpIChsYXllcjEgImhpbGl0ZSIpIChsYXllcjIgImhpbGl0ZSIpIChlbmNCeUxheWVyMSAwLjApIChlbmNCeUxheWVyMiAwLjApIChsYXllcjFJbXBMYXllciBuaWwpIChsYXllcjFJbXBFbmMgMC4wKSAobGF5ZXIySW1wTGF5ZXIgbmlsKSAobGF5ZXIySW1wRW5jIDAuMCkpACgoImhvcml6b250YWwiICJ3IikgKCJ2ZXJ0aWNhbCIgImwiKSkAKChkYmlQRERDcmVhdGVEZXBsZXRpb24gdGNDZWxsVmlldyBzZExheWVyIGdhdGVMYXllciBkZXBsTGF5ZXIgc2RFeHQgZ2F0ZUV4dCBkZXBsRW5jU0REaXIgZGVwbEVuY0dhdGVEaXIgc2RJbXBMYXllciBzZEltcEVuYyB3IGwpKQAoc2RMYXllciBnYXRlTGF5ZXIgZGVwbExheWVyIHNkRXh0IGdhdGVFeHQgZGVwbEVuY1NERGlyIGRlcGxFbmNHYXRlRGlyIHNkSW1wTGF5ZXIgc2RJbXBFbmMgdyBsKQAoKHcgMC4wKSAobCAwLjApKQAoKHNkTGF5ZXIgImhpbGl0ZSIpIChnYXRlTGF5ZXIgImhpbGl0ZSIpIChkZXBsTGF5ZXIgImhpbGl0ZSIpIChzZEV4dCAwLjApIChnYXRlRXh0IDAuMCkgKGRlcGxFbmNTRERpciAwLjApIChkZXBsRW5jR2F0ZURpciAwLjApIChzZEltcExheWVyIG5pbCkgKHNkSW1wRW5jIDAuMCkpACgoImhvcml6b250YWwiICJ3IikgKCJ2ZXJ0aWNhbCIgImwiKSkAKChkYmlQRERDcmVhdGVFbmhhbmNlbWVudCB0Y0NlbGxWaWV3IHNkTGF5ZXIgZ2F0ZUxheWVyIHNkRXh0IGdhdGVFeHQgc2RJbXBMYXllciBzZEltcEVuYyB3IGwpKQAoc2RMYXllciBnYXRlTGF5ZXIgc2RFeHQgZ2F0ZUV4dCBzZEltcExheWVyIHNkSW1wRW5jIHcgbCkAKCh3IDAuMCkgKGwgMC4wKSkAKChzZExheWVyICJoaWxpdGUiKSAoZ2F0ZUxheWVyICJoaWxpdGUiKSAoc2RFeHQgMC4wKSAoZ2F0ZUV4dCAwLjApIChzZEltcExheWVyIG5pbCkgKHNkSW1wRW5jIDAuMCkpACgobmlsICgoInNpemUiICgoInRhcmdldCIgImRyYXdpbmciKSBuaWwpICJmdXNlUmVnaW9uIiAicm91dGluZyIgdCkgKCJvciIgKCgiZGlmZiIgImRyYXdpbmciKSAoInRhcCIgImRyYXdpbmciKSkgInRlbXBmb20iICJyb3V0aW5nIiB0KSAoInNpemUiICgidGVtcGZvbSIgLTAuMTM1KSAoInBvbHkiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiYy1ub3QiICgoInBvbHkiICJkcmF3aW5nIikgInRlbXBmb20iKSAoInBvbHkiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiYy1ub3QiICgoInBvbHkiICJkcmF3aW5nIikgKCJwb2x5IiAicmVzIikpICgicG9seSIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCJmdXNlUmVnaW9uIikgKCJwb2x5IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJsaTEiICJkcmF3aW5nIikgKCJsaTEiICJyZXMiKSkgKCJsaTEiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgiZnVzZVJlZ2lvbiIpICgibGkxIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQxIiAiZHJhd2luZyIpICgibWV0MSIgInJlcyIpKSAoIm1ldDEiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiYy1ub3QiICgoIm1ldDEiICJkcmF3aW5nIikgKCJtZXQxIiAic2hvcnQiKSkgKCJtZXQxIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQxIiAib3B0aW9uMSIpKSAoIm1ldDEiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDEiICJvcHRpb24yIikpICgibWV0MSIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0MSIgIm9wdGlvbjMiKSkgKCJtZXQxIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQxIiAib3B0aW9uNCIpKSAoIm1ldDEiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDEiICJvcHRpb241IikpICgibWV0MSIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0MSIgIm9wdGlvbjYiKSkgKCJtZXQxIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQxIiAib3B0aW9uNyIpKSAoIm1ldDEiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDEiICJvcHRpb244IikpICgibWV0MSIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCJmdXNlUmVnaW9uIikgKCJtZXQxIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQyIiAiZHJhd2luZyIpICgibWV0MiIgInJlcyIpKSAoIm1ldDIiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiYy1ub3QiICgoIm1ldDIiICJkcmF3aW5nIikgKCJtZXQyIiAic2hvcnQiKSkgKCJtZXQyIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQyIiAiZHJhd2luZyIpICgibWV0MiIgImZ1c2UiKSkgKCJtZXQyIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQyIiAib3B0aW9uMSIpKSAoIm1ldDIiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDIiICJvcHRpb24yIikpICgibWV0MiIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0MiIgIm9wdGlvbjMiKSkgKCJtZXQyIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQyIiAib3B0aW9uNCIpKSAoIm1ldDIiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDIiICJvcHRpb241IikpICgibWV0MiIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0MiIgIm9wdGlvbjYiKSkgKCJtZXQyIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQyIiAib3B0aW9uNyIpKSAoIm1ldDIiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDIiICJvcHRpb244IikpICgibWV0MiIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCJmdXNlUmVnaW9uIikgKCJtZXQyIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQzIiAiZHJhd2luZyIpICgibWV0MyIgInJlcyIpKSAoIm1ldDMiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiYy1ub3QiICgoIm1ldDMiICJkcmF3aW5nIikgKCJtZXQzIiAic2hvcnQiKSkgKCJtZXQzIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQzIiAiZHJhd2luZyIpICgibWV0MyIgImZ1c2UiKSkgKCJtZXQzIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQzIiAib3B0aW9uMSIpKSAoIm1ldDMiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDMiICJvcHRpb24yIikpICgibWV0MyIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0MyIgIm9wdGlvbjMiKSkgKCJtZXQzIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQzIiAib3B0aW9uNCIpKSAoIm1ldDMiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDMiICJvcHRpb241IikpICgibWV0MyIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0MyIgIm9wdGlvbjYiKSkgKCJtZXQzIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQzIiAib3B0aW9uNyIpKSAoIm1ldDMiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDMiICJvcHRpb244IikpICgibWV0MyIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCJmdXNlUmVnaW9uIikgKCJtZXQzIiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQ0IiAiZHJhd2luZyIpICgibWV0NCIgInJlcyIpKSAoIm1ldDQiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiYy1ub3QiICgoIm1ldDQiICJkcmF3aW5nIikgKCJtZXQ0IiAic2hvcnQiKSkgKCJtZXQ0IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQ0IiAiZHJhd2luZyIpICgibWV0NCIgImZ1c2UiKSkgKCJtZXQ0IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQ0IiAib3B0aW9uMSIpKSAoIm1ldDQiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDQiICJvcHRpb24yIikpICgibWV0NCIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0NCIgIm9wdGlvbjMiKSkgKCJtZXQ0IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQ0IiAib3B0aW9uNCIpKSAoIm1ldDQiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDQiICJvcHRpb241IikpICgibWV0NCIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0NCIgIm9wdGlvbjYiKSkgKCJtZXQ0IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQ0IiAib3B0aW9uNyIpKSAoIm1ldDQiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDQiICJvcHRpb244IikpICgibWV0NCIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCJmdXNlUmVnaW9uIikgKCJtZXQ0IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQ1IiAiZHJhd2luZyIpICgibWV0NSIgInJlcyIpKSAoIm1ldDUiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiYy1ub3QiICgoIm1ldDUiICJkcmF3aW5nIikgKCJtZXQ1IiAic2hvcnQiKSkgKCJtZXQ1IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoImMtbm90IiAoKCJtZXQ1IiAiZHJhd2luZyIpICgibWV0NSIgImZ1c2UiKSkgKCJtZXQ1IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQ1IiAib3B0aW9uMSIpKSAoIm1ldDUiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDUiICJvcHRpb24yIikpICgibWV0NSIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0NSIgIm9wdGlvbjMiKSkgKCJtZXQ1IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQ1IiAib3B0aW9uNCIpKSAoIm1ldDUiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDUiICJvcHRpb241IikpICgibWV0NSIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCgibWV0NSIgIm9wdGlvbjYiKSkgKCJtZXQ1IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSAoIj0+IiAoKCJtZXQ1IiAib3B0aW9uNyIpKSAoIm1ldDUiICJkcmF3aW5nIikgInJvdXRpbmciIHQpICgiPT4iICgoIm1ldDUiICJvcHRpb244IikpICgibWV0NSIgImRyYXdpbmciKSAicm91dGluZyIgdCkgKCI9PiIgKCJmdXNlUmVnaW9uIikgKCJtZXQ1IiAiZHJhd2luZyIpICJyb3V0aW5nIiB0KSkpKQAoKCgibndlbGwiICJkcmF3aW5nIikgKCJwckJvdW5kYXJ5IiAiZHJhd2luZyIpIDAuMCkgKCgiZGlmZiIgImRyYXdpbmciKSAoInByQm91bmRhcnkiICJkcmF3aW5nIikgMC4wKSAoKCJ0YXAiICJkcmF3aW5nIikgKCJwckJvdW5kYXJ5IiAiZHJhd2luZyIpIDAuMCkgKCgicG9seSIgImRyYXdpbmciKSAoInByQm91bmRhcnkiICJkcmF3aW5nIikgMC4wKSAoKCJsaWNvbjEiICJkcmF3aW5nIikgKCJwckJvdW5kYXJ5IiAiZHJhd2luZyIpIDAuMCkgKCgibGkxIiAiZHJhd2luZyIpICgicHJCb3VuZGFyeSIgImRyYXdpbmciKSAwLjApICgoIm1jb24iICJkcmF3aW5nIikgKCJwckJvdW5kYXJ5IiAiZHJhd2luZyIpIDAuMCkgKCgibWV0MSIgImRyYXdpbmciKSAoInByQm91bmRhcnkiICJkcmF3aW5nIikgMC4wKSAoKCJ2aWEiICJkcmF3aW5nIikgKCJwckJvdW5kYXJ5IiAiZHJhd2luZyIpIDAuMCkgKCgibWV0MiIgImRyYXdpbmciKSAoInByQm91bmRhcnkiICJkcmF3aW5nIikgMC4wKSAoKCJ2aWEyIiAiZHJhd2luZyIpICgicHJCb3VuZGFyeSIgImRyYXdpbmciKSAwLjApICgoIm1ldDMiICJkcmF3aW5nIikgKCJwckJvdW5kYXJ5IiAiZHJhd2luZyIpIDAuMCkgKCgidmlhMyIgImRyYXdpbmciKSAoInByQm91bmRhcnkiICJkcmF3aW5nIikgMC4wKSAoKCJtZXQ0IiAiZHJhd2luZyIpICgicHJCb3VuZGFyeSIgImRyYXdpbmciKSAwLjApICgoIm1ldDUiICJkcmF3aW5nIikgKCJwckJvdW5kYXJ5IiAiZHJhd2luZyIpIDAuMCkpACgoKCJkaWZmIiAiZHJhd2luZyIpICgiZGlmZiIgInBpbiIpKSAoKCJwb2x5IiAiZHJhd2luZyIpICgicG9seSIgInBpbiIpKSAoKCJsaTEiICJkcmF3aW5nIikgKCJsaTEiICJwaW4iKSkgKCgibWV0MSIgImRyYXdpbmciKSAoIm1ldDEiICJwaW4iKSAoIm1ldDEiICJuZXQiKSkgKCgibWV0MiIgImRyYXdpbmciKSAoIm1ldDIiICJwaW4iKSAoIm1ldDIiICJuZXQiKSkgKCgibWV0MyIgImRyYXdpbmciKSAoIm1ldDMiICJwaW4iKSAoIm1ldDMiICJuZXQiKSkgKCgibWV0NCIgImRyYXdpbmciKSAoIm1ldDQiICJwaW4iKSAoIm1ldDQiICJuZXQiKSkgKCgibWV0NSIgImRyYXdpbmciKSAoIm1ldDUiICJwaW4iKSAoIm1ldDUiICJuZXQiKSkpACgoKCJzY3M4bXNfZHYiICJMMU0xX0MiICJzeW1ib2xpYyIpIHQpICgoInNjczhtc19kdiIgIk0xTTJfQyIgInN5bWJvbGljIikgdCkgKCgic2NzOG1zX2R2IiAiUFlMMV9DIiAic3ltYm9saWMiKSB0KSAoKCJzY3M4bXNfZHYiICJNMk0zX0MiICJzeW1ib2xpYyIpIHQpICgoInNjczhtc19kdiIgIk0zTTRfQyIgInN5bWJvbGljIikgdCkgKCgic2NzOG1zX2R2IiAiTTRNNV9DIiAic3ltYm9saWMiKSB0KSkAKCgoIm53ZWxsIiAiZHJhd2luZyIpICJuX3dlbGwiICJvZmYiIDAuODQgMS4yNyBuaWwgbmlsKSAoKCJkaWZmIiAiZHJhd2luZyIpICJuX2RpZmZ1c2lvbiIgIm9mZiIgMC4xNSAwLjI3IG5pbCBuaWwpICgoInRhcCIgImRyYXdpbmciKSAibl9kaWZmdXNpb24iICJvZmYiIDAuMTUgMC4yNyBuaWwgbmlsKSAoKCJwb2x5IiAiZHJhd2luZyIpICJwb2x5c2lsaWNvbiIgIm9ydGhvZ29uYWwiIDAuMTUgMC4yMSBuaWwgdCkgKCgibGljb24xIiAiZHJhd2luZyIpICJjdXQiICJvZmYiIDAuMTcgMC4xNyBuaWwgdCkgKCgibGkxIiAiZHJhd2luZyIpICJtZXRhbCIgIm9ydGhvZ29uYWwiIDAuMTcgMC4xNyBuaWwgdCkgKCgibWNvbiIgImRyYXdpbmciKSAiY3V0IiAib2ZmIiAwLjE3IDAuMTkgbmlsIHQpICgoIm1ldDEiICJkcmF3aW5nIikgIm1ldGFsIiAib3J0aG9nb25hbCIgMC4xNCAwLjE0IG5pbCB0KSAoKCJ2aWEiICJkcmF3aW5nIikgImN1dCIgIm9mZiIgMC4xNSAwLjE3IG5pbCB0KSAoKCJtZXQyIiAiZHJhd2luZyIpICJtZXRhbCIgIm9ydGhvZ29uYWwiIDAuMTQgMC4xNCBuaWwgdCkgKCgidmlhMiIgImRyYXdpbmciKSAiY3V0IiAib2ZmIiAwLjIgMC4yIG5pbCB0KSAoKCJtZXQzIiAiZHJhd2luZyIpICJtZXRhbCIgIm9ydGhvZ29uYWwiIDAuMyAwLjMgbmlsIHQpICgoInZpYTMiICJkcmF3aW5nIikgImN1dCIgIm9mZiIgMC44IDAuOCBuaWwgdCkgKCgibWV0NCIgImRyYXdpbmciKSAibWV0YWwiICJvcnRob2dvbmFsIiAwLjggMC44IG5pbCB0KSAoKCJ2aWE0IiAiZHJhd2luZyIpICJjdXQiICJvZmYiIG5pbCBuaWwgbmlsIHQpICgoIm1ldDUiICJkcmF3aW5nIikgIm1ldGFsIiAib3J0aG9nb25hbCIgbmlsIG5pbCBuaWwgdCkpADEyNjM2NzM5MzkAIkphbiAxNiAxNDozMjoxOSAyMDEwIgAiQUciACIwMDEtMDQ0NjkiACJBTSIAIjAxLTcwMDA0IgAiQk4iACIwMDEtMDE5MDUiACJzOHEtNXIiAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAbmlsAG5pbABuaWwAKFRFQ0hnZXRSdWxlICJyY3ZpYTMiKQAoMC40IDAuNCkAKC0wLjQgLTAuNCkAbmlsAG5pbABuaWwAbmlsAChURUNIZ2V0UnVsZSAicmN2aWEyIikAKDAuMSAwLjEpACgtMC4xIC0wLjEpAG5pbABuaWwAbmlsAG5pbAAoVEVDSGdldFJ1bGUgInJjdmlhIikAKDAuMDc1IDAuMDc1KQAoLTAuMDc1IC0wLjA3NSkAbmlsAG5pbABuaWwAbmlsACgibkRGTDFfUFIiICJzeW1ib2xpYyIpACgiblRQTDFfUFIiICJzeW1ib2xpYyIpACgiUFlMMV9QUiIgInN5bWJvbGljIikAKCJMMU0xX1BSIiAic3ltYm9saWMiKQAoIk0xTTJfUFIiICJzeW1ib2xpYyIpACgiTTJNM19QUiIgInN5bWJvbGljIikAKCJNM000X1BSIiAic3ltYm9saWMiKQAoIk00TTVfUFIiICJzeW1ib2xpYyIpACgicnVsZVZpYSIgInN5bWJvbGljIikAKCJydWxlVmlhMSIgInN5bWJvbGljIikAKCJydWxlVmlhMiIgInN5bWJvbGljIikAKCJydWxlVmlhMyIgInN5bWJvbGljIikAKCJydWxlVmlhNCIgInN5bWJvbGljIikAKDYgX05BXyAoKDAgNikgKDAuMDIxNSA2KSAoMC4wMjI1IDYuODEpICgxIDQyKSkgX05BXyBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXykAKDYgX05BXyAoKDAgNikgKDAuMDIxNSA2KSAoMC4wMjI1IDYuODEpICgxIDQyKSkgX05BXyBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXykAKDYgX05BXyAoKDAgNikgKDAuMDIxNSA2KSAoMC4wMjI1IDYuODEpICgxIDQyKSkgX05BXyBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXykAKDYgX05BXyAoKDAgNikgKDAuMDIxNSA2KSAoMC4wMjI1IDYuODEpICgxIDQyKSkgX05BXyBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXykAKDMgX05BXyAoKDAgMykgKDAuMDIxNSAzKSAoMC4wMjI1IDMuNDA1KSAoMSAyMSkpIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8pAChfTkFfIDQwMCBfTkFfICgoMCA0MDApICgwLjAyMTUgNDAwKSAoMC4wMjI1IDI2MDkuMCkgKDEgMzAwMCkpIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXyBfTkFfKQAoX05BXyA0MDAgX05BXyAoKDAgNDAwKSAoMC4wMjE1IDQwMCkgKDAuMDIyNSAyNjA5LjApICgxIDMwMDApKSBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXykAKF9OQV8gNDAwIF9OQV8gKCgwIDQwMCkgKDAuMDIxNSA0MDApICgwLjAyMjUgMjYwOS4wKSAoMSAzMDAwKSkgX05BXyBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8pAChfTkFfIDQwMCBfTkFfICgoMCA0MDApICgwLjAyMTUgNDAwKSAoMC4wMjI1IDI2MDkuMCkgKDEgMzAwMCkpIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXyBfTkFfKQAoX05BXyA0MDAgX05BXyAoKDAgNDAwKSAoMC4wMjE1IDQwMCkgKDAuMDIyNSAyNjA5LjApICgxIDMwMDApKSBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXykAKF9OQV8gNzUgX05BXyAoKDAgNzUpICgwLjAyMTUgNzUpICgwLjAyMjUgODUuMTI1KSAoMSA1MjUpKSBfTkFfIF9OQV8gX05BXyBfTkFfIF9OQV8gX05BXykAKCIgMC40MDAwMDAgUkFOR0UgMy4wMDUwMDAgIDIwMDAuMDAgICIgIiAwLjQwMDAwMCBSQU5HRSAzLjAwNTAwMCAgMjAwMC4wMCBJTkZMVUVOQ0UgMC40MDAwMDAgICIpACgiIDAuNDAwMDAwIFJBTkdFIDMuMDA1MDAwICAyMDAwLjAwICAiICIgMC40MDAwMDAgUkFOR0UgMy4wMDUwMDAgIDIwMDAuMDAgSU5GTFVFTkNFIDAuNDAwMDAwICAiKQAoIiAwLjI4MDAwMCBSQU5HRSAzLjAwNTAwMCAgMjAwMC4wMCAgIiAiIDAuMjgwMDAwIFJBTkdFIDMuMDA1MDAwICAyMDAwLjAwIElORkxVRU5DRSAwLjI4MDAwMCAgIikAKCIgMC4yODAwMDAgUkFOR0UgMy4wMDUwMDAgIDIwMDAuMDAgICIgIiAwLjI4MDAwMCBSQU5HRSAzLjAwNTAwMCAgMjAwMC4wMCBJTkZMVUVOQ0UgMC4yODAwMDAgICIpAABkAAAABAAAAAAAAACkAAAAAAAAAAYAAAAFAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAKQAAAAAAAAAqAAAAAAAAACsAAAAAAAAALAAAAAAAAAAtAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAOwLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQEAAH0BAACOAAAA/////wAAAMAAAAAAAAAAALgehetRuK6/uB6F61G4rr+4HoXrUbiuP7gehetRuK4/AAAAAAAAAAC4HoXrUbi+v7gehetRuL6/uB6F61G4vj+4HoXrUbi+PwAAAAAAAAAAuB6F61G4rr+4HoXrUbiuv7gehetRuK4/uB6F61G4rj8AAAAAAAAAALgehetRuL6/uB6F61G4vr+4HoXrUbi+P7gehetRuL4/AAAAAAAAAACkcD0K16Owv6RwPQrXo7C/pHA9CtejsD+kcD0K16OwPwAAAAAAAAAAw/UoXI/Ctb/D9Shcj8K1v8P1KFyPwrU/w/UoXI/CtT8AAAAAAAAAAMP1KFyPwrW/w/UoXI/Ctb/D9Shcj8K1P8P1KFyPwrU/AAAAAAAAAAC4HoXrUbiuv7gehetRuK6/uB6F61G4rj+4HoXrUbiuPwAAAAAAAAAAuB6F61G4rr+4HoXrUbiuv7gehetRuK4/uB6F61G4rj+uR+F6FK7XP65H4XoUrtc/pHA9Ctej8D+QwvUoXI/+P+xRuB6F68E/4XoUrkfh2j/sUbgehevBP+F6FK5H4do/MzMzMzMz0z/NzMzMzMzsP5qZmZmZmek/MzMzMzMzA0DsUbgehevBP2dmZmZmZtY/7FG4HoXrwT9nZmZmZmbWPzMzMzMzM9M/AAAAAAAA6D+amZmZmZnpPwAAAAAAAABA7FG4HoXrwT/sUbgehevRP+xRuB6F68E/7FG4HoXr0T8zMzMzMzPTPzMzMzMzM+M/mpmZmZmZ6T+amZmZmZn5P+xRuB6F68E/4XoUrkfhyj/sUbgehevBP+F6FK5H4co/MzMzMzMz0z/NzMzMzMzcP5qZmZmZmek/MzMzMzMz8z+amZmZmZn5P5qZmZmZmfk/UrgehetRyD9SuB6F61HIP9ejcD0K19M/16NwPQrX0z+amZmZmZnZP5qZmZmZmdk/exSuR+F6pD97FK5H4XqkP7gehetRuI4/pHA9CtejsD97FK5H4XrUP3sUrkfhetQ/w/UoXI/CtT/D9Shcj8K1P8P1KFyPwrU/w/UoXI/CtT8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgehetRuK6/pHA9CtejwL+kcD0K16PAP6RwPQrXo8A/CtejcD0Kxz8K16NwPQrHPwrXo3A9Cse/AAAAAAAAAAC4HoXrUbi+v7gehetRuL6/uB6F61G4vj+4HoXrUbi+P8P1KFyPwsU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKRwPQrXo8A/pHA9CtejwD+kcD0K16PAvwrXo3A9Cse/CtejcD0Kxz8K16NwPQrHP8P1KFyPwsU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4HoXrUbiuv6RwPQrXo8C/pHA9CtejwD+kcD0K16PAPwAAAAAAAAAAuB6F61G4vr+4HoXrUbi+v7gehetRuL4/uB6F61G4vj/D9Shcj8LFPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkcD0K16PAP6RwPQrXo8A/pHA9CtejwL/D9Shcj8LFPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqZmZmZmZm/AAAAAAAAAAAAAAAAAAAAAOxRuB6F69E/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKRwPQrXo9A/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4HoXrUbiuP7gehetRuK4/uB6F61G4rr+4HoXrUbiuvwAAAAAAAAAApHA9Ctej0D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcT0K16NwzT8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7FK5H4Xq0PwAAAAAAAAAAAAAAAAAAAAB8FK5H4XqUP3wUrkfhepQ/fBSuR+F6lL98FK5H4XqUPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqZmZmZmbm/mpmZmZmZub+amZmZmZm5P5qZmZmZmbk/H4XrUbge1T8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7FK5H4Xq0PwAAAAAAAAAAAAAAAAAAAAB8FK5H4XqUP3wUrkfhepQ/fBSuR+F6lL8AAAAAAAAAAJqZmZmZmbm/mpmZmZmZub+amZmZmZm5P5qZmZmZmbk/H4XrUbge1T8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvUFJgAUwpPypOWl3zTxU/mQqWj0nrFD9yUS0iiskbP3JRLSKKyRs/xbk8jP/xFD9vaCUIsvkTP3lxRdbYLds+upoCuqsu4j6LvFHQkmzqPtL7xteeWfI+pyjyf6IN+z5U/IRYolgDP3JRLSKKyRs/b4oa6xZuhj2bK6GGm4R2PVfXw8hPL4A9kJ1RPGR2dT37YkV+cX1/PYc9cQ3erIw9XB3rb2Kmpj2uW05TFWTFPjqMMOKOebU+k8klZb3evj6nRZYv3He0PhnkT9D9B74+ktIJ9MtYyz4M1YM4xZnlPnnpJjEIrIw/Gy/dJAaBpT8bL90kBoGlPwAAAAAAAMA/AAAAAAAAwD9mZmZmZmYoQJqZmZmZGUhAmpmZmZmZ6T+amZmZmZnpP2ZmZmZmZtY/ZmZmZmZm1j+amZmZmZm5PwrXo3A9Csc/kst/SL99fT+u2F92Tx5mP67YX3ZPHmY/7j1cctwpjT+gNxWpMLZgP6A3FakwtmA/guLHmLuWYD+U3je+9sxiP8CTFi6rsDk/wJMWLquwOT97FK5H4Xp0P1K4HoXrUcg/KVyPwvUorD8zMzMzMzOzP2ZmZmZmZuY/UrgehetR2D+kcD0K16PAP8P1KFyPwtU/SOF6FK5H0T8AAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmpmZmZmZ6T8zMzMzMzPTP5qZmZmZmck/MzMzMzMz0z+amZmZmZnJP+xRuB6F68E/w/UoXI/CxT/sUbgehevBP1K4HoXrUcg/AAAAAAAA+D+amZmZmZnpP5qZmZmZmek/MzMzMzMz0z+amZmZmZnJPzMzMzMzM9M/mpmZmZmZyT9mZmZmZmbmP1K4HoXrUdg/UrgehetR2D8AAAAAAAAIQOxRuB6F68E/MzMzMzMzwz/sUbgehevBP+F6FK5H4fY/w/UoXI/CxT/D9Shcj8LFPzMzMzMzM8M/MzMzMzMz4z9mZmZmZmbmP1K4HoXrUdg/w/UoXI/CxT9I4XoUrkfRP1K4HoXrUdg/UrgehetR2D89CtejcD3aPzMzMzMzM8M/MzMzMzMzwz/hehSuR+HqPwAAAAAAAAhAmpmZmZmZ6T+amZmZmZnpPzMzMzMzM9M/mpmZmZmZyT8zMzMzMzPTP5qZmZmZmck/ZmZmZmZm5j9SuB6F61HYP1K4HoXrUdg/AAAAAAAAEEDsUbgehevBP8P1KFyPwsU/7FG4HoXrwT9SuB6F61HIP8P1KFyPwsU/4XoUrkfhyj9mZmZmZmbmP2ZmZmZmZuY/UrgehetR2D/D9Shcj8LFP0jhehSuR9E/UrgehetR2D9SuB6F61HYPwAAAAAAAOA/SOF6FK5H0T9I4XoUrkfRP1K4HoXrUfQ/AAAAAAAAI0CPwvUoXI/uP4XrUbgehdM/hetRuB6F0z+uR+F6FK7HP65H4XoUrsc/16NwPQrX0z9SuB6F61HIP6RwPQrXo7A/uB6F61G4rj+kcD0K16OwP3sUrkfheqQ/w/UoXI/CtT/D9Shcj8K1P7gehetRuK4/AAAAAAAA+D8AAAAAAAAAAJqZmZmZmbk/exSuR+F6tD+4HoXrUbi+P3sUrkfheqQ/exSuR+F6tD8K16NwPQrHPwrXo3A9Csc/mpmZmZmZ2T8EAAAApAAAAAAAAAAGAAAABQAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAACkAAAAAAAAAKgAAAAAAAAArAAAAAAAAACwAAAAAAAAALQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAYQAAAAAAAAD/////AAAAwBAAAACIiERIyFPv0rdRX04BAAAABAAAALwAAAAAAAAABwAAAAYAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAQMAAAAAAAC8AAAAAAAAAMAAAAAAAAAAxAAAAAAAAADIAAAAAAAAAMwAAAAAAAAALAEAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAALAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAACwAAAACAAAABwAAAAAAAMACAAAATBdnF3oXrRfaF/AXBxgLAFMYghgAAOMYBRkZGToZrRnNGfcZFRovGkMagBqwGtga/xoYG0YbaxusG/QbMRxgHKscBB0aHTMdUx1wHbod1x35HTIeUR5mHgAAAMACAAAAAQAFAAkAGQAhACUAKQAAAFEAYQAAAH0AgQCFAI0ApQCpAK0AsQC1ALkA0QDdAO0A9QD9AA0BFQEpAUEBUQFZAXEBlQGZAZ0BoQGpAc0B0QHVAekB8QH1AQEAAAAFBREJBQUFABEFAAUFCRkFBQUFBRkNEQkJEQkVGREJGSUFBQUJJQUFFQkFkQAEAACEAgAAPAAAAAAAAAAAAAAASxcAAGYXAACDFwAAjBcAAJQXAAB5FwAAuRcAAKwXAADZFwAA7xcAAAYYAAAgGAAAJRgAACoYAAAvGAAANBgAADsYAABAGAAARxgAABkYAABbGAAAYxgAAGwYAABSGAAAgRgAALUYAAC8GAAAwxgAAMoYAADRGAAArhgAAOIYAAAEGQAAIhkAABgZAABLGQAAWxkAAGsZAAB5GQAAhxkAADkZAACsGQAAzBkAAPYZAAAUGgAALhoAAEoaAABTGgAAXBoAAGQaAABsGgAAQhoAAIoaAACUGgAAfxoAALUaAAC8GgAAwxoAAK8aAADhGgAA1xoAAAMbAAD+GgAAHxsAACUbAAArGwAAFxsAAFAbAABFGwAAdBsAAH0bAACDGwAAihsAAGobAAC1GwAAvBsAAMQbAADMGwAA0hsAAKsbAAD+GwAABxwAABAcAADzGwAAPBwAADAcAABpHAAAcRwAAHocAACCHAAAixwAAF8cAACyHAAAuhwAAMIcAADKHAAA0xwAANwcAADlHAAA7hwAAKocAAADHQAAGR0AADIdAABXHQAAUh0AAHYdAAB7HQAAgB0AAIcdAACOHQAAmB0AAJ0dAACkHQAAbx0AALkdAADWHQAA/x0AAAQeAAALHgAAFh4AAPgdAAA4HgAAMR4AAFAeAABuHgAAdx4AAIAeAACJHgAAkh4AAJseAACkHgAArR4AALYeAAC/HgAAyB4AANEeAADaHgAA4x4AAOweAAD1HgAA/h4AAAcfAAAQHwAAGR8AACIfAAArHwAANB8AAD0fAABGHwAATx8AAFgfAABhHwAAah8AAHMfAAB8HwAAhR8AAI4fAACXHwAAoB8AAGUeAABkAAAAAQAAAAAAAAAEAAAAAAAAAJQBAAAAAAAAEAAAAA4AAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAMAAAAAAAABAwAAAAAAAAIDAAAAAAAABAMAAAAAAAAFAwAAAAAAAAABAAAAAAAAAwEAAAAAAAACAQAAAAAAAAYDAAAAAAAAlAEAAAAAAACYAQAAAAAAAJwBAAAAAAAAoAEAAAAAAACkAQAAAAAAAKwBAAAAAAAAYAMAAAAAAAAUBQAAAAAAAPQFAAAAAAAA1AYAAAAAAAC0BwAAAAAAALgHAAAAAAAAvAoAAAAAAAD//////////wQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAACAAAAAAAAAC0AQAAAAAAALQBAAAAAAAA4AAAAAAAAADgAAAAAAAAAOAAAAAAAAAABAAAAAAAAAAEAwAAAAAAAKQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA1QAAAAIAAADMAAAAAAAAwAAAAAAAAADAAgAAABMhEyETIRMhEyE8ITwhPCE8ITwhPCE8ITwhPCHlIfEh8SH5IfkhBiIPIhgiDyMeIzUjSyNcI8YjNSNLI1wjxiM1I0sjXCPGIzUjSyNcI8Yj1yMaJBokGiQaJBokGiQaJJYk+SQTIRMhEyETIRMhEyETIRMhEyETIQ0lGSVCJUolZCVkJXwlZCVkJYglPCF8JZQlZCV8JWQlZCWIJXwllCVkJWQlfCVkJYglPCF8JZQlZCV8JWQliCV8JZQlZCV8JYglfCWUJWQlfCWIJXwllCVkJWQlfCWIJTwhfCWUJWQlfCWIJXwllCVkJWQlfCVkJYglPCF8JZQlZCV8JWQliCU8IXwllCXRJdolTyZrJngmiiaXJqQmtSbKJtIm5SHlIeUh5SHlIeUh6SYAJxAneSfxIfEh8SHxIfEh8SHxIfEh8SHxIfEh8SHxIfEhiyeLJ4sniyeLJ4sniyeLJ4snlierJ/kh+SH5Ifkh+SH5Ifkh+SH5Ifkh+SH5Ifkh+SH5Ifkh+SHgJ+4nBiIGIgYiBiIGIgYiBiICKA0oFygkKDEoTChXKGQodSgvKQAAAAAAwAIAAAABAAMABQAHAAkACwANAA8AEQATABUAFwAZABsAHQAfACEAIwAlACcAKgArADkAOgAAAD4AQQBFAAAASABLAE8AAABSAFUAWQAAAFwAXwBjAGYAagBtAHAAcwB2AHkAfAB/AIYAigCMAI4AkACSAJQAlgCYAJoAnACeAK0AugC7AMsAzQDPANIA1QDXANgAAADbAN8A4QDjAOYA6AAAAOkA7QDvAPEA9AD2APcAAAD6AP4AAAECAQQBAAAFAQkBCwEMAQAADQERARMBFAEAABUBGQEbAR0BHwEgAQAAIwEnASkBKgEAACsBLwExATMBNgE4ATkBAAA8AUABQgFEAUYBRwEAAEkBTQFOAQAAAAAAAAAAAAAAAAAAWAEAAGABYgFkAWYBaAFqAWwBcwGZAQAAsAGyAbQBtgG4AboBvAG+AcABwgHEAcYByAHKAcwBzgHQAdIB1AHWAdgB2gHcAQAAAAA6AjwCPgJAAkICRAJGAkgCSgJMAk4CUAJSAlQCVgJYAloCXAIAAHMCdgJ5AnwCfwKCAoUCkQKYAAAAAAAAAAAAkgKUAgAAnwIAAAAAAMABAAAAPAACAwSBAAcICQoLDA2UpgDCAMsAAAAAJSYnKAAAAAAdHh8gISIjJAAwACssLS4vAAAFMzQ1Njc4OTo7AAAAAH8AgkJEgA4Ag0VISkwASwBNUU9STkdTUFRXWVVaWFtdXGBeX2JhZWNkaWdmVmtoam5scW9wdXN2cm13dHh7fXl6fnwAAAAAAAAAAAAAAACPkJGSkwAAAAARmZqbnJ2en6ChoqOkpa8AqKmqq6ytrgAAE7KztLW2t7i5uru8vb6/wMEAAADFxsfIycoAAAAAAAAAAAAAAAAAAAAAwAEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAADAAQAAAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXl5mam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zMzs/Q0dLT1AAAAAJCAAC4AQAAAQAAAAIAAAAgIAAgACAAIAAgMCAQIBAgECAQIBAgECAQIBAgMCAgAAAAMAAQADEALCApYCggKSAgICBgISAgIAAgAGABIAAgACAAYAEgACAAIABgASAAICggMCAQIBAgECAQIBAgECA4IDkgACAAIAAgACAAIAAgACAAIAAgACAoIChgLCA5IDAgECAwIBAgECAwIBAgEAAwIBAgECAQIBAgECAQABAgECAQIBAgECAQIBAgEAAQIBAgECAQIBAgEAAQIBAgECAQIBAAECAQIBAgECAQABAgECAQIBAgECAQIBAAECAQIBAgECAQABAgECAQIBAgECAQIBAgEAAQIBAgECAQIBAgECAQABAgLCA4ICkgKSApICkgKSApICkgLCApIBAgECAQIBAgECAQICAgJCAgIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAACAgICAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJCAgIBEAEQARABEAEQARABEALCAAgCkgKSApICkgLCAsICkgKQAAAAAAAAAAAAAAAAAAABAAAAANAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAADAwAAAAAAAAQDAAAAAAAABQMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAAAAAAcAQAAAAAAAAsAAAAKAAAAAAIAAAAAAAAAAQAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAgEAAAAAAAACAgAAAAAAACwhAAAAAACAAQIAAAAAAAAcAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAADgAAAAAAAAAWAAAAAAAAABAAQAAAAAAABwAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAACgAAAAAAAAAIAAAAAAAAADkAAAAAAAAACgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACwhAAD/////AQAAAAAAAAABAAAAAAAAAAEAAAAAAQAAAAAAAAAAAAD/////AAAAwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAMABAAAACAAAAAAAAAABAAAA1QAAAAEAAAABAAAAAQAAwL0AAAABAAAAISEhISEhISEhISEhISEhISEhISEhASEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhASEhIQEBIQEhISEhAQEhISEhISEBIQEhISEhASEhISEhISEhISEhISEhISEhASEhISEhISEhISEBIQEhISEhASEBISEhASEhISEhISEhASEhISEhISEhAQEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhASEhISEhISEhAQEhISEhIQEBAAAABAAAAOwAAAAAAAAACQAAAAgAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAA7AAAAAAAAADwAAAAAAAAAPQAAAAAAAAA+AAAAAAAAAD8AAAAAAAAAAgBAAAAAAAAFAEAAAAAAAAcAQAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAEAAAAAAAAA/////wAAAMABAAAAAQAAAAAAAMABAAAACgAAAAAAAMAAAAAAAAAAwAAAAAAAAAAABAAAAAAAAAB8AQAAAAAAAA8AAAAMAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAABAMAAAAAAAAAAQAAAAAAAAMBAAAAAAAAfAEAAAAAAACAAQAAAAAAAIQBAAAAAAAAiAEAAAAAAACMAQAAAAAAAJQBAAAAAAAA3AYAAAAAAAAkDAAAAAAAAGwRAAAAAAAAFBQAAAAAAAC8FgAAAAAAAMAWAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAIAAAAAAAAAEgFAAAAAAAASAUAAAAAAABIBQAAAAAAAKgCAAAAAAAAqAIAAAAAAAAEAAAAAAAAAEwGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAKACAACqAAAAbgIAAAAAAMAAAAAAAAAAwAIAAAACAAAABAAAAAYAAAAIAAAACgAAAAwAAAAOAAAAEAAAABIAAAAUAAAAFgAAABgAAAAaAAAAHAAAAB4AAAAgAAAAIgAAACQAAAAmAAAAKAApAAAAAAAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4AAAAAAA7ADwAPQAAAD8AQAAAAEIAQwBEAAAARgBHAAAASQBKAAAATABNAE4AAABQAFEAAABTAFQAAABWAFcAWAAAAFoAWwAAAF0AXgAAAGAAYQBiAAAAZABlAAAAZwBoAGkAAABrAGwAAABuAG8AAABxAHIAAAB0AHUAAAB3AHgAAAB6AHsAAAB9AH4AAACAAIEAggCDAIQAhQAAAIcAiACJAAAAiwAAAI0AAACPAAAAkQAAAJMAAACVAAAAlwAAAJkAAACbAAAAnQAAAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArAAAAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5AAAAxAC8AL0AvgC/AMAAwQDCAMMAAADFAMYAxwDIAMkAygAAAMwAAADOAAAA0ADRANQA0wAAAAAA1gAAANoA2QAAAAAA3ADdAN4AAADgAAAA4gDlAOQAAAAAAOcAAAAAAOoA6wDsAAAA7gAAAPAAAADyAPMAAAD1AAAA+QD4AAAAAAD7APwA/QAAAP8AAAABAQAAAwEAAAAABgEHAQgBAAAKAQAAAAAAAA4BDwEQAQAAEgEAAAAAAAAWARcBGAEAABoBAAAcAQAAHgEAACIBIQEAAAAAJAElASYBAAAoAQAAAAAAACwBLQEuAQAAMAEAADIBAAA0ATUBAAA3AQAAOwE6AQAAAAA9AT4BPwEAAEEBAABDAQAARQEAAAAASAEAAEoBSwFMAQAAAABPAVABUQFSAVMBVAFVAVYBVwEAAFkBWgFbAVwBXQFeAV8BAABhAQAAYwEAAGUBAABnAQAAaQEAAGsBAABtAW4BbwFwAXEBcgEAAK4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACaAZsBnAGdAZ4BnwGgAaEBogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsQEAALMBAAC1AQAAtwEAALkBAAC7AQAAvQEAAL8BAADBAQAAwwEAAMUBAADHAQAAyQEAAMsBAADNAQAAzwEAANEBAADTAQAA1QEAANcBAADZAQAA2wEAAN0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwIAAD0CAAA/AgAAQQIAAEMCAABFAgAARwIAAEkCAABLAgAATQIAAE8CAABRAgAAUwIAAFUCAABXAgAAWQIAAFsCAABwAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQIAAAAAdAJ1AgAAdwJ4AgAAegJ7AgAAfQJ+AgAAgAKBAgAAgwKEAgAAhgKHAgAAAAAAAAAAAAAAAAAAAAAAAAAAAACTApgClQKWApcCAACZApoCmwKcAp0CngIAAKACAAAAAADAAgAAAJwBAACaAZkBmwEAAJ8BBgCgAQgAdwLaAIYC6AAAAPkAAAAEAXoCDAF9AhQBAAAiAQ8AKgEZADsBKQCCAgAAHwB0AigAdQIAACAAJAAAACYAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKIBoQGeAZ0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAEIAQwBEAAAAAAAAAAAAAAAAAEsATABNAE4AAAAAAAAAAAAAAAAAVQBWAFcAWAAAAAAAAAAAAAAAAAAAAIUAYgBrAIQAYQBuAIMAYABxAIIAXwB0AAAAbwBsAAAAcgB3AAAAdQB6AAAAAAAAAAAAAAAAAAAAuwC8AL0AvgB4AIoAewCMAH4AjgB9AJAAeQB2AHwAkwCUAJIAAACVAJgAlwCaAJYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAAAAK4ArwCwALEAsgCzAAAAuQAAALcAuAAAAAAAAAAAAAAAkQCPAI0AiwACAAAAAAAAAAAAAAAAAAAAhwLPAHwC0AAAAAAA0wDjAAAA1gBMAgAA2QARAAAAAAB/AlcBAAAAAAAA4QAAAOQAAAAAAOcAAAAAAAAAAABWAQAAAADfAPEAAADyAAAAAAD1AAIBAAD4ANgAAAAAAOkAVQEAAAAA7QAAAQAAAwEAAAAAAAD6AFQBAAAAAHsCCwEAAAAAfgJTAQAAAADvABMBAAAAAAAAUgEAAAAA/gAdAREBHgEAAAAAIQEbAAAAAAAVAVEBAAAAABkBKQEAAAAAGwFQAQAAAAAnATMBSAI0AQAAAAA3ASsBAAA6AfcAAAAAAIUCTwEAAAAALwFCAQAARQEAAAAASAE5AQAAAABOAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkBAABAAWEBNgFjASMBZQEAAGcBJwBpAQAAAAAAAAAAAAAAAAAAAADDAMIAwQDAAL8AvgC9AMMAwgDBAMAAvwC+AL0AwwDCAMEAwAC/AL4AvQDDAMIAwQDAAL8AvgAAAL0AuwDDAMIAwQDAAL8AvgC9AAoAmQCbAMMAwgDBAJ0AnADAAL8AmQGaAZsBnwGgAZwBnQGeAaEBogG+AAAAAAAgAbABZAGyARcAtAFmAbYBAAC4AWgBugEAALwBagG+AbEBtQHAAbkBwgG9AcEBwwHGAcUBxwHJAeYAOgJrAQUBzgHMAc8B0QHWAdABAAAAAAAA0wFgAdUB2gHSAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQIpACgAvwHLAbsBygEbAgAAHQIeArcByAGzAQAAxAFHAdwBAAAmAtYBYgFEAQIB4wAsAt0B2wHZAQAAKQAoAL8BywG7AcoBAAAAAAAAAAC3AcgBswHEAUcB3AEAAAAA1gFiAUQBAgHjAAAA3QHbAdkBAAAVAhcCGQIfAiECFwIZAh8CIQIAANkBOwLbATwC3QFiAUcBPQJBAj8CQwLcAUUCRAFHAkACxAE+AgAAswFLAk4CyAG3AVECUgLKAbsBVQJWAssBvwFZAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAlsCWgJKAk8CUAJUAlcCcwJ4AlMCeQJEAkkCdgJCAoACgQJGAoMChAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnwKgAgAAAAAAAAAAAAAAAAAAAMACAAAASQBJAEYASABEAEgAQgBIAEAASAA9AAYALgAHAD0ACAAuAAkAaQAKAFMACwBTAAwAPQANAD0ADgCbABAAmwCbAIAAlwCEAJcAmwCXAIQAlwCbABYAKQIoAicCJgIlAiQCIwIiAiECIAIfAh4CHQIcAnQAQQBDAEUARwAwAi8CLgJBAEMARQBHABsAGgAZAE8CTgJNAkEAQwBFAEcAHwAeAB0AbgJtAmwCQQBDAEUARwAjACIAIQCNAowCiwJBAEMARQBHACcAJgAlACgAJAAgABwAKgBHAEcAKwBFAEUALABDAEMALQBBAEEARgBFAEcARABDAEUAQgBBAEMAMAAvAC4ALQAsACsAKgA0ADUAOAA/AEcARwBFAEUAQwBDAEEAQQBEAEYAQgBGAEIARABAAEYAQABEAEAAQgA8ADsAOgA5ADgANwA2ADUANAAzAAUABAADAAIAAQDsAuwC7ALsAuwC7ALsAuwC6wLqAuoC6gLqAkAANAA1ADgAPwBBAEMARQBHAEkAPgA9ADIAMQApABgAFwAzAEEAQQBCAEEAQgBEAB4ARABFAAoARQBHAC4ARwAGABgASQBDAEYAMwBKAEoATAAeAEwATQAKAE0ABwAYAFAASwBOADMAUQBBAFIAUQBSAFQAHQBUAFYALgBWAAgAGABYAFMAVQAzAFkAWQBbAB0AWwAJABgAXgBaAFwAbQBfAF8ACgBXAGMAYABhAEEAZABkAAsAVwBoAGUAZgAzAGkAQQBqAGkAagBtAD0AbQAMAFcAbwBrAGwAMwBwAHAADQBBAHQAcQByADMAdQAyAHYAdQB2AHgAQQB4AHoALgB6AA4AHwB8AHcAeQAzAH0AfQB/ADIAfwCBAC4AgQAfAIMAfgCAAIUAgwB8AHQAbwBoAGMAXgBYAFAASQCOAIwAiwCKAIkAiACHAIYAHwAQADMAEABBABAAVwAQAG0AEACEABAADwCUAJMAkgCRAJAAjwCXAHICdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBSABGAEQASQBHAEUAQgBAAEMAQQA1AqMBpAGlAaYBpwGoAakBqgGrAawBlQAAAD0APQBBAEEAUwBTAFcAVwBpAGkAbQBtAIAAgACEAIQAPQBTAD0AaQA9AIAAUwBpAFMAgABpAIAACgAOABAAGAAQAAoAGAAKACsAEAArACwAtgAKAB8AEAAfABgAMALeAd8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QGQAvcB+AH5AfoB+wH8Af0B/gH/AQACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvApgBMQIyAjMCNAI3AjgCOQKtAQ4ACgAKABAACgAYADMALgAQAC4AGAAuAB8ALgAyAC4AMwA9AAoAtwBBAD0AQQBTAFcAUwBXAGkAbQBpAG0AgACEAIAAxAD2AV0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuArEAsACvAW0AgACEADMAPQBBAFcAaQBtAEEAUwBXABgALgAzABAALgAzAB8ALgAzADYCiAKJAooCiwKMAo0CjgKPAs4A0gDTANQA0QDQAM8AzADDAJYAjQCEAD8AFQDDAJYAAAAAwAEAAAANDQ0NDQ0NDQ0NIwIjAiMCIwIjAiMCIwIjAiMCIyMjIyMjIyMjIyMjIwIBAQEBAQEBAQEBAQEBAQ0NDQ0NAQEBDQ0NDQICAgEBAQ0NDQ0CAgIBAQENDQ0NAgICAQEBDQ0NDQICAgICAgICDQ0CDQ0CDQ0CDQ0NDQ0NDQ0NDQ0CAgICAgICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgICAgICAgICAgICAgICAQEBAQEBAQEBAQEBAQINDQ0NDQ0NDQ0CAgICAgICIwIjAgICAiMCAiMCAiMCAiMCAgIjAgICIwICIwICIwICAiMCIwICAgIjAgIjAgIjAgICIwICAiMCAiMCAgIjAgICIwICAiMCAgIjAgICIwIjAgICAiMCAiMCAgIjAgICIwICAiMCIwICAgIjAgIjAgIjAgICIwICAiMCAiMCIwICAgICAgICAgICAgICAgICAgICAgIjIyMjIyMjIyMjIyMCAgICAgICAg0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CASMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMCAgICAgICAgICAgICAgICAgICAgICAgICIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMCAgICAgICAgICAgICAgICAgICAgICAiMjIyMjIyMjIyMjIyMjIyMjIyMjIwICAgICAgICAgICAgICAgICAgICAgICAgIAAADAAQAAAAEBAgIDAwQEBQUGBgcHCAgJCQoKCwsMDA0NDg4PDxAQERESEhMTFBQUFRYWFhYWFhYWFhYWFhYWFxgYGBgaGhobGxsbHBwcHh4eHx8fHyAgICIiIiMjIyMkJCQmJiYnJycnKCgoKSkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTExMTEyMjIyMzM0NDU1NjY3Nzg4OTk6Ojs7PDw9PT09PT09PT09PT09PT0+Pj4+Pj4+Pj4+Pj4+P0BAQEBAQEBAQD8/Pz8/Pz9BQUJCQ0NDRERDRUVGR0dGSUlJSUpKS0tMTEtNTU5QUFBQUVFSUlNTU1RUVVZWVVhYWFhZWVpaW1tcXl5eXl9fYGFjY2NjZGRlZmhoaGhpaWpqa2tsbW1sb29vb3BwcXJ0dHR0dXV2dnd3d3h4eXp6eXx8fHx9fX5+f3+AgYGDg4ODhIWFhYWFhYWFhYWNjY2NjY2NjY+PkJCRkZKSk5OUlJWVlZWVlZWWl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5aYmZmampubnJydnZ6en5+goKGhoqKjo6SkpaWmpqenqKipqaqqq6usrK2trq6vr7CwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsrKzs7S0tbW2tre3uLi5ubq6u7u8vL29vr6/v8DAwcHCwsPExMTExMTExMTExMTExMTExMTEw8PDxcXFxsbGx8fHyMjIycnJysrKy8vLzM3Nzc3Nzc3NzNLS09PT09LS0tLS0tLV1VSbAABMBQAAAQAAAAIAAAAIAAAACAAIAAgAAAAIAAAACAAAAAhACAAIQAgAAEAIAABACAAIQAgACEAIAABACAAAQAgAAEAIAAgACAAAAAAACAAIAAgAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIQAhACEAIQAgACAAIAABAAEAAQABACAAIAAgACAAIAAgAAEAAQABAAEAIAAgACAAIAAgACAAAQABAAEAAQAgACAAIAAgACAAIAABAAEAAQABACAAIAAgACEAIQAhACEAIAABAAEAIAABAAEAIAABAAEAIAABAAEAAQABAAEAAQABAAEAAQABAAEAIQAhACEAAQABAAEAAQAgACAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAhAAEAAQABAAEAAQABAAEAIQAhAAEAAQABACAAAQABAAEAAQABAAEAAQABAAEAIAAgACAAIAAgACAAIAAhACAAIQAgAAAAAAAgACEAAAAgACEAAAAgAAEAAAAAACEAIAAgACAAAQAgAAAAIAABAAAAIAABAAAAAAABACAAIAAgAAEAIAABACAAAAAAACAAIQAAACAAAQAAAAAAAQAgACAAIAABACAAAAAgAAEAAAAAAAEAIAAgACAAIQAgAAAAAAAhACAAIAAgAAEAIAAAAAAAAQAgACAAIAABACAAAQAgAAAAAAAgAAEAAAAAAAEAIAAgACAAAQAgAAAAAAABACAAIAAgAAEAIAAhACAAAAAAACAAAQAAACAAAQAAAAAAIQAgACAAIAABACAAAAAgAAEAAAAgAAEAAAABACAAIAAgACAAAQABAAEAAQABAAEAAQABAAEAAQAgACAAIAAgACAAIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAhACEAIQAhACEAIQAgAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQACAAIAAgACAAIAAgACAAIAAgACAAIAIAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAACAAAAAAACAAIAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAAAAAAAABAAAAAKAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAcBAAAAAAAACsAAAANAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAACAAAAAAAAAAEAAAAAAAADAQAAAAAAAAICAAAAAAAABAIAAAAAAAAGAgAAAAAAAAMDAAAAAAAABAMAAAAAAAAcBAAAAAAAACAEAAAAAAAAJAQAAAAAAAAoBAAAAAAAACwEAAAAAAAAyAQAAAAAAADQBAAAAAAAANQEAAAAAAAA7AYAAAAAAABoCQAAAAAAAJALAAAAAAAAgA4AAAAAAACQEwAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAnAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAGAIAAAAAAAB8AgAAAAAAACgCAAAAAAAA8AIAAAAAAAAQBQAAAAAAADABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAJIAAAAAAAAA/////wAAAMABAAAAAQIDBAUGBwgJCgEBAgIDAwQEBQUGBgcHCAgJCQoKCwsMDA0NAQECAgMDBAQLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3AAAAAAAMAAAAAAUZsAADABAAABAAAAAgAAAAMAAwADAAMAAwADAAMAAwADAAMAIwAhACMAIQAjACEAIwAhACMAIQAjACEAIwAhACMAIQAjACEAIwAhACMAIQAjACEAIwAhAAkADQAJAA0ACQANAAkADQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAAAAAAAAAAABAAAAAJAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAgAAAAAAAAECAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAACkAAAAAAAAAAYAAAAFAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAKQAAAAAAAAAqAAAAAAAAACsAAAAAAAAALAAAAAAAAAAtAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAMQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAHAAAAAAAAAA/////wAAAMC7AwAAuwMAADEBAAAxAQAAMQEAADEBAAC5AAAAuQAAALkAAAC5AAAA3AUAACADAAAgAwAALAEAAMgAAAAsAQAAyAAAALwCAAB8AQAAfAEAALgLAACMAAAAlgAAAIwAAACWBQAAqgAAAKoAAACWAAAAWAIAALwCAAB8AQAAqgAAAA4BAAB8AQAAfAEAAJoBAACWAAAAlgAAAEgDAAC4CwAAIAMAACADAAAsAQAAyAAAACwBAADIAAAAvAIAAHwBAAB8AQAAoA8AAIwAAACqAAAAjAAAAL4AAACqAAAA0gAAALwCAAC8AgAAfAEAAKoAAAAOAQAAfAEAAHwBAAD0AQAADgEAAA4BAAD2BAAAHCUAAL4AAAA3AAAASwAAALwCAAB8AQAAggAAAFQBAAAOAQAAcBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAwAALAEAAMgAAAAsAQAAyAAAAIwAAACqAAAAjAAAAL4AAAA2AQAAvgAAAEEAAAA8AAAAQQAAACgAAABVAAAAVQAAADwAAADcBQAAAAAAAGQAAABQAAAAeAAAACgAAABQAAAAtAAAALQAAACQAQAABAAAADQBAAAAAAAADAAAAAsAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAABAMAAAAAAAAFAwAAAAAAAAYDAAAAAAAANAEAAAAAAAA4AQAAAAAAADwBAAAAAAAAQAEAAAAAAABEAQAAAAAAAFQBAAAAAAAAYAEAAAAAAABsAQAAAAAAAHgBAAAAAAAAxAEAAAAAAAAQAgAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAEAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAABMAAAAAAAAAEwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAA/////wAAAMACAAAAhCuEK4QrhCsAAADAAQAAAAEBAQEAAADAAQAAAAICAgIAAADAAQAAAAEBAQEAAADAAQAAAAEJERkBAAAACQkJCUAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAL0LAAAAAAAAvQsAAAAAAAC9CwAAAAAAAL0LAABkAAAAAAAAwAEAAAABCREZAQAAAAkJCQlAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAYAQAAAAAAABgBAAAAAAAAkAEAAAAAAACQAQAAZAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAABAAAAKwBAAAAAAAAEQAAABAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAABAMAAAAAAAAFAwAAAAAAAAYDAAAAAAAABwMAAAAAAAAIAwAAAAAAAAkDAAAAAAAACgMAAAAAAAALAwAAAAAAAKwBAAAAAAAAsAEAAAAAAAC0AQAAAAAAALgBAAAAAAAAvAEAAAAAAADMAQAAAAAAANwBAAAAAAAA6AEAAAAAAAD0AQAAAAAAAAACAAAAAAAADAIAAAAAAAAYAgAAAAAAACQCAAAAAAAAYAIAAAAAAACcAgAAAAAAANgCAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAABAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAA/////wAAAMACAAAAhCuEK4QrhCsAAADAAgAAAIoriiuKK4orAAAAwAEAAAABAQEBAAAAwAEAAAAEBAQEAAAAwAEAAAACAgICAAAAwAEAAAABAQEBAAAAwAEAAAACAgICAAAAwAEAAAABAQEBAAAAwAEAAAABBQkNAQAAAAUFBQVAAAAAEAAAAAAAAAAAAAAAAAAAAL0LAAC9CwAAvQsAAL0LAABkAAAAAAAAwAEAAAABBQkNAQAAAAUFBQVAAAAAEAAAAAAAAAAAAAAAAAAAABgBAAAYAQAAkAEAAJABAABkAAAAAAAAwAEAAAABBQkNAQAAAAUFBQVAAAAAEAAAAAAAAAAAAAAAAAAAABgBAAAYAQAAkAEAAJABAABkAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAEAAAAZAEAAAAAAAAOAAAADQAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAAABAwAAAAAAAAIDAAAAAAAAAwMAAAAAAAAEAwAAAAAAAAUDAAAAAAAABgMAAAAAAAAHAwAAAAAAAAgDAAAAAAAAZAEAAAAAAABoAQAAAAAAAGwBAAAAAAAAcAEAAAAAAAB0AQAAAAAAAIwBAAAAAAAAxAEAAAAAAADoAQAAAAAAAAACAAAAAAAAGAIAAAAAAAAwAgAAAAAAAOADAAAAAAAA1AQAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABgAAAAAAAAAOAAAAAAAAAAkAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAALABAAAAAAAA9AAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAADQAAAAAAAAD/////AAAAwAEAAAABAQEBAQECAgICAgICAAAAAAAAwAAAAAAAAMBAAADAQAAAwEAAAMBAAABAQAAAAAAAAMhDAADIQwAAyEMAAMhDAADIQwAAlkIAAADAAgAAADArNRA1EDUQNRA1EDArNRA1EDUQNRA1EDUQAAAAAADAAQAAAAEBAQEBAQEBAQEBAQEAAAAAAADAAQAAAAICAgICAgICAgICAgIAAAAAAADAAQAAAAEBAQEBAQEBAQEBAQEAAAAAAADAAgAAAAAAAQAhAEEAYQCBAAAAoQDBAOEAAQEhAUEBAAABAAAAACEhISEhACEhISEhIQAAAAACAABgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8UwAAAAAAAORXAAAAAAAAQEIPAAAAAAAAAAAAAAAAAPxTAAAAAAAA5FcAAAAAAABAQg8AAAAAAAAAAAAAAAAA/FMAAAAAAADkVwAAAAAAAEBCDwAAAAAAAAAAAAAAAAD8UwAAAAAAAORXAAAAAAAAQEIPAAAAAAAAAAAAAAAAAPxTAAAAAAAA5FcAAAAAAABAQg8AAAAAAAAAAAAAAAAA/FMAAAAAAADkVwAAAAAAAEBCDwAAAAAAAAAAAAAAAAD8UwAAAAAAAORXAAAAAAAAQEIPAAAAAAAAAAAAAAAAAPxTAAAAAAAA5FcAAAAAAABAQg8AAAAAAAAAAAAAAAAA/FMAAAAAAADkVwAAAAAAAEBCDwAAAAAAAAAAAAAAAAD8UwAAAAAAAORXAAAAAAAAQEIPAAAAAAAAAAAAAAAAAPxTAAAAAAAA5FcAAAAAAABAQg8AAAAAAGQAAAAAAADAAQAAAAABESExQQBRYXGBkaEAAAABAAAAABERERERABEREREREQAAAAABAACwAAAAAAAAAAAAAAAAAAAAAADAQAAAwECF69lAAAAoQgAAwEAAAMBAhevZQAAAKEIAAMBAAADAQIXr2UAAAChCAADAQAAAwECF69lAAAAoQgAAQEAAAEBAhetZQAAAqEEAAMhDAADIQwAQI0UAgDtFAADIQwAAyEMAECNFAIA7RQAAyEMAAMhDABAjRQCAO0UAAMhDAADIQwAQI0UAgDtFAADIQwAAyEMAECNFAIA7RQAAlkIAAJZCAECqQgBAA0RkAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA7AAAAAAAAAAJAAAACAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAMAAAAAAAABAwAAAAAAAAIDAAAAAAAAAwMAAAAAAADsAAAAAAAAAPAAAAAAAAAA9AAAAAAAAAD4AAAAAAAAAPwAAAAAAAAAFAEAAAAAAAAcAQAAAAAAACQBAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAYAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAADQAAAAAAAAD/////AAAAwAEAAAAMDhASFBYYGhweICIkAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAQAAAAAAAAA9AEAAAAAAAAUAAAADwAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAgAAAAAAAAECAAAAAAAAAgIAAAAAAAADAgAAAAAAAAQCAAAAAAAAAAEAAAAAAAADAQAAAAAAAAUCAAAAAAAABgIAAAAAAAAHAgAAAAAAAPQBAAAAAAAA+AEAAAAAAAD8AQAAAAAAAAACAAAAAAAABAIAAAAAAAAYAgAAAAAAADgCAAAAAAAAzAIAAAAAAADcAwAAAAAAAGwEAAAAAAAAgAQAAAAAAACEBAAAAAAAAMQFAAAAAAAAZAYAAAAAAAAEBwAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAgAAAAAAAAAJQAAAAAAAAAEAEAAAAAAACQAAAAAAAAABQAAAAAAAAABAAAAAAAAABAAQAAAAAAAKAAAAAAAAAAoAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAMAAAAAAAAAP////8AAADAAQAAAAECAQMCBAUGAQIHAwAAAMACAAAA/ioYKzkrTitWK4snkyvAJ30siiyhKp4sAAAAwAEAAAABBQkRGSEtOT1FSVEBAAAABQUJCQkNDQUJBQkJgAAAAFgAAAAAAAAAAAAAAAAAAADbAAAA2wAAAOoAAADrAAAA6gAAAOsAAADqAAAA6wAAANsAAADeAAAA4AAAANsAAADeAAAA4AAAANsAAADbAAAA4AAAANsAAADbAAAA3gAAANsAAADeAAAAZAAAAAAAAMABAAAAAR05PUFFhYmdyc3RAQAAAB0dBQUFQQUVLQUFBQABAADUAAAAAAAAAAAAAAAAAAAAGwAAACAAAAA5AAAAOAAAADIAAAAxAAAAwAAAABsAAAAgAAAAOQAAADgAAAAyAAAAMQAAAMAAAADAAAAAwAAAAMAAAAATAAAAEAAAABIAAAARAAAAGwAAACAAAAAiAAAAIwAAACgAAAAmAAAAOQAAADgAAAAyAAAAMwAAADEAAADAAAAAwAAAABsAAAAgAAAAOQAAADgAAADAAAAAEwAAABAAAAASAAAAEQAAABsAAAAgAAAAKAAAACYAAAA5AAAAOAAAAMAAAADAAAAAwAAAAMAAAABkAAAAAAAAwAEAAAABCREVGR0lLTU9RU0BAAAACQkFBQUJCQkJCQkJgAAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAABkAAAAAAAAwAEAAAAGBgIMAiIFHgoIChT3mgAAJAAAAAEAAAACAAAABQAFAAEABQABAAUABQAFAAsACwAFAAkAAAAAAAAAAAAAAAAAEAAAAAsAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAIwAAAAAAAAABQAAAAQAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAIwAAAAAAAAAkAAAAAAAAACUAAAAAAAAAJgAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAD/////BAAAAAAAAACMAAAAAAAAAAUAAAAEAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAACMAAAAAAAAAJAAAAAAAAAAlAAAAAAAAACYAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAcAAAAAAAAA/////wQAAAAAAAAAjAAAAAAAAAAFAAAABAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAjAAAAAAAAACQAAAAAAAAAJQAAAAAAAAAmAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAADAAAAAAAAAP////8EAAAAAAAAAKwBAAAAAAAAEQAAAA0AAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAAAAAEAAAAAAAADAQAAAAAAAAUCAAAAAAAAAAMAAAAAAAABAwAAAAAAAKwBAAAAAAAAsAEAAAAAAAC0AQAAAAAAALgBAAAAAAAAvAEAAAAAAABMAgAAAAAAAGQDAAAAAAAA9AMAAAAAAACEBAAAAAAAAIgEAAAAAAAAjAYAAAAAAAAsBwAAAAAAAOwJAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAACQAAAAAAAAABgBAAAAAAAAkAAAAAAAAACQAAAAAAAAAAQAAAAAAAAABAIAAAAAAACgAAAAAAAAAMACAAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAhQAAAAAAAAD/////AAAAwAEAAAABAgMEBQYHCAkKAQsMDQ4PAhAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWVwECAwQFBgcICQoLDA0ODxBYWVpbXF1eX2AREhMUFRYXGBkaGxwdHh8gISIjAAAAAAAAwAIAAAACAAQABgAIAAoADAAOABAAEgAUABYAGAAaABwAHgAgACIAJAAmACgAKgAsAC4AMAAyADQANgA4ADoAPAA+AEAAQgBEAEYASABKAEwATgBQAFIAVABWAFgAWgBcAF4AYABiAGQAZgBoAGoAbABuAHAAcgB0AHYAeAB6AHwAfgCAAIIAhACGAIgAigCMAI4AkACSAJQAlgCYAJoAnACeAKAAogCkAKYAqACqAKwArgCwALIAtAC2ALgAugC8AL4AwADCAMQAxgDIAMoAzADOANAA0gDUANYA2ADaANwA3gDgAOIA5ADmAOgA6gDsAO4A8ADyAPQA9gD4APoA/AD+AAABAgEEAQYBCAEKAQAAAAAAAAAAAMABAAAAAQIBAgECAQIBAgMEBAQEBAUEBAQEBAQGBwYHBgcGBwYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYJCQkJCQkJCQkKCgoKCgoKCwsLCwsLCwsLDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAMABAAAAAQIDBAUGBwgJCgsNDxETFRcZGx0fISMlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkgAAAFKbAAAYAQAAAQAAAAIAAAADAAMAAwADAAMAAwADAAMAAwADAAEAAwADAAMAAwADAAEAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQADAAMAAwADAAMAAwADAAMAAwAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAEAAAAAkAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAACAAAAAAAAAQIAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAAAAAAAIwAAAAAAAAABQAAAAQAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAIwAAAAAAAAAkAAAAAAAAACUAAAAAAAAAJgAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAD/////BAAAAAAAAAC8AAAAAAAAAAcAAAAGAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAgAAAAAAAAECAAAAAAAAvAAAAAAAAADAAAAAAAAAAMQAAAAAAAAAyAAAAAAAAADMAAAAAAAAADQBAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABoAAAAAAAAAIgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAGAAAAAAAAAA/////wAAAMABAAAAEBAODgsLCQkHBw8NCggGEA4LCQcXBwcJCQsLDg5oEA8ODQsKJV1hMAkIB2gGLAUrNhoXdCAfKgQDARgQDw4NCwolXWEwCQgHBiwFKzYaF3QgHyoEAwEYEA4NCwoJCAcGAAAAwAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f///8EAAAAAAAAAOwAAAAAAAAACQAAAAgAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAAAAAAA7AAAAAAAAADwAAAAAAAAAPQAAAAAAAAA+AAAAAAAAAD8AAAAAAAAACgBAAAAAAAAVAEAAAAAAADoAQAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAALAAAAAAAAAAsAAAAAAAAAJQAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAIwAAAAAAAAD/////AAAAwAEAAAAaBQUrGgQDAwENCggIBgYGEA4OCwsJCQcHARd0BQQDFwEBGAAAAADAAQAAAAMEAwFdAQEEGA8NDQoNCggPDw0NCgoICAZoBiwsLCwsBAMBAAAAAMAEAAAA9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f///8AAADABAAAAPf////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////BAAAAAAAAAB8AQAAAAAAAA8AAAANAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAACAAAAAAAAAQIAAAAAAAAFAgAAAAAAAAYCAAAAAAAAAAEAAAAAAAADAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAB8AQAAAAAAAIABAAAAAAAAhAEAAAAAAACIAQAAAAAAAIwBAAAAAAAAlAEAAAAAAACkAQAAAAAAALABAAAAAAAAvAEAAAAAAADEAQAAAAAAAMgBAAAAAAAAPAMAAAAAAABYBAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAdAEAAAAAAAAcAQAAAAAAAHQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAA/////wAAAMAAAAAAAAAAwAIAAABdUltKAAAAAAAAAMABAAAAAwAAAAAAAMABAAAAAQMAAAAAAMAAAAAADhYAABAAAAABAAAAAgAAAKIA4gAAAAAAAAAAAAAAAAAQAAAADgAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAAAAwIAAAAAAAAEAgAAAAAAAAUCAAAAAAAABgIAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA7AAAAAAAAAAJAAAACAAAAAABAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAACAQAAAAAAAAICAAAAAAAAAwIAAAAAAADsAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAUAAAAAAAAACQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAIAAAAAAAAAAAAAAD/////AAAAgAEAAMACAAAAAQAAAAEBAAAAAACABAAAABwBAAAAAAAACwAAAAkAAAAAAgAAAAAAAAABAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAACAQAAAAAAAAICAAAAAAAATSkAAAAAAIAcAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAE0pAAD/////CQAAAAQAAAABAAAAAQAAAAgAAAAAAAAAAAAAAP////8AAACAAAAAgAEAAMABAAAAAQAAANUAAAABAAAAAgAAAAEAAAABAAAABAAAAAAAAABkAQAAAAAAAA4AAAALAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAAAAAAAAAEAAAAAAAADAQAAAAAAAGQBAAAAAAAAaAEAAAAAAABsAQAAAAAAAHABAAAAAAAAdAEAAAAAAAB8AQAAAAAAAAwCAAAAAAAAnAIAAAAAAAAsAwAAAAAAALwDAAAAAAAAwAMAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAkAAAAAAAAACQAAAAAAAAAJAAAAAAAAAAkAAAAAAAAAAEAAAAAAAAAOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIcAAAACAAAAAAAAAAAAAMAAAAAAAAAAwAEAAAAAAAQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGhwAAAAAAwAEAAAACAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIUAAAAAwAEAAAAMDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkAAAAAwAEAAAABAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAU5sAABwBAAABAAAAAgAAAACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAIAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA9AEAAAAAAAAUAAAAEAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAADAwAAAAAAAAQDAAAAAAAABQMAAAAAAAAGAwAAAAAAAAABAAAAAAAAAwEAAAAAAAACAQAAAAAAAAcDAAAAAAAA9AEAAAAAAAD4AQAAAAAAAPwBAAAAAAAAAAIAAAAAAAAEAgAAAAAAAIgCAAAAAAAADAMAAAAAAAAMBAAAAAAAAJAEAAAAAAAAmAQAAAAAAACgBAAAAAAAAKgEAAAAAAAAsAQAAAAAAAC0BAAAAAAAAIwGAAAAAAAAHBcAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAAhAAAAAAAAAAAAQAAAAAAAIQAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAEAAAAAAAAANgBAAAAAAAAkBAAAAAAAACYAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAB7AAAAAAAAAP////8AAADAAQAAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ewAAAADAAQAAAM3My8rv3dre3+Tg4uHj8P7Z2NfW1dTT0tHQ2+rc/ebl6Onnz87r7O3u/P/xUlcCewEYWQMEIB8FNhpdKix0FwYHCAkKCw0ODxAwDGZlK2hhW001Tm5QeVZcXjk6OyVnf1o4VGA9Pj9AQXVEJkNiRUZHbDxkbxYufH1xyQAAAADAAgAAAH8AkAClAKsArwC2AMsA3gDkAOwA8wD5AAABBAEKAREBGAEbAR4BIQEkAScBKgEtATABMwE2AT4BQwFVAVoBXgFjAWoBcQF2AYgBmgGgAbMBxAHVAdoBByolAzADSAN8A5EDswO6A8YDBwQpBC4EMwSoBLMEuAS9BMIE5wTwBEMFYAVMBmUGEQcuB+gHBQi6CNcIjAmQCaQJsQm+CcIJ1AnYCeYJ8AlCCkwKcwqaCskK+AojC04LeQukC8sL0QsADBUMQAx2DKEM0AwGDTENZw2WDcwN/A0rDjAOVw53Dq0O3A7qDvEOHA8vDzARPhF8Eo0SlBJbAAAAAAAAwAEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAB+FwAABAEAAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAGAAIAAAAAAAYAAAAAAAAAAAAAAAAABgACAAYAAgAGAAIABgACAAYAAgAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAMAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAAAAAAHAEAAAAAAAALAAAACgAAAAACAAAAAAAAAAEAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAIBAAAAAAAAAgIAAAAAAABjAAAAAAAAgAECAAAAAAAAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAoAAAAAAAAACwBAAAAAAAANAIAAAAAAAAgAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAYAAAAAAAAAAQBAAAAAAAABAEAAAAAAAAcDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABjAAAAAQAAAAwAAAACAAAAAQAAAAAAAAAAAAAAAQAAAIAAAAAAAAAAAAAAAP////8AAADAEAAAAAAAAAAAAAAAAAAAAAAAAAABAADAegAAAAIAAADTAdIB3gHxAd0BygHIAb4BvQG8AbsBugG5Af0BuAH8AegB5wHmAeUB5AHjAeIB4QHgAd8BrQHrAaoBqAGnAaQBoQHpAZwBmQGYAZcBlgGFAZMBiQGHAQAAAgADAAcACQANAA4ADwAXABwAHQAeACkAKgArACwALQAxADIAPABAAGkBVgBqAWwAawGDAGwBmgBtAa4AsQCzALUAtgC3ALgAugC7AMAAwQDFAMkAzQDRANUA2QDdAOEA5QDmAOoA7ADwAPUA+QD9AAIBBgELAQ8BFAEYARwBHQEhASQBKAEsAS0BLgEyATQBTQFOAU8BbgFyAXMB8gEAAAEAAMBOAAAAAgAAAHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgB2AHYAdgAlAzADSAOFA5EDswO6A8YDBwQpBC4EMwSoBLMEuAS9BMIE5wTwBEMFYAVMBmUGEQcuB+gHBQi6CNcIjAmQCaQJsQm+CcwJ1AnYCeYJ8AlCCkwKcwqaCskK+AojC04LeQukC8sL0QsADBUMQAx2DKEM0AwGDTENZw2WDcwN/A0rDjAOVw53Dq0O3A7qDvEOHA8vDzARSBGFEo0SlBJ2AAAABAAAAOwAAAAAAAAACQAAAAgAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAQMAAAAAAAACAwAAAAAAAAMDAAAAAAAA7AAAAAAAAADwAAAAAAAAAPQAAAAAAAAA+AAAAAAAAAD8AAAAAAAAAAQFAAAAAAAADAcAAAAAAAAUCwAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAACAQAAAAAAAAIAgAAAAAAAAgEAAAAAAAABAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAP8BAAAAAAAA/////wAAAMACAAAA5wECAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8A0ADRANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA5QDmAOcA6ADpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8AAAEBAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAegB6QGCAQEAdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYMBhAGFAYYBhwGIAYkBigGLAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBngGfAaEBowGlAacBqQGrAa0BrwGxAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHsAe0B7wHwAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B7gH/AdMB1AHVAdYB1wHqAesB8QGgAaIBpAGmAagBqgGsAa4BsAGyAYwBnQEAAAAAAMABAAAAIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwAAAADAAgAAAIQAAAAAAAAABAAFAAYAAAAIAAAACgALAAwAAAAAAAAAEAARABIAEwAUABUAFgAAABgAGQAaABsAAAAAAAAAHwAgACEAIgAjACQAJQAmACcAKAAAAAAAAAAAAAAAdAEvADAAAAAAAHsBNAA1ADYANwA4ADkAOgA7AAAAdQE+AD8AAAB9AUIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAAAB2AVQAVQAAAH8BWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwAAAHcBagBrAAAAgQFuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AAAB4AYEAggAAAAEAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAAAAeQGYAJkAAACEAZwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArAAAAAAArwCwAAAAsgAAALQAAAAAAAAAAAC5AAAAAAC8AL0AvgC/AAAAAADCAMMAxAAAAMYAxwDIAAAAygDLAMwAAADOAM8A0AAAANIA0wDUAAAA1gDXANgAAADaANsA3AAAAN4A3wDgAAAA4gDjAOQAAAAAAOcA6ADpAAAA6wAAAO0A7gDvAAAA8QDyAPMA9AAAAPYA9wD4AAAA+gD7APwAAAD+AP8AAAEBAQAAAwEEAQUBAAAHAQgBCQEKAQAADAENAQ4BAAAQAREBEgETAQAAFQEWARcBAAAZARoBGwEAAAAAHgEfASABAAAiASMBAAAlASYBJwEAACkBKgErAQAAAAAAAC8BMAExAQAAMwEAADUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAQAAAABSAGgAfwCWAK0AUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAEAAAAAbwFwAXEBAAB6AXwBfgGAAYIBgwEuADMAPQBBAFMAVwBpAG0AgACXAJsAlAEAAAAAAACIAQAAigGLAYwBjQGOAY8BkAGRAZIBAACGAZUBAAAAAAAAAACaAZsBAAD+AZ4BnwGgAQAAogGjAQAApQGmAQAAAACpAQAAqwEAAAAAAAAAAAAAAAAAAPgB+QH6AfsBAAAAAAAAAAAAAAAAAAAAAL8BwAHBAcIBwwHEAcUBxgHHAQAAyQEAAMsBAADNAQAAzwEAANEBAAAAANQB1QHWAdcBzAHZAeoB2wHzAdAB/wGuAa8B9AGwAfUBsQH2AbIB9wGdAdoBrAHYAewB7QHuAe8BzgHwAdwBAAAAAAAAAACzAbQBtQG2AbcBAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAADQBAAAAAAAADAAAAAoAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAICAAAAAAAAAwIAAAAAAAAGAgAAAAAAAAcCAAAAAAAACAIAAAAAAAAAAgAAAAAAADQBAAAAAAAAOAEAAAAAAAA8AQAAAAAAAEABAAAAAAAARAEAAAAAAADIAQAAAAAAANABAAAAAAAAUAIAAAAAAADUAgAAAAAAAOQCAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAACEAAAAAAAAAAgAAAAAAAAAgAAAAAAAAACEAAAAAAAAABAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAewAAAAAAAAD/////AAAAwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAACAAJCAkICQgJCAkICQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMABAAAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7AAAAAMAAAAAAAAAAAAAAAACIAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAACAAAAAAAAAAAAAAAAAAACAAAAAAAAAAQAAAAAAAAATAEAAAAAAAANAAAACwAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAAAAQAAAAAAAAMBAAAAAAAAAgEAAAAAAABMAQAAAAAAAFABAAAAAAAAVAEAAAAAAABYAQAAAAAAAFwBAAAAAAAAZAEAAAAAAAC4AgAAAAAAAAwEAAAAAAAAvAQAAAAAAADABAAAAAAAAAQHAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAIAAAAAAAAAFQBAAAAAAAAVAEAAAAAAACwAAAAAAAAAAQAAAAAAAAARAIAAAAAAABwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACmAAAAAwAAAAoAAAAAAADAAAAAAAAAAMACAAAAFAATABIAEQAQAA8ADgANAAoACwAMAPkA/wAAAQEBAgEDAQQBBQEGAQcBCAEJAQoBDAENAQ4BDwEQARIBEwEUAQsBKQAlACQAMQAuADIAKABoAPoANAA1ADYANwA4ADkAOgA7AC0AKgArABkAdQCTAJQARACSABYAFwAYACYAIAAfACEASgAsABoARwBIAEkASwBaAGAAZQBsAGYAegAvAG0AbgBvAHAAcQByABsAHAAdAB4AIgAjACcAMwA8AD0APgA/AEAAQQBCAEMARgBMAE0ATgBPAFAAUQBSAFMAVAD8AFYAVwBYAFkAWwBcAF0AXgBfAGEAYgBjAGQAZwBpAGoAawBzAHQAdgB3AHgAeQB7AHwAfQB+AH8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEA+AD3APYA9QD0ABUA+wAAAADAAgAAAAEACQAOABMAHAApADQAPAAAAAkACgA7KgICDgIYAiICLAI3AsQBRQJSAl8CbAJ5ApMCoAKtAroCWgHPAtMC3AKGAjgDYgNvA/0DUARwBIAEmARAKrQFxwXaBe0FAAYTBiYGOQZ4B/4JEgooCkYKNg9VD3IPgA+MD5wPrA++D8wP4A/6DxQQNRBEEF4QbxCDEJQQqhDKEOwQ/hAHERkRJBFQEYIRtBHmERgSShLdFOQU6xT1FP8UBxUOFRUVHBUkFSwVLgdlBmAF8AQzBDAVNhU+FUUVSxVRFVcVWxVgFWYV1QFtFXMVehWAFY8VlRWgFasVthXBFc4VwgnUFdoV4xXsFfIV+RUKAf4VBRYJFhEWFRYZFogPHBYgFpAJfA8lFikWLRYwFjcWQRZJFkwWUhZWFloWXxZjFm0WdxaAFjMqKyogKhcqESrkACAFAAAAwAEAAACKAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAOFgAAWAEAAAEAAAACAAAACAAJAAoACwAMAA0ADgAPAAiACIAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACQAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAMAAAAAAAABAwAAAAAAAA8AAAAAAAAADgAAAAAAAAANAAAAAAAAAAwAAAAAAAAACwAAAAAAAAAKAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAHAEAAAAAAAALAAAACgAAAAACAAAAAAAAAAEAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAIBAAAAAAAAAgIAAAAAAADtAQAAAAAAgAECAAAAAAAAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAA4AAAAAAAAAJABAAAAAAAAFAIAAAAAAAAgAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAoAAAAAAAAAFgBAAAAAAAAgAAAAAAAAAAcDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADtAQAAAQAAAA0AAAACAAAAAQAAAAAAAAAAAAAAAQAAAAABAAAAAAAAAAAAAP////8AAADAIAAAAAP5//8BAgAAAAAAAAAAAQAAAACAPwAAAAAAAAAAAAAAAQAAwFEAAAACAAAAzgEAAAAAAAAAAAAAAAAAAAAAAAAAACAA3wHeAZ8A3AHwAdoB/wFEAIcAAQA+AHMA1wGuAb8B8QH9AY0BAAAAAJoBcwGcAJ0AFwAjAKUAowApAKoBpgCnAKgAqQCqAKsArACtAKQAcQFyASgBwQA1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAVQBWQFeAWMBaAFtAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggCZADkARwA0AQAA4wEAAADAIgAAAEAAAAAAAAAAAQAAAA0ODxAREhMUFRYXCRgZGhscHR4CAR8gIXEqDKChoqOkpaYAAAIAAAAKAhQCHgIoAjMCPQJBAk4CWwJoAnUCCi2CApwCqQK2AsMCWgHPAscCywLYAtwCjwIGLQIt/iz6LPYsVxXyLO4sAADqLAQAAADsAAAAAAAAAAkAAAAIAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAAAwAAAAAAAAEDAAAAAAAAAgMAAAAAAAADAwAAAAAAAOwAAAAAAAAA8AAAAAAAAAD0AAAAAAAAAPgAAAAAAAAA/AAAAAAAAAAEBQAAAAAAAAwHAAAAAAAAFAsAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAgEAAAAAAAACAIAAAAAAAAIBAAAAAAAAAQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAD/AQAAAAAAAP////8AAADAAgAAANEBAgADANgB5QEGAAcArAG/AQoA4QFGAMABDgAPABAAEQASAAgAegEgAN8BFwAYAMwBmgGuAbEAHQAeAB8A7QEhACIAIwDBAQ0AJgAnACQAKQAqACsALAAtAC4A2gFHAKgBMgAzAC8ANQA2AHsBAQDwATQBOwA8AD0A0gEJACUAQQBCAEMAzwGzAKkB8QGhAEkASgBLAEwATQBOAE8AUABRAFIAUwBUACgAMABXAFgAWQCtAX8BqgETAOkBXwBgAGEAYgBjAGQAZQBmAGcAaABpADQACwAEAG0AbgBvAEgAwgFEANMB3QF1AHYAdwB4AHkAegB7AHwAfQB+AH8AgAA3AO4B3gGEAIUAhgDQAYkBBQCvAYkAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAFADvAUUAmwCcAJ0A4gHDAasBVQCDAKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AgAExALIAQAC0AOQBtgC3ALgAuQC6ALsAvAC9AL4AvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AAABAQECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMB8gE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBvgF3AV4AHAAbAOoBugE6APQBOQBWAIEBfAGDAbUAhQGGAYcBiAF4AV0AiwGMAaAAeQH4AYsAkQGaAHMA6AGVAYcAlwGYAQwA1AGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAbAAvAHrAfcBGgAZANYBsAE4ALEBsgGzAbQBtQG2AbcBuAG5AZ8APwA+AFwAWwDXAfUBFgAVAHQAcAB9AYEAxwGIAMkBggDLAfMBzQHOAZkAvQG7AdkB9gHgAVoA4wHVAeYBcQDGAcgBygGEAcQBxQHbAX4BdgGiAJ4AmACKAOcB3AFyAGoA+QGCAfoB+wH8Af0B/gH/AWsAigGNAY4BjwGQAZIBkwGUAZYBmQFsAOwBAAAAAADAAQAAACMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMAAAAAwAIAAACpAQAAAAAAALUAAAAAAIIBWgACANQBswAbAAoADgAPAAYABwBsAAAArQGDAAAAEAAaADoA4QHkARgAHQAeAAAAEQASAAAAigA/AAAAAAB5AQAAHwAqACsALAAtAHAAvAH2AS4AMgBAACEAIgAAAAAAAABIACcAJgAzANABiQB6AT0ANQA2AHwBqAH3AQAA5QE7ADwAAAAAAAAAAAAAAAAAAAAAAEEAMACsARUAUwBCAEMAxQEAABQAmQGUAUkASgBLAEwATQBOAE8AUABRAFIAVwBWAAAAAABpAFgAWQDSAa8BuwF2AZABXwAAAGAAYQBiAGMAZABlAGYAZwBoAG0AKAAAAAAAgABuAG8A0QGJAQAAWwCiAHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCEACUAAACBAJcAhQCGAAsAAAA3AAwA6QGMAI0AjgCPAJAAkQCSAJMAlACVAJYAmwCuAAAAVQCvALABsgDWAbQAtgC3ALgAAwC5ALsAugAAAAAAAAAAALwAvQC+AL8AwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA5gDjAOQA5QDnAOgA6wDsAOkA6gDtAO4A7wDAAPAA8QDyAPMA9QD2APcA+AD5APoA+wD8AP0A9AD+AP8AAAEBAQMBBAEFAQYBAgEHAQgBCQEKAQwBDQEOAQ8BCwEQAREBEgETARUBFgEXARgBGgEZAR0BGwEcAR4BHwEhASMBIAEkARQBIgElASYBJwEqASkBLgEtASsBLAEvAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAU4BAABQAVEBUgFTAQAAVQFWAVcBWAEAAFoBWwFcAV0BAABfAWABYQFiAQAAZAFlAWYBZwEAAGkBagFrAWwBTwFuATABMQEyAXABbwF0AQgAdQEvAJgAwQEZADEABAD6ATQAcgB3AQAAgQFFAIMBhQGGAYcB4gFUAIgBiwGSAQAAqwHoAYwBiwDqAecBkQHKAZUBlwETAAkAmAGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgG6AVwAAADTAcIBXQAkALAAsQCnAbEBsgGzAbQBtQG2AbcBuAHIAWoAfwGhAJoAcQB+ATgAawDgAfMBAACTAbkB2QHHAcQByQF7AcsBzQGWAaAARgB9AcABFgCAAZ4ADQAFAL4BAAD7AdsB7AEAAAAAeAEAAAAAdADPAeYBxgHYAcMB/gGKAY8BhAHrAe0B7gHvAcwBXgDVAY4B3QGIAPQBAAD1AQAA+QH4ARwAvQH8AQAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAADEAQAAAAAAABIAAAANAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAADAAAAAAAAAwMAAAAAAAABAwAAAAAAAAIDAAAAAAAAAAEAAAAAAAADAQAAAAAAAAUDAAAAAAAABgMAAAAAAADEAQAAAAAAAMgBAAAAAAAAzAEAAAAAAADQAQAAAAAAANQBAAAAAAAAMAIAAAAAAADcAgAAAAAAACQEAAAAAAAAgAQAAAAAAADcBAAAAAAAAOAEAAAAAAAAZAYAAAAAAADQCQAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAXAAAAAAAAACsAAAAAAAAAEgBAAAAAAAAXAAAAAAAAABcAAAAAAAAAAQAAAAAAAAAhAEAAAAAAABsAwAAAAAAAOQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAFEAAAAAAAAA/////wAAAMABAAAAAQIDBAUGAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLAAAAAAAAwAIAAACvGNIYyxjEGL0YthirHO8c5hzdHNQcyxzDHLscsxxTGG0YZBhcGKwb0xvNG8UbvRu2G2sbixuEG34bdRv0GxEcCBz/G2AcjByDHHscchxqHDEcPRxwHaUdnh2ZHY8diB2BHXwddx0yHjke+R0XHgweBR4AHrod1x0EHRodUx1YHToZiBl6GWwZXBlMGYwomSimKLIovijKKNYo4ijuKPsoCCkAAAAAAMAAAJBAzcwUQa5HEUMAABZEcT1KP3E9KkAAAJBAzcwUQQAAFkQAADZDAAAWRAAANkOuRxFDcT1KP3E9KkBxPUo/cT0qQAAAkEAAAJBAAAAWRAAAAAAAABZEAAAWRAAAFkQAABZEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZEAAAWRAAAFkQAABZEAAAWRAAAAAAAAAAAAAAAAAAAFkQAABZEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHE9Sj9xPSpAcT1KP3E9KkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QwAANkOuRxFDzcwUQQAAkEBxPSpAcT1KPwAAkEAAAJBAcT0qQHE9Sj8AAADAAQAAAENBOD9HRUE/NDQ1NThFQ0VDQUE0NDU0NDQ0NDQ1NDQ0NDQ0NDQ0NDQ0NEFBQEBDRUNFQzg4NDQ1NTU1NUA4NTQ4ODg4MTE0NTg/QUNFQUFDRQAAAAAAAMABAAAAQT8/NUVDQ0E/Pz8/P0dFR0VDQz09PT09PT09PT09PT09PT09PT09PT09Q0M/P0VHRUdFPj49PT09PT09Pz49PT4+Pj49PT8/P0FDRUdDQ0VHAAAAexcAALAAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAADAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABwBAAAAAAAACwAAAAgAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAICAAAAAAAAAwIAAAAAAAAAAgAAAAAAAAECAAAAAAAAHAEAAAAAAAAgAQAAAAAAACQBAAAAAAAAKAEAAAAAAAAsAQAAAAAAAEADAAAAAAAAUAMAAAAAAABYAwAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAIAAAAAAAAQAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAAAAAD/////AAAAwFUAAABVAAAAVQAAAFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAAACqAAAAAAAAAAAAAACWAAAAlgAAAAcAAAABAAAAAQAAAP////88AAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+AAAAvgAAAAAAAAAAAAAAqgAAAKoAAAAFAAAAAQAAAAEAAAD/////UAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAqgAAAKoAAAAAAAAAAAAAAKoAAACqAAAAKwAAAAEAAAABAAAA/////1AAAABQAAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoAAACqAAAAAAAAAAAAAACqAAAAqgAAACsAAAABAAAAAQAAAP////82AQAANgEAAL4AAAC+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAwAAIAMAAAAAAAAAAAAAIAMAACADAAAMAAAAAQAAAAEAAAD/////QQAAAEEAAAAoAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAAAAAAAAAAAAAMgAAADIAAAACQAAAAEAAAABAAAA/////wAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMABAAAAAAA+AAAAAAAEAAAA1AAAAAAAAAAIAAAABwAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAAA1AAAAAAAAADYAAAAAAAAANwAAAAAAAAA4AAAAAAAAADkAAAAAAAAADgBAAAAAAAAjAEAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAFQAAAAAAAAAVAAAAAAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLAAAASwAAAAAAAAD/////AAAAwAEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAwAEAAAACBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCBggJBAILCg8ODQwAAAAAwAEAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0NDQ0NDQ0NDQ0MABAAAAAAAAAAMAgAAAAAAABUAAAAQAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAAAAAAABAIAAAAAAAAFAgAAAAAAAAYCAAAAAAAABwIAAAAAAAAIAgAAAAAAAAABAAAAAAAAAwEAAAAAAAAMAgAAAAAAABACAAAAAAAAFAIAAAAAAAAYAgAAAAAAABwCAAAAAAAAJAIAAAAAAAAwAgAAAAAAADwCAAAAAAAASAIAAAAAAABUAgAAAAAAAGACAAAAAAAAbAIAAAAAAAB4AgAAAAAAAIQCAAAAAAAAkAIAAAAAAACUAgAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAEAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAEAAAAAAAAA/////wAAAMAAAAAAAAAAwAEAAAAUAAAAAAAAwAIAAACrLAAAAAAAwAEAAAAAAAAAAAAAwAEAAAABAAAAAAAAwAEAAAACAAAAAAAAwAEAAAABAAAAAAAAwAEAAAACAAAAAAAAwAEAAAAFAAAAAAAAwAEAAAABAAAAVpsAABAAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAEAAAAAAAABAQAAAAAAAAIBAAAAAAAAAwEAAAAAAAAFAQAAAAAAAAYBAAAAAAAABwEAAAAAAAAAAgAAAAAAAA8AAAAAAAAADgAAAAAAAAANAAAAAAAAAAwAAAAAAAAACwAAAAAAAAAKAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAgAAAAAAABUAAAASAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAEAQAAAAAAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAAAAAAABAIAAAAAAAAFAgAAAAAAAAkCAAAAAAAACgIAAAAAAAAIAgAAAAAAAAYCAAAAAAAABwIAAAAAAAAAAQAAAAAAAAMBAAAAAAAADAIAAAAAAAAQAgAAAAAAABQCAAAAAAAAGAIAAAAAAAAcAgAAAAAAACQCAAAAAAAAMAIAAAAAAAA8AgAAAAAAAEQCAAAAAAAATAIAAAAAAABYAgAAAAAAAGQCAAAAAAAAbAIAAAAAAAB0AgAAAAAAAKQCAAAAAAAAsAIAAAAAAAC4AgAAAAAAALwCAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAwAAAAAAAAAAwAAAAAAAAACAAAAAAAAAAEAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAEAAAAAAAAA/////wAAAMAAAAAAAAAAwAEAAAABAAAAAAAAwAEAAAACAAAAAAAAwAAAAAAAAADAAAAAAAAAAMABAAAAAQAAAAAAAMABAAAABAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAQAAAAMAAAABAAAAAgAAAEAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAADAAQAAAAIAAAAAAADAAAAAAFabAAAQAAAAAQAAAAIAAAABAAAAAAAAAAAAAAAIAAAACAAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAAAAIAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAxAEAAAAAAAASAAAADQAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAgAAAAAAAAECAAAAAAAAAgIAAAAAAAADAgAAAAAAAAEEAAAAAAAAAAEAAAAAAAADAQAAAAAAACADAAAAAAAAxAEAAAAAAADIAQAAAAAAAMwBAAAAAAAA0AEAAAAAAADUAQAAAAAAAOABAAAAAAAA7AEAAAAAAAD8AQAAAAAAAAwCAAAAAAAAGAIAAAAAAAAkAgAAAAAAACgCAAAAAAAAPAMAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAFAEAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAP////8AAADAAQAAAAEAAAAAAADAAgAAAB4hAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMABAAAA1AAAAAAAAMABAAAA1QAAAG0OAAAQAAAAAQAAAAIAAAAHAAAAAAAAAAAAAAAAAAAAEAAAAAoAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAACAAAAAAAAAQMAAAAAAAACAwAAAAAAAA8AAAAAAAAADgAAAAAAAAANAAAAAAAAAAwAAAAAAAAACwAAAAAAAAAKAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAKQAAAAAAAAABgAAAAYAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAADAAAAAAAAAAIAAAAAAACkAAAAAAAAAKgAAAAAAAAArAAAAAAAAACwAAAAAAAAALQAAAAAAAAA//////////8EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAD/////AAAAwAAAAAAAAAAAAAAAAAQAAAAAAAAArAEAAAAAAAARAAAADAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABAEAAAAAAAAAAgAAAAAAAAECAAAAAAAAAgIAAAAAAAADAgAAAAAAAAEEAAAAAAAAAAEAAAAAAAADAQAAAAAAAKwBAAAAAAAAsAEAAAAAAAC0AQAAAAAAALgBAAAAAAAAvAEAAAAAAADEAQAAAAAAANQBAAAAAAAAOAIAAAAAAABwAgAAAAAAAHwCAAAAAAAAhAIAAAAAAACIAgAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAAGQAAAAAAAAAOAAAAAAAAAAMAAAAAAAAAAgAAAAAAAAABAAAAAAAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAP////8AAADAAAAAAAAAAMACAAAANyl+KYkpkykAAADAAQAAAAEFCS0BAAAABQUlDUAAAAA4AAAAAAAAAAAAAAAAAAAAAwAAADIAAIADAAAABAAAAAYAAAAHAAAAGwAAALMAAAABAQAABwAAgA0AAIADAAAABAAAAAUAAABkAAAAAAAAwAEAAAAAAAABAQAAAAAAAA1AAAAADAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAGQAAAAAAADAAQAAAAIBAgEAAADAAAAAAA4WAAAUAAAAAQAAAAIAAAADAAEAAQABAAAAAAAAAAAAEAAAAAkAAAAAAQAAAAAAAAEBAAAAAAAAAgEAAAAAAAADAQAAAAAAAAUBAAAAAAAABgEAAAAAAAAHAQAAAAAAAAACAAAAAAAAAQIAAAAAAAAPAAAAAAAAAA4AAAAAAAAADQAAAAAAAAAMAAAAAAAAAAsAAAAAAAAACgAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABwBAAAAAAAACwAAAAkAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAQBAAAAAAAA//////////8AAQAAAAAAAAMBAAAAAAAAAgEAAAAAAAAcAQAAAAAAACABAAAAAAAAJAEAAAAAAAAoAQAAAAAAACwBAAAAAAAANAEAAAAAAAA8AQAAAAAAAEABAAAAAAAABAYAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAEAAAAAAAAAMQEAAAAAAAAaCMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA/wEAAAAAAAD/////AAAAwAAAAAAAAADAAAAAAEaVAAAMBAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgAAAAIAAAAAAAAAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABwAAAAABAAAAAAAAAQEAAAAAAAACAQAAAAAAAAMBAAAAAAAABQEAAAAAAAAGAQAAAAAAAAcBAAAAAAAADwAAAAAAAAAOAAAAAAAAAA0AAAAAAAAADAAAAAAAAAALAAAAAAAAAAoAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAxAEAAAAAAAASAAAAEAAAAAACAAAAAAAAAAEAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAIBAAAAAAAAAgIAAAAAAADnAgAAAAAAgPsCAAAAAACABwMAAAAAAIAQAwAAAAAAgBsDAAAAAACAFCkAAAAAAIAgKQAAAAAAgGwrAAAAAACAxAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAABYAAAAAAAAAFwAAAAAAAAAaAQAAAAAAAB0CAAAAAAAAIgOAAAAAAAAnBQAAAAAAACkHAAAAAAAALAeAAAAAAAAvCAAAAAAAADAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAABIAAAAAAAAAAQAAAAAAAAADAQAAAAAAAAMBAAAAAAAABQGAAAAAAAAFAYAAAAAAAAICAAAAAAAAAwCAAAAAAAADAIAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAADnAgAA/////yIAAABCAAAAAQAAAAAAAAAAAAAA+wIAAP////8iAAAAQAAAAAEAAAAAAAAABwMAAP////8iAAAARAAAAAEAAAAQAwAA/////yIAAABEAAAAAQAAABsDAAD/////IgAAAEAAAAABAAAAAAAAABQpAAD/////IgAAAEAAAAABAAAAwwAAACApAAD/////IgAAAEAAAAABAAAAAAAAAGwrAAD/////IgAAAEAAAAABAAAAAAAAAAEAAAAAAgAAAAAAAAAAAAD/////AAAAwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAMD/AQAAAgAAAPYCLAM9A04DVwNmA3MDjQNXA5EDlwOfA6gDswO/A8YDywPTA9sD4wPtA/UDAAQHBAsEEgQZBCAEKQQuBDMEOARABEgEVQReBGgEdgSGBJAEngSuBLMEuAS9BMIEyQTTBN0E6wTwBPQE+wQCBQkFEgUZBSkFMQU6BUMFSAVQBVgFYAVlBW0FdQV9BYcFjwWXBaAFqgW8Bc8F4gX1BQgGGwYuBkEGTAZQBlcGXgZlBmoGcgZ6BoIGjAaUBpwGpQavBrkGxAbPBtoG5QbwBvsGBgcRBxYHHgcmBy4HMwc7B0MHSwdVB10HZQduB30HhgeQB5sHpgexB7wHxwfSB90H6AftB/UH/QcFCAoIEggaCCIILAg0CDwIRQhPCFgIYghtCHgIgwiOCJkIpAivCLoIvwjHCM8I1wjcCOQI7Aj0CP4IBgkOCRcJIQkqCTQJPwlKCVUJYAlrCXYJgQmuBJAJlAmdCaQJqAmxCbUJvgnCCdQJ2AndCeoJ8An1CQYKGwozCvAJTApRCloKZgpzCngKgQqNCpoKoQqsCroKyQrQCtsK6Qr4Cv4KCAsVCyMLKQszC0ALTgtUC14Lawt5C38LiQuWC6QLqQuyC74LywvRC9gL4wvxCwcMDAwVDBsMJQwyDEAMRQxODFoMaQx2DHwMhgyTDKEMqAyzDMEM0AzVDN4M6gz3DAYNDA0WDSMNMQ02DT8NSw1YDWcNbg15DYcNlg2bDaQNsA29DdEN1w3hDe4N/A0DDg4OHA4HDDAONQ4+DkoOXA5hDmoOfA6FDpEOng6tDrQOvw7NDuEO6g7xDvcOAQ8ODxwPJA9ED2EPfA+ID5EPoQ+yD8IP0w/qDwQQIRA7EE4QZhB6EIsQnBC3ENgQ8hBhDw0RHxEsETYR6g5VEV4RZxFwEXkRhxGQEZkRohGrEbkRwhHLEdQR3RHrEfQR/REGEg8SHRImEi8SOBJBEk8SWBJhEmoScxLqCTAONQ4+DkoOmhLaAdUBnxLEAaUSrxK5EsMSzRLXEuES6xL1ErMB/xKgAQsTGROIAXYBcQEnEy0TagFjATMTPRNFE00TXgFXE18TZxNaAW4TVQFDAXUTPgE+ATYBMwEwAS0BKgEnASQBIQEeARsBGAERAZcDghOKE5ITmhOiE6oTshO6EwoBBAEAAfkA8wDsAOQA3gDLAMITzhPaE+YT8hP+EwoUFhQiFC4UPhROFFkUqwBjFKUAahSQAHMUfwBbAIMUjRSXFKEUqxS1FL8UyRTTFMIEQwVMBhEH6Ae6CMIE8ARDBWAFTAZlBhEHLgfoBwUIugjXCNor4SvtK/crASwLLBUsHywpLDMsPCxCLEgsTixULFosYCxmLGwscix4LD4BAAABAADA/gEAAAIAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuADEAMgAzADQANQA3ADgAOQA6ADsAPAA9AD4APwBAAEMARABFAEYASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAXABdAF4AXwBhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgB1AHYAdwB4AHoAewB8AH0AfgB/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjwCQAJEAkgCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAKEAogCjAKQApQCmAKkAqgCrAKwArgCvALAAsQCyALMAtAC1ALYAtwC4ALkAugC7ALwAvQC+AL8AwADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4AzwDQANEA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wAAAQEBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wHkAeUB5gHnAegB6QEwAEIAWwB0AI4AqAAvADYAQQBHAFoAYABzAHkAjQCTAKcArQDqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AQAAAQAAwP8BAAABAAAAJy0uLy8vLzAwMTExMTIzNDQ0NDQ0NDQ1NTU1NTY3ODg4ODg4ODg4ODg5Ojs8PT09PT4/Pz8/Pz8/Pz8/QEBAQEFBQUFBQUFBQUFBQUFBQUFBQUJCQkJDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NERERERUVFRUVFRUVFRUVFRUVFRUVFRUZGRkZHR0dHR0dHR0dHR0dHR0dHR0dHSEhISElJSUlJSUlJSUlJSUlJSUlJSUlKS0tLTExNTU5PUFFRUlNTU1NTVFVVVVVWVlZWV1dXV1hYWFhZWVlZWlpaWltbW1tcXFxcXV1dXV5fX19fYGBhYWFhYmJiYmJjY2NjZGRkZGVlZWVlZmZmZmdnZ2dnaGhoaGlpaWlpampqamtra2tsbW1tbW5ubm9vb29wcHBwcXJzc3NzdHR1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dndBQ0VHSUFDRUdJQUNFR0lBQ0VHSUFDRUdJQUNFR0l4eXl5eXorKiopKSkpKSkpKSkpKCgnJyYlJCMjIyIhISEhISAgIB8fHx4dHRwcGxoZGBcWFRQTEhEQEBAQEBAQEBAQDw4NDAsKCQgHBwcHBwcHBwcHBgYFBQQEAwMCAgF7e3t7e3t7e3t7PUBCREZIPT9AQUJDREVGR0hJBHsFBQUFBQUFAxoZGBcWFRQTEhEiHAABAAAADQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQABAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAADA/wEAAAEAAAAcASIdECMkHRABHh0QAQEBIyQdEB4cJQEdHhwQAQEBHSMkJhAcJygeKQEBAQEBHB0eAQEdIyQQHhymKCcBHB0eASMkHRAeHKYoJyssLS4vMDEyARweHQEjJB0QHhymKCcrLC0uLzAxMgEcHR4BIyQdEB4cpigzJyssLS4vMDEyARwdHgEjJB0QHhymKDMnKywtLi8wMTIBHB0eASMkHRAeHKYoMycrLC0uLzAxMgEBEB0BEAEQAQEBASIBASI0NTY3ASI0NQEiNDUBIjQ1ASI0NQEiNDUBIjQ1ASI0NQEiNDUBIjQ1AQEiNDUBIgEiNDUBIjQ2NQEiNDUBIjQ1ASI0NTYBIjQ1ASI0NTYBIjQ1ASI0NTYBIjQ1ASI0NSIBIjQ1ASI1IjQ1NgEiNDUiAQEiNDUBHDg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1ABAVFRUVFRUlJSUlJTU1NTU1RUVFRUVVVVVVVWVlZWVgEBIjQ1IgEBFAEUFRYXGCEZGhsBEAEQAQEBARQVAQEQFBUTARAREAETAQEdHAEBAQEBAQEBAQEBAQEUFRYXGCEZGhsBAQEBAQEBAQEUFRYXGCEZGhsPDg0SARABEAEcAQEUFRYXGCEZGhumpqampqZxcXFxcXFxcXFxcXEcKhMMoKGio6QcERERERERERERERxxAAEAAAAODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAAEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAMD/AQAABAAAADgAAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAC8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAC8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAD8AAAA/AAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAAPwAAAD8AAAAvAAAAPwAAAD8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAC8AAAA/AAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAC8AAAA/AAAAPwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAD8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAD8AAAA/AAAALwAAAD8AAAA/AAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA3AAAANwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAC8AAAAvAAAAPwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAC8AAAA/AAAALwAAAC8AAAAvAAAAPwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAC8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAD8AAAAvAAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAD8AAAA/AAAAPwAAAC8AAAA/AAAAPwAAAD8AAAAvAAAAPwAAAC8AAAAvAAAAPwAAAC8AAAA/AAAALwAAAC8AAAAvAAAAPwAAAC8AAAAvAAAAPwAAAC8AAAA/AAAALwAAAC8AAAAvAAAAPwAAAC8AAAAvAAAAPwAAAD8AAAA/AAAALwAAAC8AAAAvAAAAPwAAAC8AAAAvAAAAPwAAAC8AAAA/AAAALwAAAC8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAD8AAAAvAAAALwAAAD8AAAA/AAAALwAAAD8AAAAvAAAALwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAALwAAAC8AAAA/AAAALwAAAC8AAAA/AAAAJAAAACQAAAAkAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAoAAAAMAAAADAAAAAoAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAAAQAAAAEAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACcA//8nAP//JwD//ycA//8nAP//JwD//yEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAACEAAAAhAAAAIQAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAACgAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAKAAAACQAAAABAADA/wEAAAEAAADsUlcCAgICe3sBAQEBGFkDAwMDAwMDAwQEBAQEIB8FBQUFBQUFBQUFBTYaXSosLCwsdBcXFxcXFxcXFxcGBgYGBwcHBwcHBwcHBwcHBwcHBwcHCAgICAkJCQkJCQkJCQkJCQkJCQkJCQoKCgoLCwsLCwsLCwsLCwsLCwsLCwsLDQ0NDQ4ODg4ODg4ODg4ODg4ODg4ODg4PDw8PEBAQEBAQEBAQEBAQEBAQEBAQEDAMDAxmZmVlK2hhW1tNNTU1NTVObm5ublBQUFB5eXl5VlZWVlxcXFxeXl5eOTk5OTo6Ojo7Ozs7JWdnZ2d/f1paWlo4ODg4OFRUVFRgYGBgPT09PT0+Pj4+Pz8/Pz9AQEBAQUFBQUF1dXV1RERERCZDQ0NDYmJiRUVFRUZGRkZHbDw8PDxkZG9vb29vb29vb29vb29vb29vb29vb29vb28WLgcJCw4QBwkLDhAHCQsOEAcJCw4QBwkLDhAHCQsOEHx9fX19cf/8/O7u7u7u7u7u7u7t7ezs687P5+fn6ejo6Ojo5eXl5ubm/dzc6urb0NHS09TV1tfY2f7+/v7+/v7+/v7w4+Hi4OTf3tra2tra2tra2trd3e/vysrLy8zMzcnJycnJycnJycksBggKDQ8sFwYHCAkKCw0ODxDKye/v7+/v7+/L0NHS09TV1tfY2enqAAEAAMD/AQAAAQAAAPsAFfzuERD87gD+/O4AAAAREPzu/vsdAPz+++4AAAD8ERAa7vseFP5UAAAAAAD7/P4AAPwREO7+++cUHgD7/P4AERD87v775xQeICEiIyQlJicA+/78ABEQ/O7+++cUHiAhIiMkJSYnAPv8/gAREPzu/vvnFBkeICEiIyQlJicA+/z+ABEQ/O7+++cUGR4gISIjJCUmJwD7/P4AERD87v775xQZHiAhIiMkJSYnAADu/ADuAO4AAAAAFQAAFRYXBWEAFRYXABUWFwAVFhcAFRYXABUWFwAVFhcAFRYXABUWFwAVFhcAABUWFwAVABUWFwAVFgUXABUWFwAVFhcAFRYXBQAVFhcAFRYXBQAVFhcAFRYXBQAVFhcAFRYXFQAVFhcAFRcVFhcFABUWFxUAABUWFwD7f4AwfgIDBBIMCw02GAYzNDU3RkxRWFJmGwAAWVlZWVlaWlpaWltbW1tbXFxcXFxdXV1dXV5eXl5eAAAVFhcVAADyAPLz9PX29/j5+gDuAO4AAAAA8vMAAO7y8/EA7u/uAPEAAPz7AAAAAAAAAAAAAAAAAPLz9PX29/j5+gAAAAAAAAAAAPLz9PX29/j5+u3s6/AA7gDuAPsAAPLz9PX29/j5+ufn5+fn5+jo6Ojo6Ojo6Ojo6Pvm8eXk4+Lh4Pvv7+/v7+/v7+/v++gAAAAAwAEAAAAIAAAAAQAAAAIAAAAAAAAAAQAAAD8AAABnRSMB