El ahorcado ORH — ¿Qué sesgo está tomando la decisión?
Lee la situación · Pide pista si la necesitas (cuesta 1 vida)
KGZ1bmN0aW9uKCkgewoKICB2YXIgZWRpY2lvbmVzID0gWwogICAgewogICAgICBudW06IDEsCiAgICAgIHRpdHVsbzogIkVsIHByb3llY3RvIHF1ZSBuYWRpZSBzZSBhdHJldmUgYSBjYW5jZWxhciIsCiAgICAgIHNpdHVhY2lvbjogIkhhY2UgdHJlcyBhXHUwMGYxb3MgbGEgZW1wcmVzYSBpbXBsYW50XHUwMGYzIHVuIHByb2dyYW1hIGRlIGxpZGVyYXpnby4gTG9zIGluZGljYWRvcmVzIG11ZXN0cmFuIHF1ZSBhcGVuYXMgaGEgbWVqb3JhZG8gZWwgZGVzZW1wZVx1MDBmMW8geSBsYSBwYXJ0aWNpcGFjaVx1MDBmM24gY2FlIGVkaWNpXHUwMGYzbiB0cmFzIGVkaWNpXHUwMGYzbi4gQXVuIGFzXHUwMGVkLCBlbCBjb21pdFx1MDBlOSBkZWNpZGUgbWFudGVuZXJsby4gU3UgYXJndW1lbnRvOiBcdTAwYWJDb24gdG9kbyBlbCBkaW5lcm8geSBlbCB0aWVtcG8gcXVlIGhlbW9zIGludmVydGlkbywgYWhvcmEgbm8gcG9kZW1vcyBlY2hhcmxvIGF0clx1MDBlMXMuXHUwMGJiIiwKICAgICAgcHJlZ3VudGE6ICJcdTAwYmZRdVx1MDBlOSBzZXNnbyBlc3RcdTAwZTEgaW5mbHV5ZW5kbyBlbiBlc3RhIGRlY2lzaVx1MDBmM24/IiwKICAgICAgcGFsYWJyYTogIkNPU1RFSFVORElETyIsCiAgICAgIGRpc3BsYXk6ICJDT1NURSBIVU5ESURPIiwKICAgICAgcmVzcHVlc3RhOiAiQ29zdGUgaHVuZGlkbyIsCiAgICAgIGV4cGxpY2FjaW9uOiAiQ3VhbmRvIHVuYSBkZWNpc2lcdTAwZjNuIHNlIG1hbnRpZW5lIFx1MDBmYW5pY2FtZW50ZSBwb3JxdWUgeWEgc2UgaGEgaW52ZXJ0aWRvIG11Y2hvIGRpbmVybywgdGllbXBvIG8gZXNmdWVyem8sIGFwYXJlY2UgZWwgc2VzZ28gZGVsIGNvc3RlIGh1bmRpZG8uIExhcyBpbnZlcnNpb25lcyBwYXNhZGFzIG5vIGRlYmVyXHUwMGVkYW4gY29uZGljaW9uYXIgc2kgdW5hIGluaWNpYXRpdmEgc2lndWUgdGVuaWVuZG8gc2VudGlkbyBob3kuIiwKICAgICAgcmVmbGV4aW9uOiAiXHUwMGJmTWFudGllbmUgYWxndW5hIGluaWNpYXRpdmEgYWN0aXZhIHF1ZSwgc2kgZW1wZXphcmFzIGRlIGNlcm8gaG95LCBubyBwb25kclx1MDBlZGFzIGVuIG1hcmNoYT8iCiAgICB9LAogICAgewogICAgICBudW06IDIsCiAgICAgIHRpdHVsbzogIllhIHNhYlx1MDBlZGFtb3MgcXVlIGliYSBhIG9jdXJyaXIiLAogICAgICBzaXR1YWNpb246ICJVbiBwcm9mZXNpb25hbCBjb24gYWx0byBwb3RlbmNpYWwgcHJlc2VudGEgc3UgZGltaXNpXHUwMGYzbi4gVHJhcyBjb25vY2VyIGxhIG5vdGljaWEsIHZhcmlvcyBkaXJlY3Rpdm9zIGNvbWVudGFuOiBcdTAwYWJFcmEgZXZpZGVudGUuIFNlIHZlXHUwMGVkYSB2ZW5pci5cdTAwYmIgU2luIGVtYmFyZ28sIG5hZGllIGhhYlx1MDBlZGEgcGxhbnRlYWRvIHVuIHBsYW4gZGUgcmV0ZW5jaVx1MDBmM24gbmkgaGFiXHUwMGVkYSBhZHZlcnRpZG8gZGVsIHJpZXNnbyBzZW1hbmFzIGFudGVzLiIsCiAgICAgIHByZWd1bnRhOiAiXHUwMGJmUXVcdTAwZTkgc2VzZ28gYXBhcmVjZSBhcXVcdTAwZWQ/IiwKICAgICAgcGFsYWJyYTogIlJFVFJPU1BFQ1RJVkEiLAogICAgICBkaXNwbGF5OiAiUkVUUk9TUEVDVElWQSIsCiAgICAgIHJlc3B1ZXN0YTogIlJldHJvc3BlY3RpdmEiLAogICAgICBleHBsaWNhY2lvbjogIlVuYSB2ZXogY29ub2NlbW9zIGVsIGRlc2VubGFjZSwgdGVuZGVtb3MgYSBjcmVlciBxdWUgZXJhIG11Y2hvIG1cdTAwZTFzIHByZXZpc2libGUgZGUgbG8gcXVlIHJlYWxtZW50ZSBlcmEuIEVzdGUgc2VzZ28gZGlmaWN1bHRhIGFwcmVuZGVyIGRlIGxvcyBlcnJvcmVzIHBvcnF1ZSBzdXN0aXR1eWUgZWwgYW5cdTAwZTFsaXNpcyBwb3IgbGEgZmFsc2Egc2Vuc2FjaVx1MDBmM24gZGUgcXVlIFx1MDBhYnllIGxvIHNhYlx1MDBlZGFtb3NcdTAwYmIuIiwKICAgICAgcmVmbGV4aW9uOiAiU2kgcmVhbG1lbnRlIGVyYSB0YW4gZXZpZGVudGUsIFx1MDBiZnF1XHUwMGU5IGRlY2lzaVx1MDBmM24gdG9tYXN0ZSBhbnRlcyBkZSBxdWUgb2N1cnJpZXJhPyIKICAgIH0sCiAgICB7CiAgICAgIG51bTogMywKICAgICAgdGl0dWxvOiAiRWwgY2FuZGlkYXRvIHBlcmZlY3RvLi4uIGRlbWFzaWFkbyBwZXJmZWN0byIsCiAgICAgIHNpdHVhY2lvbjogIkR1cmFudGUgdW5hIGVudHJldmlzdGEsIGVsIGNhbmRpZGF0byBoYWNlIHVuYSBwcmVzZW50YWNpXHUwMGYzbiBicmlsbGFudGUuIEEgcGFydGlyIGRlIGVzZSBtb21lbnRvLCBlbCBlbnRyZXZpc3RhZG9yIGVtcGllemEgYSB2YWxvcmFyIGNvbW8gZXhjZWxlbnRlcyBjb21wZXRlbmNpYXMgcXVlIG5pIHNpcXVpZXJhIGhhIGV2YWx1YWRvIHRvZGF2XHUwMGVkYS4iLAogICAgICBwcmVndW50YTogIlx1MDBiZlF1XHUwMGU5IHNlc2dvIGVzdFx1MDBlMSBhY3R1YW5kbz8iLAogICAgICBwYWxhYnJhOiAiSEFMTyIsCiAgICAgIGRpc3BsYXk6ICJIQUxPIiwKICAgICAgcmVzcHVlc3RhOiAiSGFsbyIsCiAgICAgIGV4cGxpY2FjaW9uOiAiVW5hIFx1MDBmYW5pY2EgY2FyYWN0ZXJcdTAwZWRzdGljYSBwb3NpdGl2YSBpbmZsdXllIGVuIGxhIHBlcmNlcGNpXHUwMGYzbiBkZWwgcmVzdG8gZGUgYXRyaWJ1dG9zIGRlIHVuYSBwZXJzb25hLiBFcyB1bm8gZGUgbG9zIHNlc2dvcyBtXHUwMGUxcyBmcmVjdWVudGVzIGVuIHNlbGVjY2lcdTAwZjNuIHkgZXZhbHVhY2lcdTAwZjNuIGRlbCBkZXNlbXBlXHUwMGYxby4iLAogICAgICByZWZsZXhpb246ICJcdTAwYmZDdVx1MDBlMW50YXMgZGUgdHVzIHZhbG9yYWNpb25lcyBzZSBiYXNhbiBlbiBldmlkZW5jaWFzIHkgY3VcdTAwZTFudGFzIGVuIHVuYSBwcmltZXJhIGltcHJlc2lcdTAwZjNuPyIKICAgIH0sCiAgICB7CiAgICAgIG51bTogNCwKICAgICAgdGl0dWxvOiAiU2llbXByZSBlbGVnaW1vcyBhbCBxdWUgZW5jYWphIiwKICAgICAgc2l0dWFjaW9uOiAiRG9zIGNhbmRpZGF0b3MgdGllbmVuIHVuYSBleHBlcmllbmNpYSBtdXkgc2ltaWxhci4gRWwgcmVzcG9uc2FibGUgc2UgaW5jbGluYSBwb3IgdW5vIGRlIGVsbG9zIHBvcnF1ZSBlc3R1ZGlcdTAwZjMgZW4gbGEgbWlzbWEgdW5pdmVyc2lkYWQsIGNvbXBhcnRlIGFmaWNpb25lcyB5IFx1MDBhYm1lIHRyYW5zbWl0ZSBtXHUwMGUxcyBjb25maWFuemFcdTAwYmIuIiwKICAgICAgcHJlZ3VudGE6ICJcdTAwYmZRdVx1MDBlOSBzZXNnbyBlc3RcdTAwZTEgYXBhcmVjaWVuZG8/IiwKICAgICAgcGFsYWJyYTogIkFGSU5JREFEIiwKICAgICAgZGlzcGxheTogIkFGSU5JREFEIiwKICAgICAgcmVzcHVlc3RhOiAiQWZpbmlkYWQiLAogICAgICBleHBsaWNhY2lvbjogIk5vcyBzZW50aW1vcyBtXHUwMGUxcyBjXHUwMGYzbW9kb3MgY29uIHF1aWVuZXMgc2UgcGFyZWNlbiBhIG5vc290cm9zLiBTaW4gZGFybm9zIGN1ZW50YSwgZXNhIGZhbWlsaWFyaWRhZCBwdWVkZSBhY2FiYXIgaW5mbHV5ZW5kbyBlbiBkZWNpc2lvbmVzIGRlIGNvbnRyYXRhY2lcdTAwZjNuLCBwcm9tb2NpXHUwMGYzbiBvIGRlc2Fycm9sbG8uIiwKICAgICAgcmVmbGV4aW9uOiAiXHUwMGJmRXN0XHUwMGUxcyBlbGlnaWVuZG8gYWwgbWVqb3IgY2FuZGlkYXRvLi4uIG8gYWwgcXVlIG1cdTAwZTFzIHNlIHBhcmVjZSBhIHRpPyIKICAgIH0sCiAgICB7CiAgICAgIG51bTogNSwKICAgICAgdGl0dWxvOiAiTGEgXHUwMGZhbHRpbWEgaW1wcmVzaVx1MDBmM24gcGVzYSBkZW1hc2lhZG8iLAogICAgICBzaXR1YWNpb246ICJMbGVnYSBsYSBldmFsdWFjaVx1MDBmM24gYW51YWwuIEVsIHJlc3BvbnNhYmxlIHJlY3VlcmRhIHBlcmZlY3RhbWVudGUgbG9zIGxvZ3JvcyBkZSBsb3MgZG9zIFx1MDBmYWx0aW1vcyBtZXNlcywgcGVybyBhcGVuYXMgbWVuY2lvbmEgdG9kbyBsbyBjb25zZWd1aWRvIGR1cmFudGUgZWwgcmVzdG8gZGVsIGFcdTAwZjFvLiIsCiAgICAgIHByZWd1bnRhOiAiXHUwMGJmUXVcdTAwZTkgc2VzZ28gZXM/IiwKICAgICAgcGFsYWJyYTogIlJFQ0VOQ0lBIiwKICAgICAgZGlzcGxheTogIlJFQ0VOQ0lBIiwKICAgICAgcmVzcHVlc3RhOiAiUmVjZW5jaWEiLAogICAgICBleHBsaWNhY2lvbjogIkxvcyBhY29udGVjaW1pZW50b3MgbVx1MDBlMXMgcmVjaWVudGVzIHRpZW5lbiB1biBwZXNvIGRlc3Byb3BvcmNpb25hZG8gZW4gbnVlc3RyYXMgZGVjaXNpb25lcy4gUG9yIGVzbyBsYXMgZXZhbHVhY2lvbmVzIGJhc2FkYXMgc29sbyBlbiBsYSBtZW1vcmlhIHN1ZWxlbiBzZXIgbWVub3Mgb2JqZXRpdmFzLiIsCiAgICAgIHJlZmxleGlvbjogIlNpIHR1dmllcmFzIHF1ZSBqdXN0aWZpY2FyIGNhZGEgdmFsb3JhY2lcdTAwZjNuIGNvbiBldmlkZW5jaWFzLCBcdTAwYmZwb2RyXHUwMGVkYXMgaGFjZXJsbz8iCiAgICB9LAogICAgewogICAgICBudW06IDYsCiAgICAgIHRpdHVsbzogIk5hZGllIGNvbnRyYWRpY2UgYWwgZGlyZWN0b3IiLAogICAgICBzaXR1YWNpb246ICJFbiB1bmEgcmV1bmlcdTAwZjNuIHNvYnJlIGxhIGVzdHJhdGVnaWEgZGUgdGFsZW50bywgdG9kb3MgbG9zIGFzaXN0ZW50ZXMgYXBveWFuIGxhIHByb3B1ZXN0YSBkZWwgZGlyZWN0b3IuIE5vIHBvcnF1ZSBlc3RcdTAwZTluIGNvbnZlbmNpZG9zLCBzaW5vIHBvcnF1ZSBuYWRpZSBxdWllcmUgc2VyIHF1aWVuIGRpc2NyZXBlLiIsCiAgICAgIHByZWd1bnRhOiAiXHUwMGJmUXVcdTAwZTkgZmVuXHUwMGYzbWVubyBlc3RcdTAwZTEgb2N1cnJpZW5kbz8iLAogICAgICBwYWxhYnJhOiAiUEVOU0FNSUVOVE9ERUdSVVBPIiwKICAgICAgZGlzcGxheTogIlBFTlNBTUlFTlRPIERFIEdSVVBPIiwKICAgICAgcmVzcHVlc3RhOiAiUGVuc2FtaWVudG8gZGUgZ3J1cG8iLAogICAgICBleHBsaWNhY2lvbjogIkN1YW5kbyBlbCBkZXNlbyBkZSBtYW50ZW5lciBsYSBhcm1vblx1MDBlZGEgcGVzYSBtXHUwMGUxcyBxdWUgZWwgYW5cdTAwZTFsaXNpcyBjclx1MDBlZHRpY28sIGxhcyBvcmdhbml6YWNpb25lcyB0b21hbiBwZW9yZXMgZGVjaXNpb25lcy4gTGEgYXVzZW5jaWEgZGUgZGlzY3JlcGFuY2lhIG5vIHNpZW1wcmUgc2lnbmlmaWNhIGNvbnNlbnNvOyBhIHZlY2VzIHNpZ25pZmljYSBzaWxlbmNpby4iLAogICAgICByZWZsZXhpb246ICJFbiB0dSBcdTAwZmFsdGltYSByZXVuaVx1MDBmM24gaW1wb3J0YW50ZSwgXHUwMGJmYWxndWllbiBkZWZlbmRpXHUwMGYzIGxhIHBvc3R1cmEgY29udHJhcmlhPyIKICAgIH0KICBdOwoKICB2YXIgTUFYX0VSUk9SRVMgPSA2OwogIHZhciBlc3RhZG8gPSB7CiAgICBpbmRpY2U6IDAsCiAgICBsZXRyYXNVc2FkYXM6IFtdLAogICAgZXJyb3JlczogMCwKICAgIGNvbXBsZXRhZG86IGZhbHNlLAogICAgZmFsbGFkbzogZmFsc2UsCiAgICBwaXN0YXNVc2FkYXM6IDAKICB9OwoKICBmdW5jdGlvbiBlZEFjdHVhbCgpIHsgcmV0dXJuIGVkaWNpb25lc1tlc3RhZG8uaW5kaWNlXTsgfQogIGZ1bmN0aW9uIHBhbGFicmFKdWVnbygpIHsgcmV0dXJuIGVkQWN0dWFsKCkucGFsYWJyYTsgfQoKICBmdW5jdGlvbiBpbmljaWFyUm9uZGEoaW5kaWNlKSB7CiAgICBlc3RhZG8uaW5kaWNlID0gaW5kaWNlOwogICAgZXN0YWRvLmxldHJhc1VzYWRhcyA9IFtdOwogICAgZXN0YWRvLmVycm9yZXMgPSAwOwogICAgZXN0YWRvLmNvbXBsZXRhZG8gPSBmYWxzZTsKICAgIGVzdGFkby5mYWxsYWRvID0gZmFsc2U7CiAgICBlc3RhZG8ucGlzdGFzVXNhZGFzID0gMDsKICAgIHJlbmRlcigpOwogIH0KCiAgZnVuY3Rpb24gaW50ZW50YXJMZXRyYShsZXRyYSkgewogICAgbGV0cmEgPSBsZXRyYS50b1VwcGVyQ2FzZSgpOwogICAgaWYgKGVzdGFkby5sZXRyYXNVc2FkYXMuaW5kZXhPZihsZXRyYSkgPj0gMCkgcmV0dXJuOwogICAgaWYgKGVzdGFkby5jb21wbGV0YWRvIHx8IGVzdGFkby5mYWxsYWRvKSByZXR1cm47CiAgICBlc3RhZG8ubGV0cmFzVXNhZGFzLnB1c2gobGV0cmEpOwogICAgdmFyIHAgPSBwYWxhYnJhSnVlZ28oKTsKICAgIGlmIChwLmluZGV4T2YobGV0cmEpID09PSAtMSkgewogICAgICBlc3RhZG8uZXJyb3JlcysrOwogICAgICBpZiAoZXN0YWRvLmVycm9yZXMgPj0gTUFYX0VSUk9SRVMpIGVzdGFkby5mYWxsYWRvID0gdHJ1ZTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbXByb2JhclZpY3RvcmlhKCk7CiAgICB9CiAgICByZW5kZXIoKTsKICB9CgogIGZ1bmN0aW9uIGNvbXByb2JhclZpY3RvcmlhKCkgewogICAgdmFyIHAgPSBwYWxhYnJhSnVlZ28oKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcC5sZW5ndGg7IGkrKykgewogICAgICBpZiAoZXN0YWRvLmxldHJhc1VzYWRhcy5pbmRleE9mKHBbaV0pID09PSAtMSkgcmV0dXJuOwogICAgfQogICAgZXN0YWRvLmNvbXBsZXRhZG8gPSB0cnVlOwogIH0KCiAgZnVuY3Rpb24gcGVkaXJQaXN0YSgpIHsKICAgIGlmIChlc3RhZG8uY29tcGxldGFkbyB8fCBlc3RhZG8uZmFsbGFkbykgcmV0dXJuOwogICAgaWYgKGVzdGFkby5lcnJvcmVzID49IE1BWF9FUlJPUkVTIC0gMSkgewogICAgICBlc3RhZG8ucGlzdGFzVXNhZGFzKys7CiAgICAgIGVzdGFkby5lcnJvcmVzKys7CiAgICAgIGVzdGFkby5mYWxsYWRvID0gdHJ1ZTsKICAgICAgcmVuZGVyKCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBwID0gcGFsYWJyYUp1ZWdvKCk7CiAgICB2YXIgcGVuZGllbnRlcyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBsID0gcFtpXTsKICAgICAgaWYgKGVzdGFkby5sZXRyYXNVc2FkYXMuaW5kZXhPZihsKSA9PT0gLTEgJiYgcGVuZGllbnRlcy5pbmRleE9mKGwpID09PSAtMSkgewogICAgICAgIHBlbmRpZW50ZXMucHVzaChsKTsKICAgICAgfQogICAgfQogICAgaWYgKHBlbmRpZW50ZXMubGVuZ3RoID09PSAwKSByZXR1cm47CiAgICB2YXIgZWxlZ2lkYSA9IHBlbmRpZW50ZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcGVuZGllbnRlcy5sZW5ndGgpXTsKICAgIGVzdGFkby5sZXRyYXNVc2FkYXMucHVzaChlbGVnaWRhKTsKICAgIGVzdGFkby5lcnJvcmVzKys7CiAgICBlc3RhZG8ucGlzdGFzVXNhZGFzKys7CiAgICBjb21wcm9iYXJWaWN0b3JpYSgpOwogICAgcmVuZGVyKCk7CiAgfQoKICBmdW5jdGlvbiBzdmdBaG9yY2FkbyhlcnJvcmVzKSB7CiAgICB2YXIgcGFydGVzID0gWwogICAgICAnJywKICAgICAgJzxjaXJjbGUgY3g9IjIwMCIgY3k9IjU4IiByPSIxOCIgc3Ryb2tlPSIjRkY3NTFGIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9Im5vbmUiLz4nLAogICAgICAnPGxpbmUgeDE9IjIwMCIgeTE9Ijc2IiB4Mj0iMjAwIiB5Mj0iMTQ1IiBzdHJva2U9IiNGRjc1MUYiIHN0cm9rZS13aWR0aD0iMyIvPicsCiAgICAgICc8bGluZSB4MT0iMjAwIiB5MT0iOTgiIHgyPSIxNzIiIHkyPSIxMjYiIHN0cm9rZT0iI0ZGNzUxRiIgc3Ryb2tlLXdpZHRoPSIzIi8+JywKICAgICAgJzxsaW5lIHgxPSIyMDAiIHkxPSI5OCIgeDI9IjIyOCIgeTI9IjEyNiIgc3Ryb2tlPSIjRkY3NTFGIiBzdHJva2Utd2lkdGg9IjMiLz4nLAogICAgICAnPGxpbmUgeDE9IjIwMCIgeTE9IjE0NSIgeDI9IjE3OCIgeTI9IjE3OCIgc3Ryb2tlPSIjRkY3NTFGIiBzdHJva2Utd2lkdGg9IjMiLz4nLAogICAgICAnPGxpbmUgeDE9IjIwMCIgeTE9IjE0NSIgeDI9IjIyMiIgeTI9IjE3OCIgc3Ryb2tlPSIjRkY3NTFGIiBzdHJva2Utd2lkdGg9IjMiLz4nCiAgICBdOwogICAgdmFyIHN2ZyA9ICc8c3ZnIHZpZXdCb3g9IjAgMCAzMDAgMjEwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJ3aWR0aDoxMDAlO21heC13aWR0aDoxOTBweDtkaXNwbGF5OmJsb2NrO21hcmdpbjowIGF1dG87Ij4nOwogICAgc3ZnICs9ICc8bGluZSB4MT0iNjAiIHkxPSIyMDAiIHgyPSIyNjAiIHkyPSIyMDAiIHN0cm9rZT0iIzAwMjQ0NSIgc3Ryb2tlLXdpZHRoPSIzIi8+JzsKICAgIHN2ZyArPSAnPGxpbmUgeDE9IjEyMCIgeTE9IjIwMCIgeDI9IjEyMCIgeTI9IjE4IiBzdHJva2U9IiMwMDI0NDUiIHN0cm9rZS13aWR0aD0iMyIvPic7CiAgICBzdmcgKz0gJzxsaW5lIHgxPSIxMjAiIHkxPSIxOCIgeDI9IjIwMCIgeTI9IjE4IiBzdHJva2U9IiMwMDI0NDUiIHN0cm9rZS13aWR0aD0iMyIvPic7CiAgICBzdmcgKz0gJzxsaW5lIHgxPSIyMDAiIHkxPSIxOCIgeDI9IjIwMCIgeTI9IjQwIiBzdHJva2U9IiMwMDI0NDUiIHN0cm9rZS13aWR0aD0iMyIvPic7CiAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBNYXRoLm1pbihlcnJvcmVzLCBNQVhfRVJST1JFUyk7IGkrKykgeyBzdmcgKz0gcGFydGVzW2ldOyB9CiAgICBzdmcgKz0gJzwvc3ZnPic7CiAgICByZXR1cm4gc3ZnOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyUGFsYWJyYSgpIHsKICAgIHZhciBlZCA9IGVkQWN0dWFsKCk7CiAgICB2YXIgcCA9IGVkLnBhbGFicmE7CiAgICB2YXIgZCA9IGVkLmRpc3BsYXk7CiAgICB2YXIgaHRtbCA9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjRweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmZsZXgtZW5kO3BhZGRpbmc6OHB4IDA7Ij4nOwogICAgdmFyIGRpID0gMDsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcC5sZW5ndGg7IGkrKykgewogICAgICB3aGlsZSAoZGkgPCBkLmxlbmd0aCAmJiBkW2RpXSA9PT0gJyAnKSB7CiAgICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0id2lkdGg6MTRweDsiPjwvZGl2Pic7CiAgICAgICAgZGkrKzsKICAgICAgfQogICAgICB2YXIgbGV0cmEgPSBwW2ldOwogICAgICB2YXIgcmV2ZWxhZGEgPSBlc3RhZG8ubGV0cmFzVXNhZGFzLmluZGV4T2YobGV0cmEpID49IDA7CiAgICAgIGlmIChlc3RhZG8uZmFsbGFkbykgcmV2ZWxhZGEgPSB0cnVlOwogICAgICB2YXIgY29sb3IgPSAoZXN0YWRvLmZhbGxhZG8gJiYgZXN0YWRvLmxldHJhc1VzYWRhcy5pbmRleE9mKGxldHJhKSA9PT0gLTEpID8gJyNjYzAwMDAnIDogJyMwMDI0NDUnOwogICAgICBodG1sICs9ICc8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjIycHg7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLWJvdHRvbToycHggc29saWQgIzAwMjQ0NTtwYWRkaW5nOjAgMnB4IDJweDtmb250LXNpemU6MS4yNXJlbTtmb250LXdlaWdodDo3MDA7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6JyArIGNvbG9yICsgJzsiPicgKyAocmV2ZWxhZGEgPyBsZXRyYSA6ICdcdTAwYTAnKSArICc8L3NwYW4+JzsKICAgICAgZGkrKzsKICAgIH0KICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICByZXR1cm4gaHRtbDsKICB9CgogIGZ1bmN0aW9uIHJlbmRlclRlY2xhZG8oKSB7CiAgICB2YXIgbGV0cmFzID0gJ0FCQ0RFRkdISUpLTE1OXHUwMGQxT1BRUlNUVVZXWFlaJy5zcGxpdCgnJyk7CiAgICB2YXIgaHRtbCA9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjRweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MTBweDsiPic7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxldHJhcy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgbCA9IGxldHJhc1tpXTsKICAgICAgdmFyIHVzYWRhID0gZXN0YWRvLmxldHJhc1VzYWRhcy5pbmRleE9mKGwpID49IDA7CiAgICAgIHZhciBlblBhbGFicmEgPSBwYWxhYnJhSnVlZ28oKS5pbmRleE9mKGwpID49IDA7CiAgICAgIHZhciBiZywgY29sb3IsIGN1cnNvcjsKICAgICAgaWYgKHVzYWRhKSB7CiAgICAgICAgYmcgPSBlblBhbGFicmEgPyAnIzAwMjQ0NScgOiAnI2U4ZThlOCc7CiAgICAgICAgY29sb3IgPSBlblBhbGFicmEgPyAnI2ZmZmZmZicgOiAnI2FhYWFhYSc7CiAgICAgICAgY3Vyc29yID0gJ2RlZmF1bHQnOwogICAgICB9IGVsc2UgewogICAgICAgIGJnID0gJyNmNGY0ZjQnOyBjb2xvciA9ICcjMDAyNDQ1JzsgY3Vyc29yID0gJ3BvaW50ZXInOwogICAgICB9CiAgICAgIGh0bWwgKz0gJzxidXR0b24gZGF0YS1sZXRyYT0iJyArIGwgKyAnIiBzdHlsZT0id2lkdGg6MzBweDtoZWlnaHQ6MzBweDtib3JkZXI6MXB4IHNvbGlkICcgKyAodXNhZGEgPyAndHJhbnNwYXJlbnQnIDogJyNjY2NjY2MnKSArICc7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDonICsgYmcgKyAnO2NvbG9yOicgKyBjb2xvciArICc7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuNzZyZW07Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjonICsgY3Vyc29yICsgJzsiJyArICh1c2FkYSA/ICcgZGlzYWJsZWQnIDogJycpICsgJz4nICsgbCArICc8L2J1dHRvbj4nOwogICAgfQogICAgaHRtbCArPSAnPC9kaXY+JzsKICAgIHJldHVybiBodG1sOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyQnRuUGlzdGEoKSB7CiAgICB2YXIgcmVzdGFudGVzID0gTUFYX0VSUk9SRVMgLSBlc3RhZG8uZXJyb3JlczsKICAgIHZhciBkaXNhYmxlZCA9IHJlc3RhbnRlcyA8PSAxOwogICAgdmFyIGxhYmVsID0gZGlzYWJsZWQgPyAnUGlzdGEgKG5lY2VzaXRhcyA+MSB2aWRhKScgOiAnUGVkaXIgcGlzdGEgXHUyMDE0IGN1ZXN0YSAxIGVycm9yJzsKICAgIHJldHVybiAnPGRpdiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLXRvcDoxMHB4OyI+JwogICAgICArICc8YnV0dG9uIGlkPSJvcmgtYnRuLXBpc3RhIiBzdHlsZT0icGFkZGluZzo2cHggMTZweDtiYWNrZ3JvdW5kOicgKyAoZGlzYWJsZWQgPyAnI2U4ZThlOCcgOiAnI0JGQjYyMCcpICsgJztjb2xvcjonICsgKGRpc2FibGVkID8gJyNhYWEnIDogJyMwMDI0NDUnKSArICc7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo1cHg7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuNzhyZW07Zm9udC13ZWlnaHQ6NzAwO2N1cnNvcjonICsgKGRpc2FibGVkID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInKSArICc7IicgKyAoZGlzYWJsZWQgPyAnIGRpc2FibGVkJyA6ICcnKSArICc+JwogICAgICArIGxhYmVsCiAgICAgICsgJzwvYnV0dG9uPjwvZGl2Pic7CiAgfQoKICBmdW5jdGlvbiByZW5kZXJWaWRhcygpIHsKICAgIHZhciBodG1sID0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttYXJnaW4tYm90dG9tOjRweDsiPic7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IE1BWF9FUlJPUkVTOyBpKyspIHsKICAgICAgdmFyIHBlcmRpZGEgPSBpIDwgZXN0YWRvLmVycm9yZXM7CiAgICAgIGh0bWwgKz0gJzxzcGFuIHN0eWxlPSJ3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQ6JyArIChwZXJkaWRhID8gJyNGRjc1MUYnIDogJyNlMGUwZTAnKSArICc7Ij48L3NwYW4+JzsKICAgIH0KICAgIGh0bWwgKz0gJzxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MC43MnJlbTtjb2xvcjojODg4O21hcmdpbi1sZWZ0OjRweDsiPicgKyAoTUFYX0VSUk9SRVMgLSBlc3RhZG8uZXJyb3JlcykgKyAnIHZpZGFzIHJlc3RhbnRlczwvc3Bhbj4nOwogICAgaHRtbCArPSAnPC9kaXY+JzsKICAgIHJldHVybiBodG1sOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyTmF2ZWdhY2lvbigpIHsKICAgIHZhciBodG1sID0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDoxNnB4O3BhZGRpbmctdG9wOjEycHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U4ZThlODsiPic7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVkaWNpb25lcy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgYWN0aXZvID0gaSA9PT0gZXN0YWRvLmluZGljZTsKICAgICAgaHRtbCArPSAnPGJ1dHRvbiBkYXRhLWlkeD0iJyArIGkgKyAnIiBzdHlsZT0icGFkZGluZzozcHggMTBweDtib3JkZXItcmFkaXVzOjIwcHg7Ym9yZGVyOjJweCBzb2xpZCAnICsgKGFjdGl2byA/ICcjRkY3NTFGJyA6ICcjMDAyNDQ1JykgKyAnO2JhY2tncm91bmQ6JyArIChhY3Rpdm8gPyAnI0ZGNzUxRicgOiAndHJhbnNwYXJlbnQnKSArICc7Y29sb3I6JyArIChhY3Rpdm8gPyAnI2ZmZmZmZicgOiAnIzAwMjQ0NScpICsgJztmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MC43MnJlbTtmb250LXdlaWdodDo2MDA7Y3Vyc29yOnBvaW50ZXI7Ij4nICsgKGkrMSkgKyAnPC9idXR0b24+JzsKICAgIH0KICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICByZXR1cm4gaHRtbDsKICB9CgogIGZ1bmN0aW9uIHJlbmRlcigpIHsKICAgIHZhciBjb250ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29yaC1zZXNnb3Mtcm9vdCcpOwogICAgaWYgKCFjb250KSByZXR1cm47CiAgICB2YXIgZWQgPSBlZEFjdHVhbCgpOwogICAgdmFyIGh0bWwgPSAnJzsKCiAgICBodG1sICs9ICc8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MC42OHJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6IzE5QzRENTtsZXR0ZXItc3BhY2luZzowLjFlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLWJvdHRvbTo1cHg7Ij5QcmVndW50YSAnICsgZWQubnVtICsgJyBkZSAnICsgZWRpY2lvbmVzLmxlbmd0aCArICc8L2Rpdj4nOwogICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuOThyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwMDI0NDU7bWFyZ2luLWJvdHRvbTo5cHg7Ij4nICsgZWQudGl0dWxvICsgJzwvZGl2Pic7CiAgICBodG1sICs9ICc8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpOb3RvIFNhbnMsR2VvcmdpYSxzZXJpZjtmb250LXNpemU6MC44N3JlbTtjb2xvcjojNDQ0O2xpbmUtaGVpZ2h0OjEuNjU7bWFyZ2luLWJvdHRvbToxMnB4O3BhZGRpbmc6MTFweCAxNXB4O2JhY2tncm91bmQ6I2Y3ZjdmNztib3JkZXItbGVmdDozcHggc29saWQgIzE5QzRENTtib3JkZXItcmFkaXVzOjAgNHB4IDRweCAwOyI+JyArIGVkLnNpdHVhY2lvbiArICc8L2Rpdj4nOwogICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuODRyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiMwMDI0NDU7bWFyZ2luLWJvdHRvbToxMHB4OyI+JyArIGVkLnByZWd1bnRhICsgJzwvZGl2Pic7CgogICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDoxNnB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OmNlbnRlcjsiPic7CgogICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iZmxleDowIDAgYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjsiPic7CiAgICBodG1sICs9IHN2Z0Fob3JjYWRvKGVzdGFkby5lcnJvcmVzKTsKICAgIGh0bWwgKz0gcmVuZGVyVmlkYXMoKTsKICAgIGh0bWwgKz0gJzwvZGl2Pic7CgogICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iZmxleDoxIDEgMjQwcHg7Ij4nOwogICAgaHRtbCArPSByZW5kZXJQYWxhYnJhKCk7CiAgICBpZiAoIWVzdGFkby5jb21wbGV0YWRvICYmICFlc3RhZG8uZmFsbGFkbykgewogICAgICBodG1sICs9IHJlbmRlclRlY2xhZG8oKTsKICAgICAgaHRtbCArPSByZW5kZXJCdG5QaXN0YSgpOwogICAgfQogICAgaHRtbCArPSAnPC9kaXY+JzsKCiAgICBodG1sICs9ICc8L2Rpdj4nOwoKICAgIGlmIChlc3RhZG8uY29tcGxldGFkbykgewogICAgICB2YXIgbm90YSA9IGVzdGFkby5waXN0YXNVc2FkYXMgPiAwID8gJyA8c3BhbiBzdHlsZT0iZm9udC1zaXplOjAuNzVyZW07Y29sb3I6I0JGQjYyMDtmb250LXdlaWdodDo0MDA7Ij4oY29uICcgKyBlc3RhZG8ucGlzdGFzVXNhZGFzICsgJyBwaXN0YScgKyAoZXN0YWRvLnBpc3Rhc1VzYWRhcyA+IDEgPyAncycgOiAnJykgKyAnKTwvc3Bhbj4nIDogJyc7CiAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTRweDtiYWNrZ3JvdW5kOiMwMDI0NDU7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjE1cHggMThweDsiPic7CiAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZTowLjc2cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMTlDNEQ1O2xldHRlci1zcGFjaW5nOjAuMDZlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLWJvdHRvbTo2cHg7Ij5cdTI3MTMgJyArIGVkLnJlc3B1ZXN0YSArIG5vdGEgKyAnPC9kaXY+JzsKICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Tm90byBTYW5zLEdlb3JnaWEsc2VyaWY7Zm9udC1zaXplOjAuODdyZW07bGluZS1oZWlnaHQ6MS42NTttYXJnaW4tYm90dG9tOjExcHg7Ij4nICsgZWQuZXhwbGljYWNpb24gKyAnPC9kaXY+JzsKICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KTtwYWRkaW5nLXRvcDo5cHg7Zm9udC1mYW1pbHk6Tm90byBTYW5zLEdlb3JnaWEsc2VyaWY7Zm9udC1zaXplOjAuODRyZW07Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6I0JGQjYyMDsiPicgKyBlZC5yZWZsZXhpb24gKyAnPC9kaXY+JzsKICAgICAgaHRtbCArPSAnPC9kaXY+JzsKICAgIH0gZWxzZSBpZiAoZXN0YWRvLmZhbGxhZG8pIHsKICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxNHB4O2JhY2tncm91bmQ6I2ZmZjRmMDtib3JkZXI6MnB4IHNvbGlkICNGRjc1MUY7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzoxNXB4IDE4cHg7Ij4nOwogICAgICBodG1sICs9ICc8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpSb2JvdG8sQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MC43NnJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I0ZGNzUxRjtsZXR0ZXItc3BhY2luZzowLjA2ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21hcmdpbi1ib3R0b206NnB4OyI+RXJhOiAnICsgZWQucmVzcHVlc3RhICsgJzwvZGl2Pic7CiAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5Ok5vdG8gU2FucyxHZW9yZ2lhLHNlcmlmO2ZvbnQtc2l6ZTowLjg3cmVtO2xpbmUtaGVpZ2h0OjEuNjU7Y29sb3I6IzAwMjQ0NTttYXJnaW4tYm90dG9tOjExcHg7Ij4nICsgZWQuZXhwbGljYWNpb24gKyAnPC9kaXY+JzsKICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iYm9yZGVyLXRvcDoxcHggc29saWQgI2ZmZGQgZDA7cGFkZGluZy10b3A6OXB4O2ZvbnQtZmFtaWx5Ok5vdG8gU2FucyxHZW9yZ2lhLHNlcmlmO2ZvbnQtc2l6ZTowLjg0cmVtO2ZvbnQtc3R5bGU6aXRhbGljO2NvbG9yOiM1NTU7Ij4nICsgZWQucmVmbGV4aW9uICsgJzwvZGl2Pic7CiAgICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICB9CgogICAgaWYgKGVzdGFkby5jb21wbGV0YWRvIHx8IGVzdGFkby5mYWxsYWRvKSB7CiAgICAgIHZhciBzaWd1aWVudGUgPSBlc3RhZG8uaW5kaWNlIDwgZWRpY2lvbmVzLmxlbmd0aCAtIDE7CiAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MTJweDsiPic7CiAgICAgIGlmIChzaWd1aWVudGUpIHsKICAgICAgICBodG1sICs9ICc8YnV0dG9uIGlkPSJvcmgtYnRuLXNpZ3VpZW50ZSIgc3R5bGU9InBhZGRpbmc6OHB4IDIwcHg7YmFja2dyb3VuZDojRkY3NTFGO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1mYW1pbHk6Um9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuODZyZW07Zm9udC13ZWlnaHQ6NzAwO2N1cnNvcjpwb2ludGVyOyI+U2lndWllbnRlIGVkaWNpXHUwMGYzbiBcdTIxOTI8L2J1dHRvbj4nOwogICAgICB9IGVsc2UgewogICAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OlJvYm90byxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDAyNDQ1O2ZvbnQtc2l6ZTowLjg4cmVtOyI+SGFzIGNvbXBsZXRhZG8gbGFzIDYgZWRpY2lvbmVzLjwvZGl2Pic7CiAgICAgIH0KICAgICAgaHRtbCArPSAnPC9kaXY+JzsKICAgIH0KCiAgICBodG1sICs9IHJlbmRlck5hdmVnYWNpb24oKTsKICAgIGNvbnQuaW5uZXJIVE1MID0gaHRtbDsKCiAgICBpZiAoIWVzdGFkby5jb21wbGV0YWRvICYmICFlc3RhZG8uZmFsbGFkbykgewogICAgICB2YXIgYnRucyA9IGNvbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtbGV0cmFdJyk7CiAgICAgIGZvciAodmFyIGIgPSAwOyBiIDwgYnRucy5sZW5ndGg7IGIrKykgewogICAgICAgIChmdW5jdGlvbihidG4pIHsKICAgICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBpbnRlbnRhckxldHJhKGJ0bi5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGV0cmEnKSk7IH0pOwogICAgICAgIH0pKGJ0bnNbYl0pOwogICAgICB9CiAgICAgIHZhciBidG5QaXN0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcmgtYnRuLXBpc3RhJyk7CiAgICAgIGlmIChidG5QaXN0YSkgYnRuUGlzdGEuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBwZWRpclBpc3RhKTsKICAgIH0KCiAgICB2YXIgYnRuU2lnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29yaC1idG4tc2lndWllbnRlJyk7CiAgICBpZiAoYnRuU2lnKSBidG5TaWcuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsgaW5pY2lhclJvbmRhKGVzdGFkby5pbmRpY2UgKyAxKTsgfSk7CgogICAgdmFyIG5hdkJ0bnMgPSBjb250LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWlkeF0nKTsKICAgIGZvciAodmFyIG4gPSAwOyBuIDwgbmF2QnRucy5sZW5ndGg7IG4rKykgewogICAgICAoZnVuY3Rpb24oYnRuKSB7CiAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IGluaWNpYXJSb25kYShwYXJzZUludChidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWlkeCcpKSk7IH0pOwogICAgICB9KShuYXZCdG5zW25dKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGtleUhhbmRsZXIoZSkgewogICAgaWYgKGVzdGFkby5jb21wbGV0YWRvIHx8IGVzdGFkby5mYWxsYWRvKSByZXR1cm47CiAgICB2YXIgayA9IGUua2V5LnRvVXBwZXJDYXNlKCk7CiAgICBpZiAoL15bQS1aXHUwMEQxXSQvLnRlc3QoaykpIGludGVudGFyTGV0cmEoayk7CiAgfQogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBrZXlIYW5kbGVyKTsKCiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJsb2FkaW5nIikgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgeyBpbmljaWFyUm9uZGEoMCk7IH0pOwogIH0gZWxzZSB7CiAgICBpbmljaWFyUm9uZGEoMCk7CiAgfQoKfSkoKTsK