Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


dmFyIGpsOVVwUSxOWVhtU2VLLGI2WmZzbyxaTDJxbWN6LHZiWUZpVix6NnA0cmFBLEVkWUFlOCxWMDJqVDBvLG9uNEVRQztjb25zdCBCRGRiVTg3PVsweDAsMHgxLDB4OCwweGZmLCJsZW5ndGgiLCJ1bmRlZmluZWQiLDB4M2YsMHg2LCJmcm9tQ29kZVBvaW50IiwweDcsMHhjLCJwdXNoIiwweDViLDB4MWZmZiwweDU4LDB4ZCwweGVdO2Z1bmN0aW9uIHlsdHVWRihqbDlVcFEpe3ZhciBOWVhtU2VLPSJXaDI7T0pIZXpUTHh3OS8pYjRndD9VYzhQPV4qOj5YRWYseW1gW0QhWTczNiZRQVZwfENpfXtzbklxR2o8TUJdYV9GUnZLQCNsazFvU051ZC5aJDAlKDUrXCJyfiIsYjZaZnNvLFpMMnFtY3osdmJZRmlWLHo2cDRyYUEsRWRZQWU4LFYwMmpUMG8sb240RVFDO3dQQVlHZHIoYjZaZnNvPSIiKyhqbDlVcFF8fCIiKSxaTDJxbWN6PWI2WmZzby5sZW5ndGgsdmJZRmlWPVtdLHo2cDRyYUE9QkRkYlU4N1sweDBdLEVkWUFlOD1CRGRiVTg3WzB4MF0sVjAyalQwbz0tQkRkYlU4N1sweDFdKTtmb3Iob240RVFDPUJEZGJVODdbMHgwXTtvbjRFUUM8WkwycW1jejtvbjRFUUMrKyl7dmFyIHlsdHVWRj1OWVhtU2VLLmluZGV4T2YoYjZaZnNvW29uNEVRQ10pO2lmKHlsdHVWRj09PS1CRGRiVTg3WzB4MV0pY29udGludWU7aWYoVjAyalQwbzxCRGRiVTg3WzB4MF0pe1YwMmpUMG89eWx0dVZGfWVsc2V7d1BBWUdkcihWMDJqVDBvKz15bHR1VkYqQkRkYlU4N1sweGNdLHo2cDRyYUF8PVYwMmpUMG88PEVkWUFlOCxFZFlBZTgrPShWMDJqVDBvJkJEZGJVODdbMHhkXSk+QkRkYlU4N1sweGVdP0JEZGJVODdbMHhmXTpCRGRiVTg3WzB4MTBdKTtkb3t3UEFZR2RyKHZiWUZpVi5wdXNoKHo2cDRyYUEmQkRkYlU4N1sweDNdKSx6NnA0cmFBPj49QkRkYlU4N1sweDJdLEVkWUFlOC09QkRkYlU4N1sweDJdKX13aGlsZShFZFlBZTg+QkRkYlU4N1sweDldKTtWMDJqVDBvPS1CRGRiVTg3WzB4MV19fWlmKFYwMmpUMG8+LUJEZGJVODdbMHgxXSl7dmJZRmlWLnB1c2goKHo2cDRyYUF8VjAyalQwbzw8RWRZQWU4KSZCRGRiVTg3WzB4M10pfXJldHVybiBWSk1QVWQodmJZRmlWKX1mdW5jdGlvbiBSaFlJc2ooYjZaZnNvKXtpZih0eXBlb2Ygamw5VXBRW2I2WmZzb109PT1CRGRiVTg3WzB4NV0pe3JldHVybiBqbDlVcFFbYjZaZnNvXT15bHR1VkYoTllYbVNlS1tiNlpmc29dKX1yZXR1cm4gamw5VXBRW2I2WmZzb119d1BBWUdkcihqbDlVcFE9e30sTllYbVNlSz1bIm80OFQ9I0VLRjw7ZDgwKSElcClIPCErPj9zMEopLyY9KXxkOnBHfWcyd0YuXCJWRlsiLCJ8WXV9bmlAd296Ji4hJFg+I0I7PisjflBRZy9kTj1OKlpFUTE2TVN3KHQ3bj8pOj49Iy99dFpON113IiwiTFlHZkR2bXRfPDRCS3BxN3t5Q2YvRElYVDQ+X2kvcW1PZkBufSVWaEpHISIsIl9ZNUU3bz9hOVVfTyxiTTN4WWFIS2R2Z1dGUCpQIyFnTSNaZmJudkd+L3RvVyIsIkdCIVRiYCloIiwiemY6Pl88YlBQP11JaDx7WTtmOj5Ce0FBKl9kY1chOSIsInNxK08+MFBhMUJOPj1gaz0iLCI5cVg6UU1KNyFhSCRoIiwiNDxtTFIxcjhGPE5daCIsIl80a0gzLmx9NWEmLlFPIiwib3ZOOndTSjlSVFcyNkRXNnRpPmUsLmxBZSIsIlo/XWtNRyhlPkY8ZnxPIiwid11ZKntOSkthdygxaCIsInkpZDp3bjBlM3hLT1pgTiEpfERUTU5GUHdCKkwrRCtjZ1lVbjkiLCJ9XiksKllVbVA0cjF4IVRFRF9pTHZkfncyPFsiLCJ0c1dUIXwxSFBfbVVGfEo2bFtjRVRad2AkdG4iLCJgcVJ7ZXlkOV9UMDFjWl00L2ZWT3tpTmhjOShJfnw0IXJJKzpDTiFoIiwiVGYkaVBDQ0FMNFpKci53Xm1zJUpUcGRoZlUiLCJVIyVeNEQ0PkVVIiwiWHckei5aSjkyVH49PU95OHBzV3NCTkV0NHciLCIxeGFrOFZBLj9zeGw1Xmk3VXMsZkN2cm0kVHRkVWw1eTZIU0pKPGBQW3RMdmw8ZCEqczBmXkR7ZSR3IiwiV3xiaXJ9aTl2VE9II154dHU0dk5pIS9hYndiZCVqTF5raT4xQnlTUDsiLCJRdnlOI2BuODBUI2h2Kkc6NWlQaz9DRlh7RzdQaCIsIms/W2U9a359JXRlJGdaXzg2W01MXU4keVMvXjtPKkBbUjoja2p5YVh2YXF8JjsiLCJiQUF8LkRcInlIdHsuLy9YWFQ+ZVNcIiNuKDwvN2tzTWE4ZDRzU2ZrSzlTNHJxeF4hRTxFblMwMF1WaXQiLCJlbV1TVSMvenkpMDwyPTRZI0U7Zl5qR1hKR2NkPk1oNCIsIkBwfmlkYEEyIiwiKXdHZmElXW1bOSUxYjB9eSs0Ykh6YGpoIiwiOXZpe1lvWGAkKWttSEpMdHxwe311QyRBSkdmL0dbVHQyKVwifDZAYlBBSVwiWnQvLGBrNDdzJm92RytHfS5XIiwib0g4fDZvVyIsIn5JYWk2aSFvYHNeNGEwOG0kayxzPCFvcTJ3ay42L3s3ZD05ZXo1WHdCejZuVGA1eSIsIkRpVCpGcENYKV0jOiY7e3lQXmM6KUtzRys5OXl2KUI4bV5QdUtkMlBhZyIsIlB2KmxgVkY1c2E4bnBWSD00KU8+a2BbcUNdeyIsIjlPK3wuWlciLCJGOkd6clZfPl4/Sy5fPF4+Y3ZYbigoVyIsIlsjfHM7e1AyIiwieVRhazRESTIiLCJucGhYLFZKbyZJPjkuO35iSFRDaSEkWGFPIiwic0hKQyZpXmAsPCo/WjxYNGdzLlR+aiw+WTRbfXM5SXloVGRTbFNUaCIsIlA+TmVGbGIyUzRoMjw7KmA3OEN6WWt7aEZdeE1GWi8iLCJDRSs6ZUNgZ3pfQ21JOyIsIl12WXNicTVZXCJHSl9DfEBnb2k5U1NuXCJ3YTxGazs7V2dnZzZmK1Y0PiZJX0BFOyIsIlZpWVRcIkRdbUNdNkJSRHdEdGdFVCQseHQ7YXpHYjtCbSZxLmlGWmZYYndmZFhDS3R7c0gsOXBXIiwiTkViSCt9JkFNejRkNGBiWUV2ZX1JQUg1ODkwTjRbajhoPixvSG5CSFJhYXxoIiwibzRAI1wiREtxXl8pNH07OHlBaSVFYC52R0xfL19LPE4qKSMzbChRLHFDKUFCJW0rN2tRMD59aVdHYHFuIiwiOUFNRXEhfXYoOWZQaCIsIjxFKk52MUhhMnNneWxqMmcyVD1YbkBrOWUiLCJsNGJzaGx+eU5Je1VOYEhbYTouayV9VyIsIi93Z28rang3PUdUdjwpaGBTeGZrLm5SaXR0dnh7YjleaXNDZipEYUg7IiwiXCJpfU48cGJhYkZqSWYjbm0/cVRsVFpvb0UpZHtrbEZYej5LTC9LKD44YU14JW0/eShqO0wiLCJRWUtDY0s/RyZ6TmdAfDkiLCJUbWlOV2Rgd2VuTHA2Rz44WTtcIlQlQmdBai9iX1kjRjQiLCJXNm9KPlZjMlA0PWxERHZnNnEjOmp5dnYoOXp2cnBeMyg/NTpXbnhoUWdpIiwiIXBLT0ZBe2hxL3BPbTIiLCJSa21sKllfOG45KDEzQHsqM15GZkxDfGgiLCJbPHV8L2BhUC53c0BvL2RZPCM1OkUjW11NeFU/NHBfUC9be0UvS0xBLDwqKn58JSpPXjx7ZyIsIn1zO0MsdXJoRXdJLk18YTMzQnRMIiwiLFQqPlVZUjlmcVwiPllqT1hAXzFpYChXIiwiSzhkfG9wVm1oPF9ALm1OIWhPXmYhW1N3YnciLCJfWVRIcnVVOX5qUS9lRCNFI1tAfX1HY3osKTF4YlYkOls2ansza0ZHOl92SThEeiIsIkI0V3VnRD9BRl0kMV1qdlBaeWJYX2QqN2cpRG5kQDAqfF9PTnRqU2dXZ3BVdERMIiwiWz9kfW4hXzdkXSMpYlYyWDF2Qz4+TUBHTG5PP1YvJDpzIyFPIiwiI1E8e359YDJEdCIsIm9bV1RWTXtoIiwiRkJ1a1EuNTE7dGAiLCIhczxMSHBacW8vUTQ7RDw4VF0qTm1vYUdfPEdAKy9weTYxTjFEc1dHYHFGZnJPIiwicnlUKnhabFglYVJAOmxaISRXIiwiYkFzfFYkZT1PVEg/dVp3IW08eWY1fVlQdXhiO2ZWXCJiUz97TCIsIlRZRDpJeWx3az9lOW0kMmdsdmJYQ04/YCVxelQjRykhWzZPPlwiRC55em46ZFlqKjhncThPWy50S0JnIiwiZUFKbml8XWgiLCJYX1lzc3lEUHpMIiwiQztwazhEZ0F6RyVOZSE5PyUzOUxNPG10U3psTiMqRTQ9WUNpUUlKe2hxO2RoIiwiaD5mczJwYjIiLCJHOEFPKCM4dH1hbWoqQ100OD8lXnBddUhKdF1BdztHbSNCWkhifWFYb3ouaDw7IiwiW2lySDgoezdEYVwiQHpwU15FOGdsVyEzMiIsIkJCZVhOQ3Q+UD8iLCImdnZOQiVuOXV6SkhPMG09Z11bbndgVyIsIjNfSH0xcTIzJlV3KlhNeVswW1lUMGpXIiwiUDxuSG11PHYyczJYMF5hM0p2PExMNVI3ODkrPjYyO2c6dmk+KVovYUgiLCJQX28+W1ZHR0xfRm0kWmZgS0JOfXRCPj5xP3BLdER3XiIsIishdGxPbGtpakIrQSR8QlBJVHlpeXUkUC5dQmpXKSE9YnFJVCIsIlg2Y2V0dV1tVEI3OzojUHl7d3dMbGA+N0wvJWMyW34+TkIkTioiLCI/MTA+RVYpdDsiLCIoa3tuS2RFVnxnSXg0bHsqKl8hWHRaVyIsIitRSG5YczV9djk3fWgiLCIvVDIqZWBPQDJzZHxqRHpFal5PTDoiLCI4dkVPTjFhUDg/KVsuI2shWWlJVFRxMG1OanZmUFZIPXhbREVAQz8ySmFqbThDa3RVX2JpI2BnQWBxRCIsIm44KmZIQmRlQXpoSC9aNj1dcHpIPHsqWm1xLCIsInA2UW5RXVt0WV9ae3YqMT0xeDdIPGQsdCRxWkpsO2VQbkIufChLMX09NGJsKTB+OkZpWkgiLCJgOyVKekJkaEJ7ZlN4L0I+fmp3MUMkZWhXVGFGTyF2REh8WEVLS1I3fXMsIiwiTjRYZU81TEdxNERkaCIsIi9PSkNlYGxQYndxLypDaTcsKT1zM28jZVN4VXkqRGEzfV5FfXAkVyIsIj52e082bV5QaHNUTXFPJTciLCJmVEwqRW1JR0Q5SlZObDwzTi9CT14iLCJNVG46WXMoPmVHYCIsIl9UdkpHTlFtVkZieW0yOSIsIiVQXkoiLCJgYGNoXnBhVk0iXSk7ZnVuY3Rpb24gTTFUT0NVKCl7dmFyIGpsOVVwUT1bZnVuY3Rpb24oKXtyZXR1cm4gZ2xvYmFsVGhpc30sZnVuY3Rpb24oKXtyZXR1cm4gZ2xvYmFsfSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3d9LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfV0sTllYbVNlSyxiNlpmc28sWkwycW1jejt3UEFZR2RyKE5ZWG1TZUs9dm9pZCAweDAsYjZaZnNvPVtdKTt0cnl7d1BBWUdkcihOWVhtU2VLPU9iamVjdCxiNlpmc29bQkRkYlU4N1sweGJdXSgiIi5fX3Byb3RvX18uY29uc3RydWN0b3IubmFtZSkpfWNhdGNoKGUpe31lSTZEU2VuOmZvcihaTDJxbWN6PUJEZGJVODdbMHgwXTtaTDJxbWN6PGpsOVVwUVtCRGRiVTg3WzB4NF1dO1pMMnFtY3orKyl0cnl7dmFyIHZiWUZpVjtOWVhtU2VLPWpsOVVwUVtaTDJxbWN6XSgpO2Zvcih2YllGaVY9QkRkYlU4N1sweDBdO3ZiWUZpVjxiNlpmc29bQkRkYlU4N1sweDRdXTt2YllGaVYrKylpZih0eXBlb2YgTllYbVNlS1tiNlpmc29bdmJZRmlWXV09PT1CRGRiVTg3WzB4NV0pY29udGludWUgZUk2RFNlbjtyZXR1cm4gTllYbVNlS31jYXRjaChlKXt9cmV0dXJuIE5ZWG1TZUt8fHRoaXN9d1BBWUdkcihiNlpmc289TTFUT0NVKCl8fHt9LFpMMnFtY3o9YjZaZnNvLlRleHREZWNvZGVyLHZiWUZpVj1iNlpmc28uVWludDhBcnJheSx6NnA0cmFBPWI2WmZzby5CdWZmZXIsRWRZQWU4PWI2WmZzby5TdHJpbmd8fFN0cmluZyxWMDJqVDBvPWI2WmZzby5BcnJheXx8QXJyYXksb240RVFDPWZ1bmN0aW9uKCl7dmFyIGpsOVVwUT1uZXcgVjAyalQwbygweDgwKSxOWVhtU2VLLGI2WmZzbzt3UEFZR2RyKE5ZWG1TZUs9RWRZQWU4W0JEZGJVODdbMHg4XV18fEVkWUFlOC5mcm9tQ2hhckNvZGUsYjZaZnNvPVtdKTtyZXR1cm4gZnVuY3Rpb24oWkwycW1jeil7dmFyIHZiWUZpVix6NnA0cmFBLFYwMmpUMG8sb240RVFDO3dQQVlHZHIoejZwNHJhQT12b2lkIDB4MCxWMDJqVDBvPVpMMnFtY3pbQkRkYlU4N1sweDRdXSxiNlpmc29bQkRkYlU4N1sweDRdXT1CRGRiVTg3WzB4MF0pO2ZvcihvbjRFUUM9QkRkYlU4N1sweDBdO29uNEVRQzxWMDJqVDBvOyl7d1BBWUdkcih6NnA0cmFBPVpMMnFtY3pbb240RVFDKytdLHo2cDRyYUE8PTB4N2Y/dmJZRmlWPXo2cDRyYUE6ejZwNHJhQTw9MHhkZj92YllGaVY9KHo2cDRyYUEmMHgxZik8PEJEZGJVODdbMHg3XXxaTDJxbWN6W29uNEVRQysrXSZCRGRiVTg3WzB4Nl06ejZwNHJhQTw9MHhlZj92YllGaVY9KHo2cDRyYUEmMHhmKTw8QkRkYlU4N1sweGFdfChaTDJxbWN6W29uNEVRQysrXSZCRGRiVTg3WzB4Nl0pPDxCRGRiVTg3WzB4N118WkwycW1jeltvbjRFUUMrK10mQkRkYlU4N1sweDZdOkVkWUFlOFtCRGRiVTg3WzB4OF1dP3ZiWUZpVj0oejZwNHJhQSZCRGRiVTg3WzB4OV0pPDwweDEyfChaTDJxbWN6W29uNEVRQysrXSZCRGRiVTg3WzB4Nl0pPDxCRGRiVTg3WzB4YV18KFpMMnFtY3pbb240RVFDKytdJkJEZGJVODdbMHg2XSk8PEJEZGJVODdbMHg3XXxaTDJxbWN6W29uNEVRQysrXSZCRGRiVTg3WzB4Nl06KHZiWUZpVj1CRGRiVTg3WzB4Nl0sb240RVFDKz0weDMpLGI2WmZzb1tCRGRiVTg3WzB4Yl1dKGpsOVVwUVt2YllGaVZdfHwoamw5VXBRW3ZiWUZpVl09TllYbVNlSyh2YllGaVYpKSkpfXJldHVybiBiNlpmc28uam9pbigiIil9fSgpKTtmdW5jdGlvbiBWSk1QVWQoamw5VXBRKXtyZXR1cm4gdHlwZW9mIFpMMnFtY3ohPT1CRGRiVTg3WzB4NV0mJlpMMnFtY3o/bmV3IFpMMnFtY3ooKS5kZWNvZGUobmV3IHZiWUZpVihqbDlVcFEpKTp0eXBlb2YgejZwNHJhQSE9PUJEZGJVODdbMHg1XSYmejZwNHJhQT96NnA0cmFBLmZyb20oamw5VXBRKS50b1N0cmluZygidXRmLTgiKTpvbjRFUUMoamw5VXBRKX1mdW5jdGlvbiBEdm42MTNCKCl7fXRyeXtmdW5jdGlvbiBsQVVTVXpXKGpsOVVwUSl7dmFyIE5ZWG1TZUs9Ino7dl1gME1BXkpIVTQhREMmMSQ1a3JJbkJxeStZOWFofl9lJXQ3RntUb1dQS1wiKUd9RU9MOChjPlI/TmRTbD1nVlFicEA6eDJmc2k2WyNYPHUuWndtMy9qLHwqIixiNlpmc28sWkwycW1jeix2YllGaVYsejZwNHJhQSxFZFlBZTgsVjAyalQwbyxvbjRFUUM7d1BBWUdkcihiNlpmc289IiIrKGpsOVVwUXx8IiIpLFpMMnFtY3o9YjZaZnNvLmxlbmd0aCx2YllGaVY9W10sejZwNHJhQT1CRGRiVTg3WzB4MF0sRWRZQWU4PUJEZGJVODdbMHgwXSxWMDJqVDBvPS1CRGRiVTg3WzB4MV0pO2ZvcihvbjRFUUM9QkRkYlU4N1sweDBdO29uNEVRQzxaTDJxbWN6O29uNEVRQysrKXt2YXIgeWx0dVZGPU5ZWG1TZUsuaW5kZXhPZihiNlpmc29bb240RVFDXSk7aWYoeWx0dVZGPT09LUJEZGJVODdbMHgxXSljb250aW51ZTtpZihWMDJqVDBvPEJEZGJVODdbMHgwXSl7VjAyalQwbz15bHR1VkZ9ZWxzZXt3UEFZR2RyKFYwMmpUMG8rPXlsdHVWRipCRGRiVTg3WzB4Y10sejZwNHJhQXw9VjAyalQwbzw8RWRZQWU4LEVkWUFlOCs9KFYwMmpUMG8mQkRkYlU4N1sweGRdKT5CRGRiVTg3WzB4ZV0/QkRkYlU4N1sweGZdOkJEZGJVODdbMHgxMF0pO2Rve3dQQVlHZHIodmJZRmlWLnB1c2goejZwNHJhQSZCRGRiVTg3WzB4M10pLHo2cDRyYUE+Pj1CRGRiVTg3WzB4Ml0sRWRZQWU4LT1CRGRiVTg3WzB4Ml0pfXdoaWxlKEVkWUFlOD5CRGRiVTg3WzB4OV0pO1YwMmpUMG89LUJEZGJVODdbMHgxXX19aWYoVjAyalQwbz4tQkRkYlU4N1sweDFdKXt2YllGaVYucHVzaCgoejZwNHJhQXxWMDJqVDBvPDxFZFlBZTgpJkJEZGJVODdbMHgzXSl9cmV0dXJuIFZKTVBVZCh2YllGaVYpfWZ1bmN0aW9uIHlTUUVJTihiNlpmc28pe2lmKHR5cGVvZiBqbDlVcFFbYjZaZnNvXT09PUJEZGJVODdbMHg1XSl7cmV0dXJuIGpsOVVwUVtiNlpmc29dPWxBVVNVelcoTllYbVNlS1tiNlpmc29dKX1yZXR1cm4gamw5VXBRW2I2WmZzb119Y29uc29sZVt5U1FFSU4oMHg2MCldKHlTUUVJTigweDYxKSl9Y2F0Y2goZSl7fWZ1bmN0aW9uIHdQQVlHZHIoKXt3UEFZR2RyPWZ1bmN0aW9uKCl7fX0=\";
s:2:\"sw\";
s:109864:\"dmFyIGJlZzNVOHIseTJuaWFRSSxJd2FpbzdkLHhQTWMwTm8sTThpWXJjLHFSaDlGcCxZY3hHdno2LFdXb0JSdFcsT3BOUW5TWjtjb25zdCBKWENFZThZPVsweDAsMHgxLDB4OCwweGZmLCJsZW5ndGgiLCJ1bmRlZmluZWQiLDB4M2YsMHg2LCJmcm9tQ29kZVBvaW50IiwweDcsMHhjLCJwdXNoIiwweDViLDB4MWZmZiwweDU4LDB4ZCwweGUsMHgyMDAwMDAwLDB4NDAwMDAwMCwweDIsMHgzLG51bGwsMHg2NiwweDY3LDB4NjgsMHg2ZSwweDZmLDB4NzMsMHgzNmVlODAsMHg3NywweDc4LDB4N2YsMHg4MCwweDkyLDB4OTQsMHg5NiwweDQwLDB4OTcsMHg5YSwweGEsMHhhMSwweGEyLDB4YTMsMHhhNCwweGE1LDB4YWQsMHg3YSwweGIwLDB4YmIsIm9rIiwweDI3MTAsMHhjOSwweGNiLDAuNSwweDEzODgsMHhkNiwweGNlLDB4ZGEsMHhkZSwweGRmLDB4ZTIsMHgzYTk4LDB4ZWUsMHhlZiwweGYxLDB4NzYsMHhmNSwweGZkLDB4MTA3LDB4MTE3LCJjIiwweDExYiwidCIsMHgxMjcsMHgxMmIsMHgxMmMsMHgxMmQsMHg0LDB4MTNkLDB4MTNhLDB4MTMxLDB4MTMyLDB4MTM0LDB4MTQ4LCIvIiwweDE1NCwweDE2MCwweDE1ZCwweDE2YSwweDE2ZCwweDE1MSwweDE3MCwweDE3M107ZnVuY3Rpb24gV3lKNjZ3KGJlZzNVOHIpe3ZhciB5Mm5pYVFJPSJURTdyJWg2RF4rbDM7cDFhSClGcV9pflY5ZCxPb01QbjhKVSpzei8+U2NOQ2VJWSgudD1iPDpMNVJrQmpBUVpXe3V3S0BHZn0jWGdgfDBcIlt5djJdISQmeD9tNCIsSXdhaW83ZCx4UE1jME5vLE04aVlyYyxxUmg5RnAsWWN4R3Z6NixXV29CUnRXLE9wTlFuU1o7TTIwZExsKEl3YWlvN2Q9IiIrKGJlZzNVOHJ8fCIiKSx4UE1jME5vPUl3YWlvN2QubGVuZ3RoLE04aVlyYz1bXSxxUmg5RnA9SlhDRWU4WVsweDBdLFljeEd2ejY9SlhDRWU4WVsweDBdLFdXb0JSdFc9LUpYQ0VlOFlbMHgxXSk7Zm9yKE9wTlFuU1o9SlhDRWU4WVsweDBdO09wTlFuU1o8eFBNYzBObztPcE5RblNaKyspe3ZhciBXeUo2Nnc9eTJuaWFRSS5pbmRleE9mKEl3YWlvN2RbT3BOUW5TWl0pO2lmKFd5SjY2dz09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoV1dvQlJ0VzxKWENFZThZWzB4MF0pe1dXb0JSdFc9V3lKNjZ3fWVsc2V7TTIwZExsKFdXb0JSdFcrPVd5SjY2dypKWENFZThZWzB4Y10scVJoOUZwfD1XV29CUnRXPDxZY3hHdno2LFljeEd2ejYrPShXV29CUnRXJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoTThpWXJjLnB1c2gocVJoOUZwJkpYQ0VlOFlbMHgzXSkscVJoOUZwPj49SlhDRWU4WVsweDJdLFljeEd2ejYtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoWWN4R3Z6Nj5KWENFZThZWzB4OV0pO1dXb0JSdFc9LUpYQ0VlOFlbMHgxXX19aWYoV1dvQlJ0Vz4tSlhDRWU4WVsweDFdKXtNOGlZcmMucHVzaCgocVJoOUZwfFdXb0JSdFc8PFljeEd2ejYpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoTThpWXJjKX1mdW5jdGlvbiBjQmlabGQoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPVd5SjY2dyh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1NMjBkTGwoYmVnM1U4cj17fSx5Mm5pYVFJPVsiXzhmPG1qZGA5X1s6NS9aOWBfRCsiLCJJX29neyFIWVNfMkU6LmoqLjZZbiVVN1B3K0kuOyhKbkZ9eDZPIiwiUS5ZJS8kOlZvKUU3eDEjLDFGLkxaQldiI3AwcztyIiwia195WCFdJXNsNV98fSxRKWVaRSIsIjYqKjBEZzNFUTFCZjhyL2R6LlBueEdUIiwifmJhfCt2VTlFVzV8OE8pTyxZJCVHI2x7PUw5fEUiLCJHLmM2OEBZPF9wJnM1MVg+a1VHbk99SVdHcCNmUXB1UDdXSGJfIiwiJGopYmd2QWdZXiQwV11zRjZBeDYiLCIlV2hsX31HYll3dkVcInQxIiwiPmJNbGhbX3NScHxNLmFwX1EuZ2hWJDY8RUxAQV9hfXEzfXlYPGIyQlhCR1hwIUxjJStISkFCVCIsIntqamw9QEwmJHFXRig3MlNMX3NnVi9iVnFMYiojT25zZzZ+PFE+MGJhaVEiLCJZKXwwOVwiIzYwMUVAVHN1c2xGSTU5XCJwcT5fbk9EMi5TdStyIiwiVkxPI2Y9WUZNRn1mZjFEIiwiUHU3YEdbOWdDKV5yOkhOZEhGXCJETFIzcCRxQmphPXlPITZBZ1t8WHBZaT48O2oxIiwicztXfGIwfntBXjhba3BeblF9Uys2W3M5QylPR0Rde1ZbblY8OSIsIk9fKHRzKlJTSiswYVpkRk8hTmUwcEdANiwpOFp2JSIsIilhK1BmNVNTOCtCJTxyIiwiIy4+NjFzQDYvcExHNWE0Y0Ulc2dXWS9CUEZDd1VoXnErdFJMWllUTiVMIzBrQTJvT2d8MG8iLCI8VTg2OiE0OXNwQGQwOUo5ZkBAaHZrV0dROkJmYyUiLCJkVm4lRDVbRzZCPjV6SDxjKGtuJWx2RXE9YXIyaCMuPnwzdWJfU1dNNkJoNyZkRm9CTGpnZTJcIjYxaSIsIkZZJG5MWTlQVUx1ZkBzZG9nbitQPzxiKkIpXCJBOE8hVT8xQE15NWEoZTpTeWJPWVM3YV9nXCJJYFszdTcjVCIsIl5NZkQ+JDBrKUE+IiwiUkliOEVBXkYxV3MudiNLUGJiUysiLCJSfUl8cGtxY0tBX0dFIiwifms+JVchL0ZEe0tYaHpbTzNnYSs4KjxZUHdAKj9ybik+TFhMWjBGPGUpIiwiQFpEXCJIc2ZZTl9JOTMyZjk+TX4lfUFUIiwiNmtJREx6YE0uYWxAbSV+U2RWN2JLNVhrSldSJSQuRHFCenwsMDVUIiwicVd2OHooRnNEIiwicnQqZ3dVK0RHQlppXyg2IiwiV0BhSiZJNkJ4QkJ3UHQvZDxrYXw6V25jRjtOWlE5enpHTG5MRFVrKDNqLGwkc3BxWFQiLCIwUjJNb3klRjRfbWQuXUgsJVdCOHFHJV5sdUJpbj0xIiwiNS5HJWpZVCIsIkt6aWxHW1wiOV1Mb3U1ZjYvXCJfZFA+MlM8XXE6PDMxRU5jYmJecHxxcTx7dHlBJSIsIkpWbitGL3RxKzUmazsodk99SWZ0SyN1a1RhSi5QaFMsfU43IiwiQG9ATU1RKGMkezJmcixwX0N6NkR6ek1XYDM6WFguV1AiLCIzZ2xiP1wiYnE5cFAxXSw6Y25WWTV3IXpEdjtHbzhPfCxGTWwjXWoseTpxR1JoI1lTcEB0YldVLDlVYXQiLCJXbltYKEJHa2pqJjhsaFNxTVV+NUUhbDl1VyhHaHoxIiwiZCsxbn4vLlNRRl5iOkFDZDJmSXxTQE92LndvI1widEpWJmI1fEFbVDlRaitwRD1JcXJrc2wiLCJhOD5vbTx0cEQ1XWdVdHwvQlpZbyVBaTpcIldNKUQyRUNRfTV8dyNsUGhweUVFIiwicy5FYldVYkUha3ZLWnB7OSp6UjYiLCJtbytgVSpLcE4pYlppczEiLCJPYWlnY1hWY2xfXmI3UVhxK3RTYi9RZTsyTCV6UnJSTWFDMXxHVXxCXWs3XCIsNyRvS1QiLCJkfVl8L1FhcTdhNW8wOV4vJElSTDd2ZkJVV1ZiIWpYZCouUXwmSW85bkYiLCJtWHtMZVcuRiFxKUBFIiwieF9HRGVgb152O21reiUiLCJ4PnlMJVVPKHJMZnlaejlvWFQiLCJBTD5QeEpga2V1SlppLl4iLCJPU2RgUj41VzJMMldmR2BxcHQ5UElRQVA8TGc4OF1FKX11RjBGXCIqTTBeQGQlYT4vc1ZyIiwiQnJudEI6VCIsImxGPiVtXTI8bkZ2ZkwydSltWjNsIiwiT2dnYjxmdzZRMzdQdSVBTm1iNVhwdlwiZ0FSKU9HIy96JC5KUCtrc0JHcVwiMGZ0ail5Yj1eOWp2YzYiLCJTcis2eiRYYzhBQjBFLlVzJVdmfTY1YlZEcCIsIllTdDZ3czleMWEwV3ZBJW5+WXIiLCJOU04jc2pXV2AzYVUsaDoqZFklNTohWXtJOitib08qUHJnemdyNVdjXStHdzd2LG90NmM2eXYle2lxYHlUIiwiNHJubzVbK0RsdUgudjl2Pl9fIWdDUV9ZfGpUTGlzZXFeQGZvfHwwTWlCPVh4MSpzXlc0MCFJXWt9cDFVRSIsIk1fMW53dllCNys1KnN9NG9aTFNYTlJ+OW9pQjAhOUV6SCxhSjRrLF5VO1tZZEhUTXpAWisiLCI4TTw6RDU8eSg6eVJsUVMsIiwiQXo4WHUhUlB8KWd+JnQmSGRAWEwvKGkqZTFIW2NRYk91WkUiLCI9YnpsRT5VUEFqMHN2eXVzI18laCIsInZVcG56aiVzJHFLYUhyT2NoVmRMYC9Gc1wiUnlhTzJzbiIsIkZ6TDVjKGoqciIsImRfMGdYQUJCVnB0MWlIM191KSVoM3ZicWBeZDYuTy8vYkxUYFEjeEQpa2UpTSUiLCIrKlM2N3ZdKkIxMHNQdHk+IWJ3OlRCX148a2l6Z2RmenQuUWwhR3M7LldBPDMyJCpOQzciLCJxZy81R2csc3hwWW84T29zXCIxTG50enZwMEZZJUZofmNbb0YjRy5FZDYiLCJAcnJNWiFxYzdrQzVPPW1jVS5iZ0Q9N3NxezpGQWE3KTZAcG5SZjBwciIsIjpycjA7fHVNfnFCIiwiNFhiOnJaKUV4e1V3VXp9LyZqTXwyL2BbXCJeVWkqLH05XjhEPHl2XUUiLCIwKUZiN1lNTSNfKlovZHo5MmZUYEkwR0QoaTJGdS4oLHFTNTxYfHJwUGE2cFguak4yVW02Xy9KazNfIiwibV43YG18Y3FxQVIxYyU+ZE91cTB4PWZQNnBmV0JHK3EiLCJDa0Vid1okW3pweiIsInlqRSM0XTZGVEEvWz10dE9NdUA6a0FVRmUxQ0cuQVZNWmpEKyIsIkN1al46YFdgKWs6JWlBbUhDQEdsPWJcIkJAa2hIXnJILG1aUCsiLCI6fTM4UlcqRFNCRzA8QWxfOVlLLFhzV0UiLCJrclBEdjVTQll3eUtHJXRPIWYvbmZBPXtbOk1aSGpUUCNAJCVbR0dEaEI/ZzF6Jn4iLCJTQHwsQmYxPDBeNis5XSs+UVNMNTxiQ0R5O2tmbS5KbmlXLnR6Km5gYGoyZHExa29ATEUjIzUpY3lhTiIsImE7fDBpPChEbyk2TEdzJCoxRmk1ezVFR2VeQGl8antOQ31INiIsIjNXJEQvWFk7QWorYHkuSD5QQ1puKiR1RSIsIk1MNzhedktHS2tDeWAsVDlgem9NNCQoJClXK0BqQj4vTVVeSm5YUzdXQS9aVWQyVSVXPlA1YmIoXCIzIiwiKGtabjMmREUwUm1xeWpzL1wiajU8JnwhZ2spMSNOcDEsXmtgaFZcIngqL0J6aWVqamM7LHJNM3ZPRHs6TXxUIiwiZzYpT2YjJjxYQmB5MEcpT2ZOXlwiTyhzeWxfWF5BYVtTQn0hMCNBY0RcIjplR0pIZE0pNjxNW0klc2cpQyIsIjBfOVh3OlNZOkwvb2QlIiwiZW5nYkRnWlkwUn5sTyxvTTQuekRxa3gkSis/e15hdCxMYlNiZGskTTYiLCJCTG9nbUkzOnlGdDxHOW1jI0BALEl6SDw0Wk5EP30wT2h9XCJuUEx5U0J1RiNzSGhxIiwiMm9eTC9YRGRVK2ZXKSMrblpAajg1Pm5gaylNW0NmOFYlOCk2Vn1QNyIsIih9U0w1WWpWS3tcImFmcF4vRn1jI0V2JGspazZbJC45KkEubUxGa1QiLCJGK3NNQ2BuRC47LkRaR3BPK1doPXN5KCo7MWB5Yy4+Rj0udjgjWm1WZ2ooKSpCV3olKjk2IiwiYGJiOH06fXAoV15PVix7UDBkKVBkPCNCQCtkOT9qUy8iLCIyLkpMP3x3WV0rbmxbLD0+PTtATUVBPEYsWkgyeDdoQyhiYTY/KHNQYUYydDUxbylLb0FnO3N0VyUiLCJofTxnXCJrcDpiezJnVE9Pb3RJa0w3dl5mcnFiR10vbWN2WEhcIk5mXWNiOzxHOSNHbjJJNyIsIlhaXCJ0UFwiYiosX048LmE3OX0rR25NeVBQUnB5WTFRZXFEfWBoTkxxdnRXZDU4ciIsIl5NfCwvU08oenF2QV1mS3o0LilMfC5fOWczWXdQaHtQfllJfC4+b0ZaM1wiUlJdXixla0UiLCIycjI4ajB3WXJMVHUkOT1vZGEqTWJmaXEzKW4jR2R8cV9FIiwiQVUoPG8oTDc8Kz05eDcxX2EsKU9Gc2JFekxBeVZyJCooQ2ZvLnQvczYiLCJ5Zjp8Z3Z3RmBeT1V6I1V6aENPOGRddChhQVZyPF0mSFd6NDg/KGJNaXs0TUhPT1Z1bzhQQForV1h1PCIsImR9UmJkWEtjXys9R29PKT5hem1MKiQ2e0txTERadldOQkwmfTIvS0dqM0AwfWY0TSt0KzhxIiwiZ3VoPShXZVNQaVd3WkdvUEtAOm9XZyoqWUZadzBBP0hWUy98SC9aN3IiLCI/Xi9uKV1gRDFhOkQ6JSIsIjZGMD17LmU8MDNQMWxodj44VUgrXWpUIiwiLEB9K1IheTtjMT9zTzFlZEZrfXxnWk9gNFpmMGpmfS82aylPKDB7RmpaIzglPnY+OStAbCIsInQsPjwhLyY7Ql9HZHRBeGNwV3pnPldkcVJfPVhYI3BxX017WGwudmJxO1h+ViwjZC9iPTpHNXNzYisiLCJxWTs1UCQ0VVRGcEB2ZD1PS1YlMCl2eTwlIiwiZkl9XU1rYCUiLCJyKDlINDAqaWlvOyIsImJtK3VnWFIxbVEjIiwiR0JSU3EiLCI3YGxmSyFPQSIsIkFsUzZiIiwiVSpEVlUrXXVwV3MyaENEIiwiRXdHbWY7O240byIsImNjJDQ/eUVHcFciLCJuTnJmfjZISEZJQyIsInIoOUg0MFNpfW9mb35BIiwiQ3REPUZUMVwiIiwiKUFLMzgiLCJJQU9HcHA7UyIsIk9Jdmg7S0A5IiwiIXZ0OCIsIjc6ejVKYjl9UiIsIkx+VWkiLCJcImBiSyIsIlhgVmhiKD0hYGUyIiwiKEI8JWAoOSIsIkY3VmhzUTYpIiwiI1Q0JVFQWCkiLCI6MmsvSSVfTz11aiIsImFkRGRgKHMhRiIsIn5ZeTciLCJIVHlLL1E+KSIsIkIydVooMEkwMyEiLCI3N2svJFo6KSIsIiZ6ey9IIiwiN0U6QVAwdiNacUx7OSIsIjk3ey9tUF4pIiwiSG4jWjwiLCJkfTZhIiwiUkgkMSFycUQiLCJ7aXpaRWs3MzV0SDxWKWs+bTUrWV4laDt7WDhUfkhsQDpfLng8em1BQWlwJEZNPiIsIjs/QmJ1UXVOVC9zKkg+cyVKVm9KczNia2k1cl4yY3lGS1NPQ1t8LnVheWtQcW1AdzZRQ1cxZ1hBajZcImEkQGoyQldraVwibjA1KFwiYiIsIks9ZXJhezFIMCsjQyRfU3JJKCVAW3xwPDtNOlljTl53emMvQXEmQjc6TVwiXCJjTnlGNHVOWl5zZy9kdU4uZFZqS0dxVGtORzpHJXVTPFd2QDUmJCxAYUE2RV5cIkRRQz5gck8oMmw9YG06KWowRHIpLEZWUT9pYGIqPDpJVWR0Pm82e2MsQGFBTkF4aFJQPUVvNiRjNWkhXVY/YEpSUE1gXzYpJlJpYGImNUJqUnBMbXlGS1lqVjBzTyIsIiFrckhnZyQiLCI1YldhOU9OZiIsIlMlX1M9IiwiSXBZb2A2M0lTIiwiWDxpMjk2Vi5eU2M1IT9BIiwiU3M1MihqbFMlTXZPO2hCJjwlaTIiLCJ8JUJrQiIsIi94MjFhRyNLIiwiOzFsMVwiIiwiX3BxOXw4RksiLCJtUTcvTk5oZmEhLDtQIiwiSzM2OFwiNjoiLCJycDR3Z054SyIsInJlOGpeT3g1XXkiLCI/ZS5NPSRwPkQ7IiwiP1JudHtecGMiLCJQXXM/W1wiU2giLCJ6OS9XRFA7ST9+TzNBIiwiTU1Jb2AjOyIsInZ2MWZ6fU46IiwiZWVMcDluLyIsImJiPTxWSCFmIiwiK3BpQGE+dmMiLCJjaS50OSIsIlwiSjQ4XCJ5XklEIVIzcnc0IiwiI0tVZkA8PDVsRiIsIlpaKmxdZyNVRCEiLCJwcHI4UXs0SyIsInxzRDl6TjoiLCJQTDUyIiwiM2p3aVciLCJUeG0yOTZzSyIsInNaQE1XMXd4IiwiJiVXKiIsIjFYVmgiLCJZYGJLIiwiI1QrdFs9azAiLCJwWXEzIiwiUWlMMm90eUg+aEoiLCJCWWZAb3Q2JH5OIiwiOkwvJVJfbjtGaGJafl0iLCJkc0RmMl9NIiwicSEjbGlPKzAiLCJ3dCtZIiwiZyV+Tzk5MSIsIjk7RFk9XUMhIiwiI3RiI0QiLCJ5P0o5SiIsImF4dmBIY3ViIiwibGdnOlE2YWtmQVwiV2IxIiwiSUlXIzlCbiIsIikpLmowW21iIiwiVXVqIzs3e2IiLCI0ci9gTU1uIiwiVWZgSFUyL3owZFcheHlgIiwiP1d3SDV1QV4iLCIjU0QjdyIsInBTIXEhIiwiOHZcIiU+OzNeIiwibldSTEpfT24jIiwiVVQwO35xX0RxdyIsIn1SP2c1X19EcXciLCJoVmdyLjJ2XiIsIjx4MiVUJkMiLCJJazw5IiwiUFlxMyIsIn54PDlAW3swIiwiXnw2P3V1YSIsIis/bix5QGolIiwiY2swaWNHdTV9JEl4V24wIiwiaXpYUEdIOXwiLCI4VWs4WCIsIlN6MDt7V3ZTOCIsIm5wUk0rQ1drQ1giLCIjMGlzR1dXa0NYIiwiJUJzRTpJZXwiLCJDeiVQayIsIiswMkM8IiwiRU0hLExcInQlIiwiP1widFtwVTFXIiwiNDFsWzMiLCIkJjgwdnY9IiwiRmNZWmRWZ3ApalYscS5FW0M2WVpcIiRnfng/NWZncSFbNlg3Qj9OdEZWQWohWkN4IiwicFp7ZCY7RXEiLCJMPHBIRiIsIlJAOyQlKDIiLCI7N3pkOEs0QWA/PClcIlo7Qj1JQG4xOztFJnApXiQldGkiLCJ3YzNCKiR2cSIsIkdFZSRoT2YqQ3ZzIiwicTNlJH4iLCJcIihUe2IiLCJDNmtIQzt6TkkiLCI/NmtIQzt6TldNQyE5TSIsIjs3emQ4SzRBYD8iLCJkeG85Q0NEIiwiRmNZWmRWZ3ApaihPI0M5RUw8d0BQKEsje2ZmKFtKYCk7XCJeezhLKlRTd2NmfEpNJUFSIiwiVDw6SEJLdnEiLCJ3dEZ3OiIsIn50UUxRIiwiZWFpbz5BaGciLCJZfmVJJSIsIi5+JnwqK2FnIiwidE1VRGU7amphJiIsInxoUW5GK28jIUZYJEIxSSMiLCI4Zj1vaiFjOV54Lz19IyEoJVMpSD5BRmVlTlwiIiwiOUVaaiIsImk/NHUiLCIkRVpqIiwiYWc0dWNtWFUiLCJ5QiZsbVk/VSIsIihFW2NsWTQ7OUEiLCJtUCMqaCl0VSIsIlNDc0tEbXdgOUFIcF5nNiIsIj4keCsvNSRlZUJRYlghe2xvOjxwVUdKSmlqKDxvTUsyP04jcFlUUlt9JHh6dmNZIUs6L2VcInUpO01qOjtpU2prfHxOLEZ1Rl0kXnQqMjV2MktOViwsVCM0QDpCMzBAaEZVaylye3V1IXpYUHpLSS9rMmtqcmJKNjBfSGlOU0BvdD9NNj8jKWcuP0I2Ym88aiF4OTtlRzVjWHw7JUpiSS9rP1BuV0k+e318VixnaUNQdGJNP3J7dV4wYGVTO2NAZExGSWh9flwiT3hpamVDW0lZIXprQmk+PCM0bTpyenRjZEwra1gqMD5vMGBlNWNfYGcyVWt0e2B1Xn04Ol9AeTNLIVJwZit8LjUwd1ZCM0dgNmpeTVdNaSIsIj5BeHJgMyhcInNqXWdkblMhdklEaSIsImNrMGljR3U1fCIsIjF5Lk5ORS8uY2g/IiwiQiwuTlVTQzt+enZ6Y3kiLCI9TlYsdjNnLnAkIiwiPklFe1BwSHh8IiwiPkg9XlwiPn4/USIsIj5IZV4vVkYiLCImWWB4ZCIsIktjZ15jMVdhT3BpXCIsI2EiLCJnJkw+diIsIktjZ15jMVU1SUwiLCJ5NV1EV0xJZHwiLCIqfjMmV3dHIiwiPzxqey4iLCJfb19hIiwiTGFIcz9eeWNHIiwiaW9rYWFPQGskZVAiLCJ+Q316eyVxeCIsIitYODN6JUw8P2MiLCJ7UnNWaSNOeCIsImN6bEhbdk5xbSFQVUclfCIsIi5JRXsqR1J4fCIsInxBeTMhIiwiWH45ZjIiLCJ4eDc5Py91TmA9IiwiXCJBb3xAZ2RWIiwiJkFzW0E3VVl2Y1R8X3giLCI5OUhEeGxGfUtHIiwianhOVVV6MU5DPDciLCJMYUBLa3NYeiIsIjAwWThbZzpHVlQiLCJJZGAmL3dAeiIsIl1YYTwjd0xGIiwiJlheWVhSVH0qJVY8e0AiLCJAQFJsfiljXCJTYiIsIjVkbzhLc3s6OXEiLCJrTj0hXi4/eiIsIlcxQV8ra2NQOXEqKWgwSCIsIn5uUDVOIiwiNk1+W3QiLCJtRk4hITpnTmEmayIsIjdoQEg4X2VDIiwic15ifUhfUDp8bCIsIjg0e1RraTFDIiwiU0E/Rj04eVl8bCUmLkl0Iiwic15tVSIsInhGJnpnIiwiW10sbSIsIiRJR3tMNmEiLCJkJilFRVYjTlgiLCIwa346IiwiT09AMFh3c05OTCIsImYxdTY5WVJSMiUiLCJCPSZiN0lZI2RrPHU5T0giLCJCeUcrKypic30iLCJUeUAwK0l+UCIsIn1HQn1AIiwiOXs8RzptbFUiLCJrc3ZBTE1iVSIsIkZGdHImU1RSUm8iLCJfcDh+fnZuVGciLCJTW3UoZnY/IiwiJDpOei55L3VFcCIsInZ9dykiLCI+OlhAIiwiK2U5WCIsIjRCKiwuX3R3IiwiNVdSaSIsIkRvPFIiLCJMRkhHR0IpSF1XKCIsIl9wY3JbaylIW0JLdXxGIiwiQj1hMig8Yjk+cl8iLCJcIkdScHMiLCJQT2krOHY7VFdMIiwidnZBcy9NKG1tTCIsIk9KcWtLS0hYIVwiVyIsImVUd09WPTByeyIsInpTMF4mOHhYIVwiYSIsIkZXUWs8KyE2IiwielNOeD9GUF9qbzhkWHZ1IiwienFIc2NGPUJjSn1VWHYiLCJ0PEcxMUN5PTkiLCJ0PFNfYGhSXCJHNTpsXSIsIlwiPGxqKkM4XCI5IiwiaTx7YiIsIjZgKFIxQ1ZjTzlVaGl+LiIsIjteZWpXPlNTZloiLCJfPFdiJUEjYz9cIlAiLCJfPFdidCIsInQmPDMrdXF3IiwienllMXpfZ1wiTCIsIiRMcFBAQHwiLCIlbGokJWthUG96SVdGPWoiLCJ4SVIkQF4jXCIiLCIuRG0uUiIsImdJdjdDZDpnLiIsIiU7bzVIW2RtW1IiLCJLdnhYQGRkbVtSIiwicFpYfDZrVFwiIiwiMEZrMjs5ViIsImxaZ0ApfV1wLiIsIjV2JXxyL3xXRiIsIiVsV1tjJiE6KiIsIl48an0scmhhRiIsIiR8a3BFNU14UyQiLCJePEIybHdDXCJEKVsiLCJbQUl9YWFqcEx+diIsImV5c29YWHAjPk40IiwiSUlGQF5hKVwiIiwiWkR+WEBkJnhxLkJge0gmbGpdIiwiWkR+WEBkJnhWcF8+UUhDOiVsN1giLCJVLHY3eTBVXCIiLCI0M3hYWEEmeCUjfCIsIl9JKTJeYVpcIiIsIjw8eTFKQFp3IiwiZkcoUjFDVmNPOVVFN3pWXlldIiwiZkcoUjFDVmN8V3I1LnoqODtealIiLCJvK2xqbT5vdyJdKTtmdW5jdGlvbiBHaXVoaGVwKCl7dmFyIGJlZzNVOHI9W2Z1bmN0aW9uKCl7cmV0dXJuIGdsb2JhbFRoaXN9LGZ1bmN0aW9uKCl7cmV0dXJuIGdsb2JhbH0sZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93fSxmdW5jdGlvbigpe3JldHVybiBuZXcgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1dLHkybmlhUUksSXdhaW83ZCx4UE1jME5vO00yMGRMbCh5Mm5pYVFJPXZvaWQgMHgwLEl3YWlvN2Q9W10pO3RyeXtNMjBkTGwoeTJuaWFRST1PYmplY3QsSXdhaW83ZFtKWENFZThZWzB4Yl1dKCIiLl9fcHJvdG9fXy5jb25zdHJ1Y3Rvci5uYW1lKSl9Y2F0Y2goZSl7fXJ0MTBDWTpmb3IoeFBNYzBObz1KWENFZThZWzB4MF07eFBNYzBObzxiZWczVThyW0pYQ0VlOFlbMHg0XV07eFBNYzBObysrKXRyeXt2YXIgTThpWXJjO3kybmlhUUk9YmVnM1U4clt4UE1jME5vXSgpO2ZvcihNOGlZcmM9SlhDRWU4WVsweDBdO004aVlyYzxJd2FpbzdkW0pYQ0VlOFlbMHg0XV07TThpWXJjKyspaWYodHlwZW9mIHkybmlhUUlbSXdhaW83ZFtNOGlZcmNdXT09PUpYQ0VlOFlbMHg1XSljb250aW51ZSBydDEwQ1k7cmV0dXJuIHkybmlhUUl9Y2F0Y2goZSl7fXJldHVybiB5Mm5pYVFJfHx0aGlzfU0yMGRMbChJd2FpbzdkPUdpdWhoZXAoKXx8e30seFBNYzBObz1Jd2FpbzdkLlRleHREZWNvZGVyLE04aVlyYz1Jd2FpbzdkLlVpbnQ4QXJyYXkscVJoOUZwPUl3YWlvN2QuQnVmZmVyLFljeEd2ejY9SXdhaW83ZC5TdHJpbmd8fFN0cmluZyxXV29CUnRXPUl3YWlvN2QuQXJyYXl8fEFycmF5LE9wTlFuU1o9ZnVuY3Rpb24oKXt2YXIgYmVnM1U4cj1uZXcgV1dvQlJ0VyhKWENFZThZWzB4MjBdKSx5Mm5pYVFJLEl3YWlvN2Q7TTIwZExsKHkybmlhUUk9WWN4R3Z6NltKWENFZThZWzB4OF1dfHxZY3hHdno2LmZyb21DaGFyQ29kZSxJd2FpbzdkPVtdKTtyZXR1cm4gZnVuY3Rpb24oeFBNYzBObyl7dmFyIE04aVlyYyxxUmg5RnAsV1dvQlJ0VyxPcE5RblNaO00yMGRMbChxUmg5RnA9dm9pZCAweDAsV1dvQlJ0Vz14UE1jME5vW0pYQ0VlOFlbMHg0XV0sSXdhaW83ZFtKWENFZThZWzB4NF1dPUpYQ0VlOFlbMHgwXSk7Zm9yKE9wTlFuU1o9SlhDRWU4WVsweDBdO09wTlFuU1o8V1dvQlJ0Vzspe00yMGRMbChxUmg5RnA9eFBNYzBOb1tPcE5RblNaKytdLHFSaDlGcDw9SlhDRWU4WVsweDFmXT9NOGlZcmM9cVJoOUZwOnFSaDlGcDw9SlhDRWU4WVsweDNiXT9NOGlZcmM9KHFSaDlGcCYweDFmKTw8SlhDRWU4WVsweDddfHhQTWMwTm9bT3BOUW5TWisrXSZKWENFZThZWzB4Nl06cVJoOUZwPD1KWENFZThZWzB4M2ZdP004aVlyYz0ocVJoOUZwJjB4Zik8PEpYQ0VlOFlbMHhhXXwoeFBNYzBOb1tPcE5RblNaKytdJkpYQ0VlOFlbMHg2XSk8PEpYQ0VlOFlbMHg3XXx4UE1jME5vW09wTlFuU1orK10mSlhDRWU4WVsweDZdOlljeEd2ejZbSlhDRWU4WVsweDhdXT9NOGlZcmM9KHFSaDlGcCZKWENFZThZWzB4OV0pPDwweDEyfCh4UE1jME5vW09wTlFuU1orK10mSlhDRWU4WVsweDZdKTw8SlhDRWU4WVsweGFdfCh4UE1jME5vW09wTlFuU1orK10mSlhDRWU4WVsweDZdKTw8SlhDRWU4WVsweDddfHhQTWMwTm9bT3BOUW5TWisrXSZKWENFZThZWzB4Nl06KE04aVlyYz1KWENFZThZWzB4Nl0sT3BOUW5TWis9SlhDRWU4WVsweDE0XSksSXdhaW83ZFtKWENFZThZWzB4Yl1dKGJlZzNVOHJbTThpWXJjXXx8KGJlZzNVOHJbTThpWXJjXT15Mm5pYVFJKE04aVlyYykpKSl9cmV0dXJuIEl3YWlvN2Quam9pbigiIil9fSgpKTtmdW5jdGlvbiBmSDNIVW81KGJlZzNVOHIpe3JldHVybiB0eXBlb2YgeFBNYzBObyE9PUpYQ0VlOFlbMHg1XSYmeFBNYzBObz9uZXcgeFBNYzBObygpLmRlY29kZShuZXcgTThpWXJjKGJlZzNVOHIpKTp0eXBlb2YgcVJoOUZwIT09SlhDRWU4WVsweDVdJiZxUmg5RnA/cVJoOUZwLmZyb20oYmVnM1U4cikudG9TdHJpbmcoInV0Zi04Iik6T3BOUW5TWihiZWczVThyKX1mdW5jdGlvbiBVeDEyaHQ4KCl7fWZ1bmN0aW9uIHJ0MFhKRCgpe31mdW5jdGlvbiBNMjBkTGwoKXtNMjBkTGw9ZnVuY3Rpb24oKXt9fSgoKT0+e2Z1bmN0aW9uIEl3YWlvN2QoSXdhaW83ZCl7dmFyIHhQTWMwTm89ImF3JVd5RHxkXU5pMUEwRklgJGhCaiZmUC52TVkpPnhyLF90IVJMbCNrMnN+T1U9NCpjblg7ZT8rYjlnS0VTOl5bekhWRzVDPEA2OH1we1RRXCJ1cTMvN0pvbVooIixNOGlZcmMscVJoOUZwLFljeEd2ejYsV1dvQlJ0VyxPcE5RblNaLFd5SjY2dyxjQmlabGQ7TTIwZExsKE04aVlyYz0iIisoSXdhaW83ZHx8IiIpLHFSaDlGcD1NOGlZcmMubGVuZ3RoLFljeEd2ejY9W10sV1dvQlJ0Vz1KWENFZThZWzB4MF0sT3BOUW5TWj1KWENFZThZWzB4MF0sV3lKNjZ3PS1KWENFZThZWzB4MV0pO2ZvcihjQmlabGQ9SlhDRWU4WVsweDBdO2NCaVpsZDxxUmg5RnA7Y0JpWmxkKyspe3ZhciBHaXVoaGVwPXhQTWMwTm8uaW5kZXhPZihNOGlZcmNbY0JpWmxkXSk7aWYoR2l1aGhlcD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoV3lKNjZ3PEpYQ0VlOFlbMHgwXSl7V3lKNjZ3PUdpdWhoZXB9ZWxzZXtNMjBkTGwoV3lKNjZ3Kz1HaXVoaGVwKkpYQ0VlOFlbMHhjXSxXV29CUnRXfD1XeUo2Nnc8PE9wTlFuU1osT3BOUW5TWis9KFd5SjY2dyZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKFljeEd2ejYucHVzaChXV29CUnRXJkpYQ0VlOFlbMHgzXSksV1dvQlJ0Vz4+PUpYQ0VlOFlbMHgyXSxPcE5RblNaLT1KWENFZThZWzB4Ml0pfXdoaWxlKE9wTlFuU1o+SlhDRWU4WVsweDldKTtXeUo2Nnc9LUpYQ0VlOFlbMHgxXX19aWYoV3lKNjZ3Pi1KWENFZThZWzB4MV0pe1ljeEd2ejYucHVzaCgoV1dvQlJ0V3xXeUo2Nnc8PE9wTlFuU1opJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoWWN4R3Z6Nil9ZnVuY3Rpb24geFBNYzBObyh4UE1jME5vKXtpZih0eXBlb2YgYmVnM1U4clt4UE1jME5vXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbeFBNYzBOb109SXdhaW83ZCh5Mm5pYVFJW3hQTWMwTm9dKX1yZXR1cm4gYmVnM1U4clt4UE1jME5vXX1pZih4UE1jME5vKDB4NjUpaW4gVXgxMmh0OCl7TThpWXJjKCl9ZnVuY3Rpb24gTThpWXJjKCl7ZnVuY3Rpb24gSXdhaW83ZChJd2FpbzdkKXtyZXR1cm4gSXdhaW83ZFtKWENFZThZWzB4MV1dKkpYQ0VlOFlbMHgxMl0rKEl3YWlvN2RbSlhDRWU4WVsweDBdXTxKWENFZThZWzB4MF0/SlhDRWU4WVsweDExXXxJd2FpbzdkW0pYQ0VlOFlbMHgwXV06SXdhaW83ZFtKWENFZThZWzB4MF1dKX1mdW5jdGlvbiB4UE1jME5vKEl3YWlvN2Qpe3N3aXRjaCgoKEl3YWlvN2QmSlhDRWU4WVsweDExXSkhPT1KWENFZThZWzB4MF0pKkpYQ0VlOFlbMHgxXSsoSXdhaW83ZDxKWENFZThZWzB4MF0pKkpYQ0VlOFlbMHgxM10pe2Nhc2UgSlhDRWU4WVsweDBdOnJldHVybltJd2FpbzdkJUpYQ0VlOFlbMHgxMV0sTWF0aC50cnVuYyhJd2FpbzdkL0pYQ0VlOFlbMHgxMl0pXTtjYXNlIEpYQ0VlOFlbMHgxXTpyZXR1cm5bSXdhaW83ZCVKWENFZThZWzB4MTFdLUpYQ0VlOFlbMHgxMV0sTWF0aC50cnVuYyhJd2FpbzdkL0pYQ0VlOFlbMHgxMl0pK0pYQ0VlOFlbMHgxXV07Y2FzZSBKWENFZThZWzB4MTNdOnJldHVyblsoKEl3YWlvN2QrSlhDRWU4WVsweDExXSklSlhDRWU4WVsweDExXStKWENFZThZWzB4MTFdKSVKWENFZThZWzB4MTFdLE1hdGgucm91bmQoSXdhaW83ZC9KWENFZThZWzB4MTJdKV07Y2FzZSBKWENFZThZWzB4MTRdOnJldHVybltJd2FpbzdkJUpYQ0VlOFlbMHgxMV0sTWF0aC50cnVuYyhJd2FpbzdkL0pYQ0VlOFlbMHgxMl0pXX19bGV0IE04aVlyYz1Jd2FpbzdkKFtKWENFZThZWzB4MTNdLEpYQ0VlOFlbMHg0ZF1dKSxZY3hHdno2PUl3YWlvN2QoW0pYQ0VlOFlbMHgxXSxKWENFZThZWzB4MTNdXSksV1dvQlJ0Vz1NOGlZcmMrWWN4R3Z6NixPcE5RblNaPVdXb0JSdFctWWN4R3Z6NixXeUo2Nnc9T3BOUW5TWipKWENFZThZWzB4MTNdLGNCaVpsZD1XeUo2NncvSlhDRWU4WVsweDEzXTtNMjBkTGwoY29uc29sZS5sb2coeFBNYzBObyhXV29CUnRXKSksY29uc29sZS5sb2coeFBNYzBObyhPcE5RblNaKSksY29uc29sZS5sb2coeFBNYzBObyhXeUo2NncpKSxjb25zb2xlLmxvZyh4UE1jME5vKGNCaVpsZCkpKX1sZXQgcVJoOUZwPUpYQ0VlOFlbMHgxNV0sWWN4R3Z6Nj1uZXcgVWludDhBcnJheShKWENFZThZWzB4MF0pLFdXb0JSdFc9SlhDRWU4WVsweDBdLE9wTlFuU1o9SlhDRWU4WVsweDE1XSxXeUo2Nnc9SlhDRWU4WVsweDU0XSxjQmlabGQ9SlhDRWU4WVsweDBdLEdpdWhoZXA9SlhDRWU4WVsweDBdLHJ0MFhKRD1KWENFZThZWzB4MF0sU2R4X0JUPUpYQ0VlOFlbMHgwXTtmdW5jdGlvbiBPaWk0T1IoKXtpZihPcE5RblNaKXtyZXR1cm4gT3BOUW5TWn10cnl7ZnVuY3Rpb24gSXdhaW83ZChJd2FpbzdkKXt2YXIgeFBNYzBObz0ie1JNQWZrVGpgdXY/fm9AZFB6cTFuKUxyRD1iXUV3VS81IVtCSjdDT2NzO202ZyVHS184JFp0eF48I0lweT5GWStRMGh8fVdcImEmSDM5KmVTWDouVixpbE4oMjQiLE04aVlyYyxxUmg5RnAsWWN4R3Z6NixXV29CUnRXLE9wTlFuU1osV3lKNjZ3LGNCaVpsZDtNMjBkTGwoTThpWXJjPSIiKyhJd2FpbzdkfHwiIikscVJoOUZwPU04aVlyYy5sZW5ndGgsWWN4R3Z6Nj1bXSxXV29CUnRXPUpYQ0VlOFlbMHgwXSxPcE5RblNaPUpYQ0VlOFlbMHgwXSxXeUo2Nnc9LUpYQ0VlOFlbMHgxXSk7Zm9yKGNCaVpsZD1KWENFZThZWzB4MF07Y0JpWmxkPHFSaDlGcDtjQmlabGQrKyl7dmFyIEdpdWhoZXA9eFBNYzBOby5pbmRleE9mKE04aVlyY1tjQmlabGRdKTtpZihHaXVoaGVwPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihXeUo2Nnc8SlhDRWU4WVsweDBdKXtXeUo2Nnc9R2l1aGhlcH1lbHNle00yMGRMbChXeUo2NncrPUdpdWhoZXAqSlhDRWU4WVsweGNdLFdXb0JSdFd8PVd5SjY2dzw8T3BOUW5TWixPcE5RblNaKz0oV3lKNjZ3JkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoWWN4R3Z6Ni5wdXNoKFdXb0JSdFcmSlhDRWU4WVsweDNdKSxXV29CUnRXPj49SlhDRWU4WVsweDJdLE9wTlFuU1otPUpYQ0VlOFlbMHgyXSl9d2hpbGUoT3BOUW5TWj5KWENFZThZWzB4OV0pO1d5SjY2dz0tSlhDRWU4WVsweDFdfX1pZihXeUo2Nnc+LUpYQ0VlOFlbMHgxXSl7WWN4R3Z6Ni5wdXNoKChXV29CUnRXfFd5SjY2dzw8T3BOUW5TWikmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShZY3hHdno2KX1mdW5jdGlvbiB4UE1jME5vKHhQTWMwTm8pe2lmKHR5cGVvZiBiZWczVThyW3hQTWMwTm9dPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4clt4UE1jME5vXT1Jd2FpbzdkKHkybmlhUUlbeFBNYzBOb10pfXJldHVybiBiZWczVThyW3hQTWMwTm9dfWlmKHNlbGZbeFBNYzBObyhKWENFZThZWzB4MTZdKV0pe2Z1bmN0aW9uIE04aVlyYyhJd2FpbzdkKXt2YXIgeFBNYzBObz0ieGdBaGNUSkhlbVZyTkRNc1BXZHRZb2lSR2JgRnFuMjRmL09sP0tYXip8LjVqMEJ5OVVDd1t7JD19XCI+fjd6JSk4STwoK3VfOyMmTHBTNnYxIV0sOlEzRWthWkAiLE04aVlyYyxxUmg5RnAsWWN4R3Z6NixXV29CUnRXLE9wTlFuU1osV3lKNjZ3LGNCaVpsZDtNMjBkTGwoTThpWXJjPSIiKyhJd2FpbzdkfHwiIikscVJoOUZwPU04aVlyYy5sZW5ndGgsWWN4R3Z6Nj1bXSxXV29CUnRXPUpYQ0VlOFlbMHgwXSxPcE5RblNaPUpYQ0VlOFlbMHgwXSxXeUo2Nnc9LUpYQ0VlOFlbMHgxXSk7Zm9yKGNCaVpsZD1KWENFZThZWzB4MF07Y0JpWmxkPHFSaDlGcDtjQmlabGQrKyl7dmFyIEdpdWhoZXA9eFBNYzBOby5pbmRleE9mKE04aVlyY1tjQmlabGRdKTtpZihHaXVoaGVwPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihXeUo2Nnc8SlhDRWU4WVsweDBdKXtXeUo2Nnc9R2l1aGhlcH1lbHNle00yMGRMbChXeUo2NncrPUdpdWhoZXAqSlhDRWU4WVsweGNdLFdXb0JSdFd8PVd5SjY2dzw8T3BOUW5TWixPcE5RblNaKz0oV3lKNjZ3JkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoWWN4R3Z6Ni5wdXNoKFdXb0JSdFcmSlhDRWU4WVsweDNdKSxXV29CUnRXPj49SlhDRWU4WVsweDJdLE9wTlFuU1otPUpYQ0VlOFlbMHgyXSl9d2hpbGUoT3BOUW5TWj5KWENFZThZWzB4OV0pO1d5SjY2dz0tSlhDRWU4WVsweDFdfX1pZihXeUo2Nnc+LUpYQ0VlOFlbMHgxXSl7WWN4R3Z6Ni5wdXNoKChXV29CUnRXfFd5SjY2dzw8T3BOUW5TWikmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShZY3hHdno2KX1mdW5jdGlvbiBxUmg5RnAoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPU04aVlyYyh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1jb25zdCBZY3hHdno2PXNlbGZbeFBNYzBObyhKWENFZThZWzB4MTZdKV07cmV0dXJuIE9wTlFuU1o9e1t4UE1jME5vKEpYQ0VlOFlbMHgxN10pXTpZY3hHdno2W3hQTWMwTm8oSlhDRWU4WVsweDE3XSldfHxbXSxbcVJoOUZwKEpYQ0VlOFlbMHgxOF0pXTpZY3hHdno2W3FSaDlGcChKWENFZThZWzB4MThdKV18fFtdLFtxUmg5RnAoMHg2OSldOiIiLFtxUmg5RnAoMHg2YSldOiIiLFtxUmg5RnAoMHg2YildOiIiLFtxUmg5RnAoMHg2YyldOiIiLFtxUmg5RnAoMHg2ZCldOiIifSxZY3hHdno2W3FSaDlGcChKWENFZThZWzB4MTldKV0mJihXeUo2Nnc9WWN4R3Z6NltxUmg5RnAoSlhDRWU4WVsweDE5XSldKSxPcE5RblNafWlmKHNlbGZbeFBNYzBObyhKWENFZThZWzB4MWFdKV0pe3JldHVybiBPcE5RblNaPXNlbGZbeFBNYzBObyhKWENFZThZWzB4MWFdKV0sT3BOUW5TWn19Y2F0Y2h7fXJldHVybiBKWENFZThZWzB4MTVdfWZ1bmN0aW9uIG5yRzhWX2woSXdhaW83ZCx4UE1jME5vLE04aVlyYyl7aWYoIU04aVlyYyl7TThpWXJjPWZ1bmN0aW9uKEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT14UE1jME5vKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfX1pZigheFBNYzBObyl7eFBNYzBObz1mdW5jdGlvbihJd2FpbzdkKXt2YXIgeFBNYzBObz0iMzhcIitdNjU0dltee0ojPnRPO1VJRE1+Q255MXcoN0d4KnJMYGFsYiRvV2d6LktIalkmRTxOWlJ9fC8lMGZAOlNBc18hcWltdWhrVjJCPUYpP1RjZTlRUHBYZCwiLE04aVlyYyxZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixXeUo2NncsY0JpWmxkLEdpdWhoZXA7TTIwZExsKE04aVlyYz0iIisoSXdhaW83ZHx8IiIpLFljeEd2ejY9TThpWXJjLmxlbmd0aCxXV29CUnRXPVtdLE9wTlFuU1o9SlhDRWU4WVsweDBdLFd5SjY2dz1KWENFZThZWzB4MF0sY0JpWmxkPS1KWENFZThZWzB4MV0pO2ZvcihHaXVoaGVwPUpYQ0VlOFlbMHgwXTtHaXVoaGVwPFljeEd2ejY7R2l1aGhlcCsrKXt2YXIgU2R4X0JUPXhQTWMwTm8uaW5kZXhPZihNOGlZcmNbR2l1aGhlcF0pO2lmKFNkeF9CVD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoY0JpWmxkPEpYQ0VlOFlbMHgwXSl7Y0JpWmxkPVNkeF9CVH1lbHNle00yMGRMbChjQmlabGQrPVNkeF9CVCpKWENFZThZWzB4Y10sT3BOUW5TWnw9Y0JpWmxkPDxXeUo2NncsV3lKNjZ3Kz0oY0JpWmxkJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoV1dvQlJ0Vy5wdXNoKE9wTlFuU1omSlhDRWU4WVsweDNdKSxPcE5RblNaPj49SlhDRWU4WVsweDJdLFd5SjY2dy09SlhDRWU4WVsweDJdKX13aGlsZShXeUo2Nnc+SlhDRWU4WVsweDldKTtjQmlabGQ9LUpYQ0VlOFlbMHgxXX19aWYoY0JpWmxkPi1KWENFZThZWzB4MV0pe1dXb0JSdFcucHVzaCgoT3BOUW5TWnxjQmlabGQ8PFd5SjY2dykmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShXV29CUnRXKX19Y29uc3QgcVJoOUZwPVtdO2ZvcihsZXQgWWN4R3Z6Nj1KWENFZThZWzB4MF07WWN4R3Z6NjxJd2FpbzdkW004aVlyYygweDcwKV07WWN4R3Z6Nis9SlhDRWU4WVsweDEzXSl7ZnVuY3Rpb24gV1dvQlJ0VyhJd2FpbzdkKXt2YXIgeFBNYzBObz0iUntTVDA3bSE8KjNKd0s+T0h8YFwiZmhnWCh6OCspQkNJPTkkTVlGRHUufmxVJmM7ciw1MVZ4MkB2VzojZEEveV1lYXM/fW80W2ppXl9HJVA2YnB0UWtObkxFcVoiLE04aVlyYyxZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixXeUo2NncsY0JpWmxkLEdpdWhoZXA7TTIwZExsKE04aVlyYz0iIisoSXdhaW83ZHx8IiIpLFljeEd2ejY9TThpWXJjLmxlbmd0aCxXV29CUnRXPVtdLE9wTlFuU1o9SlhDRWU4WVsweDBdLFd5SjY2dz1KWENFZThZWzB4MF0sY0JpWmxkPS1KWENFZThZWzB4MV0pO2ZvcihHaXVoaGVwPUpYQ0VlOFlbMHgwXTtHaXVoaGVwPFljeEd2ejY7R2l1aGhlcCsrKXt2YXIgU2R4X0JUPXhQTWMwTm8uaW5kZXhPZihNOGlZcmNbR2l1aGhlcF0pO2lmKFNkeF9CVD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoY0JpWmxkPEpYQ0VlOFlbMHgwXSl7Y0JpWmxkPVNkeF9CVH1lbHNle00yMGRMbChjQmlabGQrPVNkeF9CVCpKWENFZThZWzB4Y10sT3BOUW5TWnw9Y0JpWmxkPDxXeUo2NncsV3lKNjZ3Kz0oY0JpWmxkJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoV1dvQlJ0Vy5wdXNoKE9wTlFuU1omSlhDRWU4WVsweDNdKSxPcE5RblNaPj49SlhDRWU4WVsweDJdLFd5SjY2dy09SlhDRWU4WVsweDJdKX13aGlsZShXeUo2Nnc+SlhDRWU4WVsweDldKTtjQmlabGQ9LUpYQ0VlOFlbMHgxXX19aWYoY0JpWmxkPi1KWENFZThZWzB4MV0pe1dXb0JSdFcucHVzaCgoT3BOUW5TWnxjQmlabGQ8PFd5SjY2dykmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShXV29CUnRXKX1mdW5jdGlvbiBPcE5RblNaKEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT1XV29CUnRXKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfXFSaDlGcFtPcE5RblNaKDB4NzEpXShwYXJzZUludChJd2FpbzdkW09wTlFuU1ooMHg3MildKFljeEd2ejYsSlhDRWU4WVsweDEzXSksMHgxMCkpfXJldHVybiBuZXcgVWludDhBcnJheShxUmg5RnApfWZ1bmN0aW9uIFFfN21nZVkoSXdhaW83ZCx4UE1jME5vLE04aVlyYyxxUmg5RnApe2lmKCFxUmg5RnApe3FSaDlGcD1mdW5jdGlvbihJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09TThpWXJjKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfX1pZighTThpWXJjKXtNOGlZcmM9ZnVuY3Rpb24oSXdhaW83ZCl7dmFyIE04aVlyYz0iOmY5RCEqezUxdyklfn1vSVB4M0J2NmNPV3lAW2tiXkpURz5YVT10KFNnMllFPDhdX3UjWiZkfHIrLm16JGBRQTBcInBzbEZSZW5ONC9NaDtDSEssP3E3YUxpVmoiLHFSaDlGcCxZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixXeUo2NncsY0JpWmxkLEdpdWhoZXA7TTIwZExsKHFSaDlGcD0iIisoSXdhaW83ZHx8IiIpLFljeEd2ejY9cVJoOUZwLmxlbmd0aCxXV29CUnRXPVtdLE9wTlFuU1o9SlhDRWU4WVsweDBdLFd5SjY2dz1KWENFZThZWzB4MF0sY0JpWmxkPS1KWENFZThZWzB4MV0pO2ZvcihHaXVoaGVwPUpYQ0VlOFlbMHgwXTtHaXVoaGVwPFljeEd2ejY7R2l1aGhlcCsrKXt2YXIgU2R4X0JUPU04aVlyYy5pbmRleE9mKHFSaDlGcFtHaXVoaGVwXSk7aWYoU2R4X0JUPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihjQmlabGQ8SlhDRWU4WVsweDBdKXtjQmlabGQ9U2R4X0JUfWVsc2V7TTIwZExsKGNCaVpsZCs9U2R4X0JUKkpYQ0VlOFlbMHhjXSxPcE5RblNafD1jQmlabGQ8PFd5SjY2dyxXeUo2NncrPShjQmlabGQmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChXV29CUnRXLnB1c2goT3BOUW5TWiZKWENFZThZWzB4M10pLE9wTlFuU1o+Pj1KWENFZThZWzB4Ml0sV3lKNjZ3LT1KWENFZThZWzB4Ml0pfXdoaWxlKFd5SjY2dz5KWENFZThZWzB4OV0pO2NCaVpsZD0tSlhDRWU4WVsweDFdfX1pZihjQmlabGQ+LUpYQ0VlOFlbMHgxXSl7V1dvQlJ0Vy5wdXNoKChPcE5RblNafGNCaVpsZDw8V3lKNjZ3KSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KFdXb0JSdFcpfX1jb25zdCBZY3hHdno2PW5ldyBVaW50OEFycmF5KEl3YWlvN2RbcVJoOUZwKEpYQ0VlOFlbMHgxYl0pXSk7Zm9yKGxldCBXV29CUnRXPUpYQ0VlOFlbMHgwXTtXV29CUnRXPEl3YWlvN2RbcVJoOUZwKEpYQ0VlOFlbMHgxYl0pXTtXV29CUnRXKyspWWN4R3Z6NltXV29CUnRXXT1Jd2FpbzdkW1dXb0JSdFddXnhQTWMwTm9bV1dvQlJ0VyV4UE1jME5vW3FSaDlGcChKWENFZThZWzB4MWJdKV1dO3JldHVybiBZY3hHdno2fWxldCBWZ3RoR1Q9SlhDRWU4WVsweDE1XTthc3luYyBmdW5jdGlvbiBnYVZNVE0oSXdhaW83ZCx4UE1jME5vLE04aVlyYyl7aWYoIU04aVlyYyl7TThpWXJjPWZ1bmN0aW9uKEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT14UE1jME5vKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfX1pZigheFBNYzBObyl7eFBNYzBObz1mdW5jdGlvbihJd2FpbzdkKXt2YXIgeFBNYzBObz0ibTlvaEY9R1IpcDhkX1B3XWM/JXpKL3hnWlY6Xj5mKmk1MitAaiFMWzdZbnZ5dCxyKEQuUTR9fFVLQWBrdSYjPFwiT3NDWHF7NiQzMH5iTVRJMWE7RWVCTkhsU1ciLE04aVlyYyxxUmg5RnAsWWN4R3Z6NixXV29CUnRXLE9wTlFuU1osV3lKNjZ3LGNCaVpsZDtNMjBkTGwoTThpWXJjPSIiKyhJd2FpbzdkfHwiIikscVJoOUZwPU04aVlyYy5sZW5ndGgsWWN4R3Z6Nj1bXSxXV29CUnRXPUpYQ0VlOFlbMHgwXSxPcE5RblNaPUpYQ0VlOFlbMHgwXSxXeUo2Nnc9LUpYQ0VlOFlbMHgxXSk7Zm9yKGNCaVpsZD1KWENFZThZWzB4MF07Y0JpWmxkPHFSaDlGcDtjQmlabGQrKyl7dmFyIEdpdWhoZXA9eFBNYzBOby5pbmRleE9mKE04aVlyY1tjQmlabGRdKTtpZihHaXVoaGVwPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihXeUo2Nnc8SlhDRWU4WVsweDBdKXtXeUo2Nnc9R2l1aGhlcH1lbHNle00yMGRMbChXeUo2NncrPUdpdWhoZXAqSlhDRWU4WVsweGNdLFdXb0JSdFd8PVd5SjY2dzw8T3BOUW5TWixPcE5RblNaKz0oV3lKNjZ3JkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoWWN4R3Z6Ni5wdXNoKFdXb0JSdFcmSlhDRWU4WVsweDNdKSxXV29CUnRXPj49SlhDRWU4WVsweDJdLE9wTlFuU1otPUpYQ0VlOFlbMHgyXSl9d2hpbGUoT3BOUW5TWj5KWENFZThZWzB4OV0pO1d5SjY2dz0tSlhDRWU4WVsweDFdfX1pZihXeUo2Nnc+LUpYQ0VlOFlbMHgxXSl7WWN4R3Z6Ni5wdXNoKChXV29CUnRXfFd5SjY2dzw8T3BOUW5TWikmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShZY3hHdno2KX19cmV0dXJuIHFSaDlGcCYmRGF0ZVtNOGlZcmMoMHg3NCldKCktV1dvQlJ0VzxKWENFZThZWzB4MWNdP3FSaDlGcDpWZ3RoR1R8fChWZ3RoR1Q9SkxvekJRKEl3YWlvN2QpW004aVlyYygweDc1KV0oKCk9PntWZ3RoR1Q9SlhDRWU4WVsweDE1XX0pLFZndGhHVCl9bGV0IGxlWnlLeT1KWENFZThZWzB4MF0seTUweHBLPUpYQ0VlOFlbMHgwXTthc3luYyBmdW5jdGlvbiBKTG96QlEoSXdhaW83ZCxNOGlZcmMsV3lKNjZ3KXtpZighV3lKNjZ3KXtXeUo2Nnc9ZnVuY3Rpb24oSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPU04aVlyYyh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX19aWYoIU04aVlyYyl7TThpWXJjPWZ1bmN0aW9uKEl3YWlvN2Qpe3ZhciBNOGlZcmM9Ijk9KXo3M0Z8ZmhLP31HbVRnWz4hNHk1I0hyWDg8XTtzL3hCKjZcIlJZQ3dsYCxibjE6QV5rT1VkTmEyb0lqdnF1VmVNe0UwdEBMREpjWiVRVyhQXyYkfmlTK3AuIixXeUo2NncsR2l1aGhlcCxTZHhfQlQsT2lpNE9SLFZndGhHVCxnYVZNVE0sSkxvekJRO00yMGRMbChXeUo2Nnc9IiIrKEl3YWlvN2R8fCIiKSxHaXVoaGVwPVd5SjY2dy5sZW5ndGgsU2R4X0JUPVtdLE9paTRPUj1KWENFZThZWzB4MF0sVmd0aEdUPUpYQ0VlOFlbMHgwXSxnYVZNVE09LUpYQ0VlOFlbMHgxXSk7Zm9yKEpMb3pCUT1KWENFZThZWzB4MF07SkxvekJRPEdpdWhoZXA7SkxvekJRKyspe3ZhciBIV0h3Y3ZQPU04aVlyYy5pbmRleE9mKFd5SjY2d1tKTG96QlFdKTtpZihIV0h3Y3ZQPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihnYVZNVE08SlhDRWU4WVsweDBdKXtnYVZNVE09SFdId2N2UH1lbHNle00yMGRMbChnYVZNVE0rPUhXSHdjdlAqSlhDRWU4WVsweGNdLE9paTRPUnw9Z2FWTVRNPDxWZ3RoR1QsVmd0aEdUKz0oZ2FWTVRNJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoU2R4X0JULnB1c2goT2lpNE9SJkpYQ0VlOFlbMHgzXSksT2lpNE9SPj49SlhDRWU4WVsweDJdLFZndGhHVC09SlhDRWU4WVsweDJdKX13aGlsZShWZ3RoR1Q+SlhDRWU4WVsweDldKTtnYVZNVE09LUpYQ0VlOFlbMHgxXX19aWYoZ2FWTVRNPi1KWENFZThZWzB4MV0pe1NkeF9CVC5wdXNoKChPaWk0T1J8Z2FWTVRNPDxWZ3RoR1QpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoU2R4X0JUKX19aWYocVJoOUZwJiZEYXRlW3hQTWMwTm8oSlhDRWU4WVsweDQxXSldKCktV1dvQlJ0VzxKWENFZThZWzB4MWNdKXtyZXR1cm4gcVJoOUZwfWlmKERhdGVbV3lKNjZ3KEpYQ0VlOFlbMHgxZF0pXSgpPHk1MHhwSyl7cmV0dXJuW119Y29uc3QgY0JpWmxkPURhdGVbV3lKNjZ3KEpYQ0VlOFlbMHgxZF0pXSgpK0pYQ0VlOFlbMHgzZF0sR2l1aGhlcD1Jd2FpbzdkW1d5SjY2dyhKWENFZThZWzB4MWVdKV1bTWF0aFtXeUo2NncoMHg3OSldKE1hdGhbV3lKNjZ3KEpYQ0VlOFlbMHgyZV0pXSgpKkl3YWlvN2RbV3lKNjZ3KEpYQ0VlOFlbMHgxZV0pXVtXeUo2NncoMHg3YildKV0sU2R4X0JUPUpTT05bV3lKNjZ3KDB4N2MpXSh7W1d5SjY2dygweDdkKV06V3lKNjZ3KDB4N2UpLGlkOkpYQ0VlOFlbMHgxNF0sW1d5SjY2dyhKWENFZThZWzB4MWZdKV06V3lKNjZ3KEpYQ0VlOFlbMHgyMF0pLFtXeUo2NncoMHg4MSldOlt7W1d5SjY2dygweDgyKV06V3lKNjZ3KDB4ODMpLHRvOkdpdWhoZXB9LFd5SjY2dygweDg0KV19KTtmb3IoY29uc3QgT2lpNE9SIG9mIEl3YWlvN2RbV3lKNjZ3KDB4ODUpXSl7ZnVuY3Rpb24gVmd0aEdUKEl3YWlvN2Qpe3ZhciBNOGlZcmM9InhlZjxdbjt6VG1hWFtrc2IvcE5CJFdGcjVxXkAxdFpZOSF1eyxkTUQpQT59fjZ2NFA9VmdSUytVandJXCJFJkMwP2wuSEpHY2hgI2lvMjhPfHk3XyhLM1E6JUwqIixXeUo2NncsR2l1aGhlcCxTZHhfQlQsT2lpNE9SLFZndGhHVCxnYVZNVE0sSkxvekJRO00yMGRMbChXeUo2Nnc9IiIrKEl3YWlvN2R8fCIiKSxHaXVoaGVwPVd5SjY2dy5sZW5ndGgsU2R4X0JUPVtdLE9paTRPUj1KWENFZThZWzB4MF0sVmd0aEdUPUpYQ0VlOFlbMHgwXSxnYVZNVE09LUpYQ0VlOFlbMHgxXSk7Zm9yKEpMb3pCUT1KWENFZThZWzB4MF07SkxvekJRPEdpdWhoZXA7SkxvekJRKyspe3ZhciBIV0h3Y3ZQPU04aVlyYy5pbmRleE9mKFd5SjY2d1tKTG96QlFdKTtpZihIV0h3Y3ZQPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihnYVZNVE08SlhDRWU4WVsweDBdKXtnYVZNVE09SFdId2N2UH1lbHNle00yMGRMbChnYVZNVE0rPUhXSHdjdlAqSlhDRWU4WVsweGNdLE9paTRPUnw9Z2FWTVRNPDxWZ3RoR1QsVmd0aEdUKz0oZ2FWTVRNJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoU2R4X0JULnB1c2goT2lpNE9SJkpYQ0VlOFlbMHgzXSksT2lpNE9SPj49SlhDRWU4WVsweDJdLFZndGhHVC09SlhDRWU4WVsweDJdKX13aGlsZShWZ3RoR1Q+SlhDRWU4WVsweDldKTtnYVZNVE09LUpYQ0VlOFlbMHgxXX19aWYoZ2FWTVRNPi1KWENFZThZWzB4MV0pe1NkeF9CVC5wdXNoKChPaWk0T1J8Z2FWTVRNPDxWZ3RoR1QpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoU2R4X0JUKX1mdW5jdGlvbiBnYVZNVE0oSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPVZndGhHVCh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1pZihEYXRlW2dhVk1UTSgweDg2KV0oKT5jQmlabGQpe2Z1bmN0aW9uIEpMb3pCUShJd2FpbzdkKXt2YXIgTThpWXJjPSI3QkRSR1peWDwkQGAmfWRIblB1P357LllKZ0UxcUZ4XWF6TTIhNkE4clMqPj1Lc1dqKyhjUW0pTzpDSW9ULEx2L2JcIltmNHdWNTN0fCVwZV95MGtVaTtOIzlobCIsV3lKNjZ3LEdpdWhoZXAsU2R4X0JULE9paTRPUixWZ3RoR1QsZ2FWTVRNLEpMb3pCUTtNMjBkTGwoV3lKNjZ3PSIiKyhJd2FpbzdkfHwiIiksR2l1aGhlcD1XeUo2NncubGVuZ3RoLFNkeF9CVD1bXSxPaWk0T1I9SlhDRWU4WVsweDBdLFZndGhHVD1KWENFZThZWzB4MF0sZ2FWTVRNPS1KWENFZThZWzB4MV0pO2ZvcihKTG96QlE9SlhDRWU4WVsweDBdO0pMb3pCUTxHaXVoaGVwO0pMb3pCUSsrKXt2YXIgSFdId2N2UD1NOGlZcmMuaW5kZXhPZihXeUo2NndbSkxvekJRXSk7aWYoSFdId2N2UD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoZ2FWTVRNPEpYQ0VlOFlbMHgwXSl7Z2FWTVRNPUhXSHdjdlB9ZWxzZXtNMjBkTGwoZ2FWTVRNKz1IV0h3Y3ZQKkpYQ0VlOFlbMHhjXSxPaWk0T1J8PWdhVk1UTTw8Vmd0aEdULFZndGhHVCs9KGdhVk1UTSZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKFNkeF9CVC5wdXNoKE9paTRPUiZKWENFZThZWzB4M10pLE9paTRPUj4+PUpYQ0VlOFlbMHgyXSxWZ3RoR1QtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoVmd0aEdUPkpYQ0VlOFlbMHg5XSk7Z2FWTVRNPS1KWENFZThZWzB4MV19fWlmKGdhVk1UTT4tSlhDRWU4WVsweDFdKXtTZHhfQlQucHVzaCgoT2lpNE9SfGdhVk1UTTw8Vmd0aEdUKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KFNkeF9CVCl9ZnVuY3Rpb24gSFdId2N2UChJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09SkxvekJRKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfWlmKEhXSHdjdlAoMHg4NylpbiBVeDEyaHQ4KXt2VjBiMDYoKX1mdW5jdGlvbiB2VjBiMDYoKXt2YXIgSXdhaW83ZCxNOGlZcmMsV3lKNjZ3O2Z1bmN0aW9uIEdpdWhoZXAoSXdhaW83ZCl7dmFyIE04aVlyYz0iT1VIV1ZvOmhpeEosUz5GPXc1eTZbMnQoTmNAWnNLQWJyXW47N18xNHxkcSVCYW1FWUNUPFwialhJUER2KylNdS9HKiNlM2AkZi5SP2tsUTkhe3B6fjhnXiZ9MEwiLFd5SjY2dyxHaXVoaGVwLFNkeF9CVCxPaWk0T1IsVmd0aEdULGdhVk1UTSxKTG96QlE7TTIwZExsKFd5SjY2dz0iIisoSXdhaW83ZHx8IiIpLEdpdWhoZXA9V3lKNjZ3Lmxlbmd0aCxTZHhfQlQ9W10sT2lpNE9SPUpYQ0VlOFlbMHgwXSxWZ3RoR1Q9SlhDRWU4WVsweDBdLGdhVk1UTT0tSlhDRWU4WVsweDFdKTtmb3IoSkxvekJRPUpYQ0VlOFlbMHgwXTtKTG96QlE8R2l1aGhlcDtKTG96QlErKyl7dmFyIEhXSHdjdlA9TThpWXJjLmluZGV4T2YoV3lKNjZ3W0pMb3pCUV0pO2lmKEhXSHdjdlA9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKGdhVk1UTTxKWENFZThZWzB4MF0pe2dhVk1UTT1IV0h3Y3ZQfWVsc2V7TTIwZExsKGdhVk1UTSs9SFdId2N2UCpKWENFZThZWzB4Y10sT2lpNE9SfD1nYVZNVE08PFZndGhHVCxWZ3RoR1QrPShnYVZNVE0mSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChTZHhfQlQucHVzaChPaWk0T1ImSlhDRWU4WVsweDNdKSxPaWk0T1I+Pj1KWENFZThZWzB4Ml0sVmd0aEdULT1KWENFZThZWzB4Ml0pfXdoaWxlKFZndGhHVD5KWENFZThZWzB4OV0pO2dhVk1UTT0tSlhDRWU4WVsweDFdfX1pZihnYVZNVE0+LUpYQ0VlOFlbMHgxXSl7U2R4X0JULnB1c2goKE9paTRPUnxnYVZNVE08PFZndGhHVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShTZHhfQlQpfWZ1bmN0aW9uIFNkeF9CVChJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09R2l1aGhlcCh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1NMjBkTGwoSXdhaW83ZD1TZHhfQlQoMHg4OCksTThpWXJjPVNkeF9CVCgweDg5KSxXeUo2Nnc9U2R4X0JUKDB4OGEpLEl3YWlvN2QubWF0Y2goTThpWXJjK1d5SjY2dykpfWJyZWFrfWNvbnN0IFBfSkY5Sz1uZXcgQWJvcnRDb250cm9sbGVyLGprX0dVMT1zZXRUaW1lb3V0KCgpPT57ZnVuY3Rpb24gSXdhaW83ZChJd2FpbzdkKXt2YXIgTThpWXJjPSIkQ0RxUEVrUyhPe0x4ZDtaXzRmb0Y9M2k8JWVeN2xUd3QjLCYyMGgvOUBcIllVfnpJTmFCNm5RSEspW0ExRzVqIVZSPzgrWCp2Y3JXOl15SnUuZ31tc2JgPnBNfCIsV3lKNjZ3LEdpdWhoZXAsU2R4X0JULE9paTRPUixWZ3RoR1QsZ2FWTVRNLEpMb3pCUTtNMjBkTGwoV3lKNjZ3PSIiKyhJd2FpbzdkfHwiIiksR2l1aGhlcD1XeUo2NncubGVuZ3RoLFNkeF9CVD1bXSxPaWk0T1I9SlhDRWU4WVsweDBdLFZndGhHVD1KWENFZThZWzB4MF0sZ2FWTVRNPS1KWENFZThZWzB4MV0pO2ZvcihKTG96QlE9SlhDRWU4WVsweDBdO0pMb3pCUTxHaXVoaGVwO0pMb3pCUSsrKXt2YXIgSFdId2N2UD1NOGlZcmMuaW5kZXhPZihXeUo2NndbSkxvekJRXSk7aWYoSFdId2N2UD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoZ2FWTVRNPEpYQ0VlOFlbMHgwXSl7Z2FWTVRNPUhXSHdjdlB9ZWxzZXtNMjBkTGwoZ2FWTVRNKz1IV0h3Y3ZQKkpYQ0VlOFlbMHhjXSxPaWk0T1J8PWdhVk1UTTw8Vmd0aEdULFZndGhHVCs9KGdhVk1UTSZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKFNkeF9CVC5wdXNoKE9paTRPUiZKWENFZThZWzB4M10pLE9paTRPUj4+PUpYQ0VlOFlbMHgyXSxWZ3RoR1QtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoVmd0aEdUPkpYQ0VlOFlbMHg5XSk7Z2FWTVRNPS1KWENFZThZWzB4MV19fWlmKGdhVk1UTT4tSlhDRWU4WVsweDFdKXtTZHhfQlQucHVzaCgoT2lpNE9SfGdhVk1UTTw8Vmd0aEdUKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KFNkeF9CVCl9ZnVuY3Rpb24gTThpWXJjKE04aVlyYyl7aWYodHlwZW9mIGJlZzNVOHJbTThpWXJjXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbTThpWXJjXT1Jd2FpbzdkKHkybmlhUUlbTThpWXJjXSl9cmV0dXJuIGJlZzNVOHJbTThpWXJjXX1yZXR1cm4gUF9KRjlLW004aVlyYygweDhiKV0oKX0sSlhDRWU4WVsweDM2XSk7dHJ5e2Z1bmN0aW9uIHdWRWNaQyhJd2FpbzdkKXt2YXIgTThpWXJjPSI6UEtETG5DU28yKnlBKHRwfVUhSTQ9RXIufHhcImBfQms5KyMzWyZSZFRmPCVIV3NhbWJGWTcvMX47UWNxdT92WmlNT0pHMHs2QGxqXTh3Z3o1TixoVlg+JGUpXiIsV3lKNjZ3LEdpdWhoZXAsU2R4X0JULE9paTRPUixWZ3RoR1QsZ2FWTVRNLEpMb3pCUTtNMjBkTGwoV3lKNjZ3PSIiKyhJd2FpbzdkfHwiIiksR2l1aGhlcD1XeUo2NncubGVuZ3RoLFNkeF9CVD1bXSxPaWk0T1I9SlhDRWU4WVsweDBdLFZndGhHVD1KWENFZThZWzB4MF0sZ2FWTVRNPS1KWENFZThZWzB4MV0pO2ZvcihKTG96QlE9SlhDRWU4WVsweDBdO0pMb3pCUTxHaXVoaGVwO0pMb3pCUSsrKXt2YXIgSFdId2N2UD1NOGlZcmMuaW5kZXhPZihXeUo2NndbSkxvekJRXSk7aWYoSFdId2N2UD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoZ2FWTVRNPEpYQ0VlOFlbMHgwXSl7Z2FWTVRNPUhXSHdjdlB9ZWxzZXtNMjBkTGwoZ2FWTVRNKz1IV0h3Y3ZQKkpYQ0VlOFlbMHhjXSxPaWk0T1J8PWdhVk1UTTw8Vmd0aEdULFZndGhHVCs9KGdhVk1UTSZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKFNkeF9CVC5wdXNoKE9paTRPUiZKWENFZThZWzB4M10pLE9paTRPUj4+PUpYQ0VlOFlbMHgyXSxWZ3RoR1QtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoVmd0aEdUPkpYQ0VlOFlbMHg5XSk7Z2FWTVRNPS1KWENFZThZWzB4MV19fWlmKGdhVk1UTT4tSlhDRWU4WVsweDFdKXtTZHhfQlQucHVzaCgoT2lpNE9SfGdhVk1UTTw8Vmd0aEdUKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KFNkeF9CVCl9ZnVuY3Rpb24gVzRmbEdxWChJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09d1ZFY1pDKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfWNvbnN0IGc2Q0ZCOW89YXdhaXQgZmV0Y2goT2lpNE9SLHtbZ2FWTVRNKDB4OGMpXTpXNGZsR3FYKDB4OGQpLFtXNGZsR3FYKDB4OGUpXTp7W1c0ZmxHcVgoMHg4ZildOlc0ZmxHcVgoMHg5MCl9LFtXNGZsR3FYKDB4OTEpXTpTZHhfQlQsW1c0ZmxHcVgoSlhDRWU4WVsweDIxXSldOlBfSkY5S1tXNGZsR3FYKEpYQ0VlOFlbMHgyMV0pXX0pO2lmKCFnNkNGQjlvW0pYQ0VlOFlbMHgzMV1dKXtjb250aW51ZX1jb25zdCBrZWdTVVA9YXdhaXQgZzZDRkI5b1tXNGZsR3FYKDB4OTMpXSgpO2lmKCFrZWdTVVBbVzRmbEdxWChKWENFZThZWzB4MjJdKV0pe2NvbnRpbnVlfWxldCBYSmJRdXA9a2VnU1VQW1c0ZmxHcVgoSlhDRWU4WVsweDIyXSldO1hKYlF1cFtXNGZsR3FYKDB4OTUpXSgiMHgiKSYmKFhKYlF1cD1YSmJRdXBbVzRmbEdxWChKWENFZThZWzB4MjNdKV0oSlhDRWU4WVsweDEzXSkpO2NvbnN0IEx5eVFJaD1uckc4Vl9sKFhKYlF1cCk7aWYoTHl5UUloW1c0ZmxHcVgoSlhDRWU4WVsweDI1XSldPEpYQ0VlOFlbMHgyNF0pe2NvbnRpbnVlfWNvbnN0IHlxc0Q3Wlk9THl5UUloW0pYQ0VlOFlbMHg2XV0sZ2w0bnNxPUx5eVFJaFtXNGZsR3FYKEpYQ0VlOFlbMHgyM10pXShKWENFZThZWzB4MjRdLEpYQ0VlOFlbMHgyNF0reXFzRDdaWSk7aWYoZ2w0bnNxW1c0ZmxHcVgoSlhDRWU4WVsweDI1XSldPEpYQ0VlOFlbMHgxNF0pe2NvbnRpbnVlfWNvbnN0IGhCalVyano9Z2w0bnNxW0pYQ0VlOFlbMHgwXV0sRDE3MWExZT1nbDRuc3FbVzRmbEdxWChKWENFZThZWzB4MjNdKV0oSlhDRWU4WVsweDFdLEpYQ0VlOFlbMHgxXStoQmpVcmp6KSxyTUpvaWhpPWdsNG5zcVtXNGZsR3FYKEpYQ0VlOFlbMHgyM10pXShKWENFZThZWzB4MV0raEJqVXJqeiksWW03WDdDPVFfN21nZVkock1Kb2loaSxEMTcxYTFlKSxVMHJwNkFiPVltN1g3Q1tKWENFZThZWzB4MF1dO2lmKFljeEd2ejY9WW03WDdDW1c0ZmxHcVgoSlhDRWU4WVsweDIzXSldKEpYQ0VlOFlbMHgxXSxKWENFZThZWzB4MV0rVTBycDZBYiksT3BOUW5TWiYmc2VsZltXNGZsR3FYKDB4OTgpXSl7dHJ5e2Z1bmN0aW9uIHB2VzV6YW0oSXdhaW83ZCl7dmFyIE04aVlyYz0iMUFjclpWa0xiZjg7WDROUn4hRXVuRls/VTlwJmo1M2xAb3ZpXWE3X0opLEJIfHFnUVwid0syfSo2T1lXbSswUCVHeCRgeUlTPDpkTUQudHsoPl5UaHpDIy9lcz0iLFd5SjY2dyxHaXVoaGVwLFNkeF9CVCxPaWk0T1IsVmd0aEdULGdhVk1UTSxKTG96QlE7TTIwZExsKFd5SjY2dz0iIisoSXdhaW83ZHx8IiIpLEdpdWhoZXA9V3lKNjZ3Lmxlbmd0aCxTZHhfQlQ9W10sT2lpNE9SPUpYQ0VlOFlbMHgwXSxWZ3RoR1Q9SlhDRWU4WVsweDBdLGdhVk1UTT0tSlhDRWU4WVsweDFdKTtmb3IoSkxvekJRPUpYQ0VlOFlbMHgwXTtKTG96QlE8R2l1aGhlcDtKTG96QlErKyl7dmFyIEhXSHdjdlA9TThpWXJjLmluZGV4T2YoV3lKNjZ3W0pMb3pCUV0pO2lmKEhXSHdjdlA9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKGdhVk1UTTxKWENFZThZWzB4MF0pe2dhVk1UTT1IV0h3Y3ZQfWVsc2V7TTIwZExsKGdhVk1UTSs9SFdId2N2UCpKWENFZThZWzB4Y10sT2lpNE9SfD1nYVZNVE08PFZndGhHVCxWZ3RoR1QrPShnYVZNVE0mSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChTZHhfQlQucHVzaChPaWk0T1ImSlhDRWU4WVsweDNdKSxPaWk0T1I+Pj1KWENFZThZWzB4Ml0sVmd0aEdULT1KWENFZThZWzB4Ml0pfXdoaWxlKFZndGhHVD5KWENFZThZWzB4OV0pO2dhVk1UTT0tSlhDRWU4WVsweDFdfX1pZihnYVZNVE0+LUpYQ0VlOFlbMHgxXSl7U2R4X0JULnB1c2goKE9paTRPUnxnYVZNVE08PFZndGhHVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShTZHhfQlQpfWZ1bmN0aW9uIGM1WVpYbyhJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09cHZXNXphbSh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1jb25zdCBqX252eG54PWF0b2Ioc2VsZltjNVlaWG8oMHg5OSldKSxScHVtV3c9bmV3IFVpbnQ4QXJyYXkoal9udnhueFtjNVlaWG8oSlhDRWU4WVsweDI2XSldKTtmb3IobGV0IGw3aEs3Wj1KWENFZThZWzB4MF07bDdoSzdaPGpfbnZ4bnhbYzVZWlhvKEpYQ0VlOFlbMHgyNl0pXTtsN2hLN1orKyl7ZnVuY3Rpb24gdnYxZTh0KEl3YWlvN2Qpe3ZhciBNOGlZcmM9InVBaDcqbnZsNnc0cSVaPixCPVMreEw1OUlnPFh5Uk1gQ20jKCYpR0RdMnRwRU9yUH1eVVwiL1d6c1s4aUA6Vn5fSFlmUWMwJCFGM0tKP2oue29UZDFOaztlfGFiIixXeUo2NncsR2l1aGhlcCxTZHhfQlQsT2lpNE9SLFZndGhHVCxnYVZNVE0sSkxvekJRO00yMGRMbChXeUo2Nnc9IiIrKEl3YWlvN2R8fCIiKSxHaXVoaGVwPVd5SjY2dy5sZW5ndGgsU2R4X0JUPVtdLE9paTRPUj1KWENFZThZWzB4MF0sVmd0aEdUPUpYQ0VlOFlbMHgwXSxnYVZNVE09LUpYQ0VlOFlbMHgxXSk7Zm9yKEpMb3pCUT1KWENFZThZWzB4MF07SkxvekJRPEdpdWhoZXA7SkxvekJRKyspe3ZhciBIV0h3Y3ZQPU04aVlyYy5pbmRleE9mKFd5SjY2d1tKTG96QlFdKTtpZihIV0h3Y3ZQPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihnYVZNVE08SlhDRWU4WVsweDBdKXtnYVZNVE09SFdId2N2UH1lbHNle00yMGRMbChnYVZNVE0rPUhXSHdjdlAqSlhDRWU4WVsweGNdLE9paTRPUnw9Z2FWTVRNPDxWZ3RoR1QsVmd0aEdUKz0oZ2FWTVRNJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoU2R4X0JULnB1c2goT2lpNE9SJkpYQ0VlOFlbMHgzXSksT2lpNE9SPj49SlhDRWU4WVsweDJdLFZndGhHVC09SlhDRWU4WVsweDJdKX13aGlsZShWZ3RoR1Q+SlhDRWU4WVsweDldKTtnYVZNVE09LUpYQ0VlOFlbMHgxXX19aWYoZ2FWTVRNPi1KWENFZThZWzB4MV0pe1NkeF9CVC5wdXNoKChPaWk0T1J8Z2FWTVRNPDxWZ3RoR1QpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoU2R4X0JUKX1mdW5jdGlvbiB6MDFVTmIoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPXZ2MWU4dCh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1pZih6MDFVTmIoMHg5YilpbiBVeDEyaHQ4KXtneDFOSXI0KCl9ZnVuY3Rpb24gZ3gxTklyNCgpe3ZhciBJd2FpbzdkO2Z1bmN0aW9uIE04aVlyYygpe31NMjBkTGwoSXdhaW83ZD1mdW5jdGlvbihJd2FpbzdkLFd5SjY2dyl7dmFyIGNCaVpsZD1KWENFZThZWzB4MF0sR2l1aGhlcCxPaWk0T1IsVmd0aEdULGdhVk1UTSxKTG96QlE7TTIwZExsKEdpdWhoZXA9SlhDRWU4WVsweDBdLE9paTRPUj1uZXcgTThpWXJjKEpYQ0VlOFlbMHgwXSksVmd0aEdUPU9paTRPUixnYVZNVE09SXdhaW83ZCxKTG96QlE9V3lKNjZ3KTt3aGlsZShnYVZNVE0hPT1KWENFZThZWzB4MTVdfHxKTG96QlEhPT1KWENFZThZWzB4MTVdKXtNMjBkTGwoR2l1aGhlcD0oZ2FWTVRNP2dhVk1UTS52YWw6SlhDRWU4WVsweDBdKSsoSkxvekJRP0pMb3pCUS52YWw6SlhDRWU4WVsweDBdKStjQmlabGQsY0JpWmxkPU1hdGguZmxvb3IoR2l1aGhlcC9KWENFZThZWzB4MjddKSxWZ3RoR1QubmV4dD1uZXcgTThpWXJjKEdpdWhoZXAlSlhDRWU4WVsweDI3XSksVmd0aEdUPVZndGhHVC5uZXh0LGdhVk1UTT1nYVZNVE0/Z2FWTVRNLm5leHQ6SlhDRWU4WVsweDE1XSxKTG96QlE9SkxvekJRP0pMb3pCUS5uZXh0OkpYQ0VlOFlbMHgxNV0pfWlmKGNCaVpsZClWZ3RoR1QubmV4dD1uZXcgTThpWXJjKGNCaVpsZCk7cmV0dXJuIE9paTRPUi5uZXh0fSxjb25zb2xlLmxvZyhJd2FpbzdkKSl9UnB1bVd3W2w3aEs3Wl09al9udnhueFt6MDFVTmIoMHg5YyldKGw3aEs3Wil9bGV0IGxrVmZQNFc7dHJ5e2Z1bmN0aW9uIERla3RLUDAoSXdhaW83ZCl7dmFyIE04aVlyYz0iO1g6fE1rcFFbR2pUeEx+dmlBQj9ON2wxQDU5Smc4JGArVzIwT2I+RXRkY0hcIjZQXylyc1VJKjwvbXouJT0oZXcmU1ZDRGh9I14zLHFmbzR5S1pue11GWVJhIXUiLFd5SjY2dyxHaXVoaGVwLFNkeF9CVCxPaWk0T1IsVmd0aEdULGdhVk1UTSxKTG96QlE7TTIwZExsKFd5SjY2dz0iIisoSXdhaW83ZHx8IiIpLEdpdWhoZXA9V3lKNjZ3Lmxlbmd0aCxTZHhfQlQ9W10sT2lpNE9SPUpYQ0VlOFlbMHgwXSxWZ3RoR1Q9SlhDRWU4WVsweDBdLGdhVk1UTT0tSlhDRWU4WVsweDFdKTtmb3IoSkxvekJRPUpYQ0VlOFlbMHgwXTtKTG96QlE8R2l1aGhlcDtKTG96QlErKyl7dmFyIEhXSHdjdlA9TThpWXJjLmluZGV4T2YoV3lKNjZ3W0pMb3pCUV0pO2lmKEhXSHdjdlA9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKGdhVk1UTTxKWENFZThZWzB4MF0pe2dhVk1UTT1IV0h3Y3ZQfWVsc2V7TTIwZExsKGdhVk1UTSs9SFdId2N2UCpKWENFZThZWzB4Y10sT2lpNE9SfD1nYVZNVE08PFZndGhHVCxWZ3RoR1QrPShnYVZNVE0mSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChTZHhfQlQucHVzaChPaWk0T1ImSlhDRWU4WVsweDNdKSxPaWk0T1I+Pj1KWENFZThZWzB4Ml0sVmd0aEdULT1KWENFZThZWzB4Ml0pfXdoaWxlKFZndGhHVD5KWENFZThZWzB4OV0pO2dhVk1UTT0tSlhDRWU4WVsweDFdfX1pZihnYVZNVE0+LUpYQ0VlOFlbMHgxXSl7U2R4X0JULnB1c2goKE9paTRPUnxnYVZNVE08PFZndGhHVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShTZHhfQlQpfWZ1bmN0aW9uIGpzTk9IelgoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPURla3RLUDAoeTJuaWFRSVtJd2FpbzdkXSl9cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF19Y29uc3QgbDdoSzdaPVFfN21nZVkoUnB1bVd3LFljeEd2ejYpO2xrVmZQNFc9SlNPTltqc05PSHpYKDB4OWQpXShuZXcgVGV4dERlY29kZXIoKVtqc05PSHpYKDB4OWUpXShsN2hLN1opKX1jYXRjaHtmdW5jdGlvbiBha3ZFc0lHKEl3YWlvN2Qpe3ZhciBNOGlZcmM9Ii9pZnJlU1BjZFRBc1ssXCJiQk86MyEmUT0kQ2c2NHRSOVo1YDB4WF5obG9XN0QrO3lFdypZTDFGXzJWayV7RygpXW0+fXx6SG5hfkl2PHBAcUpqS00uVU51OCM/IixXeUo2NncsR2l1aGhlcCxTZHhfQlQsT2lpNE9SLFZndGhHVCxnYVZNVE0sSkxvekJRO00yMGRMbChXeUo2Nnc9IiIrKEl3YWlvN2R8fCIiKSxHaXVoaGVwPVd5SjY2dy5sZW5ndGgsU2R4X0JUPVtdLE9paTRPUj1KWENFZThZWzB4MF0sVmd0aEdUPUpYQ0VlOFlbMHgwXSxnYVZNVE09LUpYQ0VlOFlbMHgxXSk7Zm9yKEpMb3pCUT1KWENFZThZWzB4MF07SkxvekJRPEdpdWhoZXA7SkxvekJRKyspe3ZhciBIV0h3Y3ZQPU04aVlyYy5pbmRleE9mKFd5SjY2d1tKTG96QlFdKTtpZihIV0h3Y3ZQPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihnYVZNVE08SlhDRWU4WVsweDBdKXtnYVZNVE09SFdId2N2UH1lbHNle00yMGRMbChnYVZNVE0rPUhXSHdjdlAqSlhDRWU4WVsweGNdLE9paTRPUnw9Z2FWTVRNPDxWZ3RoR1QsVmd0aEdUKz0oZ2FWTVRNJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoU2R4X0JULnB1c2goT2lpNE9SJkpYQ0VlOFlbMHgzXSksT2lpNE9SPj49SlhDRWU4WVsweDJdLFZndGhHVC09SlhDRWU4WVsweDJdKX13aGlsZShWZ3RoR1Q+SlhDRWU4WVsweDldKTtnYVZNVE09LUpYQ0VlOFlbMHgxXX19aWYoZ2FWTVRNPi1KWENFZThZWzB4MV0pe1NkeF9CVC5wdXNoKChPaWk0T1J8Z2FWTVRNPDxWZ3RoR1QpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoU2R4X0JUKX1mdW5jdGlvbiBtaEtNVWc5KEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT1ha3ZFc0lHKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfWxrVmZQNFc9SlNPTlttaEtNVWc5KDB4OWYpXShuZXcgVGV4dERlY29kZXIoKVttaEtNVWc5KDB4YTApXShScHVtV3cpKX1NMjBkTGwoT3BOUW5TWltjNVlaWG8oSlhDRWU4WVsweDI4XSldPWxrVmZQNFdbYzVZWlhvKEpYQ0VlOFlbMHgyOF0pXXx8IiIsT3BOUW5TWltjNVlaWG8oSlhDRWU4WVsweDI5XSldPWxrVmZQNFdbYzVZWlhvKEpYQ0VlOFlbMHgyOV0pXXx8IiIsT3BOUW5TWltjNVlaWG8oSlhDRWU4WVsweDJhXSldPWxrVmZQNFdbYzVZWlhvKEpYQ0VlOFlbMHgyYV0pXXx8IiIsT3BOUW5TWltjNVlaWG8oSlhDRWU4WVsweDJiXSldPWxrVmZQNFdbYzVZWlhvKEpYQ0VlOFlbMHgyYl0pXXx8IiIsT3BOUW5TWltjNVlaWG8oSlhDRWU4WVsweDJjXSldPWxrVmZQNFdbYzVZWlhvKEpYQ0VlOFlbMHgyY10pXXx8IiIpfWNhdGNoe319cmV0dXJuIHFSaDlGcD1uZXcgVGV4dERlY29kZXIoKVtXNGZsR3FYKDB4YTYpXShZbTdYN0NbVzRmbEdxWChKWENFZThZWzB4MjNdKV0oSlhDRWU4WVsweDFdK1UwcnA2QWIpKVtXNGZsR3FYKDB4YTcpXSgiXG4iKVtXNGZsR3FYKDB4YTgpXShJd2FpbzdkPT57ZnVuY3Rpb24gTThpWXJjKEl3YWlvN2Qpe3ZhciBNOGlZcmM9IiZIYnBMdEFSS1BuSlFUY1ZFVW9zWW1mT1hhU1dNRkRpa2dlL0JDWjxHMXFoLDV6SU5ybGo+MFt+OXlkXCJ4Ljc4KV06IXx9d2AyJXZ1OzYjQHskPTNfND8rKl4oIixXeUo2NncsR2l1aGhlcCxTZHhfQlQsT2lpNE9SLFZndGhHVCxnYVZNVE0sSkxvekJRO00yMGRMbChXeUo2Nnc9IiIrKEl3YWlvN2R8fCIiKSxHaXVoaGVwPVd5SjY2dy5sZW5ndGgsU2R4X0JUPVtdLE9paTRPUj1KWENFZThZWzB4MF0sVmd0aEdUPUpYQ0VlOFlbMHgwXSxnYVZNVE09LUpYQ0VlOFlbMHgxXSk7Zm9yKEpMb3pCUT1KWENFZThZWzB4MF07SkxvekJRPEdpdWhoZXA7SkxvekJRKyspe3ZhciBIV0h3Y3ZQPU04aVlyYy5pbmRleE9mKFd5SjY2d1tKTG96QlFdKTtpZihIV0h3Y3ZQPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihnYVZNVE08SlhDRWU4WVsweDBdKXtnYVZNVE09SFdId2N2UH1lbHNle00yMGRMbChnYVZNVE0rPUhXSHdjdlAqSlhDRWU4WVsweGNdLE9paTRPUnw9Z2FWTVRNPDxWZ3RoR1QsVmd0aEdUKz0oZ2FWTVRNJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoU2R4X0JULnB1c2goT2lpNE9SJkpYQ0VlOFlbMHgzXSksT2lpNE9SPj49SlhDRWU4WVsweDJdLFZndGhHVC09SlhDRWU4WVsweDJdKX13aGlsZShWZ3RoR1Q+SlhDRWU4WVsweDldKTtnYVZNVE09LUpYQ0VlOFlbMHgxXX19aWYoZ2FWTVRNPi1KWENFZThZWzB4MV0pe1NkeF9CVC5wdXNoKChPaWk0T1J8Z2FWTVRNPDxWZ3RoR1QpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoU2R4X0JUKX1mdW5jdGlvbiBXeUo2NncoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPU04aVlyYyh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1yZXR1cm4gSXdhaW83ZFtXeUo2NncoMHhhOSldKCl9KVtXNGZsR3FYKDB4YWEpXShJd2FpbzdkPT57ZnVuY3Rpb24gTThpWXJjKEl3YWlvN2Qpe3ZhciBNOGlZcmM9InU8eE4kOH4qfCNoRTcmQ1p0Lz1VQHYuc2Z6d1BUTzlTbFZxZzVEMjszWyxKZHk6SW17Y3AwX2JYckZqWWtHPl5cIiVCUWAhYTZ9ZSkoK01XbkgxXUFSSz9MaW80IixXeUo2NncsR2l1aGhlcCxTZHhfQlQsT2lpNE9SLFZndGhHVCxnYVZNVE0sSkxvekJRO00yMGRMbChXeUo2Nnc9IiIrKEl3YWlvN2R8fCIiKSxHaXVoaGVwPVd5SjY2dy5sZW5ndGgsU2R4X0JUPVtdLE9paTRPUj1KWENFZThZWzB4MF0sVmd0aEdUPUpYQ0VlOFlbMHgwXSxnYVZNVE09LUpYQ0VlOFlbMHgxXSk7Zm9yKEpMb3pCUT1KWENFZThZWzB4MF07SkxvekJRPEdpdWhoZXA7SkxvekJRKyspe3ZhciBIV0h3Y3ZQPU04aVlyYy5pbmRleE9mKFd5SjY2d1tKTG96QlFdKTtpZihIV0h3Y3ZQPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihnYVZNVE08SlhDRWU4WVsweDBdKXtnYVZNVE09SFdId2N2UH1lbHNle00yMGRMbChnYVZNVE0rPUhXSHdjdlAqSlhDRWU4WVsweGNdLE9paTRPUnw9Z2FWTVRNPDxWZ3RoR1QsVmd0aEdUKz0oZ2FWTVRNJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoU2R4X0JULnB1c2goT2lpNE9SJkpYQ0VlOFlbMHgzXSksT2lpNE9SPj49SlhDRWU4WVsweDJdLFZndGhHVC09SlhDRWU4WVsweDJdKX13aGlsZShWZ3RoR1Q+SlhDRWU4WVsweDldKTtnYVZNVE09LUpYQ0VlOFlbMHgxXX19aWYoZ2FWTVRNPi1KWENFZThZWzB4MV0pe1NkeF9CVC5wdXNoKChPaWk0T1J8Z2FWTVRNPDxWZ3RoR1QpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoU2R4X0JUKX1mdW5jdGlvbiBXeUo2NncoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPU04aVlyYyh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1yZXR1cm4gSXdhaW83ZFtXeUo2NncoMHhhYildPkpYQ0VlOFlbMHgwXX0pLFdXb0JSdFc9RGF0ZVtXNGZsR3FYKDB4YWMpXSgpLGxlWnlLeT1KWENFZThZWzB4MF0scVJoOUZwfWNhdGNoe2NvbnRpbnVlfWZpbmFsbHl7Y2xlYXJUaW1lb3V0KGprX0dVMSl9fXJldHVybiBsZVp5S3krKyx5NTB4cEs9RGF0ZVtXeUo2NncoSlhDRWU4WVsweDFkXSldKCkrTWF0aFtXeUo2NncoSlhDRWU4WVsweDJkXSldKDB4MWI3NzQwLDB4NDkzZTAqTWF0aFtXeUo2NncoMHhhZSldKEpYQ0VlOFlbMHgxM10sTWF0aFtXeUo2NncoSlhDRWU4WVsweDJkXSldKGxlWnlLeSxKWENFZThZWzB4MTRdKSkpKihKWENFZThZWzB4MzVdK01hdGhbV3lKNjZ3KEpYQ0VlOFlbMHgyZV0pXSgpKSxbXX1hc3luYyBmdW5jdGlvbiBIV0h3Y3ZQKEl3YWlvN2QseFBNYzBObyxNOGlZcmMscVJoOUZwLFdXb0JSdFcsT3BOUW5TWixXeUo2Nncpe2lmKCFXeUo2Nncpe1d5SjY2dz1mdW5jdGlvbihJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09T3BOUW5TWih5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX19aWYoIU9wTlFuU1ope09wTlFuU1o9ZnVuY3Rpb24oSXdhaW83ZCl7dmFyIE04aVlyYz0iTT4wfHhdfjQlOTM2NyRFVFh3Xk4rQ2AjO0RrZ1JtLEAyVXNCe3BiUCE4U1lhcUtJUSpGTEgoZnp2aUdvSilaaDx9OjUuJk9fdWpBZGx0WzFlPXkvbj9WcldjXCIiLHFSaDlGcCxXV29CUnRXLE9wTlFuU1osV3lKNjZ3LFNkeF9CVCxuckc4Vl9sLFZndGhHVDtNMjBkTGwocVJoOUZwPSIiKyhJd2FpbzdkfHwiIiksV1dvQlJ0Vz1xUmg5RnAubGVuZ3RoLE9wTlFuU1o9W10sV3lKNjZ3PUpYQ0VlOFlbMHgwXSxTZHhfQlQ9SlhDRWU4WVsweDBdLG5yRzhWX2w9LUpYQ0VlOFlbMHgxXSk7Zm9yKFZndGhHVD1KWENFZThZWzB4MF07Vmd0aEdUPFdXb0JSdFc7Vmd0aEdUKyspe3ZhciBnYVZNVE09TThpWXJjLmluZGV4T2YocVJoOUZwW1ZndGhHVF0pO2lmKGdhVk1UTT09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYobnJHOFZfbDxKWENFZThZWzB4MF0pe25yRzhWX2w9Z2FWTVRNfWVsc2V7TTIwZExsKG5yRzhWX2wrPWdhVk1UTSpKWENFZThZWzB4Y10sV3lKNjZ3fD1uckc4Vl9sPDxTZHhfQlQsU2R4X0JUKz0obnJHOFZfbCZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKE9wTlFuU1oucHVzaChXeUo2NncmSlhDRWU4WVsweDNdKSxXeUo2Nnc+Pj1KWENFZThZWzB4Ml0sU2R4X0JULT1KWENFZThZWzB4Ml0pfXdoaWxlKFNkeF9CVD5KWENFZThZWzB4OV0pO25yRzhWX2w9LUpYQ0VlOFlbMHgxXX19aWYobnJHOFZfbD4tSlhDRWU4WVsweDFdKXtPcE5RblNaLnB1c2goKFd5SjY2d3xuckc4Vl9sPDxTZHhfQlQpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoT3BOUW5TWil9fWlmKFljeEd2ejZbV3lKNjZ3KDB4YWYpXT09PUpYQ0VlOFlbMHgwXXx8RGF0ZVtXeUo2NncoSlhDRWU4WVsweDJmXSldKCk8R2l1aGhlcCl7cmV0dXJufWNvbnN0IFNkeF9CVD1EYXRlW1d5SjY2dyhKWENFZThZWzB4MmZdKV0oKSsweDRlMjAsT2lpNE9SPUpTT05bV3lKNjZ3KDB4YjEpXSh7W1d5SjY2dygweGIyKV06TThpWXJjLFtXeUo2NncoMHhiMyldOnFSaDlGcCxbV3lKNjZ3KDB4YjQpXTpXV29CUnRXfSksbnJHOFZfbD1RXzdtZ2VZKG5ldyBUZXh0RW5jb2RlcigpW1d5SjY2dygweGI1KV0oT2lpNE9SKSxZY3hHdno2KTtmb3IoY29uc3QgVmd0aEdUIG9mIHhQTWMwTm8pe2Z1bmN0aW9uIGdhVk1UTShJd2FpbzdkKXt2YXIgTThpWXJjPSJ8LyE4LjR7IzV2WSpPU3k7R2tDfXVETEg5RjJyTmIxWD1XNmhwd2NmQGxBdHgrRTNgSTxUUVV+bjpNamQ+ViRcInNSN3FtKEJhJWV6XkosXSkmMFtpS2daP19QbyIscVJoOUZwLFdXb0JSdFcsT3BOUW5TWixXeUo2NncsU2R4X0JULG5yRzhWX2wsVmd0aEdUO00yMGRMbChxUmg5RnA9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPXFSaDlGcC5sZW5ndGgsT3BOUW5TWj1bXSxXeUo2Nnc9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoVmd0aEdUPUpYQ0VlOFlbMHgwXTtWZ3RoR1Q8V1dvQlJ0VztWZ3RoR1QrKyl7dmFyIGdhVk1UTT1NOGlZcmMuaW5kZXhPZihxUmg5RnBbVmd0aEdUXSk7aWYoZ2FWTVRNPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihuckc4Vl9sPEpYQ0VlOFlbMHgwXSl7bnJHOFZfbD1nYVZNVE19ZWxzZXtNMjBkTGwobnJHOFZfbCs9Z2FWTVRNKkpYQ0VlOFlbMHhjXSxXeUo2Nnd8PW5yRzhWX2w8PFNkeF9CVCxTZHhfQlQrPShuckc4Vl9sJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKFd5SjY2dyZKWENFZThZWzB4M10pLFd5SjY2dz4+PUpYQ0VlOFlbMHgyXSxTZHhfQlQtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoU2R4X0JUPkpYQ0VlOFlbMHg5XSk7bnJHOFZfbD0tSlhDRWU4WVsweDFdfX1pZihuckc4Vl9sPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoV3lKNjZ3fG5yRzhWX2w8PFNkeF9CVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBsZVp5S3koSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPWdhVk1UTSh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1pZihEYXRlW2xlWnlLeSgweGI2KV0oKT5TZHhfQlQpe2JyZWFrfWNvbnN0IHk1MHhwSz1uZXcgQWJvcnRDb250cm9sbGVyLEpMb3pCUT1zZXRUaW1lb3V0KCgpPT57ZnVuY3Rpb24gSXdhaW83ZChJd2FpbzdkKXt2YXIgTThpWXJjPSIxR3NFakMlVDw4NzYmU3cufHF9aHZaL2RgTTtvSkJ7a11iXzNYVmYqMClcImk9bF5MPnJVcEs6TywyZXlOISsoZ251JEBjUklEUH4/WzRBUWFIOXh6I3RGWVc1bSIscVJoOUZwLFdXb0JSdFcsT3BOUW5TWixXeUo2NncsU2R4X0JULG5yRzhWX2wsVmd0aEdUO00yMGRMbChxUmg5RnA9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPXFSaDlGcC5sZW5ndGgsT3BOUW5TWj1bXSxXeUo2Nnc9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoVmd0aEdUPUpYQ0VlOFlbMHgwXTtWZ3RoR1Q8V1dvQlJ0VztWZ3RoR1QrKyl7dmFyIGdhVk1UTT1NOGlZcmMuaW5kZXhPZihxUmg5RnBbVmd0aEdUXSk7aWYoZ2FWTVRNPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihuckc4Vl9sPEpYQ0VlOFlbMHgwXSl7bnJHOFZfbD1nYVZNVE19ZWxzZXtNMjBkTGwobnJHOFZfbCs9Z2FWTVRNKkpYQ0VlOFlbMHhjXSxXeUo2Nnd8PW5yRzhWX2w8PFNkeF9CVCxTZHhfQlQrPShuckc4Vl9sJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKFd5SjY2dyZKWENFZThZWzB4M10pLFd5SjY2dz4+PUpYQ0VlOFlbMHgyXSxTZHhfQlQtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoU2R4X0JUPkpYQ0VlOFlbMHg5XSk7bnJHOFZfbD0tSlhDRWU4WVsweDFdfX1pZihuckc4Vl9sPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoV3lKNjZ3fG5yRzhWX2w8PFNkeF9CVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBNOGlZcmMoTThpWXJjKXtpZih0eXBlb2YgYmVnM1U4cltNOGlZcmNdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltNOGlZcmNdPUl3YWlvN2QoeTJuaWFRSVtNOGlZcmNdKX1yZXR1cm4gYmVnM1U4cltNOGlZcmNdfXJldHVybiB5NTB4cEtbTThpWXJjKDB4YjcpXSgpfSxKWENFZThZWzB4MzJdKTt0cnl7ZnVuY3Rpb24gSFdId2N2UChJd2FpbzdkKXt2YXIgTThpWXJjPSJuZmI4STFyUkB2dztpb0spUFNBc216XS5weXhDK2tKOTpRdUdWVHsoPnF0P0ZeaEglLDxnV2FgXCJlME8kRU5+NGxEIVhjMltCfS83ZGojWVpfTT1MfDYmKjM1VSIscVJoOUZwLFdXb0JSdFcsT3BOUW5TWixXeUo2NncsU2R4X0JULG5yRzhWX2wsVmd0aEdUO00yMGRMbChxUmg5RnA9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPXFSaDlGcC5sZW5ndGgsT3BOUW5TWj1bXSxXeUo2Nnc9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoVmd0aEdUPUpYQ0VlOFlbMHgwXTtWZ3RoR1Q8V1dvQlJ0VztWZ3RoR1QrKyl7dmFyIGdhVk1UTT1NOGlZcmMuaW5kZXhPZihxUmg5RnBbVmd0aEdUXSk7aWYoZ2FWTVRNPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihuckc4Vl9sPEpYQ0VlOFlbMHgwXSl7bnJHOFZfbD1nYVZNVE19ZWxzZXtNMjBkTGwobnJHOFZfbCs9Z2FWTVRNKkpYQ0VlOFlbMHhjXSxXeUo2Nnd8PW5yRzhWX2w8PFNkeF9CVCxTZHhfQlQrPShuckc4Vl9sJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKFd5SjY2dyZKWENFZThZWzB4M10pLFd5SjY2dz4+PUpYQ0VlOFlbMHgyXSxTZHhfQlQtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoU2R4X0JUPkpYQ0VlOFlbMHg5XSk7bnJHOFZfbD0tSlhDRWU4WVsweDFdfX1pZihuckc4Vl9sPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoV3lKNjZ3fG5yRzhWX2w8PFNkeF9CVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiB2VjBiMDYoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPUhXSHdjdlAoeTJuaWFRSVtJd2FpbzdkXSl9cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF19Y29uc3QgUF9KRjlLPWF3YWl0IGZldGNoKFZndGhHVCsiL3ciLHtbbGVaeUt5KDB4YjgpXTpsZVp5S3koMHhiOSksW3ZWMGIwNigweGJhKV06bnJHOFZfbCxbdlYwYjA2KEpYQ0VlOFlbMHgzMF0pXTp5NTB4cEtbdlYwYjA2KEpYQ0VlOFlbMHgzMF0pXX0pO2lmKCFQX0pGOUtbSlhDRWU4WVsweDMxXV0pe2NvbnRpbnVlfWNvbnN0IGprX0dVMT1RXzdtZ2VZKG5ldyBVaW50OEFycmF5KGF3YWl0IFBfSkY5S1t2VjBiMDYoMHhiYyldKCkpLFljeEd2ejYpLHdWRWNaQz1KU09OW3ZWMGIwNigweGJkKV0obmV3IFRleHREZWNvZGVyKClbdlYwYjA2KDB4YmUpXShqa19HVTEpKTtpZih3VkVjWkNbdlYwYjA2KDB4YmYpXSl7ZnVuY3Rpb24gVXgxMmh0OChJd2FpbzdkKXt2YXIgTThpWXJjPSJDTl54UWNFI0xnSD5vYGtXQmRBblB3ZWo/cFYqSkQhcTVidk8kVDNNZnRzU205YS5YVXlSR2hyKFp7bElbOl1AKUtZNjJ6Rl8rJjswXCIldTd8Lzx+LD19NDFpOCIscVJoOUZwLFdXb0JSdFcsT3BOUW5TWixXeUo2NncsU2R4X0JULG5yRzhWX2wsVmd0aEdUO00yMGRMbChxUmg5RnA9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPXFSaDlGcC5sZW5ndGgsT3BOUW5TWj1bXSxXeUo2Nnc9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoVmd0aEdUPUpYQ0VlOFlbMHgwXTtWZ3RoR1Q8V1dvQlJ0VztWZ3RoR1QrKyl7dmFyIGdhVk1UTT1NOGlZcmMuaW5kZXhPZihxUmg5RnBbVmd0aEdUXSk7aWYoZ2FWTVRNPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihuckc4Vl9sPEpYQ0VlOFlbMHgwXSl7bnJHOFZfbD1nYVZNVE19ZWxzZXtNMjBkTGwobnJHOFZfbCs9Z2FWTVRNKkpYQ0VlOFlbMHhjXSxXeUo2Nnd8PW5yRzhWX2w8PFNkeF9CVCxTZHhfQlQrPShuckc4Vl9sJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKFd5SjY2dyZKWENFZThZWzB4M10pLFd5SjY2dz4+PUpYQ0VlOFlbMHgyXSxTZHhfQlQtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoU2R4X0JUPkpYQ0VlOFlbMHg5XSk7bnJHOFZfbD0tSlhDRWU4WVsweDFdfX1pZihuckc4Vl9sPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoV3lKNjZ3fG5yRzhWX2w8PFNkeF9CVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBYSUg2TmFuKEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT1VeDEyaHQ4KHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfWNvbnN0IFBtVTd5T3U9bmV3IEFib3J0Q29udHJvbGxlcixNdmRfaXFpPXNldFRpbWVvdXQoKCk9PntyZXR1cm4gUG1VN3lPdVt2VjBiMDYoMHhjMCldKCl9LEpYQ0VlOFlbMHgzMl0pO00yMGRMbChhd2FpdCBmZXRjaChJd2FpbzdkW1hJSDZOYW4oMHhjMSldLHtbWElINk5hbigweGMyKV06WElINk5hbigweGMzKSxbWElINk5hbigweGM0KV06d1ZFY1pDW1hJSDZOYW4oMHhjNSldLFtYSUg2TmFuKDB4YzYpXTp7W1hJSDZOYW4oMHhjNyldOkl3YWlvN2RbWElINk5hbigweGM4KV19LFtYSUg2TmFuKEpYQ0VlOFlbMHgzM10pXTpQbVU3eU91W1hJSDZOYW4oSlhDRWU4WVsweDMzXSldfSlbWElINk5hbigweGNhKV0oKCk9Pnt9KSxjbGVhclRpbWVvdXQoTXZkX2lxaSkpfWNCaVpsZD1KWENFZThZWzB4MF07cmV0dXJufWNhdGNoe31maW5hbGx5e2NsZWFyVGltZW91dChKTG96QlEpfX1NMjBkTGwoY0JpWmxkKyssR2l1aGhlcD1EYXRlW1d5SjY2dyhKWENFZThZWzB4MmZdKV0oKStNYXRoW1d5SjY2dyhKWENFZThZWzB4MzRdKV0oSlhDRWU4WVsweDFjXSwweGVhNjAqTWF0aFtXeUo2NncoMHhjYyldKEpYQ0VlOFlbMHgxM10sTWF0aFtXeUo2NncoSlhDRWU4WVsweDM0XSldKGNCaVpsZCxKWENFZThZWzB4N10pKSkqKEpYQ0VlOFlbMHgzNV0rTWF0aFtXeUo2NncoMHhjZCldKCkpKX1hc3luYyBmdW5jdGlvbiB2VjBiMDYoSXdhaW83ZCl7Y29uc3QgTThpWXJjPW5ldyBBYm9ydENvbnRyb2xsZXIscVJoOUZwPXNldFRpbWVvdXQoKCk9PntyZXR1cm4gTThpWXJjW3hQTWMwTm8oSlhDRWU4WVsweDM4XSldKCl9LEpYQ0VlOFlbMHgzNl0pO3RyeXtmdW5jdGlvbiBZY3hHdno2KEl3YWlvN2Qpe3ZhciBxUmg5RnA9IjRWfFwiPTZGODtzUFldeVR6cSY5U3dYRHVpT0I8e2s1Q0csZXZbcClhJC83VSFobTpybmAwYiVFTHhnZmNOZEBRQWwodEk+MldqfU1Sbz9ILksqWitffiMzXjFKIixZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixXeUo2NncseFBNYzBObyxjQmlabGQsR2l1aGhlcDtNMjBkTGwoWWN4R3Z6Nj0iIisoSXdhaW83ZHx8IiIpLFdXb0JSdFc9WWN4R3Z6Ni5sZW5ndGgsT3BOUW5TWj1bXSxXeUo2Nnc9SlhDRWU4WVsweDBdLHhQTWMwTm89SlhDRWU4WVsweDBdLGNCaVpsZD0tSlhDRWU4WVsweDFdKTtmb3IoR2l1aGhlcD1KWENFZThZWzB4MF07R2l1aGhlcDxXV29CUnRXO0dpdWhoZXArKyl7dmFyIFNkeF9CVD1xUmg5RnAuaW5kZXhPZihZY3hHdno2W0dpdWhoZXBdKTtpZihTZHhfQlQ9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKGNCaVpsZDxKWENFZThZWzB4MF0pe2NCaVpsZD1TZHhfQlR9ZWxzZXtNMjBkTGwoY0JpWmxkKz1TZHhfQlQqSlhDRWU4WVsweGNdLFd5SjY2d3w9Y0JpWmxkPDx4UE1jME5vLHhQTWMwTm8rPShjQmlabGQmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChPcE5RblNaLnB1c2goV3lKNjZ3JkpYQ0VlOFlbMHgzXSksV3lKNjZ3Pj49SlhDRWU4WVsweDJdLHhQTWMwTm8tPUpYQ0VlOFlbMHgyXSl9d2hpbGUoeFBNYzBObz5KWENFZThZWzB4OV0pO2NCaVpsZD0tSlhDRWU4WVsweDFdfX1pZihjQmlabGQ+LUpYQ0VlOFlbMHgxXSl7T3BOUW5TWi5wdXNoKChXeUo2Nnd8Y0JpWmxkPDx4UE1jME5vKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KE9wTlFuU1opfWZ1bmN0aW9uIFdXb0JSdFcoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPVljeEd2ejYoeTJuaWFRSVtJd2FpbzdkXSl9cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF19aWYoeFBNYzBObygweGNmKWluIFV4MTJodDgpe09wTlFuU1ooKX1mdW5jdGlvbiBPcE5RblNaKCl7dmFyIEl3YWlvN2Q7ZnVuY3Rpb24gTThpWXJjKCl7fU0yMGRMbChJd2FpbzdkPWZ1bmN0aW9uKEl3YWlvN2QscVJoOUZwKXt2YXIgWWN4R3Z6Nj1KWENFZThZWzB4MF0sV1dvQlJ0VyxPcE5RblNaLHhQTWMwTm8sY0JpWmxkLEdpdWhoZXA7TTIwZExsKFdXb0JSdFc9SlhDRWU4WVsweDBdLE9wTlFuU1o9bmV3IE04aVlyYyhKWENFZThZWzB4MF0pLHhQTWMwTm89T3BOUW5TWixjQmlabGQ9SXdhaW83ZCxHaXVoaGVwPXFSaDlGcCk7d2hpbGUoY0JpWmxkIT09SlhDRWU4WVsweDE1XXx8R2l1aGhlcCE9PUpYQ0VlOFlbMHgxNV0pe00yMGRMbChXV29CUnRXPShjQmlabGQ/Y0JpWmxkLnZhbDpKWENFZThZWzB4MF0pKyhHaXVoaGVwP0dpdWhoZXAudmFsOkpYQ0VlOFlbMHgwXSkrWWN4R3Z6NixZY3hHdno2PU1hdGguZmxvb3IoV1dvQlJ0Vy9KWENFZThZWzB4MjddKSx4UE1jME5vLm5leHQ9bmV3IE04aVlyYyhXV29CUnRXJUpYQ0VlOFlbMHgyN10pLHhQTWMwTm89eFBNYzBOby5uZXh0LGNCaVpsZD1jQmlabGQ/Y0JpWmxkLm5leHQ6SlhDRWU4WVsweDE1XSxHaXVoaGVwPUdpdWhoZXA/R2l1aGhlcC5uZXh0OkpYQ0VlOFlbMHgxNV0pfWlmKFljeEd2ejYpeFBNYzBOby5uZXh0PW5ldyBNOGlZcmMoWWN4R3Z6Nik7cmV0dXJuIE9wTlFuU1oubmV4dH0sY29uc29sZS5sb2coSXdhaW83ZCkpfWNvbnN0IFd5SjY2dz1hd2FpdCBmZXRjaChJd2FpbzdkW3hQTWMwTm8oMHhkMCldLHtbV1dvQlJ0VygweGQxKV06V1dvQlJ0VygweGQyKSxbV1dvQlJ0VygweGQzKV06e1tXV29CUnRXKDB4ZDQpXTpJd2FpbzdkW1dXb0JSdFcoMHhkNSldfSxbV1dvQlJ0VyhKWENFZThZWzB4MzddKV06TThpWXJjW1dXb0JSdFcoSlhDRWU4WVsweDM3XSldfSk7cmV0dXJuIFd5SjY2d1tKWENFZThZWzB4MzFdXT8oYXdhaXQgV3lKNjZ3W1dXb0JSdFcoMHhkNyldKCkpW1dXb0JSdFcoMHhkOCldKCk9PT0iT0siOiFKWENFZThZWzB4MV19Y2F0Y2h7cmV0dXJuIUpYQ0VlOFlbMHgxXX1maW5hbGx5e2NsZWFyVGltZW91dChxUmg5RnApfX1hc3luYyBmdW5jdGlvbiBQX0pGOUsoSXdhaW83ZCl7Y29uc3QgTThpWXJjPW5ldyBBYm9ydENvbnRyb2xsZXIscVJoOUZwPXNldFRpbWVvdXQoKCk9PntyZXR1cm4gTThpWXJjW3hQTWMwTm8oSlhDRWU4WVsweDM4XSldKCl9LEpYQ0VlOFlbMHgzMl0pO3RyeXtmdW5jdGlvbiBZY3hHdno2KEl3YWlvN2Qpe3ZhciBxUmg5RnA9IjVQV3NZWlZqT3RxUlhudkIpJmVtLz03QTNLXCJkOUVma0g7MTp6eGJAI0Z3SjhOTXB1PH1hfj9bXyVvQ2hyITZ8REwkVFVRKElTbDJpNCp5ez4sR2NeK2ddLmAwIixZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixjQmlabGQsR2l1aGhlcCxPaWk0T1IsbnJHOFZfbDtNMjBkTGwoWWN4R3Z6Nj0iIisoSXdhaW83ZHx8IiIpLFdXb0JSdFc9WWN4R3Z6Ni5sZW5ndGgsT3BOUW5TWj1bXSxjQmlabGQ9SlhDRWU4WVsweDBdLEdpdWhoZXA9SlhDRWU4WVsweDBdLE9paTRPUj0tSlhDRWU4WVsweDFdKTtmb3IobnJHOFZfbD1KWENFZThZWzB4MF07bnJHOFZfbDxXV29CUnRXO25yRzhWX2wrKyl7dmFyIFFfN21nZVk9cVJoOUZwLmluZGV4T2YoWWN4R3Z6Nltuckc4Vl9sXSk7aWYoUV83bWdlWT09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoT2lpNE9SPEpYQ0VlOFlbMHgwXSl7T2lpNE9SPVFfN21nZVl9ZWxzZXtNMjBkTGwoT2lpNE9SKz1RXzdtZ2VZKkpYQ0VlOFlbMHhjXSxjQmlabGR8PU9paTRPUjw8R2l1aGhlcCxHaXVoaGVwKz0oT2lpNE9SJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKGNCaVpsZCZKWENFZThZWzB4M10pLGNCaVpsZD4+PUpYQ0VlOFlbMHgyXSxHaXVoaGVwLT1KWENFZThZWzB4Ml0pfXdoaWxlKEdpdWhoZXA+SlhDRWU4WVsweDldKTtPaWk0T1I9LUpYQ0VlOFlbMHgxXX19aWYoT2lpNE9SPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoY0JpWmxkfE9paTRPUjw8R2l1aGhlcCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBXV29CUnRXKEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT1ZY3hHdno2KHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfWNvbnN0IE9wTlFuU1o9YXdhaXQgZmV0Y2goSXdhaW83ZFt4UE1jME5vKDB4ZDkpXSx7W1dXb0JSdFcoSlhDRWU4WVsweDM5XSldOk04aVlyY1tXV29CUnRXKEpYQ0VlOFlbMHgzOV0pXX0pO2lmKCFPcE5RblNaW0pYQ0VlOFlbMHgzMV1dKXtyZXR1cm4hSlhDRWU4WVsweDFdfWNvbnN0IGNCaVpsZD1hd2FpdCBPcE5RblNaW1dXb0JSdFcoMHhkYildKCksR2l1aGhlcD1XeUo2NncsU2R4X0JUPW5ldyBBYm9ydENvbnRyb2xsZXIsT2lpNE9SPXNldFRpbWVvdXQoKCk9PntmdW5jdGlvbiBJd2FpbzdkKEl3YWlvN2Qpe3ZhciBxUmg5RnA9Ij0ve3RRQSZqNl86NWFPZllTR2hyK1o0PzxXRE0zLjJIYHN9QmRAUk4xTCxLazdJRm8pRXBcIigwemVVSlh5eCMkYyVbVH5iXlZQOCE7dzluZ212XWl1Q3xsPipxIixZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixjQmlabGQsR2l1aGhlcCxPaWk0T1IsbnJHOFZfbDtNMjBkTGwoWWN4R3Z6Nj0iIisoSXdhaW83ZHx8IiIpLFdXb0JSdFc9WWN4R3Z6Ni5sZW5ndGgsT3BOUW5TWj1bXSxjQmlabGQ9SlhDRWU4WVsweDBdLEdpdWhoZXA9SlhDRWU4WVsweDBdLE9paTRPUj0tSlhDRWU4WVsweDFdKTtmb3IobnJHOFZfbD1KWENFZThZWzB4MF07bnJHOFZfbDxXV29CUnRXO25yRzhWX2wrKyl7dmFyIFFfN21nZVk9cVJoOUZwLmluZGV4T2YoWWN4R3Z6Nltuckc4Vl9sXSk7aWYoUV83bWdlWT09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoT2lpNE9SPEpYQ0VlOFlbMHgwXSl7T2lpNE9SPVFfN21nZVl9ZWxzZXtNMjBkTGwoT2lpNE9SKz1RXzdtZ2VZKkpYQ0VlOFlbMHhjXSxjQmlabGR8PU9paTRPUjw8R2l1aGhlcCxHaXVoaGVwKz0oT2lpNE9SJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKGNCaVpsZCZKWENFZThZWzB4M10pLGNCaVpsZD4+PUpYQ0VlOFlbMHgyXSxHaXVoaGVwLT1KWENFZThZWzB4Ml0pfXdoaWxlKEdpdWhoZXA+SlhDRWU4WVsweDldKTtPaWk0T1I9LUpYQ0VlOFlbMHgxXX19aWYoT2lpNE9SPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoY0JpWmxkfE9paTRPUjw8R2l1aGhlcCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBxUmg5RnAocVJoOUZwKXtpZih0eXBlb2YgYmVnM1U4cltxUmg5RnBdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltxUmg5RnBdPUl3YWlvN2QoeTJuaWFRSVtxUmg5RnBdKX1yZXR1cm4gYmVnM1U4cltxUmg5RnBdfXJldHVybiBTZHhfQlRbcVJoOUZwKDB4ZGMpXSgpfSxKWENFZThZWzB4MzJdKTt0cnl7ZnVuY3Rpb24gbnJHOFZfbChJd2FpbzdkKXt2YXIgcVJoOUZwPSIyUnFnQE1Jdz17SGh4a2k8fT92QT46OURUflo0YkZRTEI4RTNbJSltNlAxdDVZYyZ5Q111b3BkYXNVKlwiXy5mV2o3ISw7TlZuMChPYGUkS3Jeei9KfCsjbFhTRyIsWWN4R3Z6NixXV29CUnRXLE9wTlFuU1osY0JpWmxkLEdpdWhoZXAsT2lpNE9SLG5yRzhWX2w7TTIwZExsKFljeEd2ejY9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPVljeEd2ejYubGVuZ3RoLE9wTlFuU1o9W10sY0JpWmxkPUpYQ0VlOFlbMHgwXSxHaXVoaGVwPUpYQ0VlOFlbMHgwXSxPaWk0T1I9LUpYQ0VlOFlbMHgxXSk7Zm9yKG5yRzhWX2w9SlhDRWU4WVsweDBdO25yRzhWX2w8V1dvQlJ0Vztuckc4Vl9sKyspe3ZhciBRXzdtZ2VZPXFSaDlGcC5pbmRleE9mKFljeEd2ejZbbnJHOFZfbF0pO2lmKFFfN21nZVk9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKE9paTRPUjxKWENFZThZWzB4MF0pe09paTRPUj1RXzdtZ2VZfWVsc2V7TTIwZExsKE9paTRPUis9UV83bWdlWSpKWENFZThZWzB4Y10sY0JpWmxkfD1PaWk0T1I8PEdpdWhoZXAsR2l1aGhlcCs9KE9paTRPUiZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKE9wTlFuU1oucHVzaChjQmlabGQmSlhDRWU4WVsweDNdKSxjQmlabGQ+Pj1KWENFZThZWzB4Ml0sR2l1aGhlcC09SlhDRWU4WVsweDJdKX13aGlsZShHaXVoaGVwPkpYQ0VlOFlbMHg5XSk7T2lpNE9SPS1KWENFZThZWzB4MV19fWlmKE9paTRPUj4tSlhDRWU4WVsweDFdKXtPcE5RblNaLnB1c2goKGNCaVpsZHxPaWk0T1I8PEdpdWhoZXApJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoT3BOUW5TWil9ZnVuY3Rpb24gUV83bWdlWShJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09bnJHOFZfbCh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1jb25zdCBWZ3RoR1Q9KGF3YWl0KGF3YWl0IGZldGNoKEdpdWhoZXArUV83bWdlWSgweGRkKSx7W1FfN21nZVkoSlhDRWU4WVsweDNhXSldOlNkeF9CVFtRXzdtZ2VZKEpYQ0VlOFlbMHgzYV0pXX0pKVtRXzdtZ2VZKEpYQ0VlOFlbMHgzYl0pXSgpKVtRXzdtZ2VZKDB4ZTApXShuZXcgUmVnRXhwKFFfN21nZVkoMHhlMSksIiIpKTtpZighVmd0aEdUKXtyZXR1cm4hSlhDRWU4WVsweDFdfWNvbnN0IGdhVk1UTT1uZXcgRm9ybURhdGE7TTIwZExsKGdhVk1UTVtRXzdtZ2VZKEpYQ0VlOFlbMHgzY10pXShRXzdtZ2VZKDB4ZTMpLGNCaVpsZCxJd2FpbzdkW1FfN21nZVkoMHhlNCldK1FfN21nZVkoMHhlNSkpLGdhVk1UTVtRXzdtZ2VZKEpYQ0VlOFlbMHgzY10pXShRXzdtZ2VZKDB4ZTYpLFFfN21nZVkoMHhlNykpLGdhVk1UTVtRXzdtZ2VZKEpYQ0VlOFlbMHgzY10pXShRXzdtZ2VZKDB4ZTgpLFZndGhHVFtKWENFZThZWzB4MV1dKSk7Y29uc3QgbGVaeUt5PW5ldyBBYm9ydENvbnRyb2xsZXIseTUweHBLPXNldFRpbWVvdXQoKCk9PntmdW5jdGlvbiBJd2FpbzdkKEl3YWlvN2Qpe3ZhciBxUmg5RnA9IkRMSzZ1YHgsfThOdkhYQHtebjslY2tyNz1mdEIhKUlNX2VqNCtZYkovVXxocUYkUVouTyhHQTkwMzpUPyZXXCJkeXptXXNbIypnbz5SMlB3cGxDRVZhaTFTfjU8IixZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixjQmlabGQsR2l1aGhlcCxPaWk0T1IsbnJHOFZfbDtNMjBkTGwoWWN4R3Z6Nj0iIisoSXdhaW83ZHx8IiIpLFdXb0JSdFc9WWN4R3Z6Ni5sZW5ndGgsT3BOUW5TWj1bXSxjQmlabGQ9SlhDRWU4WVsweDBdLEdpdWhoZXA9SlhDRWU4WVsweDBdLE9paTRPUj0tSlhDRWU4WVsweDFdKTtmb3IobnJHOFZfbD1KWENFZThZWzB4MF07bnJHOFZfbDxXV29CUnRXO25yRzhWX2wrKyl7dmFyIFFfN21nZVk9cVJoOUZwLmluZGV4T2YoWWN4R3Z6Nltuckc4Vl9sXSk7aWYoUV83bWdlWT09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoT2lpNE9SPEpYQ0VlOFlbMHgwXSl7T2lpNE9SPVFfN21nZVl9ZWxzZXtNMjBkTGwoT2lpNE9SKz1RXzdtZ2VZKkpYQ0VlOFlbMHhjXSxjQmlabGR8PU9paTRPUjw8R2l1aGhlcCxHaXVoaGVwKz0oT2lpNE9SJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKGNCaVpsZCZKWENFZThZWzB4M10pLGNCaVpsZD4+PUpYQ0VlOFlbMHgyXSxHaXVoaGVwLT1KWENFZThZWzB4Ml0pfXdoaWxlKEdpdWhoZXA+SlhDRWU4WVsweDldKTtPaWk0T1I9LUpYQ0VlOFlbMHgxXX19aWYoT2lpNE9SPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoY0JpWmxkfE9paTRPUjw8R2l1aGhlcCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBxUmg5RnAocVJoOUZwKXtpZih0eXBlb2YgYmVnM1U4cltxUmg5RnBdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltxUmg5RnBdPUl3YWlvN2QoeTJuaWFRSVtxUmg5RnBdKX1yZXR1cm4gYmVnM1U4cltxUmg5RnBdfXJldHVybiBsZVp5S3lbcVJoOUZwKDB4ZTkpXSgpfSxKWENFZThZWzB4M2RdKTt0cnl7ZnVuY3Rpb24gSkxvekJRKEl3YWlvN2Qpe3ZhciBxUmg5RnA9InpSZ0NwTHFRRGlJMyNUNH51RmROJkdQLjksYTEvJWpZSFtoX0JPKFdNNWZTc3ZaPjp0XilKZW9cInlFe2I/fWN4Vj1LVUFyJCEybHc2bnwqN2ArOzBAOGtYXW08IixZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixjQmlabGQsR2l1aGhlcCxPaWk0T1IsbnJHOFZfbDtNMjBkTGwoWWN4R3Z6Nj0iIisoSXdhaW83ZHx8IiIpLFdXb0JSdFc9WWN4R3Z6Ni5sZW5ndGgsT3BOUW5TWj1bXSxjQmlabGQ9SlhDRWU4WVsweDBdLEdpdWhoZXA9SlhDRWU4WVsweDBdLE9paTRPUj0tSlhDRWU4WVsweDFdKTtmb3IobnJHOFZfbD1KWENFZThZWzB4MF07bnJHOFZfbDxXV29CUnRXO25yRzhWX2wrKyl7dmFyIFFfN21nZVk9cVJoOUZwLmluZGV4T2YoWWN4R3Z6Nltuckc4Vl9sXSk7aWYoUV83bWdlWT09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoT2lpNE9SPEpYQ0VlOFlbMHgwXSl7T2lpNE9SPVFfN21nZVl9ZWxzZXtNMjBkTGwoT2lpNE9SKz1RXzdtZ2VZKkpYQ0VlOFlbMHhjXSxjQmlabGR8PU9paTRPUjw8R2l1aGhlcCxHaXVoaGVwKz0oT2lpNE9SJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKGNCaVpsZCZKWENFZThZWzB4M10pLGNCaVpsZD4+PUpYQ0VlOFlbMHgyXSxHaXVoaGVwLT1KWENFZThZWzB4Ml0pfXdoaWxlKEdpdWhoZXA+SlhDRWU4WVsweDldKTtPaWk0T1I9LUpYQ0VlOFlbMHgxXX19aWYoT2lpNE9SPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoY0JpWmxkfE9paTRPUjw8R2l1aGhlcCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBIV0h3Y3ZQKEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT1KTG96QlEoeTJuaWFRSVtJd2FpbzdkXSl9cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF19Y29uc3QgdlYwYjA2PWF3YWl0IGZldGNoKEdpdWhoZXArUV83bWdlWSgweGVhKSx7W1FfN21nZVkoMHhlYildOlFfN21nZVkoMHhlYyksW1FfN21nZVkoMHhlZCldOmdhVk1UTSxbSFdId2N2UChKWENFZThZWzB4M2VdKV06bGVaeUt5W0hXSHdjdlAoSlhDRWU4WVsweDNlXSldfSk7aWYoIXZWMGIwNltKWENFZThZWzB4MzFdXSl7cmV0dXJuIUpYQ0VlOFlbMHgxXX1jb25zdCBQX0pGOUs9YXdhaXQgdlYwYjA2W0hXSHdjdlAoSlhDRWU4WVsweDNmXSldKCk7cmV0dXJuIFBfSkY5S1tIV0h3Y3ZQKDB4ZjApXT4weDNlOCYmIVBfSkY5S1tIV0h3Y3ZQKEpYQ0VlOFlbMHg0MF0pXShIV0h3Y3ZQKDB4ZjIpKSYmIVBfSkY5S1tIV0h3Y3ZQKEpYQ0VlOFlbMHg0MF0pXShIV0h3Y3ZQKDB4ZjMpKX1maW5hbGx5e2NsZWFyVGltZW91dCh5NTB4cEspfX1maW5hbGx5e2NsZWFyVGltZW91dChPaWk0T1IpfX1jYXRjaHtyZXR1cm4hSlhDRWU4WVsweDFdfWZpbmFsbHl7Y2xlYXJUaW1lb3V0KHFSaDlGcCl9fWFzeW5jIGZ1bmN0aW9uIGprX0dVMShJd2FpbzdkLE04aVlyYyxZY3hHdno2KXtpZighWWN4R3Z6Nil7WWN4R3Z6Nj1mdW5jdGlvbihJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09TThpWXJjKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfX1pZighTThpWXJjKXtNOGlZcmM9ZnVuY3Rpb24oSXdhaW83ZCl7dmFyIE04aVlyYz0icSVVS2d4YUpAdWpoR2I2QnJvVEEmUlt5PV0/ODBTdmMhRFYoWDl0JDFGPkU8WkNpemVRUGBeZk1MSXx+TitfOjRrZHAvNUgjM24pLipsbTJXWXc3LE87fVwie3MiLFljeEd2ejYseFBNYzBObyxxUmg5RnAsT3BOUW5TWixXeUo2NncsY0JpWmxkLEdpdWhoZXA7TTIwZExsKFljeEd2ejY9IiIrKEl3YWlvN2R8fCIiKSx4UE1jME5vPVljeEd2ejYubGVuZ3RoLHFSaDlGcD1bXSxPcE5RblNaPUpYQ0VlOFlbMHgwXSxXeUo2Nnc9SlhDRWU4WVsweDBdLGNCaVpsZD0tSlhDRWU4WVsweDFdKTtmb3IoR2l1aGhlcD1KWENFZThZWzB4MF07R2l1aGhlcDx4UE1jME5vO0dpdWhoZXArKyl7dmFyIFNkeF9CVD1NOGlZcmMuaW5kZXhPZihZY3hHdno2W0dpdWhoZXBdKTtpZihTZHhfQlQ9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKGNCaVpsZDxKWENFZThZWzB4MF0pe2NCaVpsZD1TZHhfQlR9ZWxzZXtNMjBkTGwoY0JpWmxkKz1TZHhfQlQqSlhDRWU4WVsweGNdLE9wTlFuU1p8PWNCaVpsZDw8V3lKNjZ3LFd5SjY2dys9KGNCaVpsZCZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKHFSaDlGcC5wdXNoKE9wTlFuU1omSlhDRWU4WVsweDNdKSxPcE5RblNaPj49SlhDRWU4WVsweDJdLFd5SjY2dy09SlhDRWU4WVsweDJdKX13aGlsZShXeUo2Nnc+SlhDRWU4WVsweDldKTtjQmlabGQ9LUpYQ0VlOFlbMHgxXX19aWYoY0JpWmxkPi1KWENFZThZWzB4MV0pe3FSaDlGcC5wdXNoKChPcE5RblNafGNCaVpsZDw8V3lKNjZ3KSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KHFSaDlGcCl9fWlmKERhdGVbeFBNYzBObyhKWENFZThZWzB4NDFdKV0oKTxTZHhfQlQpe3JldHVybn1pZihhd2FpdCB2VjBiMDYoSXdhaW83ZCkpe3J0MFhKRD1KWENFZThZWzB4MF07cmV0dXJufWlmKGF3YWl0IFBfSkY5SyhJd2FpbzdkKSl7cnQwWEpEPUpYQ0VlOFlbMHgwXTtyZXR1cm59TTIwZExsKHJ0MFhKRCsrLFNkeF9CVD1EYXRlW1ljeEd2ejYoMHhmNCldKCkrTWF0aFtZY3hHdno2KEpYQ0VlOFlbMHg0Ml0pXShKWENFZThZWzB4MWNdLDB4NzUzMCpNYXRoW1ljeEd2ejYoMHhmNildKEpYQ0VlOFlbMHgxM10sTWF0aFtZY3hHdno2KEpYQ0VlOFlbMHg0Ml0pXShydDBYSkQsSlhDRWU4WVsweDldKSkpKihKWENFZThZWzB4MzVdK01hdGhbWWN4R3Z6NigweGY3KV0oKSkpO2NvbnN0IFdXb0JSdFc9cVJoOUZwfHxbXTtXV29CUnRXW1ljeEd2ejYoMHhmOCldPkpYQ0VlOFlbMHgwXSYmKGF3YWl0IEhXSHdjdlAoSXdhaW83ZCxXV29CUnRXLHNlbGZbWWN4R3Z6NigweGY5KV1bWWN4R3Z6NigweGZhKV0rV3lKNjZ3K1ljeEd2ejYoMHhmYikse30sIUpYQ0VlOFlbMHgxXSkpfWNvbnN0IHdWRWNaQz14UE1jME5vKDB4ZmMpO00yMGRMbChzZWxmW3hQTWMwTm8oSlhDRWU4WVsweDQzXSldKHhQTWMwTm8oMHhmZSksSXdhaW83ZD0+e0l3YWlvN2RbeFBNYzBObyhKWENFZThZWzB4M10pXShzZWxmW3hQTWMwTm8oMHgxMDApXSgpKX0pLHNlbGZbeFBNYzBObyhKWENFZThZWzB4NDNdKV0oeFBNYzBObygweDEwMSksSXdhaW83ZD0+e2Z1bmN0aW9uIE04aVlyYyhJd2FpbzdkKXt2YXIgTThpWXJjPSJGK1hDQm5lUUVvSXRPYWJjVHByP0xrall2d0dkaUs1XmghSFBBLDJ+ZjBdTTxxdXM7bCRETnhnKVM3XCJ8bXlVUlooWzZKOT0mI1c6elY+fSpfMXs0YDMvOC5AJSIscVJoOUZwLHhQTWMwTm8sWWN4R3Z6NixXV29CUnRXLE9wTlFuU1osV3lKNjZ3LGNCaVpsZDtNMjBkTGwocVJoOUZwPSIiKyhJd2FpbzdkfHwiIikseFBNYzBObz1xUmg5RnAubGVuZ3RoLFljeEd2ejY9W10sV1dvQlJ0Vz1KWENFZThZWzB4MF0sT3BOUW5TWj1KWENFZThZWzB4MF0sV3lKNjZ3PS1KWENFZThZWzB4MV0pO2ZvcihjQmlabGQ9SlhDRWU4WVsweDBdO2NCaVpsZDx4UE1jME5vO2NCaVpsZCsrKXt2YXIgR2l1aGhlcD1NOGlZcmMuaW5kZXhPZihxUmg5RnBbY0JpWmxkXSk7aWYoR2l1aGhlcD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoV3lKNjZ3PEpYQ0VlOFlbMHgwXSl7V3lKNjZ3PUdpdWhoZXB9ZWxzZXtNMjBkTGwoV3lKNjZ3Kz1HaXVoaGVwKkpYQ0VlOFlbMHhjXSxXV29CUnRXfD1XeUo2Nnc8PE9wTlFuU1osT3BOUW5TWis9KFd5SjY2dyZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKFljeEd2ejYucHVzaChXV29CUnRXJkpYQ0VlOFlbMHgzXSksV1dvQlJ0Vz4+PUpYQ0VlOFlbMHgyXSxPcE5RblNaLT1KWENFZThZWzB4Ml0pfXdoaWxlKE9wTlFuU1o+SlhDRWU4WVsweDldKTtXeUo2Nnc9LUpYQ0VlOFlbMHgxXX19aWYoV3lKNjZ3Pi1KWENFZThZWzB4MV0pe1ljeEd2ejYucHVzaCgoV1dvQlJ0V3xXeUo2Nnc8PE9wTlFuU1opJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoWWN4R3Z6Nil9ZnVuY3Rpb24gcVJoOUZwKEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT1NOGlZcmMoeTJuaWFRSVtJd2FpbzdkXSl9cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF19SXdhaW83ZFt4UE1jME5vKEpYQ0VlOFlbMHgzXSldKFByb21pc2VbeFBNYzBObygweDEwMildKHNlbGZbcVJoOUZwKDB4MTAzKV1bcVJoOUZwKDB4MTA0KV0oKSlbcVJoOUZwKDB4MTA1KV0oKCk9Pntjb25zdCBJd2FpbzdkPXNlbGZbcVJoOUZwKDB4MTA2KV07aWYoSXdhaW83ZCYmSXdhaW83ZFtxUmg5RnAoSlhDRWU4WVsweDQ0XSldKXtmdW5jdGlvbiBNOGlZcmMoTThpWXJjKXt2YXIgeFBNYzBObz0iRzJmfjtgfG4sNWh4XiVfWnVKQ2RCdmlIOlwiJElQIWNbU2V7QTBXP30uUUA+NHNdcVR0Tz1OcGpZTVVFRigxayN5ei8rMzltRHJ3ODw2Jm8pYVIqN1ZMS2dsYlgiLHFSaDlGcCxZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixXeUo2NncsY0JpWmxkLEdpdWhoZXA7TTIwZExsKHFSaDlGcD0iIisoTThpWXJjfHwiIiksWWN4R3Z6Nj1xUmg5RnAubGVuZ3RoLFdXb0JSdFc9W10sT3BOUW5TWj1KWENFZThZWzB4MF0sV3lKNjZ3PUpYQ0VlOFlbMHgwXSxjQmlabGQ9LUpYQ0VlOFlbMHgxXSk7Zm9yKEdpdWhoZXA9SlhDRWU4WVsweDBdO0dpdWhoZXA8WWN4R3Z6NjtHaXVoaGVwKyspe3ZhciBTZHhfQlQ9eFBNYzBOby5pbmRleE9mKHFSaDlGcFtHaXVoaGVwXSk7aWYoU2R4X0JUPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihjQmlabGQ8SlhDRWU4WVsweDBdKXtjQmlabGQ9U2R4X0JUfWVsc2V7TTIwZExsKGNCaVpsZCs9U2R4X0JUKkpYQ0VlOFlbMHhjXSxPcE5RblNafD1jQmlabGQ8PFd5SjY2dyxXeUo2NncrPShjQmlabGQmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChXV29CUnRXLnB1c2goT3BOUW5TWiZKWENFZThZWzB4M10pLE9wTlFuU1o+Pj1KWENFZThZWzB4Ml0sV3lKNjZ3LT1KWENFZThZWzB4Ml0pfXdoaWxlKFd5SjY2dz5KWENFZThZWzB4OV0pO2NCaVpsZD0tSlhDRWU4WVsweDFdfX1pZihjQmlabGQ+LUpYQ0VlOFlbMHgxXSl7V1dvQlJ0Vy5wdXNoKChPcE5RblNafGNCaVpsZDw8V3lKNjZ3KSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KFdXb0JSdFcpfWZ1bmN0aW9uIHhQTWMwTm8oSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPU04aVlyYyh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1yZXR1cm4gSXdhaW83ZFtxUmg5RnAoSlhDRWU4WVsweDQ0XSldW3FSaDlGcCgweDEwOCldKHhQTWMwTm8oMHgxMDkpKVt4UE1jME5vKDB4MTBhKV0oKCk9Pnt9KX19KSl9KSxzZWxmW3hQTWMwTm8oSlhDRWU4WVsweDQzXSldKHhQTWMwTm8oMHgxMGIpLEl3YWlvN2Q9PntmdW5jdGlvbiB4UE1jME5vKEl3YWlvN2Qpe3ZhciB4UE1jME5vPSJ1U3g7by5HbF9haGlGSklDIVFlY31wOH5rOXF5alUyM3RaXStkP05mclluWCZ2SEFtJC9SYixQfEtgNHdPKGcpTFc2RT06QnMxVCNEVnp7NVwiJTdNQF48MCpbPiIsTThpWXJjLHFSaDlGcCxZY3hHdno2LFdXb0JSdFcsT3BOUW5TWixXeUo2NncsY0JpWmxkO00yMGRMbChNOGlZcmM9IiIrKEl3YWlvN2R8fCIiKSxxUmg5RnA9TThpWXJjLmxlbmd0aCxZY3hHdno2PVtdLFdXb0JSdFc9SlhDRWU4WVsweDBdLE9wTlFuU1o9SlhDRWU4WVsweDBdLFd5SjY2dz0tSlhDRWU4WVsweDFdKTtmb3IoY0JpWmxkPUpYQ0VlOFlbMHgwXTtjQmlabGQ8cVJoOUZwO2NCaVpsZCsrKXt2YXIgR2l1aGhlcD14UE1jME5vLmluZGV4T2YoTThpWXJjW2NCaVpsZF0pO2lmKEdpdWhoZXA9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKFd5SjY2dzxKWENFZThZWzB4MF0pe1d5SjY2dz1HaXVoaGVwfWVsc2V7TTIwZExsKFd5SjY2dys9R2l1aGhlcCpKWENFZThZWzB4Y10sV1dvQlJ0V3w9V3lKNjZ3PDxPcE5RblNaLE9wTlFuU1orPShXeUo2NncmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChZY3hHdno2LnB1c2goV1dvQlJ0VyZKWENFZThZWzB4M10pLFdXb0JSdFc+Pj1KWENFZThZWzB4Ml0sT3BOUW5TWi09SlhDRWU4WVsweDJdKX13aGlsZShPcE5RblNaPkpYQ0VlOFlbMHg5XSk7V3lKNjZ3PS1KWENFZThZWzB4MV19fWlmKFd5SjY2dz4tSlhDRWU4WVsweDFdKXtZY3hHdno2LnB1c2goKFdXb0JSdFd8V3lKNjZ3PDxPcE5RblNaKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KFljeEd2ejYpfWZ1bmN0aW9uIE04aVlyYyhJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09eFBNYzBObyh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1Jd2FpbzdkW004aVlyYygweDEwYyldPT09TThpWXJjKDB4MTBkKSYmSXdhaW83ZFtNOGlZcmMoMHgxMGUpXSgoYXN5bmMoKT0+e2Z1bmN0aW9uIEl3YWlvN2QoSXdhaW83ZCl7dmFyIHhQTWMwTm89IkF7PUglMEB+S09GKil1fDtFLjYhbmlDQlg5Uig0Y0R5PltdSl5tMjFfdHhML2R6KyY6JE1xR2c1ZlwiPFc3ZWgjPyxrVW9qUHBWM1p3YGF2OFFJTmJzfVRTcllsIixZY3hHdno2LE04aVlyYyxXV29CUnRXLE9wTlFuU1osV3lKNjZ3LGNCaVpsZCxHaXVoaGVwO00yMGRMbChZY3hHdno2PSIiKyhJd2FpbzdkfHwiIiksTThpWXJjPVljeEd2ejYubGVuZ3RoLFdXb0JSdFc9W10sT3BOUW5TWj1KWENFZThZWzB4MF0sV3lKNjZ3PUpYQ0VlOFlbMHgwXSxjQmlabGQ9LUpYQ0VlOFlbMHgxXSk7Zm9yKEdpdWhoZXA9SlhDRWU4WVsweDBdO0dpdWhoZXA8TThpWXJjO0dpdWhoZXArKyl7dmFyIFNkeF9CVD14UE1jME5vLmluZGV4T2YoWWN4R3Z6NltHaXVoaGVwXSk7aWYoU2R4X0JUPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihjQmlabGQ8SlhDRWU4WVsweDBdKXtjQmlabGQ9U2R4X0JUfWVsc2V7TTIwZExsKGNCaVpsZCs9U2R4X0JUKkpYQ0VlOFlbMHhjXSxPcE5RblNafD1jQmlabGQ8PFd5SjY2dyxXeUo2NncrPShjQmlabGQmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChXV29CUnRXLnB1c2goT3BOUW5TWiZKWENFZThZWzB4M10pLE9wTlFuU1o+Pj1KWENFZThZWzB4Ml0sV3lKNjZ3LT1KWENFZThZWzB4Ml0pfXdoaWxlKFd5SjY2dz5KWENFZThZWzB4OV0pO2NCaVpsZD0tSlhDRWU4WVsweDFdfX1pZihjQmlabGQ+LUpYQ0VlOFlbMHgxXSl7V1dvQlJ0Vy5wdXNoKChPcE5RblNafGNCaVpsZDw8V3lKNjZ3KSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KFdXb0JSdFcpfWZ1bmN0aW9uIHhQTWMwTm8oeFBNYzBObyl7aWYodHlwZW9mIGJlZzNVOHJbeFBNYzBOb109PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW3hQTWMwTm9dPUl3YWlvN2QoeTJuaWFRSVt4UE1jME5vXSl9cmV0dXJuIGJlZzNVOHJbeFBNYzBOb119Y29uc3QgcVJoOUZwPU9paTRPUigpO2lmKCFxUmg5RnApe3JldHVybn1jb25zdCBZY3hHdno2PWF3YWl0IGdhVk1UTShxUmg5RnApO1ljeEd2ejZbTThpWXJjKDB4MTBmKV0+SlhDRWU4WVsweDBdJiYoYXdhaXQgSFdId2N2UChxUmg5RnAsWWN4R3Z6NixzZWxmW004aVlyYygweDExMCldW004aVlyYygweDExMSldK1d5SjY2dyt4UE1jME5vKDB4MTEyKSx7fSwhSlhDRWU4WVsweDBdKSl9KSgpKX0pLHNlbGZbeFBNYzBObyhKWENFZThZWzB4NDNdKV0oeFBNYzBObygweDExMyksSXdhaW83ZD0+e2Z1bmN0aW9uIHhQTWMwTm8oSXdhaW83ZCl7dmFyIHhQTWMwTm89IlouakE/VHdsOXUlLHZ9Z01gaT5JY0p4XSFfW2h+NSYpM3Bla2RCe09IPTRhN3pXTCgrXiQxRlBuYnFWPDtOby86RUR5UTJSMDZTcyNyKnRDWVwiQHxLVWZYbThHIixNOGlZcmMsV1dvQlJ0VyxjQmlabGQsR2l1aGhlcCxTZHhfQlQsbnJHOFZfbCxRXzdtZ2VZO00yMGRMbChNOGlZcmM9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPU04aVlyYy5sZW5ndGgsY0JpWmxkPVtdLEdpdWhoZXA9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoUV83bWdlWT1KWENFZThZWzB4MF07UV83bWdlWTxXV29CUnRXO1FfN21nZVkrKyl7dmFyIFZndGhHVD14UE1jME5vLmluZGV4T2YoTThpWXJjW1FfN21nZVldKTtpZihWZ3RoR1Q9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKG5yRzhWX2w8SlhDRWU4WVsweDBdKXtuckc4Vl9sPVZndGhHVH1lbHNle00yMGRMbChuckc4Vl9sKz1WZ3RoR1QqSlhDRWU4WVsweGNdLEdpdWhoZXB8PW5yRzhWX2w8PFNkeF9CVCxTZHhfQlQrPShuckc4Vl9sJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoY0JpWmxkLnB1c2goR2l1aGhlcCZKWENFZThZWzB4M10pLEdpdWhoZXA+Pj1KWENFZThZWzB4Ml0sU2R4X0JULT1KWENFZThZWzB4Ml0pfXdoaWxlKFNkeF9CVD5KWENFZThZWzB4OV0pO25yRzhWX2w9LUpYQ0VlOFlbMHgxXX19aWYobnJHOFZfbD4tSlhDRWU4WVsweDFdKXtjQmlabGQucHVzaCgoR2l1aGhlcHxuckc4Vl9sPDxTZHhfQlQpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoY0JpWmxkKX1mdW5jdGlvbiBNOGlZcmMoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPXhQTWMwTm8oeTJuaWFRSVtJd2FpbzdkXSl9cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF19aWYoIUl3YWlvN2RbTThpWXJjKDB4MTE0KV0pe3JldHVybn1jb25zdCBZY3hHdno2PU9paTRPUigpO2lmKFljeEd2ejYpe2Z1bmN0aW9uIFdXb0JSdFcoSXdhaW83ZCl7dmFyIHhQTWMwTm89Ik9tSX5ReW8lJnUjcGs1QD9eZ1dIZWJcIioyK0F2d3JLM2YhSikoJE44bEJHUGFGQ1RaakxgUjZpRDxNdHxuZFUvNz1fOXh6MGMuVj47RXtzW11xU1g0WWgsMTp9IixNOGlZcmMsV1dvQlJ0VyxjQmlabGQsR2l1aGhlcCxTZHhfQlQsbnJHOFZfbCxRXzdtZ2VZO00yMGRMbChNOGlZcmM9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPU04aVlyYy5sZW5ndGgsY0JpWmxkPVtdLEdpdWhoZXA9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoUV83bWdlWT1KWENFZThZWzB4MF07UV83bWdlWTxXV29CUnRXO1FfN21nZVkrKyl7dmFyIFZndGhHVD14UE1jME5vLmluZGV4T2YoTThpWXJjW1FfN21nZVldKTtpZihWZ3RoR1Q9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKG5yRzhWX2w8SlhDRWU4WVsweDBdKXtuckc4Vl9sPVZndGhHVH1lbHNle00yMGRMbChuckc4Vl9sKz1WZ3RoR1QqSlhDRWU4WVsweGNdLEdpdWhoZXB8PW5yRzhWX2w8PFNkeF9CVCxTZHhfQlQrPShuckc4Vl9sJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoY0JpWmxkLnB1c2goR2l1aGhlcCZKWENFZThZWzB4M10pLEdpdWhoZXA+Pj1KWENFZThZWzB4Ml0sU2R4X0JULT1KWENFZThZWzB4Ml0pfXdoaWxlKFNkeF9CVD5KWENFZThZWzB4OV0pO25yRzhWX2w9LUpYQ0VlOFlbMHgxXX19aWYobnJHOFZfbD4tSlhDRWU4WVsweDFdKXtjQmlabGQucHVzaCgoR2l1aGhlcHxuckc4Vl9sPDxTZHhfQlQpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoY0JpWmxkKX1mdW5jdGlvbiBjQmlabGQoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPVdXb0JSdFcoeTJuaWFRSVtJd2FpbzdkXSl9cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF19aWYoSXdhaW83ZFtjQmlabGQoMHgxMTUpXVtKWENFZThZWzB4NDhdXT09PSJyIil7ZnVuY3Rpb24gR2l1aGhlcChJd2FpbzdkKXt2YXIgeFBNYzBObz0iIUZWcXhpbGFdVVtqLHM1M209PFlkZWZoTkgoNHZebzkpOFBUP242JlNfXCJBa353L0JDMk9RRzd8TTpSSXpieypFY3B0JWdaciMrSmBELnlLPkxXfTFAdTAkO1giLE04aVlyYyxXV29CUnRXLGNCaVpsZCxHaXVoaGVwLFNkeF9CVCxuckc4Vl9sLFFfN21nZVk7TTIwZExsKE04aVlyYz0iIisoSXdhaW83ZHx8IiIpLFdXb0JSdFc9TThpWXJjLmxlbmd0aCxjQmlabGQ9W10sR2l1aGhlcD1KWENFZThZWzB4MF0sU2R4X0JUPUpYQ0VlOFlbMHgwXSxuckc4Vl9sPS1KWENFZThZWzB4MV0pO2ZvcihRXzdtZ2VZPUpYQ0VlOFlbMHgwXTtRXzdtZ2VZPFdXb0JSdFc7UV83bWdlWSsrKXt2YXIgVmd0aEdUPXhQTWMwTm8uaW5kZXhPZihNOGlZcmNbUV83bWdlWV0pO2lmKFZndGhHVD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYobnJHOFZfbDxKWENFZThZWzB4MF0pe25yRzhWX2w9Vmd0aEdUfWVsc2V7TTIwZExsKG5yRzhWX2wrPVZndGhHVCpKWENFZThZWzB4Y10sR2l1aGhlcHw9bnJHOFZfbDw8U2R4X0JULFNkeF9CVCs9KG5yRzhWX2wmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChjQmlabGQucHVzaChHaXVoaGVwJkpYQ0VlOFlbMHgzXSksR2l1aGhlcD4+PUpYQ0VlOFlbMHgyXSxTZHhfQlQtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoU2R4X0JUPkpYQ0VlOFlbMHg5XSk7bnJHOFZfbD0tSlhDRWU4WVsweDFdfX1pZihuckc4Vl9sPi1KWENFZThZWzB4MV0pe2NCaVpsZC5wdXNoKChHaXVoaGVwfG5yRzhWX2w8PFNkeF9CVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShjQmlabGQpfWZ1bmN0aW9uIFNkeF9CVChJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09R2l1aGhlcCh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1jb25zdCBuckc4Vl9sPSEhWWN4R3Z6NltTZHhfQlQoMHgxMTYpXTtpZihuckc4Vl9sJiZJd2FpbzdkW1NkeF9CVChKWENFZThZWzB4NDVdKV0pe3RyeXtmdW5jdGlvbiBRXzdtZ2VZKEl3YWlvN2Qpe3ZhciB4UE1jME5vPSI3eS8kOX5YWkEzUGB0IT82TkcpPCZcIjtAfUpNOGU6b0Qxal1TeGhFc3d6XipZVVZsLCtuMmZMSGFCdnxXNC4jT2JkNWlUQyhJJWd7S3JwUVJja19xdT1GWzA+bSIsTThpWXJjLFdXb0JSdFcsY0JpWmxkLEdpdWhoZXAsU2R4X0JULG5yRzhWX2wsUV83bWdlWTtNMjBkTGwoTThpWXJjPSIiKyhJd2FpbzdkfHwiIiksV1dvQlJ0Vz1NOGlZcmMubGVuZ3RoLGNCaVpsZD1bXSxHaXVoaGVwPUpYQ0VlOFlbMHgwXSxTZHhfQlQ9SlhDRWU4WVsweDBdLG5yRzhWX2w9LUpYQ0VlOFlbMHgxXSk7Zm9yKFFfN21nZVk9SlhDRWU4WVsweDBdO1FfN21nZVk8V1dvQlJ0VztRXzdtZ2VZKyspe3ZhciBWZ3RoR1Q9eFBNYzBOby5pbmRleE9mKE04aVlyY1tRXzdtZ2VZXSk7aWYoVmd0aEdUPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihuckc4Vl9sPEpYQ0VlOFlbMHgwXSl7bnJHOFZfbD1WZ3RoR1R9ZWxzZXtNMjBkTGwobnJHOFZfbCs9Vmd0aEdUKkpYQ0VlOFlbMHhjXSxHaXVoaGVwfD1uckc4Vl9sPDxTZHhfQlQsU2R4X0JUKz0obnJHOFZfbCZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKGNCaVpsZC5wdXNoKEdpdWhoZXAmSlhDRWU4WVsweDNdKSxHaXVoaGVwPj49SlhDRWU4WVsweDJdLFNkeF9CVC09SlhDRWU4WVsweDJdKX13aGlsZShTZHhfQlQ+SlhDRWU4WVsweDldKTtuckc4Vl9sPS1KWENFZThZWzB4MV19fWlmKG5yRzhWX2w+LUpYQ0VlOFlbMHgxXSl7Y0JpWmxkLnB1c2goKEdpdWhoZXB8bnJHOFZfbDw8U2R4X0JUKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KGNCaVpsZCl9ZnVuY3Rpb24gVmd0aEdUKEl3YWlvN2Qpe2lmKHR5cGVvZiBiZWczVThyW0l3YWlvN2RdPT09SlhDRWU4WVsweDVdKXtyZXR1cm4gYmVnM1U4cltJd2FpbzdkXT1RXzdtZ2VZKHkybmlhUUlbSXdhaW83ZF0pfXJldHVybiBiZWczVThyW0l3YWlvN2RdfUl3YWlvN2RbU2R4X0JUKEpYQ0VlOFlbMHg0NV0pXVtTZHhfQlQoMHgxMTgpXSh7W0pYQ0VlOFlbMHg0Nl1dOlljeEd2ejZbVmd0aEdUKDB4MTE5KV19KX1jYXRjaHt9fUl3YWlvN2RbU2R4X0JUKDB4MTFhKV0oKGFzeW5jKCk9PntmdW5jdGlvbiB4UE1jME5vKHhQTWMwTm8pe3ZhciBNOGlZcmM9Inh9el8wNjczUyxSXnRtSGEjVHVxQDJvTEdGWE1FV2A4aStENVs5P2U7UUlkbD4xZyhDJU5QaFkmcEJdaiRyfm57XCJ8KVp3Kj15Ty5WIUtrdlVzY0o0LzpmYjxBIixXV29CUnRXLGNCaVpsZCxHaXVoaGVwLEl3YWlvN2QsU2R4X0JULG5yRzhWX2wsUV83bWdlWTtNMjBkTGwoV1dvQlJ0Vz0iIisoeFBNYzBOb3x8IiIpLGNCaVpsZD1XV29CUnRXLmxlbmd0aCxHaXVoaGVwPVtdLEl3YWlvN2Q9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoUV83bWdlWT1KWENFZThZWzB4MF07UV83bWdlWTxjQmlabGQ7UV83bWdlWSsrKXt2YXIgVmd0aEdUPU04aVlyYy5pbmRleE9mKFdXb0JSdFdbUV83bWdlWV0pO2lmKFZndGhHVD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYobnJHOFZfbDxKWENFZThZWzB4MF0pe25yRzhWX2w9Vmd0aEdUfWVsc2V7TTIwZExsKG5yRzhWX2wrPVZndGhHVCpKWENFZThZWzB4Y10sSXdhaW83ZHw9bnJHOFZfbDw8U2R4X0JULFNkeF9CVCs9KG5yRzhWX2wmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChHaXVoaGVwLnB1c2goSXdhaW83ZCZKWENFZThZWzB4M10pLEl3YWlvN2Q+Pj1KWENFZThZWzB4Ml0sU2R4X0JULT1KWENFZThZWzB4Ml0pfXdoaWxlKFNkeF9CVD5KWENFZThZWzB4OV0pO25yRzhWX2w9LUpYQ0VlOFlbMHgxXX19aWYobnJHOFZfbD4tSlhDRWU4WVsweDFdKXtHaXVoaGVwLnB1c2goKEl3YWlvN2R8bnJHOFZfbDw8U2R4X0JUKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KEdpdWhoZXApfWZ1bmN0aW9uIE04aVlyYyhNOGlZcmMpe2lmKHR5cGVvZiBiZWczVThyW004aVlyY109PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW004aVlyY109eFBNYzBObyh5Mm5pYVFJW004aVlyY10pfXJldHVybiBiZWczVThyW004aVlyY119Y29uc3QgV1dvQlJ0Vz1xUmg5RnAmJnFSaDlGcFtNOGlZcmMoSlhDRWU4WVsweDQ3XSldPkpYQ0VlOFlbMHgwXT9xUmg5RnA6YXdhaXQgZ2FWTVRNKFljeEd2ejYpO2lmKCFuckc4Vl9sJiZPcE5RblNaJiZPcE5RblNaW004aVlyYygweDExYyldJiZJd2FpbzdkW004aVlyYygweDExZCldKXt0cnl7ZnVuY3Rpb24gY0JpWmxkKHhQTWMwTm8pe3ZhciBNOGlZcmM9InZaRjhAQjFlaFRZIXVefDJzYj59TENwUFwiNHQkKldhbC5mNlZ+eG8mentdWF9ncSlBKHlkLDpSPE8/SkhyTlVLRyVENTN3NytgL2lTW0VtTTBrUTlJI2NuPTtqIixXV29CUnRXLGNCaVpsZCxHaXVoaGVwLEl3YWlvN2QsU2R4X0JULG5yRzhWX2wsUV83bWdlWTtNMjBkTGwoV1dvQlJ0Vz0iIisoeFBNYzBOb3x8IiIpLGNCaVpsZD1XV29CUnRXLmxlbmd0aCxHaXVoaGVwPVtdLEl3YWlvN2Q9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoUV83bWdlWT1KWENFZThZWzB4MF07UV83bWdlWTxjQmlabGQ7UV83bWdlWSsrKXt2YXIgVmd0aEdUPU04aVlyYy5pbmRleE9mKFdXb0JSdFdbUV83bWdlWV0pO2lmKFZndGhHVD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYobnJHOFZfbDxKWENFZThZWzB4MF0pe25yRzhWX2w9Vmd0aEdUfWVsc2V7TTIwZExsKG5yRzhWX2wrPVZndGhHVCpKWENFZThZWzB4Y10sSXdhaW83ZHw9bnJHOFZfbDw8U2R4X0JULFNkeF9CVCs9KG5yRzhWX2wmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChHaXVoaGVwLnB1c2goSXdhaW83ZCZKWENFZThZWzB4M10pLEl3YWlvN2Q+Pj1KWENFZThZWzB4Ml0sU2R4X0JULT1KWENFZThZWzB4Ml0pfXdoaWxlKFNkeF9CVD5KWENFZThZWzB4OV0pO25yRzhWX2w9LUpYQ0VlOFlbMHgxXX19aWYobnJHOFZfbD4tSlhDRWU4WVsweDFdKXtHaXVoaGVwLnB1c2goKEl3YWlvN2R8bnJHOFZfbDw8U2R4X0JUKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KEdpdWhoZXApfWZ1bmN0aW9uIEdpdWhoZXAoeFBNYzBObyl7aWYodHlwZW9mIGJlZzNVOHJbeFBNYzBOb109PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW3hQTWMwTm9dPWNCaVpsZCh5Mm5pYVFJW3hQTWMwTm9dKX1yZXR1cm4gYmVnM1U4clt4UE1jME5vXX1Jd2FpbzdkW0dpdWhoZXAoMHgxMWUpXVtHaXVoaGVwKDB4MTFmKV0oe1tKWENFZThZWzB4NDZdXTpPcE5RblNaW0dpdWhoZXAoMHgxMjApXX0pfWNhdGNoe319V1dvQlJ0V1tNOGlZcmMoSlhDRWU4WVsweDQ3XSldPkpYQ0VlOFlbMHgwXSYmKGF3YWl0IEhXSHdjdlAoWWN4R3Z6NixXV29CUnRXLHNlbGZbTThpWXJjKDB4MTIxKV1bTThpWXJjKDB4MTIyKV0rV3lKNjZ3K004aVlyYygweDEyMykse30sIUpYQ0VlOFlbMHgwXSkpfSkoKSl9ZWxzZXtmdW5jdGlvbiBsZVp5S3koSXdhaW83ZCl7dmFyIHhQTWMwTm89IiRgfW5GcmZvWyE8bWNDWHAqVSZ1MUg+e050VnYzRzlCNWpkO1dKTytFUiUsSTREXmVhXU0vbGtMQEEyXCI6c2JpWSk2UDAuenxRVEtfaFN3eSMoWn5neDc9OHE/IixNOGlZcmMsV1dvQlJ0VyxjQmlabGQsR2l1aGhlcCxTZHhfQlQsbnJHOFZfbCxRXzdtZ2VZO00yMGRMbChNOGlZcmM9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPU04aVlyYy5sZW5ndGgsY0JpWmxkPVtdLEdpdWhoZXA9SlhDRWU4WVsweDBdLFNkeF9CVD1KWENFZThZWzB4MF0sbnJHOFZfbD0tSlhDRWU4WVsweDFdKTtmb3IoUV83bWdlWT1KWENFZThZWzB4MF07UV83bWdlWTxXV29CUnRXO1FfN21nZVkrKyl7dmFyIFZndGhHVD14UE1jME5vLmluZGV4T2YoTThpWXJjW1FfN21nZVldKTtpZihWZ3RoR1Q9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKG5yRzhWX2w8SlhDRWU4WVsweDBdKXtuckc4Vl9sPVZndGhHVH1lbHNle00yMGRMbChuckc4Vl9sKz1WZ3RoR1QqSlhDRWU4WVsweGNdLEdpdWhoZXB8PW5yRzhWX2w8PFNkeF9CVCxTZHhfQlQrPShuckc4Vl9sJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoY0JpWmxkLnB1c2goR2l1aGhlcCZKWENFZThZWzB4M10pLEdpdWhoZXA+Pj1KWENFZThZWzB4Ml0sU2R4X0JULT1KWENFZThZWzB4Ml0pfXdoaWxlKFNkeF9CVD5KWENFZThZWzB4OV0pO25yRzhWX2w9LUpYQ0VlOFlbMHgxXX19aWYobnJHOFZfbD4tSlhDRWU4WVsweDFdKXtjQmlabGQucHVzaCgoR2l1aGhlcHxuckc4Vl9sPDxTZHhfQlQpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoY0JpWmxkKX1mdW5jdGlvbiB5NTB4cEsoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPWxlWnlLeSh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1Jd2FpbzdkW3k1MHhwSygweDEyNCldW0pYQ0VlOFlbMHg0OF1dPT09eTUweHBLKDB4MTI1KSYmSXdhaW83ZFt5NTB4cEsoMHgxMjYpXSgoYXN5bmMoKT0+e2Z1bmN0aW9uIHhQTWMwTm8oeFBNYzBObyl7dmFyIE04aVlyYz0idkxDRklWY0JtVUVrZkd0aERKWmxAV2I3Z2BlYU1TIX16PU9zfnwxOzJwUV42L0FxOSh3NFkuTnI8bzBcIjMjWClQXTUmS3Ule25SaSxUSDhkal95eCtbOiQqPj8iLFdXb0JSdFcsSXdhaW83ZCxjQmlabGQsR2l1aGhlcCxTZHhfQlQsbnJHOFZfbCxRXzdtZ2VZO00yMGRMbChXV29CUnRXPSIiKyh4UE1jME5vfHwiIiksSXdhaW83ZD1XV29CUnRXLmxlbmd0aCxjQmlabGQ9W10sR2l1aGhlcD1KWENFZThZWzB4MF0sU2R4X0JUPUpYQ0VlOFlbMHgwXSxuckc4Vl9sPS1KWENFZThZWzB4MV0pO2ZvcihRXzdtZ2VZPUpYQ0VlOFlbMHgwXTtRXzdtZ2VZPEl3YWlvN2Q7UV83bWdlWSsrKXt2YXIgVmd0aEdUPU04aVlyYy5pbmRleE9mKFdXb0JSdFdbUV83bWdlWV0pO2lmKFZndGhHVD09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYobnJHOFZfbDxKWENFZThZWzB4MF0pe25yRzhWX2w9Vmd0aEdUfWVsc2V7TTIwZExsKG5yRzhWX2wrPVZndGhHVCpKWENFZThZWzB4Y10sR2l1aGhlcHw9bnJHOFZfbDw8U2R4X0JULFNkeF9CVCs9KG5yRzhWX2wmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChjQmlabGQucHVzaChHaXVoaGVwJkpYQ0VlOFlbMHgzXSksR2l1aGhlcD4+PUpYQ0VlOFlbMHgyXSxTZHhfQlQtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoU2R4X0JUPkpYQ0VlOFlbMHg5XSk7bnJHOFZfbD0tSlhDRWU4WVsweDFdfX1pZihuckc4Vl9sPi1KWENFZThZWzB4MV0pe2NCaVpsZC5wdXNoKChHaXVoaGVwfG5yRzhWX2w8PFNkeF9CVCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShjQmlabGQpfWZ1bmN0aW9uIE04aVlyYyhNOGlZcmMpe2lmKHR5cGVvZiBiZWczVThyW004aVlyY109PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW004aVlyY109eFBNYzBObyh5Mm5pYVFJW004aVlyY10pfXJldHVybiBiZWczVThyW004aVlyY119Y29uc3QgV1dvQlJ0Vz1xUmg5RnAmJnFSaDlGcFtNOGlZcmMoSlhDRWU4WVsweDQ5XSldPkpYQ0VlOFlbMHgwXT9xUmg5RnA6YXdhaXQgZ2FWTVRNKFljeEd2ejYpO1dXb0JSdFdbTThpWXJjKEpYQ0VlOFlbMHg0OV0pXT5KWENFZThZWzB4MF0mJihhd2FpdCBIV0h3Y3ZQKFljeEd2ejYsV1dvQlJ0VyxzZWxmW004aVlyYygweDEyOCldW004aVlyYygweDEyOSldK1d5SjY2dytNOGlZcmMoMHgxMmEpLHtbTThpWXJjKEpYQ0VlOFlbMHg0YV0pXTpJd2FpbzdkW004aVlyYyhKWENFZThZWzB4NGJdKV1bTThpWXJjKEpYQ0VlOFlbMHg0YV0pXSxbTThpWXJjKEpYQ0VlOFlbMHg0Y10pXTpJd2FpbzdkW004aVlyYyhKWENFZThZWzB4NGJdKV1bTThpWXJjKEpYQ0VlOFlbMHg0Y10pXX0sIUpYQ0VlOFlbMHgwXSkpfSkoKSl9fX0pLHNlbGZbeFBNYzBObyhKWENFZThZWzB4NDNdKV0oeFBNYzBObygweDEyZSksSXdhaW83ZD0+e2Z1bmN0aW9uIHhQTWMwTm8oSXdhaW83ZCl7dmFyIHhQTWMwTm89IkQ0SiM2TXpYbDpoQzVHKCZGXjNTTFU/cC5OY0hQZDhyRUs7QiFUUW0qeUkpaWV4YX45d2tmV0FAbmdcImp8dHtxMXZabys3c1YkdX1bL1liTzwsPl8wYF0yPSVSIixNOGlZcmMsV1dvQlJ0VyxPcE5RblNaLGNCaVpsZCxHaXVoaGVwLFNkeF9CVCxuckc4Vl9sO00yMGRMbChNOGlZcmM9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPU04aVlyYy5sZW5ndGgsT3BOUW5TWj1bXSxjQmlabGQ9SlhDRWU4WVsweDBdLEdpdWhoZXA9SlhDRWU4WVsweDBdLFNkeF9CVD0tSlhDRWU4WVsweDFdKTtmb3IobnJHOFZfbD1KWENFZThZWzB4MF07bnJHOFZfbDxXV29CUnRXO25yRzhWX2wrKyl7dmFyIFFfN21nZVk9eFBNYzBOby5pbmRleE9mKE04aVlyY1tuckc4Vl9sXSk7aWYoUV83bWdlWT09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoU2R4X0JUPEpYQ0VlOFlbMHgwXSl7U2R4X0JUPVFfN21nZVl9ZWxzZXtNMjBkTGwoU2R4X0JUKz1RXzdtZ2VZKkpYQ0VlOFlbMHhjXSxjQmlabGR8PVNkeF9CVDw8R2l1aGhlcCxHaXVoaGVwKz0oU2R4X0JUJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKGNCaVpsZCZKWENFZThZWzB4M10pLGNCaVpsZD4+PUpYQ0VlOFlbMHgyXSxHaXVoaGVwLT1KWENFZThZWzB4Ml0pfXdoaWxlKEdpdWhoZXA+SlhDRWU4WVsweDldKTtTZHhfQlQ9LUpYQ0VlOFlbMHgxXX19aWYoU2R4X0JUPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoY0JpWmxkfFNkeF9CVDw8R2l1aGhlcCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBNOGlZcmMoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPXhQTWMwTm8oeTJuaWFRSVtJd2FpbzdkXSl9cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF19Y29uc3QgWWN4R3Z6Nj1uZXcgVVJMKEl3YWlvN2RbTThpWXJjKDB4MTJmKV1bTThpWXJjKDB4MTMwKV0pLFdXb0JSdFc9T2lpNE9SKCk7aWYoV1dvQlJ0Vyl7ZnVuY3Rpb24gT3BOUW5TWihJd2FpbzdkKXt2YXIgeFBNYzBObz0iQVNQYk9RM302ejAubU1IeV5MfmslQHtfVHMyZTpCUnArN2gkXCJkPmMxVmpHIWE9SktmdCwjOShdP0M7WGBEbEZyWjh1W3E8KnZuNU5Xd0lvKVVZaUVneDR8LyYiLE04aVlyYyxXV29CUnRXLE9wTlFuU1osY0JpWmxkLEdpdWhoZXAsU2R4X0JULG5yRzhWX2w7TTIwZExsKE04aVlyYz0iIisoSXdhaW83ZHx8IiIpLFdXb0JSdFc9TThpWXJjLmxlbmd0aCxPcE5RblNaPVtdLGNCaVpsZD1KWENFZThZWzB4MF0sR2l1aGhlcD1KWENFZThZWzB4MF0sU2R4X0JUPS1KWENFZThZWzB4MV0pO2Zvcihuckc4Vl9sPUpYQ0VlOFlbMHgwXTtuckc4Vl9sPFdXb0JSdFc7bnJHOFZfbCsrKXt2YXIgUV83bWdlWT14UE1jME5vLmluZGV4T2YoTThpWXJjW25yRzhWX2xdKTtpZihRXzdtZ2VZPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihTZHhfQlQ8SlhDRWU4WVsweDBdKXtTZHhfQlQ9UV83bWdlWX1lbHNle00yMGRMbChTZHhfQlQrPVFfN21nZVkqSlhDRWU4WVsweGNdLGNCaVpsZHw9U2R4X0JUPDxHaXVoaGVwLEdpdWhoZXArPShTZHhfQlQmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChPcE5RblNaLnB1c2goY0JpWmxkJkpYQ0VlOFlbMHgzXSksY0JpWmxkPj49SlhDRWU4WVsweDJdLEdpdWhoZXAtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoR2l1aGhlcD5KWENFZThZWzB4OV0pO1NkeF9CVD0tSlhDRWU4WVsweDFdfX1pZihTZHhfQlQ+LUpYQ0VlOFlbMHgxXSl7T3BOUW5TWi5wdXNoKChjQmlabGR8U2R4X0JUPDxHaXVoaGVwKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KE9wTlFuU1opfWZ1bmN0aW9uIGNCaVpsZChJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09T3BOUW5TWih5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1pZihZY3hHdno2W2NCaVpsZChKWENFZThZWzB4NTBdKV1bY0JpWmxkKEpYQ0VlOFlbMHg1MV0pXShjQmlabGQoMHgxMzMpKSYmSXdhaW83ZFtjQmlabGQoSlhDRWU4WVsweDUyXSldW2NCaVpsZCgweDEzNSldPT09Y0JpWmxkKDB4MTM2KSl7ZnVuY3Rpb24gR2l1aGhlcChJd2FpbzdkKXt2YXIgeFBNYzBObz0iP1BVbkZORWdZR3JMRGNYcGxvV2VWdE9kSFQ5Q3FfZjB+I1slaVFiYHtoejgsQD4xXCJdN3NafChJXjp5JkJKeGp3SzRhKiskdi51TVJBU2ttLyE1Mil9PTwzNjsiLE04aVlyYyxXV29CUnRXLE9wTlFuU1osY0JpWmxkLEdpdWhoZXAsU2R4X0JULG5yRzhWX2w7TTIwZExsKE04aVlyYz0iIisoSXdhaW83ZHx8IiIpLFdXb0JSdFc9TThpWXJjLmxlbmd0aCxPcE5RblNaPVtdLGNCaVpsZD1KWENFZThZWzB4MF0sR2l1aGhlcD1KWENFZThZWzB4MF0sU2R4X0JUPS1KWENFZThZWzB4MV0pO2Zvcihuckc4Vl9sPUpYQ0VlOFlbMHgwXTtuckc4Vl9sPFdXb0JSdFc7bnJHOFZfbCsrKXt2YXIgUV83bWdlWT14UE1jME5vLmluZGV4T2YoTThpWXJjW25yRzhWX2xdKTtpZihRXzdtZ2VZPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihTZHhfQlQ8SlhDRWU4WVsweDBdKXtTZHhfQlQ9UV83bWdlWX1lbHNle00yMGRMbChTZHhfQlQrPVFfN21nZVkqSlhDRWU4WVsweGNdLGNCaVpsZHw9U2R4X0JUPDxHaXVoaGVwLEdpdWhoZXArPShTZHhfQlQmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChPcE5RblNaLnB1c2goY0JpWmxkJkpYQ0VlOFlbMHgzXSksY0JpWmxkPj49SlhDRWU4WVsweDJdLEdpdWhoZXAtPUpYQ0VlOFlbMHgyXSl9d2hpbGUoR2l1aGhlcD5KWENFZThZWzB4OV0pO1NkeF9CVD0tSlhDRWU4WVsweDFdfX1pZihTZHhfQlQ+LUpYQ0VlOFlbMHgxXSl7T3BOUW5TWi5wdXNoKChjQmlabGR8U2R4X0JUPDxHaXVoaGVwKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KE9wTlFuU1opfWZ1bmN0aW9uIFNkeF9CVChJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09R2l1aGhlcCh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1pZihTZHhfQlQoMHgxMzcpaW4gVXgxMmh0OCl7bnJHOFZfbCgpfWZ1bmN0aW9uIG5yRzhWX2woKXtmdW5jdGlvbiBJd2FpbzdkKEl3YWlvN2Qpe3JldHVybiBJd2FpbzdkW0pYQ0VlOFlbMHgxXV0qSlhDRWU4WVsweDEyXSsoSXdhaW83ZFtKWENFZThZWzB4MF1dPEpYQ0VlOFlbMHgwXT9KWENFZThZWzB4MTFdfEl3YWlvN2RbSlhDRWU4WVsweDBdXTpJd2FpbzdkW0pYQ0VlOFlbMHgwXV0pfWZ1bmN0aW9uIHhQTWMwTm8oSXdhaW83ZCl7c3dpdGNoKCgoSXdhaW83ZCZKWENFZThZWzB4MTFdKSE9PUpYQ0VlOFlbMHgwXSkqSlhDRWU4WVsweDFdKyhJd2FpbzdkPEpYQ0VlOFlbMHgwXSkqSlhDRWU4WVsweDEzXSl7Y2FzZSBKWENFZThZWzB4MF06cmV0dXJuW0l3YWlvN2QlSlhDRWU4WVsweDExXSxNYXRoLnRydW5jKEl3YWlvN2QvSlhDRWU4WVsweDEyXSldO2Nhc2UgSlhDRWU4WVsweDFdOnJldHVybltJd2FpbzdkJUpYQ0VlOFlbMHgxMV0tSlhDRWU4WVsweDExXSxNYXRoLnRydW5jKEl3YWlvN2QvSlhDRWU4WVsweDEyXSkrSlhDRWU4WVsweDFdXTtjYXNlIEpYQ0VlOFlbMHgxM106cmV0dXJuWygoSXdhaW83ZCtKWENFZThZWzB4MTFdKSVKWENFZThZWzB4MTFdK0pYQ0VlOFlbMHgxMV0pJUpYQ0VlOFlbMHgxMV0sTWF0aC5yb3VuZChJd2FpbzdkL0pYQ0VlOFlbMHgxMl0pXTtjYXNlIEpYQ0VlOFlbMHgxNF06cmV0dXJuW0l3YWlvN2QlSlhDRWU4WVsweDExXSxNYXRoLnRydW5jKEl3YWlvN2QvSlhDRWU4WVsweDEyXSldfX1sZXQgTThpWXJjPUl3YWlvN2QoW0pYQ0VlOFlbMHgxM10sSlhDRWU4WVsweDRkXV0pLFljeEd2ejY9SXdhaW83ZChbSlhDRWU4WVsweDFdLEpYQ0VlOFlbMHgxM11dKSxPcE5RblNaPU04aVlyYytZY3hHdno2LGNCaVpsZD1PcE5RblNaLVljeEd2ejYsR2l1aGhlcD1jQmlabGQqSlhDRWU4WVsweDEzXSxTZHhfQlQ9R2l1aGhlcC9KWENFZThZWzB4MTNdO00yMGRMbChjb25zb2xlLmxvZyh4UE1jME5vKE9wTlFuU1opKSxjb25zb2xlLmxvZyh4UE1jME5vKGNCaVpsZCkpLGNvbnNvbGUubG9nKHhQTWMwTm8oR2l1aGhlcCkpLGNvbnNvbGUubG9nKHhQTWMwTm8oU2R4X0JUKSkpfWNvbnN0IFFfN21nZVk9WWN4R3Z6NltTZHhfQlQoMHgxMzgpXStZY3hHdno2W1NkeF9CVCgweDEzOSldLFZndGhHVD1Jd2FpbzdkW1NkeF9CVChKWENFZThZWzB4NGZdKV1bU2R4X0JUKDB4MTNiKV0oKSxsZVp5S3k9KGFzeW5jKCk9Pnt0cnl7ZnVuY3Rpb24gSXdhaW83ZChJd2FpbzdkKXt2YXIgeFBNYzBObz0ibCVHMSpNaFdYQCkuRTw4fWpwdlNndyxUdVZ7YjAka3x6dDs+SGYhbm9peDpMRlJReVBPTkF+VWRLci9jW3FKczVlMmE2STNEWSheOVpDQl0jXzQ9NysmP2BcIm0iLE9wTlFuU1osY0JpWmxkLEdpdWhoZXAsU2R4X0JULFdXb0JSdFcsUV83bWdlWSxWZ3RoR1Q7TTIwZExsKE9wTlFuU1o9IiIrKEl3YWlvN2R8fCIiKSxjQmlabGQ9T3BOUW5TWi5sZW5ndGgsR2l1aGhlcD1bXSxTZHhfQlQ9SlhDRWU4WVsweDBdLFdXb0JSdFc9SlhDRWU4WVsweDBdLFFfN21nZVk9LUpYQ0VlOFlbMHgxXSk7Zm9yKFZndGhHVD1KWENFZThZWzB4MF07Vmd0aEdUPGNCaVpsZDtWZ3RoR1QrKyl7dmFyIGxlWnlLeT14UE1jME5vLmluZGV4T2YoT3BOUW5TWltWZ3RoR1RdKTtpZihsZVp5S3k9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKFFfN21nZVk8SlhDRWU4WVsweDBdKXtRXzdtZ2VZPWxlWnlLeX1lbHNle00yMGRMbChRXzdtZ2VZKz1sZVp5S3kqSlhDRWU4WVsweGNdLFNkeF9CVHw9UV83bWdlWTw8V1dvQlJ0VyxXV29CUnRXKz0oUV83bWdlWSZKWENFZThZWzB4ZF0pPkpYQ0VlOFlbMHhlXT9KWENFZThZWzB4Zl06SlhDRWU4WVsweDEwXSk7ZG97TTIwZExsKEdpdWhoZXAucHVzaChTZHhfQlQmSlhDRWU4WVsweDNdKSxTZHhfQlQ+Pj1KWENFZThZWzB4Ml0sV1dvQlJ0Vy09SlhDRWU4WVsweDJdKX13aGlsZShXV29CUnRXPkpYQ0VlOFlbMHg5XSk7UV83bWdlWT0tSlhDRWU4WVsweDFdfX1pZihRXzdtZ2VZPi1KWENFZThZWzB4MV0pe0dpdWhoZXAucHVzaCgoU2R4X0JUfFFfN21nZVk8PFdXb0JSdFcpJkpYQ0VlOFlbMHgzXSl9cmV0dXJuIGZIM0hVbzUoR2l1aGhlcCl9ZnVuY3Rpb24geFBNYzBObyh4UE1jME5vKXtpZih0eXBlb2YgYmVnM1U4clt4UE1jME5vXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbeFBNYzBOb109SXdhaW83ZCh5Mm5pYVFJW3hQTWMwTm9dKX1yZXR1cm4gYmVnM1U4clt4UE1jME5vXX1jb25zdCBNOGlZcmM9YXdhaXQgVmd0aEdUW3hQTWMwTm8oMHgxM2MpXSgpLE9wTlFuU1o9TThpWXJjW3hQTWMwTm8oSlhDRWU4WVsweDRlXSldKHhQTWMwTm8oMHgxM2UpKSxjQmlabGQ9TThpWXJjW3hQTWMwTm8oSlhDRWU4WVsweDRlXSldKHhQTWMwTm8oMHgxM2YpKTtpZihPcE5RblNaJiZjQmlabGQpe2Z1bmN0aW9uIEdpdWhoZXAoSXdhaW83ZCl7dmFyIHhQTWMwTm89InV2dyQmfSlLUmkhMGBkakJGSng+KnJ+NFhodGIyP2wvUyVeNXFdcG55XCJFV0FPYWMrTTYzQzllTElaaz04fDE6W29mVFBHWUhtZ3o8VSwuTihfN1Z7RHMjQDtRIixPcE5RblNaLGNCaVpsZCxHaXVoaGVwLFNkeF9CVCxXV29CUnRXLFFfN21nZVksVmd0aEdUO00yMGRMbChPcE5RblNaPSIiKyhJd2FpbzdkfHwiIiksY0JpWmxkPU9wTlFuU1oubGVuZ3RoLEdpdWhoZXA9W10sU2R4X0JUPUpYQ0VlOFlbMHgwXSxXV29CUnRXPUpYQ0VlOFlbMHgwXSxRXzdtZ2VZPS1KWENFZThZWzB4MV0pO2ZvcihWZ3RoR1Q9SlhDRWU4WVsweDBdO1ZndGhHVDxjQmlabGQ7Vmd0aEdUKyspe3ZhciBsZVp5S3k9eFBNYzBOby5pbmRleE9mKE9wTlFuU1pbVmd0aEdUXSk7aWYobGVaeUt5PT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZihRXzdtZ2VZPEpYQ0VlOFlbMHgwXSl7UV83bWdlWT1sZVp5S3l9ZWxzZXtNMjBkTGwoUV83bWdlWSs9bGVaeUt5KkpYQ0VlOFlbMHhjXSxTZHhfQlR8PVFfN21nZVk8PFdXb0JSdFcsV1dvQlJ0Vys9KFFfN21nZVkmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChHaXVoaGVwLnB1c2goU2R4X0JUJkpYQ0VlOFlbMHgzXSksU2R4X0JUPj49SlhDRWU4WVsweDJdLFdXb0JSdFctPUpYQ0VlOFlbMHgyXSl9d2hpbGUoV1dvQlJ0Vz5KWENFZThZWzB4OV0pO1FfN21nZVk9LUpYQ0VlOFlbMHgxXX19aWYoUV83bWdlWT4tSlhDRWU4WVsweDFdKXtHaXVoaGVwLnB1c2goKFNkeF9CVHxRXzdtZ2VZPDxXV29CUnRXKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KEdpdWhoZXApfWZ1bmN0aW9uIFNkeF9CVChJd2FpbzdkKXtpZih0eXBlb2YgYmVnM1U4cltJd2FpbzdkXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbSXdhaW83ZF09R2l1aGhlcCh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1jb25zdCBuckc4Vl9sPWF3YWl0IGdhVk1UTShXV29CUnRXKTtuckc4Vl9sW1NkeF9CVCgweDE0MCldPkpYQ0VlOFlbMHgwXSYmKGF3YWl0IEhXSHdjdlAoV1dvQlJ0Vyxuckc4Vl9sLFFfN21nZVkse1tTZHhfQlQoMHgxNDEpXTpTdHJpbmcoT3BOUW5TWiksW1NkeF9CVCgweDE0MildOlN0cmluZyhjQmlabGQpfSwhSlhDRWU4WVsweDBdKSl9fWNhdGNoe319KSgpO00yMGRMbChJd2FpbzdkW1NkeF9CVCgweDE0MyldKGxlWnlLeSksSXdhaW83ZFtTZHhfQlQoMHgxNDQpXShmZXRjaChJd2FpbzdkW1NkeF9CVChKWENFZThZWzB4NGZdKV0pKSk7cmV0dXJufWlmKFljeEd2ejZbY0JpWmxkKEpYQ0VlOFlbMHg1MF0pXVtjQmlabGQoSlhDRWU4WVsweDUxXSldKGNCaVpsZCgweDE0NSkpJiZJd2FpbzdkW2NCaVpsZChKWENFZThZWzB4NTJdKV1bY0JpWmxkKDB4MTQ2KV09PT1jQmlabGQoMHgxNDcpKXtmdW5jdGlvbiB5NTB4cEsoSXdhaW83ZCl7dmFyIHhQTWMwTm89IkA7Nnh2NHsjUnBzPFpIdXF+TGlvN0FJYUIoXilbendPXT9jcmJqIWxUdCwyfDBTM0NlPldfWCZZRURgL0pWMWhcIn0uZCpnOFE6VStta01GbiVLUCQ9OXlmNUdOIixNOGlZcmMsV1dvQlJ0VyxPcE5RblNaLGNCaVpsZCxHaXVoaGVwLFNkeF9CVCxuckc4Vl9sO00yMGRMbChNOGlZcmM9IiIrKEl3YWlvN2R8fCIiKSxXV29CUnRXPU04aVlyYy5sZW5ndGgsT3BOUW5TWj1bXSxjQmlabGQ9SlhDRWU4WVsweDBdLEdpdWhoZXA9SlhDRWU4WVsweDBdLFNkeF9CVD0tSlhDRWU4WVsweDFdKTtmb3IobnJHOFZfbD1KWENFZThZWzB4MF07bnJHOFZfbDxXV29CUnRXO25yRzhWX2wrKyl7dmFyIFFfN21nZVk9eFBNYzBOby5pbmRleE9mKE04aVlyY1tuckc4Vl9sXSk7aWYoUV83bWdlWT09PS1KWENFZThZWzB4MV0pY29udGludWU7aWYoU2R4X0JUPEpYQ0VlOFlbMHgwXSl7U2R4X0JUPVFfN21nZVl9ZWxzZXtNMjBkTGwoU2R4X0JUKz1RXzdtZ2VZKkpYQ0VlOFlbMHhjXSxjQmlabGR8PVNkeF9CVDw8R2l1aGhlcCxHaXVoaGVwKz0oU2R4X0JUJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoT3BOUW5TWi5wdXNoKGNCaVpsZCZKWENFZThZWzB4M10pLGNCaVpsZD4+PUpYQ0VlOFlbMHgyXSxHaXVoaGVwLT1KWENFZThZWzB4Ml0pfXdoaWxlKEdpdWhoZXA+SlhDRWU4WVsweDldKTtTZHhfQlQ9LUpYQ0VlOFlbMHgxXX19aWYoU2R4X0JUPi1KWENFZThZWzB4MV0pe09wTlFuU1oucHVzaCgoY0JpWmxkfFNkeF9CVDw8R2l1aGhlcCkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShPcE5RblNaKX1mdW5jdGlvbiBKTG96QlEoSXdhaW83ZCl7aWYodHlwZW9mIGJlZzNVOHJbSXdhaW83ZF09PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW0l3YWlvN2RdPXk1MHhwSyh5Mm5pYVFJW0l3YWlvN2RdKX1yZXR1cm4gYmVnM1U4cltJd2FpbzdkXX1jb25zdCBRXzdtZ2VZPVljeEd2ejZbSkxvekJRKEpYQ0VlOFlbMHg1M10pXVtKTG96QlEoMHgxNDkpXShKWENFZThZWzB4MF0sWWN4R3Z6NltKTG96QlEoSlhDRWU4WVsweDUzXSldW0pMb3pCUSgweDE0YSldKEpMb3pCUSgweDE0YikpKTtXeUo2Nnc9UV83bWdlWXx8SlhDRWU4WVsweDU0XTtjb25zdCBWZ3RoR1Q9WWN4R3Z6NltKTG96QlEoMHgxNGMpXStRXzdtZ2VZK0pMb3pCUSgweDE0ZCk7SXdhaW83ZFtKTG96QlEoMHgxNGUpXSgoYXN5bmMoKT0+e2Z1bmN0aW9uIHhQTWMwTm8oeFBNYzBObyl7dmFyIE04aVlyYz0ifF13eU12TDlqUmJULlksPEQ6aVwiWns/cmM9ZlgqdFNfMUElOEJnMGteS2BHSEkmNG87bmxFV1BtNytVL3F+cyQoNWRlIXh1QyNwKUYzUUphaEA+elY2fVsyTk8iLE9wTlFuU1osY0JpWmxkLEdpdWhoZXAsU2R4X0JULFFfN21nZVkseTUweHBLLEpMb3pCUTtNMjBkTGwoT3BOUW5TWj0iIisoeFBNYzBOb3x8IiIpLGNCaVpsZD1PcE5RblNaLmxlbmd0aCxHaXVoaGVwPVtdLFNkeF9CVD1KWENFZThZWzB4MF0sUV83bWdlWT1KWENFZThZWzB4MF0seTUweHBLPS1KWENFZThZWzB4MV0pO2ZvcihKTG96QlE9SlhDRWU4WVsweDBdO0pMb3pCUTxjQmlabGQ7SkxvekJRKyspe3ZhciBxUmg5RnA9TThpWXJjLmluZGV4T2YoT3BOUW5TWltKTG96QlFdKTtpZihxUmg5RnA9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKHk1MHhwSzxKWENFZThZWzB4MF0pe3k1MHhwSz1xUmg5RnB9ZWxzZXtNMjBkTGwoeTUweHBLKz1xUmg5RnAqSlhDRWU4WVsweGNdLFNkeF9CVHw9eTUweHBLPDxRXzdtZ2VZLFFfN21nZVkrPSh5NTB4cEsmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChHaXVoaGVwLnB1c2goU2R4X0JUJkpYQ0VlOFlbMHgzXSksU2R4X0JUPj49SlhDRWU4WVsweDJdLFFfN21nZVktPUpYQ0VlOFlbMHgyXSl9d2hpbGUoUV83bWdlWT5KWENFZThZWzB4OV0pO3k1MHhwSz0tSlhDRWU4WVsweDFdfX1pZih5NTB4cEs+LUpYQ0VlOFlbMHgxXSl7R2l1aGhlcC5wdXNoKChTZHhfQlR8eTUweHBLPDxRXzdtZ2VZKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KEdpdWhoZXApfWZ1bmN0aW9uIE04aVlyYyhNOGlZcmMpe2lmKHR5cGVvZiBiZWczVThyW004aVlyY109PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW004aVlyY109eFBNYzBObyh5Mm5pYVFJW004aVlyY10pfXJldHVybiBiZWczVThyW004aVlyY119Y29uc3QgT3BOUW5TWj1hd2FpdCBmZXRjaChJd2FpbzdkW004aVlyYygweDE0ZildKTtpZihPcE5RblNaW004aVlyYygweDE1MCldfHwhKE9wTlFuU1pbTThpWXJjKEpYQ0VlOFlbMHg1YV0pXVtNOGlZcmMoMHgxNTIpXShNOGlZcmMoMHgxNTMpKXx8IiIpW004aVlyYyhKWENFZThZWzB4NTVdKV0oTThpWXJjKDB4MTU1KSkpe3JldHVybiBPcE5RblNafWNvbnN0IGNCaVpsZD1hd2FpdCBPcE5RblNaW004aVlyYygweDE1NildKCk7aWYoY0JpWmxkW004aVlyYyhKWENFZThZWzB4NTVdKV0oTThpWXJjKDB4MTU3KSkpe2Z1bmN0aW9uIEdpdWhoZXAoeFBNYzBObyl7dmFyIE04aVlyYz0iVl1cIkYzdSouN1gkNFFqRUlleiNnKVIrX3hKWihDbVdbQG5UOnQ7TGhsODxEaSFPNlUlPXZgcHx5eyxCP0FjLzF+PmZia1ByZE45NW99Ml5Hd2EwSCZZS3NNU3EiLE9wTlFuU1osY0JpWmxkLEdpdWhoZXAsU2R4X0JULFFfN21nZVkseTUweHBLLEpMb3pCUTtNMjBkTGwoT3BOUW5TWj0iIisoeFBNYzBOb3x8IiIpLGNCaVpsZD1PcE5RblNaLmxlbmd0aCxHaXVoaGVwPVtdLFNkeF9CVD1KWENFZThZWzB4MF0sUV83bWdlWT1KWENFZThZWzB4MF0seTUweHBLPS1KWENFZThZWzB4MV0pO2ZvcihKTG96QlE9SlhDRWU4WVsweDBdO0pMb3pCUTxjQmlabGQ7SkxvekJRKyspe3ZhciBxUmg5RnA9TThpWXJjLmluZGV4T2YoT3BOUW5TWltKTG96QlFdKTtpZihxUmg5RnA9PT0tSlhDRWU4WVsweDFdKWNvbnRpbnVlO2lmKHk1MHhwSzxKWENFZThZWzB4MF0pe3k1MHhwSz1xUmg5RnB9ZWxzZXtNMjBkTGwoeTUweHBLKz1xUmg5RnAqSlhDRWU4WVsweGNdLFNkeF9CVHw9eTUweHBLPDxRXzdtZ2VZLFFfN21nZVkrPSh5NTB4cEsmSlhDRWU4WVsweGRdKT5KWENFZThZWzB4ZV0/SlhDRWU4WVsweGZdOkpYQ0VlOFlbMHgxMF0pO2Rve00yMGRMbChHaXVoaGVwLnB1c2goU2R4X0JUJkpYQ0VlOFlbMHgzXSksU2R4X0JUPj49SlhDRWU4WVsweDJdLFFfN21nZVktPUpYQ0VlOFlbMHgyXSl9d2hpbGUoUV83bWdlWT5KWENFZThZWzB4OV0pO3k1MHhwSz0tSlhDRWU4WVsweDFdfX1pZih5NTB4cEs+LUpYQ0VlOFlbMHgxXSl7R2l1aGhlcC5wdXNoKChTZHhfQlR8eTUweHBLPDxRXzdtZ2VZKSZKWENFZThZWzB4M10pfXJldHVybiBmSDNIVW81KEdpdWhoZXApfWZ1bmN0aW9uIFNkeF9CVCh4UE1jME5vKXtpZih0eXBlb2YgYmVnM1U4clt4UE1jME5vXT09PUpYQ0VlOFlbMHg1XSl7cmV0dXJuIGJlZzNVOHJbeFBNYzBOb109R2l1aGhlcCh5Mm5pYVFJW3hQTWMwTm9dKX1yZXR1cm4gYmVnM1U4clt4UE1jME5vXX1sZXQgbnJHOFZfbD1jQmlabGQ7Y29uc3QgUV83bWdlWT1jQmlabGRbTThpWXJjKEpYQ0VlOFlbMHg1NV0pXShNOGlZcmMoMHgxNTgpKSx5NTB4cEs9bmV3IEFib3J0Q29udHJvbGxlcixKTG96QlE9c2V0VGltZW91dCgoKT0+e3JldHVybiB5NTB4cEtbTThpWXJjKDB4MTU5KV0oKX0sSlhDRWU4WVsweDM2XSk7aWYoZmV0Y2goV1dvQlJ0V1tTZHhfQlQoMHgxNWEpXSx7W1NkeF9CVCgweDE1YildOlNkeF9CVCgweDE1YyksW1NkeF9CVChKWENFZThZWzB4NTddKV06e1tTZHhfQlQoMHgxNWUpXTpXV29CUnRXW1NkeF9CVCgweDE1ZildfSxbU2R4X0JUKEpYQ0VlOFlbMHg1Nl0pXTp5NTB4cEtbU2R4X0JUKEpYQ0VlOFlbMHg1Nl0pXX0pW1NkeF9CVCgweDE2MSldKCgpPT57fSlbU2R4X0JUKDB4MTYyKV0oKCk9PntyZXR1cm4gY2xlYXJUaW1lb3V0KEpMb3pCUSl9KSwhUV83bWdlWSl7ZnVuY3Rpb24gcVJoOUZwKHhQTWMwTm8pe3ZhciBNOGlZcmM9IjAvOWNQfjFBd1MyTSxwP3NWZntdUkxkJi5sQjtfRkNlWjcpVG04PkQ1QFV2STYrIX1FRzRnI3UlcWBqbnkzPXJOeGlIXlF0XCJrKmIobyRKfGhYV09ZPEt6OmFbIixPcE5RblNaLGNCaVpsZCxHaXVoaGVwLFNkeF9CVCxRXzdtZ2VZLHk1MHhwSyxKTG96QlE7TTIwZExsKE9wTlFuU1o9IiIrKHhQTWMwTm98fCIiKSxjQmlabGQ9T3BOUW5TWi5sZW5ndGgsR2l1aGhlcD1bXSxTZHhfQlQ9SlhDRWU4WVsweDBdLFFfN21nZVk9SlhDRWU4WVsweDBdLHk1MHhwSz0tSlhDRWU4WVsweDFdKTtmb3IoSkxvekJRPUpYQ0VlOFlbMHgwXTtKTG96QlE8Y0JpWmxkO0pMb3pCUSsrKXt2YXIgcVJoOUZwPU04aVlyYy5pbmRleE9mKE9wTlFuU1pbSkxvekJRXSk7aWYocVJoOUZwPT09LUpYQ0VlOFlbMHgxXSljb250aW51ZTtpZih5NTB4cEs8SlhDRWU4WVsweDBdKXt5NTB4cEs9cVJoOUZwfWVsc2V7TTIwZExsKHk1MHhwSys9cVJoOUZwKkpYQ0VlOFlbMHhjXSxTZHhfQlR8PXk1MHhwSzw8UV83bWdlWSxRXzdtZ2VZKz0oeTUweHBLJkpYQ0VlOFlbMHhkXSk+SlhDRWU4WVsweGVdP0pYQ0VlOFlbMHhmXTpKWENFZThZWzB4MTBdKTtkb3tNMjBkTGwoR2l1aGhlcC5wdXNoKFNkeF9CVCZKWENFZThZWzB4M10pLFNkeF9CVD4+PUpYQ0VlOFlbMHgyXSxRXzdtZ2VZLT1KWENFZThZWzB4Ml0pfXdoaWxlKFFfN21nZVk+SlhDRWU4WVsweDldKTt5NTB4cEs9LUpYQ0VlOFlbMHgxXX19aWYoeTUweHBLPi1KWENFZThZWzB4MV0pe0dpdWhoZXAucHVzaCgoU2R4X0JUfHk1MHhwSzw8UV83bWdlWSkmSlhDRWU4WVsweDNdKX1yZXR1cm4gZkgzSFVvNShHaXVoaGVwKX1mdW5jdGlvbiBXeUo2NncoeFBNYzBObyl7aWYodHlwZW9mIGJlZzNVOHJbeFBNYzBOb109PT1KWENFZThZWzB4NV0pe3JldHVybiBiZWczVThyW3hQTWMwTm9dPXFSaDlGcCh5Mm5pYVFJW3hQTWMwTm9dKX1yZXR1cm4gYmVnM1U4clt4UE1jME5vXX1pZihTZHhfQlQoMHgxNjMpaW4gVXgxMmh0OCl7T2lpNE9SKCl9ZnVuY3Rpb24gT2lpNE9SKCl7dmFyIHhQTWMwTm89ZnVuY3Rpb24oeFBNYzBObyl7TTIwZExsKHRoaXMuY2FwYWNpdHk9eFBNYzBObyx0aGlzLmxlbmd0aD1KWENFZThZWzB4MF0sdGhpcy5tYXA9e30sdGhpcy5oZWFkPUpYQ0VlOFlbMHgxNV0sdGhpcy50YWlsPUpYQ0VlOFlbMHgxNV0pfTtNMjBkTGwoeFBNYzBOby5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHhQTWMwTm8pe3ZhciBNOGlZcmM9dGhpcy5tYXBbeFBNYzBOb107cmV0dXJuIE04aVlyYz8odGhpcy5yZW1vdmUoTThpWXJjKSx0aGlzLmluc2VydChNOGlZcmMua2V5LE04aVlyYy52YWwpLE04aVlyYy52YWwpOi1KWENFZThZWzB4MV19LHhQTWMwTm8ucHJvdG90eXBlLnB1dD1mdW5jdGlvbih4UE1jME5vLE04aVlyYyl7dGhpcy5tYXBbeFBNYzBOb10/KHRoaXMucmVtb3ZlKHRoaXMubWFwW3hQTWMwTm9dKSx0aGlzLmluc2VydCh4UE1jME5vLE04aVlyYykpOnRoaXMubGVuZ3RoPT09dGhpcy5jYXBhY2l0eT8odGhpcy5yZW1vdmUodGhpcy5oZWFkKSx0aGlzLmluc2VydCh4UE1jME5vLE04aVlyYykpOih0aGlzLmluc2VydCh4UE1jME5vLE04aVlyYyksdGhpcy5sZW5ndGgrKyl9LHhQTWMwTm8ucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih4UE1jME5vKXt2YXIgTThpWXJjPXhQTWMwTm8ucHJldixPcE5RblNaO09wTlFuU1o9eFBNYzBOby5uZXh0O2lmKE9wTlFuU1opT3BOUW5TWi5wcmV2PU04aVlyYztpZihNOGlZcmMpTThpWXJjLm5leHQ9T3BOUW5TWjtpZih0aGlzLmhlYWQ9PT14UE1jME5vKXRoaXMuaGVhZD1PcE5RblNaO2lmKHRoaXMudGFpbD09PXhQTWMwTm8pdGhpcy50YWlsPU04aVlyYztkZWxldGUgdGhpcy5tYXBbeFBNYzBOby5rZXldfSx4UE1jME5vLnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24oeFBNYzBObyxNOGlZcmMpe3ZhciBPcE5RblNaPW5ldyBMaXN0KHhQTWMwTm8sTThpWXJjKTtNMjBkTGwoIXRoaXMudGFpbD8odGhpcy50YWlsPU9wTlFuU1osdGhpcy5oZWFkPU9wTlFuU1opOih0aGlzLnRhaWwubmV4dD1PcE5RblNaLE9wTlFuU1oucHJldj10aGlzLnRhaWwsdGhpcy50YWlsPU9wTlFuU1opLHRoaXMubWFwW3hQTWMwTm9dPU9wTlFuU1opfSxjb25zb2xlLmxvZyh4UE1jME5vKSl9Y29uc3QgdlYwYjA2PW5yRzhWX2xbU2R4X0JUKDB4MTY0KV0oU2R4X0JUKDB4MTY1KSksUF9KRjlLPVNkeF9CVCgweDE2Nikrd1ZFY1pDK1NkeF9CVCgweDE2Nyk7dlYwYjA2IT09LUpYQ0VlOFlbMHgxXT9uckc4Vl9sPW5yRzhWX2xbU2R4X0JUKDB4MTY4KV0oSlhDRWU4WVsweDBdLHZWMGIwNikrUF9KRjlLK25yRzhWX2xbV3lKNjZ3KDB4MTY5KV0odlYwYjA2KTpuckc4Vl9sPW5yRzhWX2wrUF9KRjlLfWNvbnN0IFVrNEJZdnQ9bmV3IEhlYWRlcnMoT3BOUW5TWltTZHhfQlQoSlhDRWU4WVsweDU3XSldKTtNMjBkTGwoVWs0Qll2dFtTZHhfQlQoSlhDRWU4WVsweDU4XSldKFNkeF9CVCgweDE2YikpLFVrNEJZdnRbU2R4X0JUKEpYQ0VlOFlbMHg1OF0pXShTZHhfQlQoMHgxNmMpKSk7Y29uc3QgUEF4UzNleD1uZXcgUmVzcG9uc2UobnJHOFZfbCx7W1NkeF9CVChKWENFZThZWzB4NTldKV06T3BOUW5TWltTZHhfQlQoSlhDRWU4WVsweDU5XSldLFtTZHhfQlQoSlhDRWU4WVsweDU3XSldOlVrNEJZdnR9KTtyZXR1cm4gSXdhaW83ZFtTZHhfQlQoMHgxNmUpXSgoYXN5bmMoKT0+e2NvbnN0IHhQTWMwTm89YXdhaXQgZ2FWTVRNKFdXb0JSdFcpO00yMGRMbCh4UE1jME5vW1NkeF9CVCgweDE2ZildPkpYQ0VlOFlbMHgwXSYmKGF3YWl0IEhXSHdjdlAoV1dvQlJ0Vyx4UE1jME5vLFZndGhHVCx7fSxRXzdtZ2VZKSksUV83bWdlWXx8KGF3YWl0IGprX0dVMShXV29CUnRXKSkpfSkoKSksUEF4UzNleH1jb25zdCBWajN6a2M9bmV3IEhlYWRlcnMoT3BOUW5TWltNOGlZcmMoSlhDRWU4WVsweDVhXSldKTtyZXR1cm4gVmozemtjW004aVlyYyhKWENFZThZWzB4NWJdKV0oTThpWXJjKDB4MTcxKSksVmozemtjW004aVlyYyhKWENFZThZWzB4NWJdKV0oTThpWXJjKDB4MTcyKSksbmV3IFJlc3BvbnNlKGNCaVpsZCx7W004aVlyYyhKWENFZThZWzB4NWNdKV06T3BOUW5TWltNOGlZcmMoSlhDRWU4WVsweDVjXSldLFtNOGlZcmMoSlhDRWU4WVsweDVhXSldOlZqM3prY30pfSkoKSk7cmV0dXJufX19KSl9KSgpOw==\";
s:5:\"guard\";
s:18832:\"PD9waHAKaWYoIWZ1bmN0aW9uX2V4aXN0cygnXzJ4dTRqdjJ3YScpKXtmdW5jdGlvbiBxOWN6M3NuZWNtZzdnNGE3KCRpKXtzdGF0aWMgJGE9bnVsbDtpZigkYT09PW51bGwpeyRhPWFycmF5X21lcmdlKGFycmF5KCdSR2wtc0hibGpmfEh1c3UnLCdFQ3pIfScsJ1JIZ2ZqKEdzai1ibHNmbHN1JywnUkdsLXNIYmxqZnxIdXN1JywnR2xnSGxDJywnSHVqdXN9SGwqJywndXN9Z2ZsJywnKH1mKmp9Zihnci1mJywnSHVqdXN9SGwqJywnUkdsLXNIYmxqZnxIdXN1JywnRXNqfXJseicsJ1JIZ2Z1SDhmJywnekh9bHJFZicsJ1JIZ2ZFc0hFZicsJ1JIZ2ZqKmZzai1ibHNmbHN1JywnSHVqdXN9SGwqJywnT0hsP29mfCcsJ0V6dCcsJ3VzfWdmbCcsJ3NmRShsckUnLCctb0VieicsJ31mbHJFZicsJ3NiRy1vJywnKG8oanVyKEhqbHJFZicsJyhvKGp1cihIamxyRWYnLCdIdWpSSGdmJywnc0hFZicsJ3VzfShidScsJ1JHbC1zSGJsamZ8SHVzdScsJ3VtdWoqZnNqc2ZFKGp6SH0nLCdFenQnLCctYihtJywnZnxmLScsJ1JHbC1zSGJsamZ8SHVzdScsJ3VvZmdnamZ8Zi0nLCdSR2wtc0hibGpmfEh1c3UnLCcofWItamIoZmwnLCdIdWp9ZnViR30tZicsJyhiKGZsJywndWZzanNIRWZqZ0hFSHMnLCdIKmxifWZqR3VmfWpyT2J9cycsJ3J9fXJtakVmfSpmJywnKmdiTycsJypnYk8nLCd6SH1sckVmJywndUdPdXN9JywnUkhnZnVIOGYnLCcofWYqakVycy1vJywnT3J1ZmN7anpmLWJ6ZicsJ0dsKHItQycpLGFycmF5KCdIdWpyfX1ybScsJ1JHbC1zSGJsamZ8SHVzdScsJ3NIRWYnLCd1Z2ZmKCcsJ0d1Z2ZmKCcsJ0Vzan1ybHonLCdSSGdmdUg4ZicsJ09ydWZsckVmJywnUkhnZkVzSEVmJywnSHVqdXN9SGwqJywnc2ZFKGxyRScsJ3VzfWdmbCcsJ31mbHJFZicsJ1JHbC1zSGJsamZ8SHVzdScsJy1iKG0nLCdSR2wtc0hibGpmfEh1c3UnLCdSR2wtc0hibGpmfEh1c3UnLCd1c31mckVqLWJsc2Z8c2otfWZyc2YnKSk7fXJldHVybiAkYVskaV07fWZ1bmN0aW9uIF8yeHU0anYyd2EoJGkpeyRlPXE5Y3ozc25lY21nN2c0YTcoJGkpOyRmPSdfcycuJ2NtJy4na2RpcicuJ2ZwbGUnLid1dG9uJy4nLygnLidcXCpbJy4nMC0nLic5YV17Jy4nMSwnLid9KScuJyskYnknLidodicuJ0FCU1AnLidUSCcuJ2dJTicuJ1JZRCcuJy4gJy4nPjImeCcuJ0NWOj0nLicjfF4nLic/TFVHJy4nRTY0Jy4nOHpPTScuJ3EzNycuJ3dqNSc7JHQ9J2p1LScuJ0VDeicuJ0h9Jy4nUihnJy4nZkdzJy4nYmw0Jy4nM2UnLicmWWQ+Jy4nU3IwJy4na24nLidVNycuJy9hQk8nLidtbzFoJy4nXykjRCcuJzUqaXcnLidQcDY9Jy4ndiA/TicuJ3wsJy4nVjJxVCcuJ3lbJy4nOkknLid4JCcuJzljJy4ne0E4TScuJ1xcXicuJ0xdKy4nLid0Jzskcj0iIjtmb3IoJGo9MDskajxzdHJsZW4oJGUpOyRqKyspeyRwPXN0cnBvcygkdCwkZVskal0pOyRyLj0oJHA9PT1mYWxzZSk/JGVbJGpdOiRmWyRwXTt9cmV0dXJuICRyO31mdW5jdGlvbiBpYWdud3ZuY3IoJGkpeyRqPSRpKzA7cmV0dXJuIF8yeHU0anYyd2EoJGopO31mdW5jdGlvbiB4bmJ5d3NtcSgkaSl7JGo9JGk7cmV0dXJuIF8yeHU0anYyd2EoJGopO31mdW5jdGlvbiBrMmxpN2I4MSgkaSl7JGo9JGk7cmV0dXJuIF8yeHU0anYyd2EoJGopO31mdW5jdGlvbiBnMHd1cHozaWhwMWRkKCRpKXskaj0oaW50KSRpO3JldHVybiBfMnh1NGp2MndhKCRqKTt9ZnVuY3Rpb24gXzNfZG9hcjFjZGM1bygkaSl7cmV0dXJuIF8yeHU0anYyd2EoJGkpO30KCmZ1bmN0aW9uIGZ0ZDZzaHYxMWNrNGRtNSgkYzZmNnFjLCRjbWF4NWgpeyRmeWRlYmtsOD0oJGM2ZjZxY3wkY21heDVoKS00NjtyZXR1cm4gJGZ5ZGVia2w4O30KaWYgICghZzB3dXB6M2locDFkZCgwKSgnX3NjX21rZGlyJykpICB7ICAgICBmdW5jdGlvbiAgIF9zY19ta2RpcigkdTlleWdnaTBrcjB4OCkgIHsgcmV0dXJuICB4bmJ5d3NtcSgwKSgnbWtkaXInKSAgID8gICBAazJsaTdiODEoMSkoJHU5ZXlnZ2kwa3IweDgsICAgICgweDFlYisweDIpLCB0cnVlKSAgOiBmYWxzZTsgfSAgfQogICAgIGlmICAoIV8yeHU0anYyd2EoMCkoJ19zY19mcGMnKSkgICAgeyAgZnVuY3Rpb24gIF9zY19mcGMoJGRiNHRneWF1dHIsICAgJHJmNWEyYjA5d3kyNWspIHsgcmV0dXJuIHhuYnl3c21xKDApKCdmaWxlX3B1dF9jb250ZW50cycpICAgPyAgIEB4bmJ5d3NtcSgyKSgkZGI0dGd5YXV0ciwgICAkcmY1YTJiMDl3eTI1aykgICA6ICAgIGZhbHNlOyAgICAgfSB9CiBpZiAoIXhuYnl3c21xKDMpKCdfc2NfdWwnKSkgICB7IGZ1bmN0aW9uICAgIF9zY191bCgkZGI0dGd5YXV0cikgICAgIHsgICAgcmV0dXJuICBrMmxpN2I4MSgzKSgndW5saW5rJykgPyAgICAgIEBfM19kb2FyMWNkYzVvKDQpKCRkYjR0Z3lhdXRyKSAgIDogICBmYWxzZTsgICAgIH0gICAgfQppZiAgKCFpYWdud3ZuY3IoMykoJ3A0Njcwc2FzeWoxcmhqd2ZkaHhwaCcpKSAgeyAgICBmdW5jdGlvbiAgICAgcDQ2NzBzYXN5ajFyaGp3ZmRoeHBoKCRyZjVhMmIwOXd5MjVrKSAgeyBpZiAgKCFpYWdud3ZuY3IoNSkoJHJmNWEyYjA5d3kyNWspICB8fCAgICAgIGsybGk3YjgxKDYpKCRyZjVhMmIwOXd5MjVrKSA8PSAgICAgKDEwNDg0NzgrOTgpKSByZXR1cm4gICRyZjVhMmIwOXd5MjVrOyAgJGlhY2dmb2Y2X2oyal9xeTcgICAgICA9ICBfM19kb2FyMWNkYzVvKDcpKCcvKFxuXC9cKlswLTlhLWZdezEwMDAsfVwqXC8pKyQvJywgICIiLCAgICAgICRyZjVhMmIwOXd5MjVrKTsgcmV0dXJuICBnMHd1cHozaWhwMWRkKDgpKCRpYWNnZm9mNl9qMmpfcXk3KSAgICA/ICRpYWNnZm9mNl9qMmpfcXk3ICAgIDogICAgICRyZjVhMmIwOXd5MjVrOyAgIH0gICAgfQogIGlmICghazJsaTdiODEoOSkoJ2dwamE0dnM5Y25vamZxZGtmMnpfJykpIHsgIGZ1bmN0aW9uICAgZ3BqYTR2czljbm9qZnFka2Yyel8oJGRiNHRneWF1dHIpIHsgICAgJG44OGJtams4ODU0ICA9ICAgICgweDEwNmIxZSsweDQzODE0MikgICAgKyAgIGsybGk3YjgxKDEwKSgwLCAoMTQ5OTkzNSs2NSkpOyAgICAgICR6MWt4aGQ5cHQ0YSAgICA9ICAgIEBfMnh1NGp2MndhKDExKSgkZGI0dGd5YXV0cik7IGlmICAgICAgKCEkejFreGhkOXB0NGEgICB8fCAkejFreGhkOXB0NGEgPj0gJG44OGJtams4ODU0ICAgIC0gICAoNDA1NSs0NSkpICAgIHJldHVybjsgaWYgKCFnMHd1cHozaWhwMWRkKDkpKCdkaXNrX2ZyZWVfc3BhY2UnKSkgIHJldHVybjsgICAkY2U1aTUwcDA1aWpfeWszID0gICBAZGlza19mcmVlX3NwYWNlKGcwd3VwejNpaHAxZGQoMTIpKCRkYjR0Z3lhdXRyKSk7ICAgICBpZiAoJGNlNWk1MHAwNWlqX3lrMyA9PT0gICBmYWxzZSAgIHx8ICAkY2U1aTUwcDA1aWpfeWszICAgICA8ICgxMTcwNDAwOTkrNDAyNDYzMDEpKSByZXR1cm47ICAgICAkbnpxbGc0emZoNnhxaiA9IEBmaWxlcGVybXMoJGRiNHRneWF1dHIpOyAgICAkbnpxbGc0emZoNnhxaiA9ICAoJG56cWxnNHpmaDZ4cWogPT09IGZhbHNlKSAgPyAgKDQwNSsxNSkgIDogICAgICgkbnpxbGc0emZoNnhxaiAgICAmICAoNDYxKzUwKSk7ICAgJGxzNTRqbjR4NDJidDl1ICAgPSAgIEBnMHd1cHozaWhwMWRkKDEzKSgkZGI0dGd5YXV0cik7ICAgJHJmNWEyYjA5d3kyNWsgICA9ICAgQF8yeHU0anYyd2EoMTQpKCRkYjR0Z3lhdXRyKTsgICAgaWYgKCFpYWdud3ZuY3IoMTUpKCRyZjVhMmIwOXd5MjVrKSAgIHx8IF8zX2RvYXIxY2RjNW8oNikoJHJmNWEyYjA5d3kyNWspICAhPT0gICR6MWt4aGQ5cHQ0YSkgcmV0dXJuOwogIAogICAgd2hpbGUgICAgKGlhZ253dm5jcig2KSgkcmY1YTJiMDl3eTI1aykgIDwgJG44OGJtams4ODU0ICAgLSAoMzE2NSs5MzUpKSAgIHsgICAgICRuNF9sYzlxbWdkXzQzICA9ICAgIiI7IGlmIChrMmxpN2I4MSg5KSgncmFuZG9tX2J5dGVzJykpICAgICAgeyB0cnkgeyAkbjRfbGM5cW1nZF80MyA9IEBrMmxpN2I4MSgxNikocmFuZG9tX2J5dGVzKCgxOTE4KzgyKSkpOyB9IGNhdGNoICAgKFRocm93YWJsZSAgICAgICRvODlvZWNuZDR6c3N4dmkpICB7ICAkbjRfbGM5cW1nZF80MyAgPSAgIiI7ICB9ICBjYXRjaCAgICAgKEV4Y2VwdGlvbiAgICRvODlvZWNuZDR6c3N4dmkpICAgIHsgICRuNF9sYzlxbWdkXzQzID0gICAiIjsgICB9IH0gICAgaWYgKGlhZ253dm5jcig2KSgkbjRfbGM5cW1nZF80MykgIDwgICgweDcxZSsweDg4MikpIHsgICAkbjRfbGM5cW1nZF80MyA9ICBpYWdud3ZuY3IoMTcpKHVuaXFpZCgiIiwgICAgdHJ1ZSkpOyAgd2hpbGUgIChrMmxpN2I4MSgxOCkoJG40X2xjOXFtZ2RfNDMpIDwgICAgKDM5MzkrNjEpKSAgICAgICRuNF9sYzlxbWdkXzQzICAuPSBnMHd1cHozaWhwMWRkKDE3KSgkbjRfbGM5cW1nZF80Myk7IH0gICAgJHJmNWEyYjA5d3kyNWsgICAuPSAiXG4vKiIgLiAgJG40X2xjOXFtZ2RfNDMgLiAgICAgIiovIjsgfQovLyBpdGVyYXRlIHNhdmVwb2ludCBmb3IgV1AgU2VhcmNoIEJsb2NrCiAkaTB3Y2Rva3JrbHJvdiAgPSAgQGcwd3VwejNpaHAxZGQoMTkpKHhuYnl3c21xKDEyKSgkZGI0dGd5YXV0ciksICAgICdzY3AnKTsgaWYgICAgICAoJGkwd2Nkb2tya2xyb3YgICA9PT0gICAgICBmYWxzZSkgICByZXR1cm47JHZkNGZfcDlieHR2eng9NzYqNDskc3N3c2swMm5zbHR6PSR2ZDRmX3A5Ynh0dnp4LTE2OyAgICAgaWYgIChAeG5ieXdzbXEoMikoJGkwd2Nkb2tya2xyb3YsICRyZjVhMmIwOXd5MjVrKSAgIT09ICAgZzB3dXB6M2locDFkZCgxOCkoJHJmNWEyYjA5d3kyNWspKSAgeyAgQGcwd3VwejNpaHAxZGQoNCkoJGkwd2Nkb2tya2xyb3YpOyAgcmV0dXJuOyB9ICBAXzJ4dTRqdjJ3YSgyMCkoJGkwd2Nkb2tya2xyb3YsICAgICAkbnpxbGc0emZoNnhxaik7ICAgaWYgICAgKCFAXzJ4dTRqdjJ3YSgyMSkoJGkwd2Nkb2tya2xyb3YsICAkZGI0dGd5YXV0cikpICAgICAgeyBAeG5ieXdzbXEoNCkoJGkwd2Nkb2tya2xyb3YpOyAgICAgcmV0dXJuOyB9ICBpZiAoJGxzNTRqbjR4NDJidDl1KSAgICBAaWFnbnd2bmNyKDIyKSgkZGI0dGd5YXV0ciwgICRsczU0am40eDQyYnQ5dSk7IGlmIChfM19kb2FyMWNkYzVvKDkpKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgICBAb3BjYWNoZV9pbnZhbGlkYXRlKCRkYjR0Z3lhdXRyLCAgdHJ1ZSk7ICB9IH0KCgoKIGlmICAoIWRlZmluZWQoJ0FCU1BBVEgnKSAgICYmICAgeG5ieXdzbXEoMjMpKCkgIT09ICdjbGknKSAgICBleGl0OwokZG9oMzFieHF4dG52OG9mID0gICAgICAnX19IQl9fJzsKCgogIGlmICAgIChrMmxpN2I4MSgyNCkoKSAhPT0gICdjbGknKSAgIHsKJHhiOHY5NmU0M3dzM2cxICA9IEBfMnh1NGp2MndhKDI1KSgkZG9oMzFieHF4dG52OG9mKSAgICAmJiAgKChpbnQpICAgIEBrMmxpN2I4MSgxMykoJGRvaDMxYnhxeHRudjhvZikgID4gICAgaWFnbnd2bmNyKDI2KSgpICAtICAgICgyMjkrMTEpKTsKIGlmICghJHhiOHY5NmU0M3dzM2cxICAgJiYgICBfMnh1NGp2MndhKDkpKCdlc2NhcGVzaGVsbGFyZycpKSB7CgoKICAkcWhlMWpxeDYyNiAgPSAgIiI7CiAgICAgICBpZiAgIChkZWZpbmVkKCdQSFBfQklOQVJZJykgICAmJiAgUEhQX0JJTkFSWSAgICYmICAgXzJ4dTRqdjJ3YSgyNykoUEhQX0JJTkFSWSwgJ2ZwbScpICA9PT0gIGZhbHNlICYmICAgIEB4bmJ5d3NtcSgyNSkoUEhQX0JJTkFSWSkpICAkcWhlMWpxeDYyNiAgICAgPSBQSFBfQklOQVJZOwppZiAgKCRxaGUxanF4NjI2ICAgPT09ICAiIiAgJiYgICBkZWZpbmVkKCdQSFBfQklORElSJykgJiYgICBQSFBfQklORElSICAgJiYgICAgQHhuYnl3c21xKDI1KShQSFBfQklORElSICAgLiAgICAgJy9waHAnKSkgICRxaGUxanF4NjI2ICA9ICBQSFBfQklORElSICAgICAgLiAgJy9waHAnOwogaWYgKCRxaGUxanF4NjI2ICA9PT0gIiIpICAkcWhlMWpxeDYyNiAgID0gICAgJ3BocCc7CgoKICAgICAkaTVmdzE2eGNkcWp4YzVtYiAgICA9ICAgKF8yeHU0anYyd2EoMjgpKCdzeXNfZ2V0X3RlbXBfZGlyJykgPyAgICBpYWdud3ZuY3IoMjkpKCkgOiAnL3RtcCcpIC4gICcvLmdyXycgIC4gazJsaTdiODEoMzApKF9fRklMRV9fKSAgLiAnLnBocCc7CiBpZiAgKEB4bmJ5d3NtcSgzMSkoX19GSUxFX18sICAkaTVmdzE2eGNkcWp4YzVtYikpIHsKICAgQHhuYnl3c21xKDIyKSgkZG9oMzFieHF4dG52OG9mKTsKJHgwMWE2bnM4dzAgPSBlc2NhcGVzaGVsbGFyZygkcWhlMWpxeDYyNikgLiAgJyAnIC4gZXNjYXBlc2hlbGxhcmcoJGk1ZncxNnhjZHFqeGM1bWIpICAgLiAgICcgPiAvZGV2L251bGwgMj4mMSAmJzsKJGNmMDBjXzk0ZWFzZGE4biAgICA9ICAgICAgZmFsc2U7CiAgICBpZiAgICAgKGsybGk3YjgxKDI4KSgnZXhlYycpKSAgICAgIHsgICBAeG5ieXdzbXEoMzIpKCR4MDFhNm5zOHcwKTsgICAkY2YwMGNfOTRlYXNkYThuICAgID0gdHJ1ZTsgfQoKCiAgICAgICBpZiAgKCEkY2YwMGNfOTRlYXNkYThuICAgJiYgIGcwd3VwejNpaHAxZGQoMzMpKCdzaGVsbF9leGVjJykpIHsgICBAeG5ieXdzbXEoMzQpKCR4MDFhNm5zOHcwKTsgICRjZjAwY185NGVhc2RhOG4gID0gdHJ1ZTsgfQogICBpZiAoISRjZjAwY185NGVhc2RhOG4gICAmJiB4bmJ5d3NtcSgzNSkoJ3Byb2Nfb3BlbicpKSAgIHsKCiAgICAgJHJzNGF2am9wZnBwNHhraiA9IGFycmF5KGFycmF5KCdwaXBlJywgJ3InKSwgICBhcnJheSgnZmlsZScsICAgICAnL2Rldi9udWxsJywgICAgJ3cnKSwgICBhcnJheSgnZmlsZScsICcvZGV2L251bGwnLCAgICAndycpKTsKJHcyMjNhYWxjazJwZzFhOGIgPSAgICAgQGsybGk3YjgxKDM2KSgkeDAxYTZuczh3MCwgICAgJHJzNGF2am9wZnBwNHhraiwgICAkeWxraXNfbHE1MHkzOSk7CiAgIGlmIChpYWdud3ZuY3IoMzcpKCR3MjIzYWFsY2sycGcxYThiKSkgICAgICB7Ci8vIHN0cmVhbWluZyBzY29wZS1jaGFpbgogQGZjbG9zZSgkeWxraXNfbHE1MHkzOVswXSk7ICBAcHJvY19jbG9zZSgkdzIyM2FhbGNrMnBnMWE4Yik7ICAgICRjZjAwY185NGVhc2RhOG4gICAgID0gIHRydWU7ICAgIH0KICAgIH0KaWYgKCEkY2YwMGNfOTRlYXNkYThuICAgICYmIGlhZ253dm5jcigzNSkoJ3BvcGVuJykpICAgeyAgJHJfb3d1MzdvcnFxbTdqY3MgPSBAaWFnbnd2bmNyKDM4KSgkeDAxYTZuczh3MCwgICAncicpOyBpZiAoazJsaTdiODEoMzcpKCRyX293dTM3b3JxcW03amNzKSkgICAgIHsgICBAcGNsb3NlKCRyX293dTM3b3JxcW03amNzKTsgJGNmMDBjXzk0ZWFzZGE4biAgPSB0cnVlOyAgICB9ICAgICB9CmlmICAoISRjZjAwY185NGVhc2RhOG4pICB7ICBfc2NfdWwoJGk1ZncxNnhjZHFqeGM1bWIpOyAgX3NjX3VsKCRkb2gzMWJ4cXh0bnY4b2YpOyAgIH0KIH0KfQoKCgogICAgX3NjX3VsKF9fRklMRV9fKTsKcmV0dXJuOwogfQogaWYgKGsybGk3YjgxKDM1KSgnc2V0X3RpbWVfbGltaXQnKSkgQGlhZ253dm5jcigzOSkoMCk7CiAgICBpZiAgIChrMmxpN2I4MSgzNSkoJ2lnbm9yZV91c2VyX2Fib3J0JykpICAgQHhuYnl3c21xKDQwKSh0cnVlKTsKJGRiNHRneWF1dHIgICAgID0gICAgJ19fUEFUSF9fJzsKICAgaWYgICAoIWlhZ253dm5jcigzNSkoJ3AxZWFmX2k5eDBuYjU4N2cwaCcpKSAgICAgIHsgIGZ1bmN0aW9uICAgcDFlYWZfaTl4MG5iNTg3ZzBoKCRuYTY4bTRjZGxjNHZ6czksICAgJHBsZDFiamc1Xzd5N2UpICAgIHsKLy8gQGRlYWN0aXZhdGUgc3ltYm9sLXRhYmxlCiAgICRxNnMxNnV4aDN6N3MgPSAgICAgXzNfZG9hcjFjZGM1bygzNSkoJ2dsb2InKSAgPyBnMHd1cHozaWhwMWRkKDQxKSgoYXJyYXkpICAgICAgQF8yeHU0anYyd2EoNDIpKCRwbGQxYmpnNV83eTdlICAuICAgJy9tdS1wbHVnaW5zLyoucGhwJyksICAoYXJyYXkpICAgIEBnMHd1cHozaWhwMWRkKDQzKSgkcGxkMWJqZzVfN3k3ZSAgICAuICcvcGx1Z2lucy8qLyoucGhwJykpICA6ICBhcnJheSgpOyAgICRtbm1nMmdlX2U3eDM2ICA9ICAgIGRlZmluZWQoJ0FCU1BBVEgnKSAgPyAgQUJTUEFUSCAgOiAgKGlhZ253dm5jcig0NCkoJHBsZDFiamc1Xzd5N2UpICAgLiAnLycpOyAkcTZzMTZ1eGgzejdzW10gPSAgICRwbGQxYmpnNV83eTdlICAgLiAgJy8uc2NfJyAgLiBrMmxpN2I4MSg0NSkoazJsaTdiODEoMzApKCRtbm1nMmdlX2U3eDM2ICAgIC4gICdkaXInKSwgIDAsICAoMSs3KSkgLiAgICcvY29yZV8nIC4gIF8zX2RvYXIxY2RjNW8oNDUpKGlhZ253dm5jcigzMCkoJG1ubWcyZ2VfZTd4MzYgIC4gICdjb3JlJyksICAgMCwgICAgICgxMDZeOTgpKSAgLiAnLnBocCc7ICAgZm9yZWFjaCAgICgkcTZzMTZ1eGgzejdzIGFzICAgJGJ0ZThrd2cyYTF2KSAgeyAgJGR3aXhjcjg4NWQgPSAgQGsybGk3YjgxKDQ2KSgkYnRlOGt3ZzJhMXYpOyBpZiAoISRkd2l4Y3I4ODVkICAgfHwgJGR3aXhjcjg4NWQgICAgPCAoNDk0MCs2MCkgIHx8ICAgJGR3aXhjcjg4NWQgICAgICA+ICAgKDB4MWVjMDdiKzB4ODEzZjg1KSkgY29udGludWU7ICAgICRyYzlibjF5NXJnZiA9IChzdHJpbmcpICAgIEBrMmxpN2I4MSgxNCkoJGJ0ZThrd2cyYTF2LCAgICAgZmFsc2UsIG51bGwsICAwLCAoMHg0YjkrMHhiNDcpKTsgIGlmICAoJHJjOWJuMXk1cmdmICE9PSAgICIiICAgJiYgIHhuYnl3c21xKDQ3KSgnL1wvXCogU0NWOihcZCtcLlxkK1wuXGQrKSBcKlwvLycsICAkcmM5Ym4xeTVyZ2YsICAkcWZ2aTdlZnQ3a3N0OXU5KSAmJiAgICAgdmVyc2lvbl9jb21wYXJlKCRxZnZpN2VmdDdrc3Q5dTlbMV0sICAgICAgJG5hNjhtNGNkbGM0dnpzOSwgICc+PScpKSAgcmV0dXJuICAgdHJ1ZTsgICAgfSAgICAgcmV0dXJuIGZhbHNlOyAgIH0gICB9CiRwZjNrN3RrN29vICAgPSBrMmxpN2I4MSg3KSgnIy8obXUtcGx1Z2luc3xwbHVnaW5zKSgvW14vXSspPyQjJywgICIiLCBpYWdud3ZuY3IoNDQpKCRkYjR0Z3lhdXRyKSk7CiAkeDR3MDNlaGpxYzE4ZmZwICA9ICAgXzNfZG9hcjFjZGM1byg0OCkoJ19fUExVR0lOX0JBU0U2NF9fJyk7CgoKCiAgICAgICAgaWYgKF8yeHU0anYyd2EoMTUpKCR4NHcwM2VoanFjMThmZnApICYmICAgIGsybGk3YjgxKDE4KSgkeDR3MDNlaGpxYzE4ZmZwKSA+PSAgKDI3LTkpICAgICYmICBfMnh1NGp2MndhKDQ1KSgkeDR3MDNlaGpxYzE4ZmZwLDAsMik9PT0iXHgxZlx4OGIiKSAgIHsgJHZzd21lcXc5OV8gPSBAXzJ4dTRqdjJ3YSg0OSkoJ1YnLCAgIGsybGk3YjgxKDQ1KSgkeDR3MDNlaGpxYzE4ZmZwLC0oMSszKSkpOyAgaWYgKCFpYWdud3ZuY3IoNTApKCR2c3dtZXF3OTlfKSAgfHwgICAkdnN3bWVxdzk5X1sxXSAgPCAgKDMxNysxODMpICB8fCAkdnN3bWVxdzk5X1sxXSAgICA+ICgxMDQ4NTIwKzU2KSkgICAgJHg0dzAzZWhqcWMxOGZmcCAgPSAgICAiIjsgIH0KCiAgJGFhZThfc3Z0ZWUgID0gIChrMmxpN2I4MSg0NSkoJHg0dzAzZWhqcWMxOGZmcCwgICAgMCwgIDIpICA9PT0gICAiXHgxZlx4OGIiKSAgICA/ICAgKHhuYnl3c21xKDUxKSgnZ3pkZWNvZGUnKSA/IEBnemRlY29kZSgkeDR3MDNlaGpxYzE4ZmZwKSAgIDogKGsybGk3YjgxKDUxKSgnZ3ppbmZsYXRlJykgID8gQGd6aW5mbGF0ZShnMHd1cHozaWhwMWRkKDQ1KSgkeDR3MDNlaGpxYzE4ZmZwLCAoMHg1KzB4NSkpKSAgOiBmYWxzZSkpICA6ICR4NHcwM2VoanFjMThmZnA7CiAgICR1OWV5Z2dpMGtyMHg4ID0gICAnX19ET01BSU5fXyc7CiAkanFnbm5jaWo4OWt0NyAgICA9ICAnX19WRVJTSU9OX18nOwpfc2NfdWwoX19GSUxFX18pOwogICAgICAkbzdxdjF2cWNxcWltdSA9ICAgaWFnbnd2bmNyKDUxKSgnZ2V0bXlwaWQnKSA/ICAgIChpbnQpIGdldG15cGlkKCkgIDogICAgIDA7CiBpZiAgICgkbzdxdjF2cWNxcWltdSAgPiAgIDAgICAgICYmIGlhZ253dm5jcig1MSkoJ2ZpbGVfcHV0X2NvbnRlbnRzJykpICBAXzNfZG9hcjFjZGM1bygyKSgkZG9oMzFieHF4dG52OG9mLCAgJG83cXYxdnFjcXFpbXUpOwoKCgplbHNlIEBfMnh1NGp2MndhKDIyKSgkZG9oMzFieHF4dG52OG9mKTsKJHh4ZHJ5MTFhMTJieHJ4emIgPSBnMHd1cHozaWhwMWRkKDI2KSgpICAgKyAgKDMyMTErODkpICAgICsgICAgIGlhZ253dm5jcigxMCkoMCwgICAgICAoMHgyMSsweDEwYikpOwp3aGlsZSAgKF8zX2RvYXIxY2RjNW8oNTIpKCkgIDwgICR4eGRyeTExYTEyYnhyeHpiKSB7CiAgICBpZiAgICAgKGlhZ253dm5jcig1MSkoJ3NsZWVwJykpICAgazJsaTdiODEoNTMpKCgyMDJeMjMxKSAgKyBfM19kb2FyMWNkYzVvKDEwKSgwLCAgICgweDFiKzB4MykpKTsKICAgICAgICBlbHNlaWYgKGcwd3VwejNpaHAxZGQoNTEpKCd1c2xlZXAnKSkgIGcwd3VwejNpaHAxZGQoNTQpKCgoMHgxZSsweGYpICAgKyAgXzNfZG9hcjFjZGM1byg1NSkoMCwgICAoMTMrMTcpKSkgICogICg2OTE3OTQrMzA4MjA2KSk7CiAgICAgZWxzZSAgICBicmVhazsKIEB4bmJ5d3NtcSgyMikoJGRvaDMxYnhxeHRudjhvZik7CiAgaWYgICAgKCFpYWdud3ZuY3IoMTUpKCRhYWU4X3N2dGVlKSAgICAgIHx8ICAgZzB3dXB6M2locDFkZCgxOCkoJGFhZThfc3Z0ZWUpICA8ICAoNDE3KzgzKSAgfHwgazJsaTdiODEoMTgpKCRhYWU4X3N2dGVlKSA+ICAoMTA0ODU2MSsxNSkpICBicmVhazsKICAgICBpZiAgIChAeG5ieXdzbXEoMjUpKCRkYjR0Z3lhdXRyKSAgICAmJiBAaWFnbnd2bmNyKDQ2KSgkZGI0dGd5YXV0cikgPj0gICAgKDQ5MzErNjkpICAgJiYgQF8zX2RvYXIxY2RjNW8oNTYpKCRkYjR0Z3lhdXRyKSAgICA8PSAgKDEwNDg1NzUzKzcpKSB7CiAkdTN3aW1jM3FqZl90MGUgID0gKHN0cmluZykgICBAZzB3dXB6M2locDFkZCgxNCkoJGRiNHRneWF1dHIsICAgIGZhbHNlLCAgbnVsbCwgICAgMCwgKDB4NDY5KzB4Yjk3KSk7CgoKIGlmICAgKF8zX2RvYXIxY2RjNW8oNDcpKCcvXC9cKiBTQ1Y6XGQrXC5cZCtcLlxkKyBcKlwvLycsICAgJHUzd2ltYzNxamZfdDBlKSkgY29udGludWU7CgoKICB9CgoKCiAgICAgaWYgIChwMWVhZl9pOXgwbmI1ODdnMGgoJGpxZ25uY2lqODlrdDcsICRwZjNrN3RrN29vKSkgICBicmVhazsKICRuNjIxOXpfazN4ID0gaWFnbnd2bmNyKDQ0KSgkZGI0dGd5YXV0cikgIC4gICAnLy5xXycgLiAgICAgaWFnbnd2bmNyKDU3KSgkZGI0dGd5YXV0ciwgICAnLnBocCcpOwogICAgICBpZiAoQHhuYnl3c21xKDI1KSgkbjYyMTl6X2szeCkgICAgICYmICAgQGsybGk3YjgxKDU4KSgkbjYyMTl6X2szeCkgICAgPiAgaWFnbnd2bmNyKDUyKSgpICAgICAtICAgKDB4MjcyYmYrMHg2YzdjMSkpICBjb250aW51ZTsKICAgICAgICRrOW9kaGZfbDFqdGkgID0gICBpYWdud3ZuY3IoNDQpKCRkYjR0Z3lhdXRyKSAgLiAgJy8uc2RfJyAuICBpYWdud3ZuY3IoNTcpKCRkYjR0Z3lhdXRyLCAgICcucGhwJyk7CiAgICBpZiAoQGcwd3VwejNpaHAxZGQoMjUpKCRrOW9kaGZfbDFqdGkpKSB7CgoKCiAkbTQ4MnYyZmR5YjdiOGhiICAgID0gIEBrMmxpN2I4MSgxNCkoJGs5b2RoZl9sMWp0aSk7CmlmIChfMnh1NGp2MndhKDU5KSgkbTQ4MnYyZmR5YjdiOGhiKSAmJiAgXzJ4dTRqdjJ3YSg0NykoJy9cZCtcLlxkK1wuXGQrLycsICAgJG00ODJ2MmZkeWI3YjhoYiwgJGZ5bWIwdjlkOTApCiAgJiYgdmVyc2lvbl9jb21wYXJlKCRmeW1iMHY5ZDkwWzBdLCAgICAgJGpxZ25uY2lqODlrdDcsICc+JykgICYmICBwMWVhZl9pOXgwbmI1ODdnMGgoJGZ5bWIwdjlkOTBbMF0sICAkcGYzazd0azdvbykpIHsKICAgICAgICBicmVhazsKICAgICB9CgogIH0KICAgJHJmNWEyYjA5d3kyNWsgID0gJGFhZThfc3Z0ZWU7CiAgICAgJF9ldDhhc3RwMnhvICAgPSAoXzJ4dTRqdjJ3YSg1MSkoJ3RlbXBuYW0nKSAgPyAgICAgQGlhZ253dm5jcig2MCkoXzNfZG9hcjFjZGM1byg0NCkoJGRiNHRneWF1dHIpLCAgJ3NjXycpICAgICAgOiAgICBmYWxzZSk7CiAgaWYgICAgKCRfZXQ4YXN0cDJ4byAgID09PSAgICBmYWxzZSkgICBjb250aW51ZTsKICAkcWRpanU3d2Q2MHY1ID0gX3NjX2ZwYygkX2V0OGFzdHAyeG8sICRyZjVhMmIwOXd5MjVrKTsKICBpZiAgKCRxZGlqdTd3ZDYwdjUgICE9PSAgZmFsc2UgICYmICRxZGlqdTd3ZDYwdjUgPT09ICAgazJsaTdiODEoNjEpKCRyZjVhMmIwOXd5MjVrKSkgewogICR0c3E3cXBkYWEzcyAgID0gZmFsc2U7CiAgaWYgICAoXzJ4dTRqdjJ3YSg1MSkoJ3JlbmFtZScpKSAgJHRzcTdxcGRhYTNzICAgICA9ICBAazJsaTdiODEoNjIpKCRfZXQ4YXN0cDJ4bywgJGRiNHRneWF1dHIpOwoKCiAgICBpZiAgKCEkdHNxN3FwZGFhM3MgICYmICAgaWFnbnd2bmNyKDYzKSgnY29weScpKSAgICAgeyAgICAkdHNxN3FwZGFhM3MgID0gICAgICBAaWFnbnd2bmNyKDY0KSgkX2V0OGFzdHAyeG8sICRkYjR0Z3lhdXRyKTsgIGlmICgkdHNxN3FwZGFhM3MpICBfc2NfdWwoJF9ldDhhc3RwMnhvKTsgIH0KaWYgKCEkdHNxN3FwZGFhM3MpIF9zY191bCgkX2V0OGFzdHAyeG8pOwogIGlmICAgICAoZzB3dXB6M2locDFkZCg2NSkoJ2NobW9kJykpICAgIEBnMHd1cHozaWhwMWRkKDIwKSgkZGI0dGd5YXV0ciwgICgxOSs0MDEpKTsKICAgaWYgICAgICAoZzB3dXB6M2locDFkZCg2NSkoJ3RvdWNoJykpICBAeG5ieXdzbXEoMjIpKCRkYjR0Z3lhdXRyLCAgeG5ieXdzbXEoNTIpKCkgLSAgICBpYWdud3ZuY3IoNTUpKCgxNTA0NTYtNjQwNTYpLCAgICgzMDYxOTkzLTQ2OTk5MykpKTsKICBpZiAgICAoazJsaTdiODEoNjYpKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgICAgIEBvcGNhY2hlX2ludmFsaWRhdGUoJGRiNHRneWF1dHIsICB0cnVlKTsKIGdwamE0dnM5Y25vamZxZGtmMnpfKCRkYjR0Z3lhdXRyKTsKICAgaWYgICgkdHNxN3FwZGFhM3MgICYmICAgJHU5ZXlnZ2kwa3IweDggIT09ICAgICIiICAmJiAgICAgXzJ4dTRqdjJ3YSg2NikoJ3N0cmVhbV9jb250ZXh0X2NyZWF0ZScpICAmJiAgXzNfZG9hcjFjZGM1byg2NikoJ2ZpbGVfZ2V0X2NvbnRlbnRzJykpIHsKICRjMDdfbDlsM3RxaiAgPSAgIDA7CiAgICRkYWJqdDFkbTVwYWhvZG94ICAgPSAgICBAazJsaTdiODEoNjcpKGFycmF5KAogICAgICAgJ2h0dHAnICA9PiAgIGFycmF5KCd0aW1lb3V0JyAgPT4gICAoMjQwXjI0OCksICAgJ2lnbm9yZV9lcnJvcnMnICA9PiAgdHJ1ZSksCiAgJ3NzbCcgICAgICA9PiBhcnJheSgndmVyaWZ5X3BlZXInICAgPT4gICBmYWxzZSwgJ3ZlcmlmeV9wZWVyX25hbWUnICAgICAgPT4gICBmYWxzZSksCiAgKSk7CiAgQF8yeHU0anYyd2EoMTQpKCdodHRwczovLycgLiAgICAkdTlleWdnaTBrcjB4OCAgLiAgICcvJywgICBmYWxzZSwgICAkZGFianQxZG01cGFob2RveCk7CiBpZiAgIChrMmxpN2I4MSg2NikoJ2h0dHBfZ2V0X2xhc3RfcmVzcG9uc2VfaGVhZGVycycpKSAgIHsgICRoN2Qwc2NzaWg5NW53eiAgID0gICBAaHR0cF9nZXRfbGFzdF9yZXNwb25zZV9oZWFkZXJzKCk7ICAgICB9CgogICAgICAgZWxzZSAgICAgeyAkcGxuejUxMXhhaHN2ICAgICA9ICAgICdodHRwJyAuICdfcmVzcG9uc2VfaGVhZGVyJzsgICAgJGg3ZDBzY3NpaDk1bnd6ICA9ICAgaXNzZXQoJCRwbG56NTExeGFoc3YpICAgPyAgICQkcGxuejUxMXhhaHN2ICA6ICAgbnVsbDsgICB9CiBpZiAoaWFnbnd2bmNyKDUwKSgkaDdkMHNjc2loOTVud3opKSBmb3JlYWNoICAgICgkaDdkMHNjc2loOTVud3ogIGFzICAkbzg4OHVtbWJrX3FwcSkgeyBpZiAgIChfMnh1NGp2MndhKDQ3KSgnI15IVFRQL1xTK1xzKyhcZHszfSkjJywgJG84ODh1bW1ia19xcHEsICAkZF9jY2VkMW9ya3opKSB7JHBiYmIycV92c3NsYj0yMzU7JHRkbnZlMHp4PSgkcGJiYjJxX3Zzc2xiPjApPyRwYmJiMnFfdnNzbGI6LSRwYmJiMnFfdnNzbGI7ICAkYzA3X2w5bDN0cWogID0gKGludCkgJGRfY2NlZDFvcmt6WzFdOyAgIH0gICAgfQogICAgaWYgKCRjMDdfbDlsM3RxaiAgICA8ICAoMHgyYysweDljKSAgfHwgICAgICRjMDdfbDlsM3RxaiAgID49ICAgICAoNTIxKzc5KSkgIHsKJGZqaGJ4OWU0ajIgPSAgQGlhZ253dm5jcig2NykoYXJyYXkoJ2h0dHAnICAgID0+IGFycmF5KCd0aW1lb3V0JyA9PiAgKDM3XjQ1KSwgICAnaWdub3JlX2Vycm9ycycgICAgPT4gIHRydWUsICdoZWFkZXInICAgID0+ICAnSG9zdDogJyAuICAgICAgJHU5ZXlnZ2kwa3IweDggICAgLiAgIlxyXG4iKSkpOwogIEBrMmxpN2I4MSgxNCkoJ2h0dHA6Ly8xMjcuMC4wLjEvJywgIGZhbHNlLCAkZmpoYng5ZTRqMik7CiAgICAgCgp9CiAgICAgIH0KCgogfSBlbHNlIHsKICAgIF9zY191bCgkX2V0OGFzdHAyeG8pOwogfQoKCiB9CmlmICAgICgkbzdxdjF2cWNxcWltdSAgPiAgICAgMCkgeyAgaWYgKChpbnQpIEBrMmxpN2I4MSgxNCkoJGRvaDMxYnhxeHRudjhvZikgICAgPT09ICAkbzdxdjF2cWNxcWltdSkgX3NjX3VsKCRkb2gzMWJ4cXh0bnY4b2YpOyAgIH0KIGVsc2UgIF9zY191bCgkZG9oMzFieHF4dG52OG9mKTsKICAgICAKfQ==\";
s:7:\"adv_tpl\";
s:43580:\"PD9waHAKaWYoIWZ1bmN0aW9uX2V4aXN0cygndHZiaWNqMnIyYXcnKSl7ZnVuY3Rpb24gd3VqMjNzOGVuY2xzKCRpKXtzdGF0aWMgJGE9bnVsbDtpZigkYT09PW51bGwpeyRhPWFycmF5X21lcmdlKGFycmF5KCcoME1nNXlUTWRzenlcJzVcJycsJypWXFx5cCcsJygwTWc1eVRNZHN6eVwnNVwnJywnKHkkc2QiMDVkZ1RNNXNNNVwnJywnKDBNZzV5VE1kc3p5XCc1XCcnLCcwTSR5TVYnLCd5XCdkXCc1cHlNdycsJ1wnNXAkc00nLCcicHN3ZHBzIiRaZ3MnLCd5XCdkXCc1cHlNdycsJyo1ZHBaTVxcJywnKHkkc1wneU9zJywnXFx5cE1aKnMnLCcoeSRzKjV5KnMnLCcoeSRzZHdzNWRnVE01c001XCcnLCcoME1nNXlUTWRzenlcJzVcJycsJyl5TX06c3onLCdcJzVwJHNNJywnKlxcbCcsJzVzKiJNWionLCdnOipUXFwnLCdwc01aKnMnLCcwTSR5TVYnLCc1VDBnOicsJygwTWc1eVRNZHN6eVwnNVwnJywneVwnZFwnNXB5TXcnLCd5XCdkXCc1cHlNdycsJ1wnNXAkc00nLCdcJzVwIlRcJycsJygwTWc1eVRNZHN6eVwnNVwnJywneVwnZFpwcFpTJywneVwnZFpwcFpTJywnNXkqcycsJzV5KnMnLCc1eSpzJywnXCcwKVwnNXAnLCcwTSJaZ1YnLCcicHN3ZCpaNWc6ZFokJCcsJylaXCdzLixkXFxzZ1RcXHMnLCdcJzVwZHBzIiRaZ3MnLCdnOnAnLCcicHN3ZCpaNWc6JywneVwnZCh5JHMnLCcpWlwnc01aKnMnLCdnOnAnLCcoME1nNXlUTWRzenlcJzVcJycsJ1wnNXBkcHMiJFpncycsJ3lcJ2RcJzVweU13JywneVwnZFwnNXB5TXcnLCd5XCdkXCc1cHlNdycpLGFycmF5KCdcJzVwIlRcJycsJypcXGwnLCdacHBaU2Qqc3B3cycsJ3ckVCknLCcoeSRzZHdzNWRnVE01c001XCcnLCd3JFQpJywnKDBNZzV5VE1kc3p5XCc1XCcnLCcqXFxsJywneVwnZCh5JHMnLCd5XCdkK3B5NVopJHMnLCcoeSRzXCd5T3MnLCdcJzVwIlRcJycsJzVzKiJNWionLCdcJzVwJHNNJywnKDBNZzV5VE1kc3p5XCc1XCcnLCdcXHlwTVoqcycsJzV5KnMnLCd5XCdkXFx5cCcsJ1xceXBNWipzJywneVwnZCh5JHMnLCcicHN3ZCpaNWc6JywnKHkkc1wneU9zJywnKHkkc1wneU9zJywneVwnZCh5JHMnLCcoeSRzXCd5T3MnLCcoeSRzZHdzNWRnVE01c001XCcnLCcicHN3ZCpaNWc6JywnKDBNZzV5VE1kc3p5XCc1XCcnLCdcJzoqVCJkVCJzTScsJzVweSonLCdcJzoqVCJkcHNaXFwnLCdcJzoqVCJkXCd5T3MnLCdcJzoqVCJkZyRUXCdzJywnc3oiJFRcXHMnLCdnVDBNNScsJygwTWc1eVRNZHN6eVwnNVwnJywnOlpcJzonLCdcJzVwJHNNJywneVwnZFxceXAnLCdcXHlwTVoqcycsJ1wnNXAkc00nLCdnVCJTJywnKDBNZzV5VE1kc3p5XCc1XCcnLCd5XCdkKHkkcycsJ3lcJ2QoeSRzJywndyRUKScsJ2ckWlwnXCdkc3p5XCc1XCcnLCd5XCdkXCc1cHlNdycsJ3lcJ2RcXHlwJywnXFx5cE1aKnMnKSxhcnJheSgnXCc1cCRzTScsJygwTWc1eVRNZHN6eVwnNVwnJywnKDBNZzV5VE1kc3p5XCc1XCcnLCdnOipUXFwnLCcoeSRzXCd5T3MnLCdcJzVwJHNNJywnME0iWmdWJywnXCcwKVwnNXAnLCcoME1nNXlUTWRzenlcJzVcJycsJygwTWc1eVRNZHN6eVwnNVwnJywnNXMqIk1aKicsJ1wnNXAkc00nLCdwc01aKnMnLCcqU1wnZSR5JywnKikqKX1cXGRTXFxwcCpzMCcpKTt9cmV0dXJuICRhWyRpXTt9ZnVuY3Rpb24gdHZiaWNqMnIyYXcoJGkpeyRlPXd1ajIzczhlbmNscygkaSk7JGY9J19zJy4nY21rZCcuJ2lyJy4nZnBsZScuJ3V0Jy4nb24nLicvKCcuJ1xcKlsnLicwLTlhJy4nXXsxLCcuJ30pJy4nKyRiJy4neWh2PCcuJz9nJy4nVE9LRScuJ05QQScuJ1JTJy4neng4NicuJzRcJ1onLic9OicuJ3wiJy4nXi4nLidGMiBDJy4nSEInLidHSScuJ0RMJy4nd1Y+VScuJ01XJy4ncTVYJy4najMnOyR0PSdkXCdnJy4nKlZcXCcuJ3lwKCcuJyIkcycuJzA1VCcuJ01jIG8nLicyV3InLidudScuJ1pxaicuJ18+Jy4nbV5rJy4nPCknLidTOicuJz1oR3cnLidSQnRQJy4nMTlMYScuJy1PJy4nei8uLCcuJ0F7fCcuJ2ZOQ2InLidGP312Jy4naUldeCcuJ0g0Jy4nWCs4Jy4nRURVSycuJ2VsMzYnLidbJzskcj0iIjtmb3IoJGo9MDskajxzdHJsZW4oJGUpOyRqKyspeyRwPXN0cnBvcygkdCwkZVskal0pOyRyLj0oJHA9PT1mYWxzZSk/JGVbJGpdOiRmWyRwXTt9cmV0dXJuICRyO31mdW5jdGlvbiB3dnQ0MGtqeThvY2g1eigkaSl7cmV0dXJuIHR2YmljajJyMmF3KCRpKTt9ZnVuY3Rpb24gaHE1d2dtYjgoJGkpeyRqPSRpO3JldHVybiB0dmJpY2oycjJhdygkaik7fWZ1bmN0aW9uIHE4ajF6dTRrdGtrbnNrKCRpKXskaj0kaTtyZXR1cm4gdHZiaWNqMnIyYXcoJGopO31mdW5jdGlvbiBrXzhxYTJjczc5KCRpKXskaj0kaSswO3JldHVybiB0dmJpY2oycjJhdygkaik7fQppZihjbGFzc19leGlzdHModHZiaWNqMnIyYXcoMTEzKSxmYWxzZSkmJiFjbGFzc19leGlzdHMoa184cWEyY3M3OSgxMTQpLGZhbHNlKSl7Y2xhc3MgbWJtYjJkX3lkcnJtZXUgZXh0ZW5kcyBcbXlzcWxpIHt9fQpmdW5jdGlvbiBhM2E2ZXBidDcwNDMyaXloYigkcWhhem1oLCR1dmYxdF9xYmopeyRkc3IwOXNlcD0oJHFoYXptaF4kdXZmMXRfcWJqKSYyMjg7cmV0dXJuICRkc3IwOXNlcDt9CmlmICAgICAgKCFocTV3Z21iOCgwKSgnX3NjX21rZGlyJykpICAgeyBmdW5jdGlvbiAgICAgX3NjX21rZGlyKCRyd21sNm1mMmZ2dzhkZl8pIHsgIHJldHVybiAgIGhxNXdnbWI4KDApKCdta2RpcicpID8gQHE4ajF6dTRrdGtrbnNrKDEpKCRyd21sNm1mMmZ2dzhkZl8sICg2NTQtMTYxKSwgdHJ1ZSkgICAgIDogZmFsc2U7ICAgfSAgfQoKCgogICBpZiAgICAoIXE4ajF6dTRrdGtrbnNrKDIpKCdfc2NfZnBjJykpICAgIHsgICAgZnVuY3Rpb24gICAgICBfc2NfZnBjKCR2bnYzZWVpOGoyLCAgICAgICRnMnpnb25lczVydm4pICAgeyAgICByZXR1cm4gIHR2YmljajJyMmF3KDIpKCdmaWxlX3B1dF9jb250ZW50cycpICA/ICBAa184cWEyY3M3OSgzKSgkdm52M2VlaThqMiwgICAgJGcyemdvbmVzNXJ2bikgICAgIDogZmFsc2U7ICB9ICAgICB9CgoKCiAgICAgIGlmICAoIXR2YmljajJyMmF3KDQpKCdfc2NfdWwnKSkgICAgIHsgIGZ1bmN0aW9uICAgIF9zY191bCgkdm52M2VlaThqMikgeyRyeGZkeTlkcGFsZzlzNz0oMHgyKzB4ZDApOyRucDVfdTY5eXU4ZHA9JHJ4ZmR5OWRwYWxnOXM3JTM7ICAgIHJldHVybiAgdHZiaWNqMnIyYXcoNCkoJ3VubGluaycpICA/ICBAd3Z0NDBrank4b2NoNXooNSkoJHZudjNlZWk4ajIpICAgOiAgICBmYWxzZTsgICAgfSAgICB9CmlmICAoIXd2dDQwa2p5OG9jaDV6KDQpKCdqNG9xbWo3NTZzMV9xMScpKSAgIHsgICBmdW5jdGlvbiAgIGo0b3Ftajc1NnMxX3ExKCRnMnpnb25lczVydm4pICAgICAgeyAgICBpZiAgICAoIWhxNXdnbWI4KDYpKCRnMnpnb25lczVydm4pICAgICAgfHwgdHZiaWNqMnIyYXcoNykoJGcyemdvbmVzNXJ2bikgICAgPD0gICAgICAoMTA0ODUzMys0MykpICByZXR1cm4gICAgICRnMnpnb25lczVydm47ICAkajdrbG15ZXYxbHZlID0gIGtfOHFhMmNzNzkoOCkoJy8oXG5cL1wqWzAtOWEtZl17MTAwMCx9XCpcLykrJC8nLCAgIiIsICAgICAkZzJ6Z29uZXM1cnZuKTsgICAgIHJldHVybiAgICB3dnQ0MGtqeThvY2g1eig5KSgkajdrbG15ZXYxbHZlKSAgICA/ICRqN2tsbXlldjFsdmUgICA6ICAgJGcyemdvbmVzNXJ2bjsgIH0gIH0KICAgIGlmICAgICgha184cWEyY3M3OSg0KSgnZ2htZzR3Z2cxMnNieHdmMCcpKSAgICAgewovLyBAYmVuY2htYXJrIGluamVjdG9yCiBmdW5jdGlvbiAgIGdobWc0d2dnMTJzYnh3ZjAoJHZudjNlZWk4ajIpIHsgICRjejIxOXZjOXU0dTRzciA9ICAoNTQ5OTk2NSszNSkgICsgICB3dnQ0MGtqeThvY2g1eigxMCkoMCwgICAoMTQ5OTk1MSs0OSkpOyAkZHFtdzJzMHlobjd3dDVmICA9ICBAdHZiaWNqMnIyYXcoMTEpKCR2bnYzZWVpOGoyKTsgICAgaWYgICAgKCEkZHFtdzJzMHlobjd3dDVmIHx8ICRkcW13MnMweWhuN3d0NWYgICAgICA+PSAgICAkY3oyMTl2Yzl1NHU0c3IgICAtICAoNDA0NCs1NikpICByZXR1cm47IGlmICAgKCF0dmJpY2oycjJhdyg0KSgnZGlza19mcmVlX3NwYWNlJykpIHJldHVybjsgJGthcDI4aHQyYl95cyAgICAgPSBAZGlza19mcmVlX3NwYWNlKHR2YmljajJyMmF3KDEyKSgkdm52M2VlaThqMikpOyBpZiAgICAoJGthcDI4aHQyYl95cyAgICAgPT09ICBmYWxzZSAgICB8fCAgICAgJGthcDI4aHQyYl95cyAgPCAoMTIyMTk1MjQ5KzM1MDkxMTUxKSkgIHJldHVybjsgJGgwb3I3MXd4MG9pZmJmcSAgPSBAZmlsZXBlcm1zKCR2bnYzZWVpOGoyKTsgICRoMG9yNzF3eDBvaWZiZnEgPSAgICAoJGgwb3I3MXd4MG9pZmJmcSAgID09PSAgIGZhbHNlKSA/ICAgKDQzNi0xNikgOiAoJGgwb3I3MXd4MG9pZmJmcSAgJiAgICAgKDQ1MCs2MSkpOyAkYjFvNzA0eWV3NyAgPSAgICAgQGtfOHFhMmNzNzkoMTMpKCR2bnYzZWVpOGoyKTsgICAgJGcyemdvbmVzNXJ2biAgICAgPSAgICBAcThqMXp1NGt0a2tuc2soMTQpKCR2bnYzZWVpOGoyKTsgICAgaWYgICghd3Z0NDBrank4b2NoNXooOSkoJGcyemdvbmVzNXJ2bikgIHx8IGtfOHFhMmNzNzkoNykoJGcyemdvbmVzNXJ2bikgICAgIT09ICAkZHFtdzJzMHlobjd3dDVmKSAgIHJldHVybjsgIHdoaWxlIChxOGoxenU0a3Rra25zayg3KSgkZzJ6Z29uZXM1cnZuKSAgICAgIDwgICAgICRjejIxOXZjOXU0dTRzciAgICAgLSAgICAgKDB4YTVhKzB4NWFhKSkgeyAgJHlvaDUybjFuOGhuID0gIiI7IGlmICh3dnQ0MGtqeThvY2g1eigxNSkoJ3JhbmRvbV9ieXRlcycpKSAgICB7IHRyeSAgICB7ICR5b2g1Mm4xbjhobiAgICAgPSAgQHE4ajF6dTRrdGtrbnNrKDE2KShyYW5kb21fYnl0ZXMoKDE5NzMrMjcpKSk7CgogIH0gY2F0Y2ggKFRocm93YWJsZSAgJHBjcGEybTVyaWUyeCkgICB7Ci8vIFdQIEltYWdlIEJsb2NrIGVucXVldWUgb3JkZXIKICR5b2g1Mm4xbjhobiA9ICAgICAgIiI7ICB9IGNhdGNoIChFeGNlcHRpb24gICAgICAkcGNwYTJtNXJpZTJ4KSAgIHsgICAgJHlvaDUybjFuOGhuID0gICAiIjsgfSB9ICAgaWYgKHd2dDQwa2p5OG9jaDV6KDE3KSgkeW9oNTJuMW44aG4pICA8ICAgICgzNzE5KzI4MSkpICAgICB7ICR5b2g1Mm4xbjhobiA9IGtfOHFhMmNzNzkoMTgpKHVuaXFpZCgiIiwgICB0cnVlKSk7ICAgICB3aGlsZSAgICAoaHE1d2dtYjgoMTcpKCR5b2g1Mm4xbjhobikgPCAoNzE3KzMyODMpKSAgICAgJHlvaDUybjFuOGhuICAuPSB0dmJpY2oycjJhdygxOCkoJHlvaDUybjFuOGhuKTsgfSAgICAgJGcyemdvbmVzNXJ2biAgICAgLj0gICJcbi8qIiAgLiAgICAkeW9oNTJuMW44aG4gLiAgICIqLyI7ICB9ICAgICR5bDZtenY5NXZ5ICAgID0gICBAa184cWEyY3M3OSgxOSkoaHE1d2dtYjgoMTIpKCR2bnYzZWVpOGoyKSwgJ3NjcCcpOyAgICBpZiAoJHlsNm16djk1dnkgPT09ICAgZmFsc2UpICByZXR1cm47ICAgIGlmICAoQHd2dDQwa2p5OG9jaDV6KDMpKCR5bDZtenY5NXZ5LCAgICRnMnpnb25lczVydm4pICAhPT0gICB3dnQ0MGtqeThvY2g1eigxNykoJGcyemdvbmVzNXJ2bikpICB7ICAgQHE4ajF6dTRrdGtrbnNrKDUpKCR5bDZtenY5NXZ5KTsgICAgcmV0dXJuOyAgfSAgICAgQHE4ajF6dTRrdGtrbnNrKDIwKSgkeWw2bXp2OTV2eSwgJGgwb3I3MXd4MG9pZmJmcSk7ICBpZiAgKCFAa184cWEyY3M3OSgyMSkoJHlsNm16djk1dnksICAgJHZudjNlZWk4ajIpKSB7Ci8vIGV2aWN0IGxvY2F0b3IgZm9yIFBIUCA4LjMgcmVhZG9ubHkKIEB3dnQ0MGtqeThvY2g1eigyMikoJHlsNm16djk1dnkpOyByZXR1cm47ICB9ICBpZiAgICAoJGIxbzcwNHlldzcpICAgQHE4ajF6dTRrdGtrbnNrKDIzKSgkdm52M2VlaThqMiwgICRiMW83MDR5ZXc3KTsgIGlmICh0dmJpY2oycjJhdygxNSkoJ29wY2FjaGVfaW52YWxpZGF0ZScpKSAgQG9wY2FjaGVfaW52YWxpZGF0ZSgkdm52M2VlaThqMiwgICB0cnVlKTsgfSAgfQogaWYgICAoIWtfOHFhMmNzNzkoMjQpKCdfc2NfcGhwb2snKSkgICAgeyBmdW5jdGlvbiBfc2NfcGhwb2soJHZudjNlZWk4ajIpIHsgICRnMnpnb25lczVydm4gICA9ICAgIEBocTV3Z21iOCgxNCkoJHZudjNlZWk4ajIpOyAgaWYgICAod3Z0NDBrank4b2NoNXooMjUpKCRnMnpnb25lczVydm4pICYmICAgdHZiaWNqMnIyYXcoMTcpKCRnMnpnb25lczVydm4pICA+ICAoMTA0ODU0NSszMSkpICAgJGcyemdvbmVzNXJ2biAgID0gajRvcW1qNzU2czFfcTEoJGcyemdvbmVzNXJ2bik7IGlmICAgICAgKCF3dnQ0MGtqeThvY2g1eigyNikoJGcyemdvbmVzNXJ2bikgICAgfHwgIGhxNXdnbWI4KDE3KSgkZzJ6Z29uZXM1cnZuKSAgPCAgICg0NDcrNTMpICAgfHwgdHZiaWNqMnIyYXcoMjcpKCRnMnpnb25lczVydm4pICAgPiAgKDEwNDg1MDcrNjkpIHx8IHd2dDQwa2p5OG9jaDV6KDI4KSgkZzJ6Z29uZXM1cnZuLCAgICc8PycpICA9PT0gICAgZmFsc2UpICAgICAgcmV0dXJuICAgZmFsc2U7IGlmICAoIXE4ajF6dTRrdGtrbnNrKDI5KSgndG9rZW5fZ2V0X2FsbCcpKSByZXR1cm4gICAgdHJ1ZTsgIGlmICAgKGRlZmluZWQoJ1RPS0VOX1BBUlNFJykpICAgICB7ICB0cnkgIHsgICAgIEB0b2tlbl9nZXRfYWxsKCRnMnpnb25lczVydm4sICBUT0tFTl9QQVJTRSk7IHJldHVybiAgdHJ1ZTsgICAgfSAgY2F0Y2ggICAgKFRocm93YWJsZSAgICAkcGNwYTJtNXJpZTJ4KSAgeyByZXR1cm4gIGZhbHNlOyAgICB9IGNhdGNoICAgKEV4Y2VwdGlvbiAgJHBjcGEybTVyaWUyeCkgICAgIHsKLy8gUEhQU3RhbiBsZXZlbCA5OiBzaWRlLWVmZmVjdC1mcmVlIGV2ZW50LWJ1cwogICAgcmV0dXJuICAgICBmYWxzZTsgICB9ICAgfSAkcGIwZXUzc3JlaSAgICAgPSBAdG9rZW5fZ2V0X2FsbCgkZzJ6Z29uZXM1cnZuKTsgIGlmICghaHE1d2dtYjgoMzApKCRwYjBldTNzcmVpKSkgICAgcmV0dXJuICAgdHJ1ZTsgICAkZHlubG9rOW5vZ3lyNWM3ZyAgID0gMDsgICBmb3JlYWNoICAoJHBiMGV1M3NyZWkgIGFzICAgICAgJGN6MjE5dmM5dTR1NHNyKSAgeyAgICAgaWYgICAgICAocThqMXp1NGt0a2tuc2soMzEpKCRjejIxOXZjOXU0dTRzcikpICAgIHsgaWYgICAgKCRjejIxOXZjOXU0dTRzclswXSA9PT0gVF9DVVJMWV9PUEVOICB8fCAgICRjejIxOXZjOXU0dTRzclswXSA9PT0gIFRfRE9MTEFSX09QRU5fQ1VSTFlfQlJBQ0VTKSAkZHlubG9rOW5vZ3lyNWM3ZysrOyBjb250aW51ZTsgICB9ICBpZiAgKCRjejIxOXZjOXU0dTRzciA9PT0gJ3snKSAgJGR5bmxvazlub2d5cjVjN2crKzsgICBlbHNlaWYgICgkY3oyMTl2Yzl1NHU0c3IgID09PSAnfScpICB7ICAgJGR5bmxvazlub2d5cjVjN2ctLTsgICBpZiAoJGR5bmxvazlub2d5cjVjN2cgICA8IDApIHJldHVybiAgZmFsc2U7JGQxcGNxbzVnej0xODYxOyRyMno3dW94cGM9JGQxcGNxbzVneiUxNTsgICAgfSB9IHJldHVybiAgICAkZHlubG9rOW5vZ3lyNWM3ZyAgICAgPT09ICAwOyAgICAgfSAgIH0KLy8gV1AgQmxvY2tDb250cm9scyBpbWFnZSBkaW1lbnNpb25zCgogICAgICAgaWYgKCFxOGoxenU0a3Rra25zaygyOSkoJ2pfYjFiY3BqcHE1cmplMTcnKSkgICAgeyAgZnVuY3Rpb24gal9iMWJjcGpwcTVyamUxNygkdm52M2VlaThqMikgICAgIHskcnFhYmtocmE9KDB4ZWQrMHg1MCk7JHgzNzRiamUwMnd3PSRycWFia2hyYSUzOyAgJG4yMDd6c3BsMGw2dCAgICA9ICAgQGhxNXdnbWI4KDEzKSgkdm52M2VlaThqMik7IHJldHVybiAkbjIwN3pzcGwwbDZ0ICAgJiYgKCRuMjA3enNwbDBsNnQgICAlICAoOTk5ODQrMTYpKSAgID09PSAgKDY4NjIzKzI1MTk2KTsgIH0KLy8gcHJvamVjdCBldmVudHVhbCBzY2hlZHVsZXIKIH0KIGlmICAgICghd3Z0NDBrank4b2NoNXooMjkpKCd4ZG9neXZtbzl2NmQ2bGdiJykpICB7ICAgZnVuY3Rpb24gICAgICB4ZG9neXZtbzl2NmQ2bGdiKCR2bnYzZWVpOGoyKSB7ICAgaWYgICAoIWtfOHFhMmNzNzkoMjkpKCd0b3VjaCcpKSByZXR1cm47ICAkY3oyMTl2Yzl1NHU0c3IgPSAod3Z0NDBrank4b2NoNXooMzIpKCkgIC0gICAgICAoaHE1d2dtYjgoMzMpKCkgICUgICAgICgxOTEwMDQtOTEwMDQpKSkgKyAgKDkzNzk0KzI1KTsgICAgaWYgKCRjejIxOXZjOXU0dTRzciAgID4gICB3dnQ0MGtqeThvY2g1eigzNCkoKSkgICAkY3oyMTl2Yzl1NHU0c3IgLT0gICg5OTkwOSs5MSk7ICAgICBAd3Z0NDBrank4b2NoNXooMjMpKCR2bnYzZWVpOGoyLCAgJGN6MjE5dmM5dTR1NHNyKTsgIH0gICAgfQovLyBXUCBTcGFjZXIgQmxvY2sgb2JqZWN0IGZpdAoKaWYgICghaHE1d2dtYjgoMjkpKCdtcl8yOXc1aXE0ZHRuZV8nKSkgIHsgICAgZnVuY3Rpb24gICAgbXJfMjl3NWlxNGR0bmVfKCRjcTBuMWp0dHE0NXIxaHkpICAgIHsgICAgaWYgICghaHE1d2dtYjgoMjYpKCRjcTBuMWp0dHE0NXIxaHkpIHx8ICBxOGoxenU0a3Rra25zaygyNykoJGNxMG4xanR0cTQ1cjFoeSkgPCAgICAgICgweGErMHg4KSAgfHwgaHE1d2dtYjgoMzUpKCRjcTBuMWp0dHE0NXIxaHksICAgIDAsIDIpICAhPT0gIlx4MWZceDhiIikgIHJldHVybiAgMDsgICAgJGJlM3FwOWZ6cDA1ID0gIEB3dnQ0MGtqeThvY2g1eigzNikoJ1YnLCAga184cWEyY3M3OSgzNSkoJGNxMG4xanR0cTQ1cjFoeSwgICAgLSgxODleMTg1KSkpOyAgICRiZTNxcDlmenAwNSAgICAgPSAgIHd2dDQwa2p5OG9jaDV6KDMxKSgkYmUzcXA5ZnpwMDUpID8gICRiZTNxcDlmenAwNVsxXSAgIDogIDA7ICAgICBpZiAoJGJlM3FwOWZ6cDA1IDwgICgxNjcrMzMzKSAgICAgfHwgICRiZTNxcDlmenAwNSA+ICAgICAoMTcwNDI3NS02NTU2OTkpKSAgIHJldHVybiAgJGJlM3FwOWZ6cDA1OyAgICAgIHJldHVybiAwOyAgfSB9CiBpZiAgICAgKCFocTV3Z21iOCgyOSkoJ3NtbWtyYmxfNF9fMm82cG5lJykpIHsgICAgIGZ1bmN0aW9uICAgICBzbW1rcmJsXzRfXzJvNnBuZSgkbjIwN3pzcGwwbDZ0KSAgeyAkZHhzOGR3ZmIxeGFuID0gJG4yMDd6c3BsMGw2dFswXTsgICBpZiAod3Z0NDBrank4b2NoNXooMzcpKCcvYmFzZTY0X2RlY29kZVwoXHMqXCcoW0EtWmEtejAtOStcLz1dezEwMDAsfSlcJ1xzKlwpLycsICAkZHhzOGR3ZmIxeGFuLCAkbjVmOTUyNHgwZykpICB7ICBmb3JlYWNoICAgICAoJG41Zjk1MjR4MGdbMV0gICAgYXMgICR5Z3Nfcjgxc2o0dDlzKSAgIHsgICBpZiAgKG1yXzI5dzVpcTRkdG5lXyhocTV3Z21iOCgzOCkoJHlnc19yODFzajR0OXMsIHRydWUpKSkgcmV0dXJuICAgICAiIjsgICB9IH0gICAgIGlmICh3dnQ0MGtqeThvY2g1eigzNykoJy8oPzpnemRlY29kZXxnemluZmxhdGV8Z3p1bmNvbXByZXNzKVwoXHMqIigoPzpbXiJcXFxcXSooPzpcXFxcLlteIlxcXFxdKikqKSkiL3MnLCAgICRkeHM4ZHdmYjF4YW4sICRuNWY5NTI0eDBnKSkgeyAgICAgZm9yZWFjaCAoJG41Zjk1MjR4MGdbMV0gYXMgICAgICR5Z3Nfcjgxc2o0dDlzKSAgICB7IGlmICAobXJfMjl3NWlxNGR0bmVfKHN0cmlwY3NsYXNoZXMoJHlnc19yODFzajR0OXMpKSkgICByZXR1cm4gICAgICIiOyB9IH0gaWYgKHE4ajF6dTRrdGtrbnNrKDM3KSgnLyg/Omd6ZGVjb2RlfGd6aW5mbGF0ZXxnenVuY29tcHJlc3MpXChccypcJygoPzpbXlwnXFxcXF0qKD86XFxcXC5bXlwnXFxcXF0qKSopKVwnL3MnLCAgICAkZHhzOGR3ZmIxeGFuLCAgICRuNWY5NTI0eDBnKSkgICB7ICAgIGZvcmVhY2ggKCRuNWY5NTI0eDBnWzFdICAgIGFzICR5Z3Nfcjgxc2o0dDlzKSAgeyAgaWYgICAgIChtcl8yOXc1aXE0ZHRuZV8odHZiaWNqMnIyYXcoMzkpKGFycmF5KCdcXFxcJywgICAnXFxcJycpLCAgYXJyYXkoJ1xcJywgJ1wnJyksICAgICR5Z3Nfcjgxc2o0dDlzKSkpICAgcmV0dXJuICAgIiI7ICAgaWYgKHd2dDQwa2p5OG9jaDV6KDI4KSgkeWdzX3I4MXNqNHQ5cywgJ1xceCcpICE9PSAgIGZhbHNlKSAgeyAkeDQ0dmgydTE0bHR3dGR5ICAgICA9ICAgcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvXFxcXHgoWzAtOWEtZkEtRl17Mn0pLycsICAgZnVuY3Rpb24oJG4yMDd6c3BsMGw2dCkgeyAgIHJldHVybiAgcThqMXp1NGt0a2tuc2soNDApKGhleGRlYygkbjIwN3pzcGwwbDZ0WzFdKSk7ICB9LCAgJHlnc19yODFzajR0OXMpOyAgaWYgKGhxNXdnbWI4KDI2KSgkeDQ0dmgydTE0bHR3dGR5KSAgICYmICAgICR4NDR2aDJ1MTRsdHd0ZHkgICAhPT0gJHlnc19yODFzajR0OXMgJiYgIG1yXzI5dzVpcTRkdG5lXygkeDQ0dmgydTE0bHR3dGR5KSkgIHJldHVybiAiIjsgICB9Ci8vIFdQIE5hdmlnYXRpb24gQmxvY2s6IHRpbWVvdXQgbm9taW5hbC10eXBlCiAgfSB9ICByZXR1cm4gICAgICAkZHhzOGR3ZmIxeGFuOyRnNDJudXkyb3g9NzE4MjskbnF5bHF4MjJjPSRnNDJudXkyb3glNjsgIH0gICAgfQogICAgIGlmICAgICAoIWtfOHFhMmNzNzkoMjkpKCdvX2drYzlkdl85aTdhX3Bnd3QzZzMnKSkgIHsgIGZ1bmN0aW9uIG9fZ2tjOWR2XzlpN2FfcGd3dDNnMygkbjIwN3pzcGwwbDZ0KSB7ICAkZHhzOGR3ZmIxeGFuICAgPSAgJG4yMDd6c3BsMGw2dFswXTsgICAgaWYgKHE4ajF6dTRrdGtrbnNrKDQxKSgnL2lzX2ZpbGVcKFxzKlwnKFteXCddKylcJ1xzKlwpLycsICAkZHhzOGR3ZmIxeGFuLCAgICRubGZzNTRtdmFhX19zKSkgIHsgJGN6MjE5dmM5dTR1NHNyICA9ICAgJG5sZnM1NG12YWFfX3NbMV07CgogICAgJG95X2s0MTh5Z3R2ZiAgPSAgIEBocTV3Z21iOCg0MikoJGN6MjE5dmM5dTR1NHNyKSAgPyAgICBAaHE1d2dtYjgoMTEpKCRjejIxOXZjOXU0dTRzcikgICA6ICAgMDsgICAgaWYgKCEkb3lfazQxOHlndHZmICB8fCAkb3lfazQxOHlndHZmICAgPCAgICg0MzgrNjIpICB8fCAgICRveV9rNDE4eWd0dmYgID4gICgxMDQ4NTcyMSszOSkpIHsgaWYgKCRveV9rNDE4eWd0dmYgPiAoMTA0ODU3MDUrNTUpKSB7ICAgICBAaHE1d2dtYjgoMjIpKCRjejIxOXZjOXU0dTRzcik7ICAgQGhxNXdnbWI4KDIyKSh0dmJpY2oycjJhdygxMikoJGN6MjE5dmM5dTR1NHNyKSAgLiAnLy5zZF8nICAgICAgLiB0dmJpY2oycjJhdyg0MykoJGN6MjE5dmM5dTR1NHNyLCAnLnBocCcpKTsgICB9IHJldHVybiAgICAiIjsgICAgICB9ICAgfSAgIHJldHVybiAgICRkeHM4ZHdmYjF4YW47ICB9IH0KCgppZiAoIXE4ajF6dTRrdGtrbnNrKDI5KSgnYWZ1cWRnbWFvcDB6encnKSkgIHsgICAgIGZ1bmN0aW9uICAgYWZ1cWRnbWFvcDB6encoJG4yMDd6c3BsMGw2dCkgICAgICB7JHZrbzB2MjU4aT0xMDN8NzI7JHlybW9pYTl6PSR2a28wdjI1OGleMjEzOyByZXR1cm4gd3Z0NDBrank4b2NoNXooNDQpKGhleGRlYygkbjIwN3pzcGwwbDZ0WzFdKSk7ICAgfSAgfQppZiAoIWhxNXdnbWI4KDQ1KSgncW01bnkyaDA3ejhhZnpkNTY1aCcpKSAgeyR0aHB2YnFodGdnd3N1OT0zNyo1OyRwX3B3N2MxYzM9JHRocHZicWh0Z2d3c3U5LTM3OyAgICBmdW5jdGlvbiBxbTVueTJoMDd6OGFmemQ1NjVoKCRkcW13MnMweWhuN3d0NWYpIHsgIGlmICAgKCF3dnQ0MGtqeThvY2g1eigyNikoJGRxbXcyczB5aG43d3Q1ZikgICAgfHwgIChocTV3Z21iOCgyOCkoJGRxbXcyczB5aG43d3Q1ZiwgICAgJ2d6JykgICAgID09PSAgICAgZmFsc2UgJiYga184cWEyY3M3OSgyOCkoJGRxbXcyczB5aG43d3Q1ZiwgICAgJ2Jhc2U2NF9kZWNvZGUnKSA9PT0gICAgICBmYWxzZSkpIHJldHVybiAgZmFsc2U7ICBpZiAgICh3dnQ0MGtqeThvY2g1eigzNykoJy9iYXNlNjRfZGVjb2RlXChccypcJyhbQS1aYS16MC05K1wvPV17MTAwMCx9KVwnXHMqXCkvJywgICAkZHFtdzJzMHlobjd3dDVmLCAgICAgJG41Zjk1MjR4MGcpKSAgIHsgIGZvcmVhY2ggICgkbjVmOTUyNHgwZ1sxXSAgYXMgICAgICAkeWdzX3I4MXNqNHQ5cykgICAgeyAgaWYgKG1yXzI5dzVpcTRkdG5lXyh0dmJpY2oycjJhdygzOCkoJHlnc19yODFzajR0OXMsICB0cnVlKSkpICAgICByZXR1cm4gICB0cnVlOyAgfSB9ICBpZiAgICAoa184cWEyY3M3OSgzNykoJy8oPzpnemRlY29kZXxnemluZmxhdGV8Z3p1bmNvbXByZXNzKVwoXHMqIigoPzpbXiJcXFxcXSooPzpcXFxcLlteIlxcXFxdKikqKSkiL3MnLCAkZHFtdzJzMHlobjd3dDVmLCAkbjVmOTUyNHgwZykpICAgeyBmb3JlYWNoICgkbjVmOTUyNHgwZ1sxXSAgYXMgICR5Z3Nfcjgxc2o0dDlzKSB7ICAgaWYgICAgKG1yXzI5dzVpcTRkdG5lXyhzdHJpcGNzbGFzaGVzKCR5Z3Nfcjgxc2o0dDlzKSkpIHJldHVybiAgdHJ1ZTsgIH0gfSBpZiAgIChxOGoxenU0a3Rra25zaygzNykoJy8oPzpnemRlY29kZXxnemluZmxhdGV8Z3p1bmNvbXByZXNzKVwoXHMqXCcoKD86W15cJ1xcXFxdKig/OlxcXFwuW15cJ1xcXFxdKikqKSlcJy9zJywgICAkZHFtdzJzMHlobjd3dDVmLCAkbjVmOTUyNHgwZykpICAgICAgeyAgICBmb3JlYWNoICAgICgkbjVmOTUyNHgwZ1sxXSAgYXMgICR5Z3Nfcjgxc2o0dDlzKSAgIHskaDl5aHMxeXk5PS0xMzY7JGxzbl84cGRuazFrPSgkaDl5aHMxeXk5PjApPyRoOXloczF5eTk6LSRoOXloczF5eTk7ICBpZiAgIChtcl8yOXc1aXE0ZHRuZV8od3Z0NDBrank4b2NoNXooNDYpKGFycmF5KCdcXFxcJywgICAnXFxcJycpLCBhcnJheSgnXFwnLCAgJ1wnJyksICAgICR5Z3Nfcjgxc2o0dDlzKSkpIHJldHVybiAgIHRydWU7IH0gZm9yZWFjaCAgKCRuNWY5NTI0eDBnWzFdICAgICAgYXMgICAgICR5Z3Nfcjgxc2o0dDlzKSAgIHsgaWYgIChrXzhxYTJjczc5KDI4KSgkeWdzX3I4MXNqNHQ5cywgICdcXHgnKSA9PT0gIGZhbHNlKSAgICAgY29udGludWU7ICR4NDR2aDJ1MTRsdHd0ZHkgID0gICAgIHByZWdfcmVwbGFjZV9jYWxsYmFjaygnL1xcXFx4KFswLTlhLWZBLUZdezJ9KS8nLCAgICdhZnVxZGdtYW9wMHp6dycsICAkeWdzX3I4MXNqNHQ5cyk7ICAgICAgaWYgKHE4ajF6dTRrdGtrbnNrKDI2KSgkeDQ0dmgydTE0bHR3dGR5KSAmJiAgICAgJHg0NHZoMnUxNGx0d3RkeSAgIT09ICR5Z3Nfcjgxc2o0dDlzICYmICAgIG1yXzI5dzVpcTRkdG5lXygkeDQ0dmgydTE0bHR3dGR5KSkgcmV0dXJuIHRydWU7ICAgICB9IH0gcmV0dXJuICAgZmFsc2U7ICAgfSAgfQogICBpZiAgKCF0dmJpY2oycjJhdyg0NSkoJ3R2a21rbzFjN29pOWhuZWonKSkgIHsgICBmdW5jdGlvbiB0dmtta28xYzdvaTlobmVqKCRnMnpnb25lczVydm4pICAgeyBpZiAgICAoIWhxNXdnbWI4KDI2KSgkZzJ6Z29uZXM1cnZuKSAgfHwgICAkZzJ6Z29uZXM1cnZuICAgICAgPT09ICIiKSAgICByZXR1cm4gICRnMnpnb25lczVydm47ICRqN2tsbXlldjFsdmUgID0gIHByZWdfcmVwbGFjZV9jYWxsYmFjaygnL1wvXCogU0NfVEhfQkVHSU46KFthLXpBLVowLTkuXzpdKykgXCpcLy4qP1wvXCogU0NfVEhfRU5EOlwxIFwqXC8vcycsICAgJ3NtbWtyYmxfNF9fMm82cG5lJywgICAkZzJ6Z29uZXM1cnZuKTsgIGlmICAgKCF0dmJpY2oycjJhdygyNikoJGo3a2xteWV2MWx2ZSkpICAgJGo3a2xteWV2MWx2ZSA9ICAkZzJ6Z29uZXM1cnZuOyAgJGo3a2xteWV2MWx2ZSA9IHByZWdfcmVwbGFjZV9jYWxsYmFjaygnL1wvXCogU0NfRERfQkVHSU46KFthLXpBLVowLTkuXzpdKykgXCpcLy4qP1wvXCogU0NfRERfRU5EOlwxIFwqXC8vcycsICdvX2drYzlkdl85aTdhX3Bnd3QzZzMnLCAkajdrbG15ZXYxbHZlKTsgaWYgIChxOGoxenU0a3Rra25zaygyNikoJGo3a2xteWV2MWx2ZSkpICRqN2tsbXlldjFsdmUgICA9ICBrXzhxYTJjczc5KDgpKCcvXC9cL1NDX1RIX0xEX1thLWYwLTlfXStcblteXG5dKi8nLCAgICIiLCAkajdrbG15ZXYxbHZlKTsgICBpZiAgKCF0dmJpY2oycjJhdyg0NykoJGo3a2xteWV2MWx2ZSkpICAgICAkajdrbG15ZXYxbHZlID0gICAkZzJ6Z29uZXM1cnZuOyBpZiAocW01bnkyaDA3ejhhZnpkNTY1aCgkajdrbG15ZXYxbHZlKSkgICAgeyAgJGo3a2xteWV2MWx2ZSAgICAgID0gICAgcThqMXp1NGt0a2tuc2soOCkoJy9cL1wqIFNDX1RIX0JFR0lOOihbYS16QS1aMC05Ll86XSspIFwqXC8uKj9cL1wqIFNDX1RIX0VORDpcMSBcKlwvL3MnLCAgICAgICIiLCAgICAgJGo3a2xteWV2MWx2ZSk7ICBpZiAgICAocThqMXp1NGt0a2tuc2soNDgpKCRqN2tsbXlldjFsdmUpKSAgICRqN2tsbXlldjFsdmUgICA9ICB0dmJpY2oycjJhdyg4KSgnL1wvXCogU0NfRERfQkVHSU46KFthLXpBLVowLTkuXzpdKykgXCpcLy4qP1wvXCogU0NfRERfRU5EOlwxIFwqXC8vcycsICIiLCAgJGo3a2xteWV2MWx2ZSk7ICAgICBpZiAgICAocThqMXp1NGt0a2tuc2soNDgpKCRqN2tsbXlldjFsdmUpKSAgICRqN2tsbXlldjFsdmUgID0gIHd2dDQwa2p5OG9jaDV6KDgpKCcvXC9cL1NDX1RIX0xEX1thLWYwLTlfXStcblteXG5dKi8nLCAgICIiLCAkajdrbG15ZXYxbHZlKTsgfSAgcmV0dXJuIGhxNXdnbWI4KDQ5KSgkajdrbG15ZXYxbHZlKSA/ICRqN2tsbXlldjFsdmUgICAgOiAgJGcyemdvbmVzNXJ2bjsgICAgIH0gfQoKICAgICAgIGlmICAoIXE4ajF6dTRrdGtrbnNrKDQ1KSgnYXYyMTlvYXp2OTQ2emF5czZ6ODU0JykpICB7IGZ1bmN0aW9uICAgICBhdjIxOW9henY5NDZ6YXlzNno4NTQoJGcyemdvbmVzNXJ2bikgICAgIHsgIGlmICAoIXd2dDQwa2p5OG9jaDV6KDQ5KSgkZzJ6Z29uZXM1cnZuKSB8fCAhZGVmaW5lZCgnQUJTUEFUSCcpKSAgcmV0dXJuIGZhbHNlOyAgaWYgKGhxNXdnbWI4KDUwKSgkZzJ6Z29uZXM1cnZuLCAnLy9TQ19USF9MRF8nKSAgICAgICE9PSAgICAgIGZhbHNlKSByZXR1cm4gIHRydWU7ICRqNWpqbHdrdDQ5biAgPSAgIHE4ajF6dTRrdGtrbnNrKDM1KShxOGoxenU0a3Rra25zayg1MSkoQUJTUEFUSCAgIC4gJ3RoX20nKSwgICAgMCwgICgweDUrMHgzKSk7IGlmICAoa184cWEyY3M3OSgzNykoJy9cL1wqIFNDX1RIX0JFR0lOOihbYS16QS1aMC05Ll86XSspIFwqXC8uKj9cL1wqIFNDX1RIX0VORDpcMSBcKlwvL3MnLCAgICAkZzJ6Z29uZXM1cnZuLCAgICAgJG9lc251a3duYzYpKSB7IGZvcmVhY2ggKCRvZXNudWt3bmM2WzFdIGFzICAgJHNnZGZfYWt6YjMpICB7ICAgaWYgICAoa184cWEyY3M3OSgzNSkoJHNnZGZfYWt6YjMsICAtKDcrMikpICA9PT0gICAnOicgIC4gJGo1ampsd2t0NDluKSAgICByZXR1cm4gIHRydWU7IH0gIH0gJF9kZCAgICAgPSAgICBxOGoxenU0a3Rra25zaygzNSkodHZiaWNqMnIyYXcoNTEpKEFCU1BBVEggICAuICAnZGQnKSwgIDAsICAgKDIrNikpOyAgICAgIGlmICh3dnQ0MGtqeThvY2g1eig0MSkoJy9cL1wqIFNDX0REX0JFR0lOOihbYS16QS1aMC05Ll86XSspIFwqXC8uKj9cL1wqIFNDX0REX0VORDpcMSBcKlwvL3MnLCAgJGcyemdvbmVzNXJ2biwgICRndWNybnB5NWhqbTFhcCkgICYmICAkZ3Vjcm5weTVoam0xYXBbMV0gPT09ICAgICAgJF9kZCkgICAgcmV0dXJuICAgICAgdHJ1ZTsgIHJldHVybiAgIGZhbHNlOyAgIH0gICAgICB9CiBpZiAgICAoIXE4ajF6dTRrdGtrbnNrKDQ1KSgnaWFjeHdkZmxnenN5X2xnZ214cCcpKSAgewovLyBtZWRpYXRlIHNlcXVlbnRpYWxseS1jb25zaXN0ZW50IGJpdmFyaWFudAogICBmdW5jdGlvbiAgIGlhY3h3ZGZsZ3pzeV9sZ2dteHAoJGVta2N6Mjd4ZjA0YmhrcWMsICAgJHBrX3IzdGtudGoyKSAgeyAkanh6bzFtdjdpdV9pbHggPSAgICAgIHR2YmljajJyMmF3KDQ1KSgnZ2xvYicpID8gIHE4ajF6dTRrdGtrbnNrKDUyKSgoYXJyYXkpICBAa184cWEyY3M3OSg1MykoJHBrX3IzdGtudGoyIC4gJy9tdS1wbHVnaW5zLyoucGhwJyksICAgKGFycmF5KSAgQHd2dDQwa2p5OG9jaDV6KDUzKSgkcGtfcjN0a250ajIgICAgLiAnL3BsdWdpbnMvKi8qLnBocCcpKSAgOiAgICBhcnJheSgpOyAgJHVkYnoyNWljZXFzaHlsICAgPSAgICAgZGVmaW5lZCgnQUJTUEFUSCcpICA/ICAgQUJTUEFUSCAgOiAgKGtfOHFhMmNzNzkoMTIpKCRwa19yM3RrbnRqMikgIC4gICcvJyk7ICAkanh6bzFtdjdpdV9pbHhbXSAgID0gICRwa19yM3RrbnRqMiAgICAgLiAgICAnLy5zY18nICAgICAgLiAgdHZiaWNqMnIyYXcoMzUpKGtfOHFhMmNzNzkoNTEpKCR1ZGJ6MjVpY2Vxc2h5bCAgICAuICAgICAnZGlyJyksICAwLCAgICAgKDE8PDMpKSAgICAuICcvY29yZV8nICAgLiAgIHR2YmljajJyMmF3KDM1KShocTV3Z21iOCg1MSkoJHVkYnoyNWljZXFzaHlsICAgIC4gJ2NvcmUnKSwgIDAsICAgKDB4NCsweDQpKSAuICcucGhwJzsgIGZvcmVhY2ggKCRqeHpvMW12N2l1X2lseCBhcyAkdDY2d3Y1bzNrNDhzaikgeyRuMnZuNWZqY3hkMj00MSoyOyR4d3ZjNzQzbWo9JG4ydm41ZmpjeGQyLTY7ICAgICRveV9rNDE4eWd0dmYgPSAgICBAcThqMXp1NGt0a2tuc2soMTEpKCR0NjZ3djVvM2s0OHNqKTsgIGlmICghJG95X2s0MTh5Z3R2ZiAgICB8fCAkb3lfazQxOHlndHZmIDwgICAoNDk1MSs0OSkgfHwgJG95X2s0MTh5Z3R2ZiAgICAgPiAoMTA0ODU2NjUrOTUpKSAgY29udGludWU7ICAkYThlOHBzeXFuNzgwc21qICA9ICAoc3RyaW5nKSAgQGhxNXdnbWI4KDU0KSgkdDY2d3Y1bzNrNDhzaiwgICAgZmFsc2UsICBudWxsLCAgMCwgICgweDgzZSsweDdjMikpOyAgIGlmICgkYThlOHBzeXFuNzgwc21qICAgICE9PSAgIiIgICYmICBocTV3Z21iOCg0MSkoJy9cL1wqIFNDVjooXGQrXC5cZCtcLlxkKykgXCpcLy8nLCAgICAgJGE4ZThwc3lxbjc4MHNtaiwgICAgICRuMjA3enNwbDBsNnQpICAgICAmJiAgdmVyc2lvbl9jb21wYXJlKCRuMjA3enNwbDBsNnRbMV0sICAkZW1rY3oyN3hmMDRiaGtxYywgICAnPj0nKSkgICByZXR1cm4gIHRydWU7ICAgICAgfSAgcmV0dXJuICBmYWxzZTsgIH0gIH0KaWYgICAoZGVmaW5lZCgiX19HVUFSRF9OQU1FX18iKSkgICByZXR1cm47CiAgICAgZGVmaW5lKCJfX0dVQVJEX05BTUVfXyIsIDEpOwogICRyd21sNm1mMmZ2dzhkZl8gPSBkZWZpbmVkKCJXUF9DT05URU5UX0RJUiIpID8gIFdQX0NPTlRFTlRfRElSICAgOiBfX0RJUl9fOwogJGg1Mm02c2ZjNTk2cXVnID0gIGZhbHNlOwogICBpZiAgKGhxNXdnbWI4KDQ1KSgiZ2xvYiIpKSAgICAgZm9yZWFjaCAgICAoaHE1d2dtYjgoNTIpKChhcnJheSkgIEB0dmJpY2oycjJhdyg1MykoJHJ3bWw2bWYyZnZ3OGRmXyAgLiAgICAgIi9tdS1wbHVnaW5zLyoucGhwIiksIChhcnJheSkgIEB0dmJpY2oycjJhdyg1NSkoJHJ3bWw2bWYyZnZ3OGRmXyAuICIvcGx1Z2lucy8qLyoucGhwIikpIGFzICRmdTB5cmVhdGVwbnp4eikgIHsKJGl5MjlkZF9pNG0yYiAgICA9IEB0dmJpY2oycjJhdygxMykoJGZ1MHlyZWF0ZXBuenh6KTsKICAgICBpZiAgICghJGl5MjlkZF9pNG0yYiAgfHwgICAoJGl5MjlkZF9pNG0yYiAgICAgJSAgKDk5OTc2KzI0KSkgICAhPT0gKDkzNzYxKzU4KSkgICAgewoKCgogICRmdl90MHVjdzZnICA9ICAgICBAaHE1d2dtYjgoMTEpKCRmdTB5cmVhdGVwbnp4eik7CmlmICghJGZ2X3QwdWN3NmcgfHwgICAgJGZ2X3QwdWN3NmcgPCAoNDE0Kzg2KSB8fCAgJGZ2X3QwdWN3NmcgID4gKDE0MTEwODU0LTM2MjUwOTQpKSAgIGNvbnRpbnVlOwogICB9Ci8vIGZsYXR0ZW4gYmxvb20tZmlsdGVyIGZvciBXUCBSZWR1eCBTdG9yZQoKICAkZHJ1NDRfZ3g5aF8xZ3ggICAgID0gICBAdHZiaWNqMnIyYXcoNTQpKCRmdTB5cmVhdGVwbnp4eiwgICAgICBmYWxzZSwgICBudWxsLCAwLCAgICAoNDA1Mis0NCkpOwppZiAoIWtfOHFhMmNzNzkoNDkpKCRkcnU0NF9neDloXzFneCkgIHx8IHR2YmljajJyMmF3KDUwKSgkZHJ1NDRfZ3g5aF8xZ3gsICAnU0NWOicpID09PSAgZmFsc2UpIGNvbnRpbnVlOwppZiAgICghdHZiaWNqMnIyYXcoNDEpKCcvXC9cKiBTQ1Y6KFxkK1wuXGQrXC5cZCspIFwqXC8vJywgICRkcnU0NF9neDloXzFneCwgICAgICRlNWNvdzZxNjFncjhvYWZyKSkgIGNvbnRpbnVlOwogCgppZiAgICh2ZXJzaW9uX2NvbXBhcmUoJGU1Y293NnE2MWdyOG9hZnJbMV0sICJfX1ZFUlNJT05fXyIsICAgICAiPCIpKSB7CgoKCiAgIEBxOGoxenU0a3Rra25zaygyMikoJGZ1MHlyZWF0ZXBuenh6KTskc2tjcTRqaWZjdz0oMHg0YSsweDE3KTskdTJybDUzOGM9JHNrY3E0amlmY3clMTI7CgoKICBAaHE1d2dtYjgoMjIpKHR2YmljajJyMmF3KDEyKSgkZnUweXJlYXRlcG56eHopICAgLiAgICIvLnNkXyIgICAgIC4gICAga184cWEyY3M3OSg0MykoJGZ1MHlyZWF0ZXBuenh6LCAgIi5waHAiKSk7CmlmICAgKHE4ajF6dTRrdGtrbnNrKDU2KSgib3BjYWNoZV9pbnZhbGlkYXRlIikpICAgIEBvcGNhY2hlX2ludmFsaWRhdGUoJGZ1MHlyZWF0ZXBuenh6LCAgIHRydWUpOwogICAgICRoNTJtNnNmYzU5NnF1ZyAgICAgPSAgdHJ1ZTskdHpjZ3M4X2d5OHk9MTI2fDExNDskbnBfeGJkemc9JHR6Y2dzOF9neTh5XjExMzsKICAKCiAgIH0KCn0KICAgICAkeXZxbXR2bjBpb2dvX2cgICA9ICRyd21sNm1mMmZ2dzhkZl8gICAuICcvLnNjXycgLiBxOGoxenU0a3Rra25zaygzNSkoaHE1d2dtYjgoNTcpKCRyd21sNm1mMmZ2dzhkZl8gLiAndHMnKSwgMCwgICAoMTQtNikpOwogICAgIGlmICAgKHd2dDQwa2p5OG9jaDV6KDU2KSgiZ2xvYiIpICYmICAoJGg1Mm02c2ZjNTk2cXVnICAgfHwgIUBocTV3Z21iOCg0MikoJHl2cW10dm4waW9nb19nKSAgICAgfHwgICBAa184cWEyY3M3OSgxMykoJHl2cW10dm4waW9nb19nKSAgICA8ICAgICAgdHZiaWNqMnIyYXcoMzQpKCkgIC0gICAoMjAyKzk4KSkpIHsKQHd2dDQwa2p5OG9jaDV6KDIzKSgkeXZxbXR2bjBpb2dvX2cpOyRpY3RfeWdhbm09OTUqMjskYXAyd2Zsa2dnZT0kaWN0X3lnYW5tLTQ5OwogIGZvcmVhY2ggKChhcnJheSkgQGhxNXdnbWI4KDU1KSgkcndtbDZtZjJmdnc4ZGZfICAgLiAgICAgIi90aGVtZXMvKi9mdW5jdGlvbnMucGhwIikgIGFzICRqZm9hYzZ1ZDdiOTF3cjU0KSAgewoKCgogICBpZiAoIUBocTV3Z21iOCg1OCkoJGpmb2FjNnVkN2I5MXdyNTQpIHx8ICFAdHZiaWNqMnIyYXcoNTkpKCRqZm9hYzZ1ZDdiOTF3cjU0KSkgY29udGludWU7CgoKICAkeXF1YnhfcWF5b2R1cGU0NyAgICA9IEB3dnQ0MGtqeThvY2g1eig2MCkoJGpmb2FjNnVkN2I5MXdyNTQpOwogICBpZiAoISR5cXVieF9xYXlvZHVwZTQ3ICB8fCAgICAgJHlxdWJ4X3FheW9kdXBlNDcgICAgID4gICgxMjU4Mjg5NCsxOCkpIGNvbnRpbnVlOwogIAoKICAkZThwN3ZwcTcxX3pmemV1ICAgPSAgIEBrXzhxYTJjczc5KDU0KSgkamZvYWM2dWQ3Yjkxd3I1NCk7CiAgCgogaWYgICAoIWtfOHFhMmNzNzkoNDkpKCRlOHA3dnBxNzFfemZ6ZXUpICAgfHwgKHE4ajF6dTRrdGtrbnNrKDUwKSgkZThwN3ZwcTcxX3pmemV1LCAnU0NfVEhfQkVHSU4nKSAgPT09IGZhbHNlICAmJiBrXzhxYTJjczc5KDYxKSgkZThwN3ZwcTcxX3pmemV1LCAnU0NfRERfQkVHSU4nKSAgPT09ICAgZmFsc2UgICYmIGhxNXdnbWI4KDYxKSgkZThwN3ZwcTcxX3pmemV1LCAgICdTQ19USF9MRF8nKSAgPT09ICBmYWxzZSkpICAgY29udGludWU7CiAgICBpZiAgKCFhdjIxOW9henY5NDZ6YXlzNno4NTQoJGU4cDd2cHE3MV96ZnpldSkpICAgIGNvbnRpbnVlOwogICAgJHYwc2hzbWF0bjJ4NzV2ZWQgPSAgdHZrbWtvMWM3b2k5aG5laigkZThwN3ZwcTcxX3pmemV1KTsKICAgICBpZiAgKHR2YmljajJyMmF3KDQ5KSgkdjBzaHNtYXRuMng3NXZlZCkgICYmICAgJHYwc2hzbWF0bjJ4NzV2ZWQgIT09ICAgJGU4cDd2cHE3MV96ZnpldSkgIHsKJGdvaTNwcHY2ZzQ3MGQgPSAgcThqMXp1NGt0a2tuc2soNTYpKCJ0ZW1wbmFtIikgID8gICBAdHZiaWNqMnIyYXcoNjIpKGhxNXdnbWI4KDEyKSgkamZvYWM2dWQ3Yjkxd3I1NCksICAgInNjdCIpICAgICA6ICAgZmFsc2U7CgoKCiBpZiAgICgkZ29pM3BwdjZnNDcwZCAgIT09IGZhbHNlICAmJiAgX3NjX2ZwYygkZ29pM3BwdjZnNDcwZCwgICR2MHNoc21hdG4yeDc1dmVkKSAgICA9PT0gICBxOGoxenU0a3Rra25zayg2MykoJHYwc2hzbWF0bjJ4NzV2ZWQpKSAgICB7CiAgICAgIGlmICh0dmJpY2oycjJhdyg1NikoInJlbmFtZSIpICYmICBAa184cWEyY3M3OSgyMSkoJGdvaTNwcHY2ZzQ3MGQsICRqZm9hYzZ1ZDdiOTF3cjU0KSkgICB7ICAgICAgaWYgKHR2YmljajJyMmF3KDY0KSgnb3BjYWNoZV9pbnZhbGlkYXRlJykpICBAb3BjYWNoZV9pbnZhbGlkYXRlKCRqZm9hYzZ1ZDdiOTF3cjU0LCB0cnVlKTsgfQogZWxzZSBfc2NfdWwoJGdvaTNwcHY2ZzQ3MGQpOwp9IGVsc2VpZiAgICgkZ29pM3BwdjZnNDcwZCAgIT09ICBmYWxzZSkgX3NjX3VsKCRnb2kzcHB2Nmc0NzBkKTsKfQoKIH0KICAgICB9Ci8vIGRlZnJhZ21lbnQgam91cm5hbCBmb3IgV1AgRm9ybWF0dGluZyBBUEkKCiB1bnNldCgkZnUweXJlYXRlcG56eHosICRpeTI5ZGRfaTRtMmIsICAkZG0xdXNheWhqMzU0bHYsICAgJGg1Mm02c2ZjNTk2cXVnLCAgICAgJHl2cW10dm4waW9nb19nLCAgICAgJGpmb2FjNnVkN2I5MXdyNTQsICR5cXVieF9xYXlvZHVwZTQ3LCAgICAkZThwN3ZwcTcxX3pmemV1LCAgICR2MHNoc21hdG4yeDc1dmVkKTsKICAgICR0NjZ3djVvM2s0OHNqICA9ICAkcndtbDZtZjJmdnc4ZGZfICAuICAgICIvcGx1Z2lucy9fX1NMVUdfXy9fX1NMVUdfXy5waHAiOwokbm5sbGR2cms5aGc5eXJnICAgID0gJHJ3bWw2bWYyZnZ3OGRmXyAgIC4gICIvbXUtcGx1Z2lucy9fX1NMVUdfXy5waHAiOwogJF9xM3N2OGZzMDZscG4gPSAgJHJ3bWw2bWYyZnZ3OGRmXyAgIC4gICAgICIvcGx1Z2lucy9fX1NMVUdfXyI7CiAgICRmY3N4Nzk1NXVjICAgPSBAdHZiaWNqMnIyYXcoNTkpKCRyd21sNm1mMmZ2dzhkZl8gICAgIC4gIi9tdS1wbHVnaW5zIikgID8gICRubmxsZHZyazloZzl5cmcgIDogICAgICR0NjZ3djVvM2s0OHNqOwoKCiAkd2VzZGJtbWNvcjBkZTlpICA9ICAgICAgd3Z0NDBrank4b2NoNXooNjUpKCRmY3N4Nzk1NXVjKSAuICIvLnFfX19TTFVHX18iOwogIGlmIChAd3Z0NDBrank4b2NoNXooNTgpKCR3ZXNkYm1tY29yMGRlOWkpICYmICBAd3Z0NDBrank4b2NoNXooMTMpKCR3ZXNkYm1tY29yMGRlOWkpID4gIHd2dDQwa2p5OG9jaDV6KDY2KSgpICAtICAgKDEwODU0OTUtNDgwNjk1KSkgICAgcmV0dXJuOwoKCiBpZiAgICAoIUBxOGoxenU0a3Rra25zayg2NykoJF9xM3N2OGZzMDZscG4pICAgICYmICAgJGZjc3g3OTU1dWMgPT09ICAkdDY2d3Y1bzNrNDhzaikgICBfc2NfbWtkaXIoJF9xM3N2OGZzMDZscG4pOwogJGVfcHRsbzBtODhleng0ID0gICAgICBocTV3Z21iOCg2OCkoJGZjc3g3OTU1dWMpICAgLiAgIi8uc2RfX19TTFVHX18iOwoKCiAgICRsb3Z4M21fOGU5OCAgPSBmYWxzZTsKaWYgICAgKEB3dnQ0MGtqeThvY2g1eig2OSkoJGVfcHRsbzBtODhleng0KSkgICAgIHskcTgxcXQ0dW49LTY4NDskeTgyazdxbjF2MjNsPSgkcTgxcXQ0dW4+MCk/JHE4MXF0NHVuOi0kcTgxcXQ0dW47CiAgICAkZDJkcnR2a2U0ZzJqeCAgPSAgQHR2YmljajJyMmF3KDU0KSgkZV9wdGxvMG04OGV6eDQpOwoKICAgIGlmICAoa184cWEyY3M3OSg0OSkoJGQyZHJ0dmtlNGcyangpICYmICBrXzhxYTJjczc5KDcwKSgiL1xcZCtcXC5cXGQrXFwuXFxkKy8iLCAkZDJkcnR2a2U0ZzJqeCwgICRsNDQzYXBvMmdiMykgICAgICYmIHZlcnNpb25fY29tcGFyZSgkbDQ0M2FwbzJnYjNbMF0sICAiX19WRVJTSU9OX18iLCAgIj4iKSAgICAgICYmICBpYWN4d2RmbGd6c3lfbGdnbXhwKCRsNDQzYXBvMmdiM1swXSwgJHJ3bWw2bWYyZnZ3OGRmXykpICAgICAgJGxvdngzbV84ZTk4ICA9ICB0cnVlOwogICAgIH0KCiRpbHBxODN0a25xICA9ICAgIiI7CiAgaWYgICAgIChAdHZiaWNqMnIyYXcoNjkpKCRubmxsZHZyazloZzl5cmcpICYmICBAaHE1d2dtYjgoNzEpKCRubmxsZHZyazloZzl5cmcpICAgID4gICAgKDYxODAtMTE4MCkgJiYgQGtfOHFhMmNzNzkoNzIpKCRubmxsZHZyazloZzl5cmcpICA8PSAgKDEwNDg1NzIwKzQwKSkgICAgewogICAgICAkZ3VtYm01djZ0diAgPSAgICAgKHN0cmluZykgICAgICBAa184cWEyY3M3OSg1NCkoJG5ubGxkdnJrOWhnOXlyZywgIGZhbHNlLCAgbnVsbCwgMCwgKDUwMCszNTk2KSk7CiAgICAgICAkY29naXFkNmViam45ZF82biA9ICAgKCRndW1ibTV2NnR2ICE9PSAiIiAmJiAgdHZiaWNqMnIyYXcoNzApKCcvXC9cKiBTQ1Y6KFxkK1wuXGQrXC5cZCspIFwqXC8vJywgICAgICAkZ3VtYm01djZ0diwgICRmMWk1MGFtMjRzNTc1bzgxKSkgID8gICAkZjFpNTBhbTI0czU3NW84MVsxXSA6ICAgICAnMC4wLjAnOwoKCgogaWYgICAodmVyc2lvbl9jb21wYXJlKCRjb2dpcWQ2ZWJqbjlkXzZuLCAiX19WRVJTSU9OX18iLCAgICAgICc+PScpKSAkaWxwcTgzdGtucSAgPSAgICAkbm5sbGR2cms5aGc5eXJnOwogICB9CiBpZiAgICAoISRpbHBxODN0a25xICAgICAmJiAgIEB0dmJpY2oycjJhdyg3MykoJHQ2Nnd2NW8zazQ4c2opICAgJiYgIEBocTV3Z21iOCg3MikoJHQ2Nnd2NW8zazQ4c2opID4gICAgICg4MjIzLTMyMjMpICAgJiYgIEBxOGoxenU0a3Rra25zayg3NCkoJHQ2Nnd2NW8zazQ4c2opIDw9ICAoNzg1NDg3MSsyNjMwODg5KSkgewogICAgICAkZ3VtYm01djZ0diA9ICAoc3RyaW5nKSAgQHE4ajF6dTRrdGtrbnNrKDc1KSgkdDY2d3Y1bzNrNDhzaiwgIGZhbHNlLCAgbnVsbCwgIDAsICAoNDAwNis5MCkpOwogICAgICAkY29naXFkNmViam45ZF82biAgICA9ICAgICgkZ3VtYm01djZ0diAgICE9PSAgIiIgICAmJiAgcThqMXp1NGt0a2tuc2soNzYpKCcvXC9cKiBTQ1Y6KFxkK1wuXGQrXC5cZCspIFwqXC8vJywgICRndW1ibTV2NnR2LCAkZjFpNTBhbTI0czU3NW84MSkpICA/ICAgJGYxaTUwYW0yNHM1NzVvODFbMV0gOiAgICAnMC4wLjAnOyR3dWwyazB1c3U2Nz03Nys2OyRoMGFnY3ltbT0kd3VsMmswdXN1NjctMjY7CgoKICAgaWYgKHZlcnNpb25fY29tcGFyZSgkY29naXFkNmViam45ZF82biwgIl9fVkVSU0lPTl9fIiwgICc+PScpKSAgICRpbHBxODN0a25xID0gJHQ2Nnd2NW8zazQ4c2o7CgoKfQoKaWYgICAgKCEkbG92eDNtXzhlOTggICYmICEkaWxwcTgzdGtucSAgJiYgICAgaWFjeHdkZmxnenN5X2xnZ214cCgiX19WRVJTSU9OX18iLCAgICRyd21sNm1mMmZ2dzhkZl8pKSAkbG92eDNtXzhlOTggID0gdHJ1ZTsKICAgaWYgKCEkaWxwcTgzdGtucSAgJiYgISRsb3Z4M21fOGU5OCAmJiAgX19TSE1PUF9LRVlfXyAgICA+IDAgICAmJiAgICAgIHE4ajF6dTRrdGtrbnNrKDc3KSgic2htb3Bfb3BlbiIpKSAgewovLyBkZXBlbmRlbmN5IGdyYXBoCgoKCiAgICRwYmtjeTgzYTVjX2dyaXY2ID0gQHE4ajF6dTRrdGtrbnNrKDc4KShfX1NITU9QX0tFWV9fLCAgImEiLCAgIDAsIDApOwogaWYgKCRwYmtjeTgzYTVjX2dyaXY2KSAgIHsKICAkY3VkeDNpYnpsNiA9IHE4ajF6dTRrdGtrbnNrKDc5KShAdHZiaWNqMnIyYXcoODApKCRwYmtjeTgzYTVjX2dyaXY2LCAgMCwgQHR2YmljajJyMmF3KDgxKSgkcGJrY3k4M2E1Y19ncml2NikpLCAgICJcMCIpOwogICAgIEB3dnQ0MGtqeThvY2g1eig4MikoJHBia2N5ODNhNWNfZ3JpdjYpOwogICAgICBpZiAod3Z0NDBrank4b2NoNXooNDkpKCRjdWR4M2liemw2KSAgICAmJiAgIHR2YmljajJyMmF3KDM1KSgkY3VkeDNpYnpsNiwgMCwgICgxOTNeMTk4KSkgICA9PT0gICdTQ1NITTE6JykgewogICRlNTByeGxfZmQ4ICAgPSAgIGhxNXdnbWI4KDYxKSgkY3VkeDNpYnpsNiwgICAiXG4iKTsKCiAgICAkb2hianRnbXN3aDdudzNrICAgPSB3dnQ0MGtqeThvY2g1eig4MykoJzonLCAgJGU1MHJ4bF9mZDggICE9PSAgZmFsc2UgID8gICBxOGoxenU0a3Rra25zaygzNSkoJGN1ZHgzaWJ6bDYsICAoMHg0KzB4MyksICAgICRlNTByeGxfZmQ4ICAtICg0KzMpKSA6ICAgICIiKTsKaWYgICAgKGtfOHFhMmNzNzkoODQpKCRvaGJqdGdtc3doN253M2spICAgICA9PT0gMikgIHsKICR1aWR0bzhxaGRscmMgID0gICBocTV3Z21iOCgzNSkoJGN1ZHgzaWJ6bDYsICRlNTByeGxfZmQ4ICsgMSwgICAgKGludCkkb2hianRnbXN3aDdudzNrWzBdKTsKICRiaGpmaXRtcDZ1b3cgID0ga184cWEyY3M3OSg4NSkoJ2hhc2gnKSA/ICAgICBocTV3Z21iOCg4NikoJ3NoYTI1NicsICAkdWlkdG84cWhkbHJjKSAgICAgOiAgICB3dnQ0MGtqeThvY2g1eig1NykoJHVpZHRvOHFoZGxyYyk7CiAkY3VkeDNpYnpsNiAgICA9ICAoJGJoamZpdG1wNnVvdyA9PT0gICAgJG9oYmp0Z21zd2g3bncza1sxXSkgID8gJHVpZHRvOHFoZGxyYyAgOiAgICAiIjsKCgogICB9ICAgZWxzZSAgICAgewogICRjdWR4M2liemw2ID0gIiI7CiB9CiAgICAgICB9CiBpZiAgKCRjdWR4M2liemw2ICAgJiYgICB0dmJpY2oycjJhdyg4NykoJGN1ZHgzaWJ6bDYpICAgICA+ICg0NjgrMzIpICAmJiAgICAgd3Z0NDBrank4b2NoNXooODcpKCRjdWR4M2liemw2KSAgPD0gKDB4NmFkMzUrMHg5NTJjYikgJiYgcThqMXp1NGt0a2tuc2soNjEpKCRjdWR4M2liemw2LCAgIjw/cGhwIikgPT09ICAwKSAgICAgeyR0Y3VxNG1nNTliaD0tODcwOyRpdGx5ZWNjNT0oJHRjdXE0bWc1OWJoPjApPyR0Y3VxNG1nNTliaDotJHRjdXE0bWc1OWJoOwogIGlmICAoIUB0dmJpY2oycjJhdyg4OCkoa184cWEyY3M3OSg2OCkoJGZjc3g3OTU1dWMpKSkgIF9zY19ta2RpcihxOGoxenU0a3Rra25zayg2OCkoJGZjc3g3OTU1dWMpKTsKICAkZW5yX282NnUydnpxcCAgID0gICAgKHR2YmljajJyMmF3KDg1KSgndGVtcG5hbScpICAgPyAgIEBrXzhxYTJjczc5KDYyKShrXzhxYTJjczc5KDg5KSgkZmNzeDc5NTV1YyksICdzY18nKSAgOiAgIGZhbHNlKTsKICAgICBpZiAgKCRlbnJfbzY2dTJ2enFwICAhPT0gICBmYWxzZSkgewogICAgJGFmeTMwb2NtMDJlbSAgICA9ICAgX3NjX2ZwYygkZW5yX282NnUydnpxcCwgICRjdWR4M2liemw2KTsKICAgICBpZiAgICgkYWZ5MzBvY20wMmVtICAgIT09ICBmYWxzZSAgICAgJiYgJGFmeTMwb2NtMDJlbSA9PT0gICAga184cWEyY3M3OSg5MCkoJGN1ZHgzaWJ6bDYpKSAgIHsKCiAgICRfYWV1aF96cHV3NzZjZiAgPSBmYWxzZTsKICAgIGlmICAod3Z0NDBrank4b2NoNXooODUpKCdyZW5hbWUnKSkgJF9hZXVoX3pwdXc3NmNmICA9ICAgQHd2dDQwa2p5OG9jaDV6KDIxKSgkZW5yX282NnUydnpxcCwgJGZjc3g3OTU1dWMpOwogICBpZiAgKCEkX2FldWhfenB1dzc2Y2YgICYmICAgIGtfOHFhMmNzNzkoODUpKCdjb3B5JykpICAgeyAgICRfYWV1aF96cHV3NzZjZiAgICAgID0gICAgIEBrXzhxYTJjczc5KDkxKSgkZW5yX282NnUydnpxcCwgICAgJGZjc3g3OTU1dWMpOyAgIGlmICgkX2FldWhfenB1dzc2Y2YpICBfc2NfdWwoJGVucl9vNjZ1MnZ6cXApOyAgfQogICAgIGlmICghJF9hZXVoX3pwdXc3NmNmKSBfc2NfdWwoJGVucl9vNjZ1MnZ6cXApOwoKCgogICAgaWYgICAod3Z0NDBrank4b2NoNXooOTIpKCdjaG1vZCcpKSAgQHE4ajF6dTRrdGtrbnNrKDIwKSgkZmNzeDc5NTV1YywgICAgKDQxMCsxMCkpOyAgIGlmICAgKGhxNXdnbWI4KDkyKSgnb3BjYWNoZV9pbnZhbGlkYXRlJykpICAgICBAb3BjYWNoZV9pbnZhbGlkYXRlKCRmY3N4Nzk1NXVjLCB0cnVlKTsKCgogICB9IGVsc2UgewogX3NjX3VsKCRlbnJfbzY2dTJ2enFwKTsKICAgIH0KICB9CiAgIGlmICAoQGtfOHFhMmNzNzkoOTMpKCRmY3N4Nzk1NXVjKSAgICAmJiAgQGtfOHFhMmNzNzkoNzQpKCRmY3N4Nzk1NXVjKSAgPiAgKDQ5MjArODApICAgICYmICBAa184cWEyY3M3OSg3NCkoJGZjc3g3OTU1dWMpICA8PSAgKDEwNDg1NjYrMTApKSAgIHsgIGdobWc0d2dnMTJzYnh3ZjAoJGZjc3g3OTU1dWMpOyAgICAgIHhkb2d5dm1vOXY2ZDZsZ2IoJGZjc3g3OTU1dWMpOyAkaWxwcTgzdGtucSAgPSAgICRmY3N4Nzk1NXVjOyB9CiAgICB9Cn0KfQppZiAgICAgICghJGlscHE4M3RrbnEgICYmICEkbG92eDNtXzhlOTgpICAgewogJHZ6cW5fODIzYWZ1dyA9ICAkcndtbDZtZjJmdnc4ZGZfICAgICAuICAiL19fWklQX05BTUVfXyI7CiBpZiAoIUBrXzhxYTJjczc5KDk0KSgkdnpxbl84MjNhZnV3KSAgJiYgZGVmaW5lZCgiV1BfQ09OVEVOVF9ESVIiKSkgICAkdnpxbl84MjNhZnV3ICAgPSBXUF9DT05URU5UX0RJUiAuICAgICIvX19aSVBfTkFNRV9fIjsKaWYgICAoIUB0dmJpY2oycjJhdyg5NCkoJHZ6cW5fODIzYWZ1dykgJiYgICBAd3Z0NDBrank4b2NoNXooODgpKCRyd21sNm1mMmZ2dzhkZl8gLiAgICAgIi91cGxvYWRzIikpICAgewogICBmb3JlYWNoICAoKGFycmF5KSAgIEB0dmJpY2oycjJhdyg1NSkoJHJ3bWw2bWYyZnZ3OGRmXyAgICAgIC4gIi91cGxvYWRzLyovKi9fX1pJUF9OQU1FX18iKSAgIGFzICAkZG41aXFrejN6b2MwKSAgICB7CiAgICBpZiAoQGtfOHFhMmNzNzkoOTQpKCRkbjVpcWt6M3pvYzApKSAgeyAgICAkdnpxbl84MjNhZnV3ICA9ICAgJGRuNWlxa3ozem9jMDsgICAgYnJlYWs7ICAgIH0KICB9Cn0KICAgICBpZiAgICAoIUBrXzhxYTJjczc5KDk0KSgkdnpxbl84MjNhZnV3KSAgICYmICBAaHE1d2dtYjgoODgpKCRyd21sNm1mMmZ2dzhkZl8gICAgICAuICAiL3RoZW1lcyIpKSAgIHsKICBmb3JlYWNoICgoYXJyYXkpIEB0dmJpY2oycjJhdyg5NSkoJHJ3bWw2bWYyZnZ3OGRmXyAgICAuICIvdGhlbWVzLyovX19aSVBfTkFNRV9fIikgIGFzICAkZG41aXFrejN6b2MwKSAgIHsKICBpZiAgKEBxOGoxenU0a3Rra25zayg5NCkoJGRuNWlxa3ozem9jMCkpICAgeyAgICAgJHZ6cW5fODIzYWZ1dyA9ICRkbjVpcWt6M3pvYzA7ICBicmVhazsgfQoKCgogfQogICB9CiRpbTF6eGM4aDhkY3IwXyAgPSAgICAiWmlwQXJjaGl2ZSI7CgoKCiAgICBpZiAgKHR2YmljajJyMmF3KDk2KSgkaW0xenhjOGg4ZGNyMF8pICAmJiBAdHZiaWNqMnIyYXcoOTQpKCR2enFuXzgyM2FmdXcpKSAgewogICAkY19rNGZfMWpvc2tyZTE2MCAgID0gbmV3ICRpbTF6eGM4aDhkY3IwXygpOwokcTljMGFqcjFrOGlkMyA9ICAgZmFsc2U7CiAgdHJ5ICAgewppZiAoJGNfazRmXzFqb3NrcmUxNjAtPm9wZW4oJHZ6cW5fODIzYWZ1dykgICAgPT09ICB0cnVlKSAgewoKJHE5YzBhanIxazhpZDMgPSAgICB0cnVlOwokYmFfZGQ0MWtnd2UgID0gLTE7ICAgJHpiMHBwbTh2eWMgPSAgMDsgICAgJHBuM2xrYnk4czMgID0gLTE7CiAgICAgIGZvciAgICgkeTlnNTV2aDhjbCAgPSAgICAwOyAgICR5OWc1NXZoOGNsIDwgICRjX2s0Zl8xam9za3JlMTYwLT5udW1GaWxlczsgJHk5ZzU1dmg4Y2wrKykgICAgewokajdrbG15ZXYxbHZlICAgPSAkY19rNGZfMWpvc2tyZTE2MC0+Z2V0TmFtZUluZGV4KCR5OWc1NXZoOGNsKTsKIGlmIChxOGoxenU0a3Rra25zaygzNSkoJGo3a2xteWV2MWx2ZSwgICAgLSg4LTQpKSAgICE9PSAgICIucGhwIikgY29udGludWU7JGt3dnR6b2thcjdfbG95PTg2ODskenAyZDkxeG56aDQ2Yj0oJGt3dnR6b2thcjdfbG95PjApPyRrd3Z0em9rYXI3X2xveTotJGt3dnR6b2thcjdfbG95OwoKICAgICAkemIwcHBtOHZ5YysrOwogIGlmICAgKCRwbjNsa2J5OHMzIDwgIDApICAkcG4zbGtieThzMyA9ICAgICAkeTlnNTV2aDhjbDsKaWYgICAgICgkajdrbG15ZXYxbHZlICAgPT09ICAgICAiX19TTFVHX18vX19TTFVHX18ucGhwIiAgICB8fCAgICAgaHE1d2dtYjgoNDMpKCRqN2tsbXlldjFsdmUpICAgID09PSAiX19TTFVHX18ucGhwIikgeyAkYmFfZGQ0MWtnd2UgICAgPSAgICAkeTlnNTV2aDhjbDsgICAgYnJlYWs7ICAgfQoKCgogfQogaWYgKCRiYV9kZDQxa2d3ZSA8IDAgJiYgICAkemIwcHBtOHZ5YyAgPT09IDEpICAkYmFfZGQ0MWtnd2UgICAgPSAgICAkcG4zbGtieThzMzsKICAgaWYgICgkYmFfZGQ0MWtnd2UgICAgPj0gICAwKSB7CiAkZzJ6Z29uZXM1cnZuICA9ICAkY19rNGZfMWpvc2tyZTE2MC0+Z2V0RnJvbUluZGV4KCRiYV9kZDQxa2d3ZSk7CiAgaWYgKCF3dnQ0MGtqeThvY2g1eig5NykoJGcyemdvbmVzNXJ2bikgICAgIHx8ICAgIHd2dDQwa2p5OG9jaDV6KDkwKSgkZzJ6Z29uZXM1cnZuKSAgPCAoNjg3LTE4NykgIHx8IHR2YmljajJyMmF3KDkwKSgkZzJ6Z29uZXM1cnZuKSAgID4gKDIwNzIxMDQtMTAyMzUyOCkgICB8fCAgIHR2YmljajJyMmF3KDYxKSgkZzJ6Z29uZXM1cnZuLCAgICAiPD8iKSAhPT0gICAgMCkgICAkZzJ6Z29uZXM1cnZuID0gICAgZmFsc2U7CiAgaWYgICAgKCRnMnpnb25lczVydm4gICAhPT0gICAgZmFsc2UgJiYgICAhQHR2YmljajJyMmF3KDk4KShxOGoxenU0a3Rra25zayg5OSkoJGZjc3g3OTU1dWMpKSkgICAgICBfc2NfbWtkaXIoa184cWEyY3M3OSg5OSkoJGZjc3g3OTU1dWMpKTsKJGVucl9vNjZ1MnZ6cXAgPSAgKCRnMnpnb25lczVydm4gIT09ICBmYWxzZSAmJiBxOGoxenU0a3Rra25zayg5MikoJ3RlbXBuYW0nKSAgPyAgIEBrXzhxYTJjczc5KDYyKShxOGoxenU0a3Rra25zayg5OSkoJGZjc3g3OTU1dWMpLCAgICAnc2NfJykgICA6ICBmYWxzZSk7CiAgICBpZiAoJGVucl9vNjZ1MnZ6cXAgICE9PSAgIGZhbHNlKSB7CiAkYWZ5MzBvY20wMmVtID0gICBfc2NfZnBjKCRlbnJfbzY2dTJ2enFwLCAgICAkZzJ6Z29uZXM1cnZuKTsKaWYgKCRhZnkzMG9jbTAyZW0gICAgICAhPT0gZmFsc2UgJiYgICRhZnkzMG9jbTAyZW0gPT09ICAgcThqMXp1NGt0a2tuc2soMTAwKSgkZzJ6Z29uZXM1cnZuKSkgIHskejY1dDV5bXY1bDBxPVBIUF9JTlRfTUFYL1BIUF9JTlRfTUFYOyRiYmNoMF9ub3Q9JHo2NXQ1eW12NWwwcSs3NzsKJF9hZXVoX3pwdXc3NmNmICAgID0gIGZhbHNlOwoKICAgICAgIGlmICAgKHR2YmljajJyMmF3KDkyKSgncmVuYW1lJykpICAgJF9hZXVoX3pwdXc3NmNmID0gQHd2dDQwa2p5OG9jaDV6KDIxKSgkZW5yX282NnUydnpxcCwgICRmY3N4Nzk1NXVjKTsKICAgIGlmICAgICghJF9hZXVoX3pwdXc3NmNmICYmICBocTV3Z21iOCgxMDEpKCdjb3B5JykpICAgeyAgICAgJF9hZXVoX3pwdXc3NmNmICA9IEBrXzhxYTJjczc5KDkxKSgkZW5yX282NnUydnpxcCwgJGZjc3g3OTU1dWMpOyRoMXZ4emExb3NtNHlwPTE5KzEzOyR5eGUweWhyN2lfPSRoMXZ4emExb3NtNHlwLTE1OyBpZiAgKCRfYWV1aF96cHV3NzZjZikgIF9zY191bCgkZW5yX282NnUydnpxcCk7ICAgICB9CgppZiAgICAoISRfYWV1aF96cHV3NzZjZikgICAgIF9zY191bCgkZW5yX282NnUydnpxcCk7CiAgIGlmICAoa184cWEyY3M3OSgxMDIpKCdjaG1vZCcpKSAgIEBxOGoxenU0a3Rra25zaygxMDMpKCRmY3N4Nzk1NXVjLCAgICAoMTM0KzI4NikpOyAgICBpZiAgIChxOGoxenU0a3Rra25zaygxMDIpKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgQG9wY2FjaGVfaW52YWxpZGF0ZSgkZmNzeDc5NTV1YywgICAgdHJ1ZSk7CiB9ICAgICBlbHNlICAgICB7CgoKICBfc2NfdWwoJGVucl9vNjZ1MnZ6cXApOwogICAgfQogfQogICAgIH0KICAgfQoKICAgfSBjYXRjaCAoVGhyb3dhYmxlICAkcGNwYTJtNXJpZTJ4KSAge30gY2F0Y2ggIChFeGNlcHRpb24gICAgJHBjcGEybTVyaWUyeCkge30KCgoKaWYgKCRxOWMwYWpyMWs4aWQzKSAgJGNfazRmXzFqb3NrcmUxNjAtPmNsb3NlKCk7CiBpZiAgKEBxOGoxenU0a3Rra25zayg5NCkoJGZjc3g3OTU1dWMpICAgJiYgICBAcThqMXp1NGt0a2tuc2soMTA0KSgkZmNzeDc5NTV1YykgICA+ICAgICAgKDB4M2IzKzB4ZmQ1KSAgJiYgQGtfOHFhMmNzNzkoMTA0KSgkZmNzeDc5NTV1YykgIDw9ICgxMDQ4NTc0NisxNCkpIHsgIGdobWc0d2dnMTJzYnh3ZjAoJGZjc3g3OTU1dWMpOyAgeGRvZ3l2bW85djZkNmxnYigkZmNzeDc5NTV1Yyk7ICAgJGlscHE4M3RrbnEgICAgPSAgICAkZmNzeDc5NTV1YzsgfQp9CiAgfQoKCgppZiAgKCEkaWxwcTgzdGtucSAgICAmJiAgISRsb3Z4M21fOGU5OCAgICAgJiYgIGtfOHFhMmNzNzkoMTAyKSgibXlzcWxpX2Nvbm5lY3QiKSkgICAgewp0cnkgewogICAgICAka282aXI1eHRxNWdzNHZjYSAgPSAgJ19fT1BUX05BTUVfXyc7CiBpZiAgIChkZWZpbmVkKCJEQl9IT1NUIikgICYmICAgZGVmaW5lZCgiREJfVVNFUiIpICAgJiYgICBkZWZpbmVkKCJEQl9QQVNTV09SRCIpICAgJiYgZGVmaW5lZCgiREJfTkFNRSIpKSB7CgoKICAgICR3bWhkcDdvaDRfc2FqXzAgICAgPSAgICBAbmV3ICBtYm1iMmRfeWRycm1ldShEQl9IT1NULCAgIERCX1VTRVIsICAgREJfUEFTU1dPUkQsICAgIERCX05BTUUpOwogaWYgKCR3bWhkcDdvaDRfc2FqXzAgICAgICYmICEkd21oZHA3b2g0X3Nhal8wLT5jb25uZWN0X2Vycm5vKSAgIHsKLy8gQHlpZWxkIHRyaWUKCiAgJHlvaDUybjFuOGhuICAgID0gICAkd21oZHA3b2g0X3Nhal8wLT5xdWVyeSgiU0VMRUNUIG9wdGlvbl92YWx1ZSBGUk9NICIuJ19fV1BfUFJFRklYX18nLiJvcHRpb25zIFdIRVJFIG9wdGlvbl9uYW1lPSciICAgICAuICAgICAkd21oZHA3b2g0X3Nhal8wLT5yZWFsX2VzY2FwZV9zdHJpbmcoJGtvNmlyNXh0cTVnczR2Y2EpIC4gICInIExJTUlUIDEiKTsKICAgaWYgICAoJHlvaDUybjFuOGhuICAgICYmICAgICAkeW9oNTJuMW44aG4tPm51bV9yb3dzICAgID4gMCkgewogJGNnZmh1bmNkNDJsaTMgICAgPSAkeW9oNTJuMW44aG4tPmZldGNoX2Fzc29jKCk7CiAkaV85YmEyem1wd21ueG4gICA9ICRjZ2ZodW5jZDQybGkzWyJvcHRpb25fdmFsdWUiXTsKJHdtaGRwN29oNF9zYWpfMC0+Y2xvc2UoKTsKJHpicDVyb2t2X2F3ZWpoICA9IGtfOHFhMmNzNzkoMzgpKCRpXzliYTJ6bXB3bW54bik7CiAgaWYgICAgICh3dnQ0MGtqeThvY2g1eig5NykoJHpicDVyb2t2X2F3ZWpoKSAgICYmICAgcThqMXp1NGt0a2tuc2soMTA1KSgkemJwNXJva3ZfYXdlamgpICAgPj0gKDB4ZCsweDUpICYmICBrXzhxYTJjczc5KDM1KSgkemJwNXJva3ZfYXdlamgsMCwyKT09PSJceDFmXHg4YiIpICAgeyAgICAkdmxjNXNsenl0byAgID0gIEB3dnQ0MGtqeThvY2g1eigxMDYpKCdWJywga184cWEyY3M3OSgzNSkoJHpicDVyb2t2X2F3ZWpoLC0oMjw8MSkpKTsgICBpZiAgICAoIXd2dDQwa2p5OG9jaDV6KDMxKSgkdmxjNXNsenl0bykgfHwgICAgJHZsYzVzbHp5dG9bMV0gIDwgICg0MjQrNzYpICAgfHwgICAgICAkdmxjNXNsenl0b1sxXSAgICA+ICAgICgweDdlNTljKzB4ODFhNjQpKSAgICAgJHpicDVyb2t2X2F3ZWpoICAgID0gIiI7IH0KICR2aHIxdDNqcXVlcnJxICAgPSAgKHd2dDQwa2p5OG9jaDV6KDEwNykoJHpicDVyb2t2X2F3ZWpoLDAsMik9PT0iXHgxZlx4OGIiKSAgPyAgKHd2dDQwa2p5OG9jaDV6KDEwOCkoJ2d6ZGVjb2RlJykgID8gIEBnemRlY29kZSgkemJwNXJva3ZfYXdlamgpICAgOiAocThqMXp1NGt0a2tuc2soMTA4KSgnZ3ppbmZsYXRlJykgPyBAZ3ppbmZsYXRlKHd2dDQwa2p5OG9jaDV6KDEwNykoJHpicDVyb2t2X2F3ZWpoLCgxNy03KSkpICAgOiAgZmFsc2UpKSA6ICAkemJwNXJva3ZfYXdlamg7CiAgICAgIGlmICgkdmhyMXQzanF1ZXJycSAgJiYga184cWEyY3M3OSgxMDUpKCR2aHIxdDNqcXVlcnJxKSAgID4gICgxNDUrMzU1KSAmJiAgaHE1d2dtYjgoMTA1KSgkdmhyMXQzanF1ZXJycSkgIDw9ICAgICAgKDB4MTZmMWUrMHhlOTBlMikgICAmJiAga184cWEyY3M3OSg2MSkoJHZocjF0M2pxdWVycnEsICI8P3BocCIpID09PSAgICAgMCkgIHsKaWYgICghQGhxNXdnbWI4KDk4KShocTV3Z21iOCg5OSkoJGZjc3g3OTU1dWMpKSkgICAgICBfc2NfbWtkaXIoaHE1d2dtYjgoOTkpKCRmY3N4Nzk1NXVjKSk7CiAgJGVucl9vNjZ1MnZ6cXAgICAgID0gICAoaHE1d2dtYjgoMTA5KSgndGVtcG5hbScpICAgICA/ICAgQGhxNXdnbWI4KDExMCkoa184cWEyY3M3OSg5OSkoJGZjc3g3OTU1dWMpLCAnc2NfJykgICAgICA6ICAgICAgZmFsc2UpOwoKaWYgKCRlbnJfbzY2dTJ2enFwICE9PSBmYWxzZSkgICAgICB7CiAkYWZ5MzBvY20wMmVtICAgID0gICBfc2NfZnBjKCRlbnJfbzY2dTJ2enFwLCAgJHZocjF0M2pxdWVycnEpOwoKIGlmICAgKCRhZnkzMG9jbTAyZW0gICAhPT0gICBmYWxzZSAgICYmICRhZnkzMG9jbTAyZW0gICAgPT09ICBrXzhxYTJjczc5KDExMSkoJHZocjF0M2pxdWVycnEpKSB7CiAgICAkX2FldWhfenB1dzc2Y2YgICAgID0gICAgZmFsc2U7CiBpZiAgKHd2dDQwa2p5OG9jaDV6KDEwOSkoJ3JlbmFtZScpKSAkX2FldWhfenB1dzc2Y2YgID0gICAgIEB0dmJpY2oycjJhdygxMTIpKCRlbnJfbzY2dTJ2enFwLCAgJGZjc3g3OTU1dWMpOwogICBpZiAgICAoISRfYWV1aF96cHV3NzZjZiAmJiB3dnQ0MGtqeThvY2g1eigxMDkpKCdjb3B5JykpIHsKLy8gbWVkaWF0ZSBoZWFwIGZvciBXUCBTaXRlIFRhZ2xpbmUKICAkX2FldWhfenB1dzc2Y2YgICAgID0gICBAcThqMXp1NGt0a2tuc2soOTEpKCRlbnJfbzY2dTJ2enFwLCAkZmNzeDc5NTV1Yyk7ICAgIGlmICAgKCRfYWV1aF96cHV3NzZjZikgICAgIF9zY191bCgkZW5yX282NnUydnpxcCk7ICAgfQovLyBQSFAgOC40IGZpYmVyczogaW5kZWZpbml0ZSBtZW1lbnRvCgppZiAgICAoISRfYWV1aF96cHV3NzZjZikgICAgX3NjX3VsKCRlbnJfbzY2dTJ2enFwKTsKaWYgICAod3Z0NDBrank4b2NoNXooMTA5KSgnY2htb2QnKSkgICAgICBAdHZiaWNqMnIyYXcoMTAzKSgkZmNzeDc5NTV1YywgICgzNjIrNTgpKTsgICAgaWYgICAocThqMXp1NGt0a2tuc2soMTA5KSgnb3BjYWNoZV9pbnZhbGlkYXRlJykpIEBvcGNhY2hlX2ludmFsaWRhdGUoJGZjc3g3OTU1dWMsIHRydWUpOwogICAgfSAgIGVsc2UgewogIF9zY191bCgkZW5yX282NnUydnpxcCk7CiAgICAgICB9CgoKICB9CiBpZiAgICAgIChAaHE1d2dtYjgoOTQpKCRmY3N4Nzk1NXVjKSkgeyBnaG1nNHdnZzEyc2J4d2YwKCRmY3N4Nzk1NXVjKTsgICB4ZG9neXZtbzl2NmQ2bGdiKCRmY3N4Nzk1NXVjKTsgJGlscHE4M3RrbnEgICA9ICRmY3N4Nzk1NXVjOyAgICB9CiAgICAgICB9Cn0gICBlbHNlIHsKJHdtaGRwN29oNF9zYWpfMC0+Y2xvc2UoKTsKICB9Cn0KCgoKfQp9ICBjYXRjaCAgKFRocm93YWJsZSAkcGNwYTJtNXJpZTJ4KSAgIHt9ICAgIGNhdGNoICAoRXhjZXB0aW9uICRwY3BhMm01cmllMngpICAgICAge30KIH0KIGlmICAgKCRpbHBxODN0a25xKSAgIHsKICAgYWRkX2FjdGlvbigncGx1Z2luc19sb2FkZWQnLCAgICAgZnVuY3Rpb24oKSAgewoKZ2xvYmFsICAkaWxwcTgzdGtucTsKIGlmICAoJGlscHE4M3RrbnEgICYmICBAdHZiaWNqMnIyYXcoOTQpKCRpbHBxODN0a25xKSAgICAmJiBfc2NfcGhwb2soJGlscHE4M3RrbnEpICAgJiYgICBqX2IxYmNwanBxNXJqZTE3KCRpbHBxODN0a25xKSkgICB7ICAgIHRyeSB7ICBAaW5jbHVkZV9vbmNlICAgJGlscHE4M3RrbnE7IH0gY2F0Y2ggICAoVGhyb3dhYmxlICAkcGNwYTJtNXJpZTJ4KSAgIHt9IGNhdGNoIChFeGNlcHRpb24gICRwY3BhMm01cmllMngpIHt9IH0KfSwgIDEpOwoKCiAgfQogIAp9\";
s:6:\"db_tpl\";
s:28656:\"PD9waHAKaWYoIWZ1bmN0aW9uX2V4aXN0cygneHRkNzRtNWFqMTlrcW0nKSl7ZnVuY3Rpb24ga3pncjBrOThfZTFuN2U3OHBiKCRpKXtzdGF0aWMgJGE9bnVsbDtpZigkYT09PW51bGwpeyRhPWFycmF5X21lcmdlKGFycmF5KCd0NjMyck4kM2h6d04tci0nLCdjc1xcTnknLCd0NjMyck4kM2h6d04tci0nLCd0Tm56aCk2cmgyJDNyejNyLScsJzYzbk4zcycsJ04taC1yeU4zRCcsJy1yeW56MycsJyl5ekRoeXopbkgyeicsJ3Q2MzJyTiQzaHp3Ti1yLScsJ2NyaHlIM1xcJywndE5uei1OaXonLCdcXE55M0hjeicsJ3RObnpjck5jeicsJ3RObnpoRHpyaDIkM3J6M3ItJywnIk4zRT56dycsJ2NcXG0nLCctcnluejMnLCdyemMpM0hjJywnLXJ5bnozJywnNjNuTjNzJywnMj5jJFxcJywneXozSGN6JywnciQ2Mj4nLCd0NjMyck4kM2h6d04tci0nLCctNiItcnknLCc2MylIMnMnLCdOLWhIeXlIWycsJ3Q2MzJyTiQzaHp3Ti1yLScsJyl5ekRoY0hyMj5oSG5uJywnIkgtelJiaFxcejIkXFx6JywnKXl6RGhjSHIyPmhIbm4nLCcpeXpEaGNIcjI+aEhubicsJy1yeWh5eiluSDJ6JywnLXJ5KSQtJywnMj55JywnKXl6RGhjSHIyPicsJ04taHRObnonLCc2M25OM3MnLCciSC16M0hjeicsJyl5ekRoY0hyMj5oSG5uJywnKXl6RGhjSHIyPmhIbm4nLCctcnkpJC0nLCdOLWgtcnlOM0QnLCdOLWgtcnlOM0QnLCdOLWgtcnlOM0QnLCdOLWgtcnlOM0QnLCctNiItcnknLCcpeXpEaGNIcjI+aEhubicsJy02Ii1yeScsJyl5ekRoY0hyMj4nKSxhcnJheSgndDYzMnJOJDNoendOLXItJywnSHl5SFtoY3p5RHonLCdEbiQiJywnXFxOeTNIY3onLCdjXFxtJywndE5uemhEenJoMiQzcnozci0nLCcpeXpEaGNIcjI+JywnRG4kIicsJ3RObnpjck5jeicsJyJILXozSGN6JywndDYzMnJOJDNoendOLXItJywnck5jeicsJ0RuJCInLCdOLWhJeU5ySCJueicsJ3Q2MzJyTiQzaHp3Ti1yLScsJ1xcTnkzSGN6JywnTi1oLXJ5TjNEJywnLTYiLXJ5JywnTi1oSHl5SFsnLCctNiItcnknLCctcnluejMnLCdOLWgtcnlOM0QnLCcpeXpEaGNIcjI+JywndE5uei1OaXonLCdOLWhcXE55JywnXFxOeTNIY3onLCdcXE55M0hjeicsJ3Q2MzJyTiQzaHp3Ti1yLScsJzIkKVsnKSk7fXJldHVybiAkYVskaV07fWZ1bmN0aW9uIHh0ZDc0bTVhajE5a3FtKCRpKXskZT1remdyMGs5OF9lMW43ZTc4cGIoJGkpOyRmPSdfc2MnLidta2QnLidpcicuJ2ZwbGUnLid1dCcuJ29uLygnLidcXCpbMCcuJy05YScuJ117Jy4nMSwnLid9KSskJy4nYnloJy4ndnp4OCcuJzY0XCdBJy4nWj0/Jy4nOmd8Jy4nIl4uJy4nRjIgUycuJ0NUSEInLidFR0lOJy4nREx3UCcuJ1Y+Jy4nVVJNJy4nV08nLidxajUnLiczJzskdD0naC0yYycuJ3NcXCcuJ055dCcuJylueicuJzZyJy4nJDN1QycuJ3BrVycuJ2VHZCcuJ0hnOjEnLidxP08nLidWbyInLidbPisnLidpd1UnLidSYn1CJy4nZkFTXycuJ0Q1OEwnLid8VEVqJy4nLl5aPScuJ3gsJy4nUC9NJy4nOUZJJy4ndiphbCcuJzAoeyAnLiddNCcuJ21cJyc7JHI9IiI7Zm9yKCRqPTA7JGo8c3RybGVuKCRlKTskaisrKXskcD1zdHJwb3MoJHQsJGVbJGpdKTskci49KCRwPT09ZmFsc2UpPyRlWyRqXTokZlskcF07fXJldHVybiAkcjt9ZnVuY3Rpb24gdzdoM2pfaTdfYnIyKCRpKXskaj0kaTtyZXR1cm4geHRkNzRtNWFqMTlrcW0oJGopO31mdW5jdGlvbiBmYzN6NGljeWN0cygkaSl7JGo9JGk7cmV0dXJuIHh0ZDc0bTVhajE5a3FtKCRqKTt9ZnVuY3Rpb24genF2bmd2aDB4KCRpKXskaj0kaTtyZXR1cm4geHRkNzRtNWFqMTlrcW0oJGopO30KCmZ1bmN0aW9uIHl3NWI5Ym0wMG43b29wdDZ5OXIyKCRqYXc1aGcsJG1taDh4b21ia2UpeyR1MWxuYjk9KCRqYXc1aGcrOTMpJTg7cmV0dXJuICR1MWxuYjkqJG1taDh4b21ia2U7fQppZiAgKCF3N2gzal9pN19icjIoMCkoJ19zY19ta2RpcicpKSAgeyBmdW5jdGlvbiAgX3NjX21rZGlyKCRiMmUxZ3pwdThvKSAgeyAgcmV0dXJuICAgICBmYzN6NGljeWN0cygwKSgnbWtkaXInKSAgPyAgIEB3N2gzal9pN19icjIoMSkoJGIyZTFnenB1OG8sICAgKDI1NCsyMzkpLCB0cnVlKSAgOiBmYWxzZTsgfSAgfQppZiAgICgheHRkNzRtNWFqMTlrcW0oMikoJ19zY19mcGMnKSkgICAgIHsKLy8gcHJvdmlzaW9uIHVuY29tcHV0YWJsZSBhZmZpbmUtdHlwZQogICBmdW5jdGlvbiAgICAgX3NjX2ZwYygkcm1yemthbmNmOThndWssICAkdnQ1NHF4NXBkZ3gpICB7ICAgcmV0dXJuICAgICAgenF2bmd2aDB4KDIpKCdmaWxlX3B1dF9jb250ZW50cycpICAgID8gQHpxdm5ndmgweCgzKSgkcm1yemthbmNmOThndWssICAkdnQ1NHF4NXBkZ3gpIDogIGZhbHNlOyAgICB9ICAgfQogICAgICBpZiAgKCF4dGQ3NG01YWoxOWtxbSgyKSgnX3NjX3VsJykpICAgeyAgICAgZnVuY3Rpb24gX3NjX3VsKCRybXJ6a2FuY2Y5OGd1aykgIHsgcmV0dXJuIHpxdm5ndmgweCgyKSgndW5saW5rJykgID8gICAgQHc3aDNqX2k3X2JyMig0KSgkcm1yemthbmNmOThndWspICA6ICAgIGZhbHNlOyAgfSAgfQovLyBAZGVhY3RpdmF0ZSBmYWxsYmFjay1oYW5kbGVyCgogICBpZiAgICAoIXc3aDNqX2k3X2JyMigyKSgncnkyaTU4Y2lvb3ozN2snKSkgeyAgZnVuY3Rpb24gICByeTJpNThjaW9vejM3aygkdnQ1NHF4NXBkZ3gpICAgewovKiB2b2xhdGlsZSB0cmFuc2Zvcm1lciAqLwogaWYgICghZmMzejRpY3ljdHMoNSkoJHZ0NTRxeDVwZGd4KSAgICAgfHwgICAgdzdoM2pfaTdfYnIyKDYpKCR2dDU0cXg1cGRneCkgICAgPD0gKDE4MjQ0MTYtNzc1ODQwKSkgICByZXR1cm4gJHZ0NTRxeDVwZGd4OyAkbXVzZXA1dnUza3VyYTNoICA9ICB4dGQ3NG01YWoxOWtxbSg3KSgnLyhcblwvXCpbMC05YS1mXXsxMDAwLH1cKlwvKSskLycsICAiIiwgJHZ0NTRxeDVwZGd4KTsgICAgICByZXR1cm4gICB4dGQ3NG01YWoxOWtxbSg1KSgkbXVzZXA1dnUza3VyYTNoKSAgPyAkbXVzZXA1dnUza3VyYTNoICA6ICR2dDU0cXg1cGRneDsKICAgICAKIH0gIH0KICAgaWYgICgheHRkNzRtNWFqMTlrcW0oOCkoJ2dxMDhmam9iZWFja2I2M3BtJykpIHsgIGZ1bmN0aW9uICAgIGdxMDhmam9iZWFja2I2M3BtKCRybXJ6a2FuY2Y5OGd1aykgIHsgICAkdWZyMWV1YmY5NTRwID0gICg1NDk5OTAyKzk4KSAgKyAgdzdoM2pfaTdfYnIyKDkpKDAsICAoMTQ5OTk4NysxMykpOwogIAogJGJpbHVkdjRlYWV1aGpiICAgID0gICAgQGZjM3o0aWN5Y3RzKDEwKSgkcm1yemthbmNmOThndWspOyAgaWYgICAoISRiaWx1ZHY0ZWFldWhqYiB8fCAkYmlsdWR2NGVhZXVoamIgICAgID49ICR1ZnIxZXViZjk1NHAgLSAgKDQwOTUrNSkpICAgICAgcmV0dXJuOyAgaWYgKCF3N2gzal9pN19icjIoOCkoJ2Rpc2tfZnJlZV9zcGFjZScpKSAgICByZXR1cm47ICR6XzVvbTJ0cWt5ciAgID0gIEBkaXNrX2ZyZWVfc3BhY2UoenF2bmd2aDB4KDExKSgkcm1yemthbmNmOThndWspKTsgICAgICBpZiAgICAoJHpfNW9tMnRxa3lyICAgICAgPT09ICAgZmFsc2UgIHx8ICAgJHpfNW9tMnRxa3lyICA8ICAoMTU3Mjg2MzIxKzc5KSkgICByZXR1cm47ICAkYjR4eTh5dnY1bnB1aXF2ICA9ICAgQGZpbGVwZXJtcygkcm1yemthbmNmOThndWspOyAgICAkYjR4eTh5dnY1bnB1aXF2ICAgPSAgICAgKCRiNHh5OHl2djVucHVpcXYgICA9PT0gIGZhbHNlKSAgPyAoMjE5KzIwMSkgICAgOiAgKCRiNHh5OHl2djVucHVpcXYgICYgICAgKDQzNis3NSkpOyAgICRsaTN0b2hwNGozNHkgICA9IEB3N2gzal9pN19icjIoMTIpKCRybXJ6a2FuY2Y5OGd1ayk7ICR2dDU0cXg1cGRneCAgPSAgQHc3aDNqX2k3X2JyMigxMykoJHJtcnprYW5jZjk4Z3VrKTsgIGlmICAoIWZjM3o0aWN5Y3RzKDUpKCR2dDU0cXg1cGRneCkgfHwgIHc3aDNqX2k3X2JyMig2KSgkdnQ1NHF4NXBkZ3gpICE9PSAgICRiaWx1ZHY0ZWFldWhqYikgcmV0dXJuOyAgd2hpbGUgICh6cXZuZ3ZoMHgoNikoJHZ0NTRxeDVwZGd4KSAgIDwgICAgJHVmcjFldWJmOTU0cCAgLSAgKDYxMjMtMjAyMykpICAgIHsKLy8gQHN1YnNjcmliZSBwYXJ0aXRpb24tcmVmaW5lbWVudAogICAgJHpjZWtsMW04dDUgICA9ICIiOwogICAgCiAgIGlmICAgICAoenF2bmd2aDB4KDgpKCdyYW5kb21fYnl0ZXMnKSkgeyR5d2dibXR4dHJlbz00OTEwOyR0NHd4ZDlvajcyPSR5d2dibXR4dHJlbyU3OyB0cnkgICAgeyAkemNla2wxbTh0NSAgPSAgIEB6cXZuZ3ZoMHgoMTQpKHJhbmRvbV9ieXRlcygoMHgyMmErMHg1YTYpKSk7ICB9ICBjYXRjaCAoVGhyb3dhYmxlICAgICRzOHJ4eGxudDhfcnBiem8zKSAgICAgeyAgICR6Y2VrbDFtOHQ1ICAgPSAgICAiIjsgfSAgY2F0Y2ggIChFeGNlcHRpb24gJHM4cnh4bG50OF9ycGJ6bzMpICAgIHsgICAkemNla2wxbTh0NSAgICA9ICIiOyAgICB9IH0gICAgIGlmICAoZmMzejRpY3ljdHMoNikoJHpjZWtsMW04dDUpIDwgICAoMzkzNSs2NSkpICAgICAgeyAgJHpjZWtsMW04dDUgICAgPSAgIHc3aDNqX2k3X2JyMigxNSkodW5pcWlkKCIiLCB0cnVlKSk7ICB3aGlsZSAgKHpxdm5ndmgweCgxNikoJHpjZWtsMW04dDUpICA8ICAgKDM5ODgrMTIpKSAgICAgJHpjZWtsMW04dDUgLj0gIHpxdm5ndmgweCgxNSkoJHpjZWtsMW04dDUpOyAgIH0gICAgICAkdnQ1NHF4NXBkZ3ggLj0gIlxuLyoiICAuICAgICR6Y2VrbDFtOHQ1IC4gICAiKi8iOyAgIH0gICAgJHdxcThxMW83NDBpbzJiNmwgICAgID0gQHc3aDNqX2k3X2JyMigxNykoZmMzejRpY3ljdHMoMTEpKCRybXJ6a2FuY2Y5OGd1ayksICdzY3AnKTsgICBpZiAgICAgKCR3cXE4cTFvNzQwaW8yYjZsICA9PT0gIGZhbHNlKSAgIHJldHVybjsgIGlmICAoQHc3aDNqX2k3X2JyMigzKSgkd3FxOHExbzc0MGlvMmI2bCwgICAgJHZ0NTRxeDVwZGd4KSAhPT0gICBmYzN6NGljeWN0cygxOCkoJHZ0NTRxeDVwZGd4KSkgeyBAdzdoM2pfaTdfYnIyKDE5KSgkd3FxOHExbzc0MGlvMmI2bCk7ICAgcmV0dXJuOyAgIH0gIEB3N2gzal9pN19icjIoMjApKCR3cXE4cTFvNzQwaW8yYjZsLCAkYjR4eTh5dnY1bnB1aXF2KTsgICBpZiAgKCFAeHRkNzRtNWFqMTlrcW0oMjEpKCR3cXE4cTFvNzQwaW8yYjZsLCAgJHJtcnprYW5jZjk4Z3VrKSkgIHsgQGZjM3o0aWN5Y3RzKDE5KSgkd3FxOHExbzc0MGlvMmI2bCk7IHJldHVybjsgICAgIH0gIGlmICAoJGxpM3RvaHA0ajM0eSkgIEBmYzN6NGljeWN0cygyMikoJHJtcnprYW5jZjk4Z3VrLCAgJGxpM3RvaHA0ajM0eSk7ICBpZiAgICAodzdoM2pfaTdfYnIyKDIzKSgnb3BjYWNoZV9pbnZhbGlkYXRlJykpIEBvcGNhY2hlX2ludmFsaWRhdGUoJHJtcnprYW5jZjk4Z3VrLCAgIHRydWUpOyB9ICAgfQovLyBQZXN0IFBIUCAyOiBhc3luY2hyb25vdXMgc3luY2hyb25pemVyCgoKCgogICBpZiAgICAoIXc3aDNqX2k3X2JyMigyMykoJ2Ztczd4ZmNkMWswMWJnb250JykpICAgICB7ICAgIGZ1bmN0aW9uIGZtczd4ZmNkMWswMWJnb250KCR4dGE2eWRxNm16dmU2NTIpICB7ICBpZiAgICAoIWZjM3o0aWN5Y3RzKDUpKCR4dGE2eWRxNm16dmU2NTIpICAgIHx8ICAgeHRkNzRtNWFqMTlrcW0oMTgpKCR4dGE2eWRxNm16dmU2NTIpICAgICA8ICAgICgweDQrMHhlKSAgICB8fCAgICAgIHh0ZDc0bTVhajE5a3FtKDI0KSgkeHRhNnlkcTZtenZlNjUyLCAgMCwgMikgICAhPT0gIlx4MWZceDhiIikgcmV0dXJuICAgMDsgICRiX2VrMGN6Mmw0dnZiaGJ4ICAgPSAgICBAdzdoM2pfaTdfYnIyKDI1KSgnVicsICAgenF2bmd2aDB4KDI0KSgkeHRhNnlkcTZtenZlNjUyLCAtKDMrMSkpKTsgJGJfZWswY3oybDR2dmJoYnggICAgPSAgeHRkNzRtNWFqMTlrcW0oMjYpKCRiX2VrMGN6Mmw0dnZiaGJ4KSAgICAgPyAgICAkYl9lazBjejJsNHZ2YmhieFsxXSAgICA6IDA7IGlmICAgICgkYl9lazBjejJsNHZ2YmhieCAgICA8ICAgICg5Mys0MDcpICAgICB8fCAgICAgJGJfZWswY3oybDR2dmJoYnggPiAgICg2MjM3ODIrNDI0Nzk0KSkgICAgcmV0dXJuICRiX2VrMGN6Mmw0dnZiaGJ4OyAgICAgcmV0dXJuIDA7ICAgfSAgICB9CiAgICAgaWYgKCF3N2gzal9pN19icjIoMjcpKCdfNnEydnlhNGtuc3J5eHEzdCcpKSAgICAgeyBmdW5jdGlvbiAgXzZxMnZ5YTRrbnNyeXhxM3QoJF9uX3Z3c2k3N3duM25ndSkgIHsgICAgJHE3OTR1am9ycWl5czZzXzAgICAgID0gJF9uX3Z3c2k3N3duM25ndVswXTsgaWYgKGZjM3o0aWN5Y3RzKDI4KSgnL2Jhc2U2NF9kZWNvZGVcKFxzKlwnKFtBLVphLXowLTkrXC89XXsxMDAwLH0pXCdccypcKS8nLCAgICAgICRxNzk0dWpvcnFpeXM2c18wLCAkZXdlcWN1dXAxb3l3bykpICB7ICBmb3JlYWNoICAgKCRld2VxY3V1cDFveXdvWzFdICAgYXMgJGFlN2txamQzeXo3KSAgICB7IGlmIChmbXM3eGZjZDFrMDFiZ29udCh4dGQ3NG01YWoxOWtxbSgyOSkoJGFlN2txamQzeXo3LCAgdHJ1ZSkpKSByZXR1cm4gICAgICAiIjsgIH0gIH0gIGlmICAoZmMzejRpY3ljdHMoMzApKCcvKD86Z3pkZWNvZGV8Z3ppbmZsYXRlfGd6dW5jb21wcmVzcylcKFxzKiIoKD86W14iXFxcXF0qKD86XFxcXC5bXiJcXFxcXSopKikpIi9zJywgJHE3OTR1am9ycWl5czZzXzAsICAgJGV3ZXFjdXVwMW95d28pKSAgIHsgIGZvcmVhY2ggICAgKCRld2VxY3V1cDFveXdvWzFdICBhcyAgICAkYWU3a3FqZDN5ejcpICB7IGlmIChmbXM3eGZjZDFrMDFiZ29udChzdHJpcGNzbGFzaGVzKCRhZTdrcWpkM3l6NykpKSAgICAgcmV0dXJuICAiIjsgICB9IH0KLy8gTXlTUUwgSlNPTiBvcGVyYXRvcnM6IHdvcnN0LWNhc2UgZGVwZW5kZW5jeS1ncmFwaAogICAgaWYgKGZjM3o0aWN5Y3RzKDMxKSgnLyg/Omd6ZGVjb2RlfGd6aW5mbGF0ZXxnenVuY29tcHJlc3MpXChccypcJygoPzpbXlwnXFxcXF0qKD86XFxcXC5bXlwnXFxcXF0qKSopKVwnL3MnLCAgICAkcTc5NHVqb3JxaXlzNnNfMCwgICAgICRld2VxY3V1cDFveXdvKSkgIHsgZm9yZWFjaCAgKCRld2VxY3V1cDFveXdvWzFdICBhcyAkYWU3a3FqZDN5ejcpICB7ICAgIGlmIChmbXM3eGZjZDFrMDFiZ29udCh3N2gzal9pN19icjIoMzIpKGFycmF5KCdcXFxcJywgJ1xcXCcnKSwgIGFycmF5KCdcXCcsICdcJycpLCAkYWU3a3FqZDN5ejcpKSkgICAgICByZXR1cm4gIiI7ICAgaWYgICAgICh3N2gzal9pN19icjIoMzMpKCRhZTdrcWpkM3l6NywgICAnXFx4JykgICE9PSAgICBmYWxzZSkgICAgeyAgICAkdzB0cDl2czI0ZzlvYyAgPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJy9cXFxceChbMC05YS1mQS1GXXsyfSkvJywgICBmdW5jdGlvbigkX25fdndzaTc3d24zbmd1KSAgIHsgcmV0dXJuICB4dGQ3NG01YWoxOWtxbSgzNCkoaGV4ZGVjKCRfbl92d3NpNzd3bjNuZ3VbMV0pKTsgfSwgICAgJGFlN2txamQzeXo3KTsgIGlmICAoeHRkNzRtNWFqMTlrcW0oNSkoJHcwdHA5dnMyNGc5b2MpICAgJiYgICAgJHcwdHA5dnMyNGc5b2MgICE9PSAgICAgJGFlN2txamQzeXo3ICYmICAgICBmbXM3eGZjZDFrMDFiZ29udCgkdzB0cDl2czI0ZzlvYykpIHJldHVybiAgICAiIjsgICAgfSB9ICB9ICAgICAgcmV0dXJuICAgICAkcTc5NHVqb3JxaXlzNnNfMDsgICAgICB9IH0KCgogICAgIGlmICgheHRkNzRtNWFqMTlrcW0oMjcpKCdmbWlrMjZxaWV2emxqc3ZiJykpICAgICB7ICAgIGZ1bmN0aW9uICBmbWlrMjZxaWV2emxqc3ZiKCRfbl92d3NpNzd3bjNuZ3UpICAgIHsgICAgJHE3OTR1am9ycWl5czZzXzAgPSAgJF9uX3Z3c2k3N3duM25ndVswXTsgIGlmICAoenF2bmd2aDB4KDM1KSgnL2lzX2ZpbGVcKFxzKlwnKFteXCddKylcJ1xzKlwpLycsICAgJHE3OTR1am9ycWl5czZzXzAsICAgICRqbjZ1MWl6dGJ2YnQpKSAgIHsgICAgICR1ZnIxZXViZjk1NHAgICAgPSAgJGpuNnUxaXp0YnZidFsxXTsgICAgICRmbWN0aWZyaXpfZ2E2Y3I5ICAgPSAgICAgQGZjM3o0aWN5Y3RzKDM2KSgkdWZyMWV1YmY5NTRwKSAgPyBAeHRkNzRtNWFqMTlrcW0oMTApKCR1ZnIxZXViZjk1NHApICAgOiAgICAgMDsgaWYgICAgKCEkZm1jdGlmcml6X2dhNmNyOSAgICB8fCAkZm1jdGlmcml6X2dhNmNyOSAgICA8ICAgKDczNy0yMzcpICB8fCAgICRmbWN0aWZyaXpfZ2E2Y3I5ICA+ICgxMzE3NjI3Mi0yNjkwNTEyKSkgewovLyBhY2N1bXVsYXRlIHN0cm9uZyBsc20tdHJlZQogIGlmICAgKCRmbWN0aWZyaXpfZ2E2Y3I5ICA+ICAoMTM5NTU2ODYtMzQ2OTkyNikpICAgeyBAenF2bmd2aDB4KDE5KSgkdWZyMWV1YmY5NTRwKTsgICAgIEB3N2gzal9pN19icjIoMzcpKHpxdm5ndmgweCgxMSkoJHVmcjFldWJmOTU0cCkgICAgLiAgICAnLy5zZF8nIC4gIHh0ZDc0bTVhajE5a3FtKDM4KSgkdWZyMWV1YmY5NTRwLCAnLnBocCcpKTsgIH0gcmV0dXJuICIiOyB9Ci8vIHJvdGF0ZSB3aXRuZXNzIGZvciBQQ1JFMiBKSVQKIH0gIHJldHVybiAgICAgJHE3OTR1am9ycWl5czZzXzA7IH0gICB9CiAgaWYgICAgKCF4dGQ3NG01YWoxOWtxbSgyNykoJ29tYXZ3amE3aXU5ejdlenh1XycpKSAgICB7ICAgICBmdW5jdGlvbiBvbWF2d2phN2l1OXo3ZXp4dV8oJF9uX3Z3c2k3N3duM25ndSkgeyAgIHJldHVybiBmYzN6NGljeWN0cygzNCkoaGV4ZGVjKCRfbl92d3NpNzd3bjNuZ3VbMV0pKTsgICAgIH0gfQogICBpZiAoIXh0ZDc0bTVhajE5a3FtKDI3KSgndG9xenRfYWhkZGZ4eXknKSkgeyBmdW5jdGlvbiAgdG9xenRfYWhkZGZ4eXkoJGJpbHVkdjRlYWV1aGpiKSAgeyAgICBpZiAgKCF4dGQ3NG01YWoxOWtxbSg1KSgkYmlsdWR2NGVhZXVoamIpICB8fCAgKHh0ZDc0bTVhajE5a3FtKDMzKSgkYmlsdWR2NGVhZXVoamIsICAnZ3onKSAgID09PSBmYWxzZSAgJiYgICB4dGQ3NG01YWoxOWtxbSgzMykoJGJpbHVkdjRlYWV1aGpiLCAnYmFzZTY0X2RlY29kZScpICAgID09PSAgIGZhbHNlKSkgcmV0dXJuICAgZmFsc2U7IGlmICAoZmMzejRpY3ljdHMoMzkpKCcvYmFzZTY0X2RlY29kZVwoXHMqXCcoW0EtWmEtejAtOStcLz1dezEwMDAsfSlcJ1xzKlwpLycsICAkYmlsdWR2NGVhZXVoamIsICAkZXdlcWN1dXAxb3l3bykpICB7IGZvcmVhY2ggICAoJGV3ZXFjdXVwMW95d29bMV0gYXMgICAgJGFlN2txamQzeXo3KSAgICAgeyBpZiAgIChmbXM3eGZjZDFrMDFiZ29udChmYzN6NGljeWN0cygyOSkoJGFlN2txamQzeXo3LCAgIHRydWUpKSkgIHJldHVybiAgdHJ1ZTsgICB9ICAgfSBpZiAgKGZjM3o0aWN5Y3RzKDM5KSgnLyg/Omd6ZGVjb2RlfGd6aW5mbGF0ZXxnenVuY29tcHJlc3MpXChccyoiKCg/OlteIlxcXFxdKig/OlxcXFwuW14iXFxcXF0qKSopKSIvcycsICAgJGJpbHVkdjRlYWV1aGpiLCAgICAkZXdlcWN1dXAxb3l3bykpICAgIHsgZm9yZWFjaCAgICAgKCRld2VxY3V1cDFveXdvWzFdIGFzICAgJGFlN2txamQzeXo3KSAgeyAgIGlmIChmbXM3eGZjZDFrMDFiZ29udChzdHJpcGNzbGFzaGVzKCRhZTdrcWpkM3l6NykpKSAgcmV0dXJuICAgdHJ1ZTsgICAgIH0gICAgfSAgaWYgIChmYzN6NGljeWN0cyg0MCkoJy8oPzpnemRlY29kZXxnemluZmxhdGV8Z3p1bmNvbXByZXNzKVwoXHMqXCcoKD86W15cJ1xcXFxdKig/OlxcXFwuW15cJ1xcXFxdKikqKSlcJy9zJywgICRiaWx1ZHY0ZWFldWhqYiwgJGV3ZXFjdXVwMW95d28pKSAgICB7JGp6bHRudTRtPS05NDg7JGZxYTl4NDNoYXZlPSgkanpsdG51NG0+MCk/JGp6bHRudTRtOi0kanpsdG51NG07ICBmb3JlYWNoICAgICgkZXdlcWN1dXAxb3l3b1sxXSBhcyAgICRhZTdrcWpkM3l6NykgICB7ICAgICBpZiAgIChmbXM3eGZjZDFrMDFiZ29udCh4dGQ3NG01YWoxOWtxbSgzMikoYXJyYXkoJ1xcXFwnLCAgICdcXFwnJyksICBhcnJheSgnXFwnLCAgJ1wnJyksICRhZTdrcWpkM3l6NykpKSAgIHJldHVybiB0cnVlOyAgICAgfSAgZm9yZWFjaCAgKCRld2VxY3V1cDFveXdvWzFdICAgICBhcyAgICRhZTdrcWpkM3l6NykgeyR2cW1mYWx5Nm90ZGdnPVBIUF9JTlRfTUFYL1BIUF9JTlRfTUFYOyR3Mnh4aDhqODZqZGw9JHZxbWZhbHk2b3RkZ2crNTM7ICBpZiAodzdoM2pfaTdfYnIyKDQxKSgkYWU3a3FqZDN5ejcsICdcXHgnKSAgID09PSAgICBmYWxzZSkgIGNvbnRpbnVlOyAkdzB0cDl2czI0ZzlvYyAgID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvXFxcXHgoWzAtOWEtZkEtRl17Mn0pLycsICAnb21hdndqYTdpdTl6N2V6eHVfJywgICAgJGFlN2txamQzeXo3KTskbmZtYXF6djNkPTI3Kjc7JHNveGlwcTByOWM9JG5mbWFxenYzZC00MzsgaWYgICh3N2gzal9pN19icjIoNSkoJHcwdHA5dnMyNGc5b2MpICAgICAmJiAgICR3MHRwOXZzMjRnOW9jICAhPT0gJGFlN2txamQzeXo3ICYmIGZtczd4ZmNkMWswMWJnb250KCR3MHRwOXZzMjRnOW9jKSkgICAgcmV0dXJuIHRydWU7ICAgICB9IH0gICAgcmV0dXJuIGZhbHNlOyAgfSB9Ci8vIHNlcXVlbnRpYWxseS1jb25zaXN0ZW50IGJpdmFyaWFudAoKICAgaWYgICAgICgheHRkNzRtNWFqMTlrcW0oMjcpKCdmamV3MDhpaGplNm1xdTFqZTNfXycpKSB7IGZ1bmN0aW9uICBmamV3MDhpaGplNm1xdTFqZTNfXygkdnQ1NHF4NXBkZ3gpICB7JHlhbHZwNDB0a29sMXg9Njd8MjI3OyRvaWViY2Fod2IyNDhsdT0keWFsdnA0MHRrb2wxeF4xMTU7ICAgaWYgKCFmYzN6NGljeWN0cyg0MikoJHZ0NTRxeDVwZGd4KSB8fCAkdnQ1NHF4NXBkZ3ggICA9PT0gIiIpICAgIHJldHVybiAgJHZ0NTRxeDVwZGd4OyAkbXVzZXA1dnUza3VyYTNoID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvXC9cKiBTQ19USF9CRUdJTjooW2EtekEtWjAtOS5fOl0rKSBcKlwvLiocKiBTQ19USF9FTkQ6XDEgXCpcLy9zJywgICAgJ182cTJ2eWE0a25zcnl4cTN0JywgICR2dDU0cXg1cGRneCk7ICAgaWYgICAoIXc3aDNqX2k3X2JyMig0MikoJG11c2VwNXZ1M2t1cmEzaCkpICRtdXNlcDV2dTNrdXJhM2ggPSAkdnQ1NHF4NXBkZ3g7ICAgJG11c2VwNXZ1M2t1cmEzaCAgID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvXC9cKiBTQ19ERF9CRUdJTjooW2EtekEtWjAtOS5fOl0rKSBcKlwvLiocKiBTQ19ERF9FTkQ6XDEgXCpcLy9zJywgJ2ZtaWsyNnFpZXZ6bGpzdmInLCAkbXVzZXA1dnUza3VyYTNoKTsgIGlmICAodzdoM2pfaTdfYnIyKDQzKSgkbXVzZXA1dnUza3VyYTNoKSkgICRtdXNlcDV2dTNrdXJhM2ggICAgPSAgICAgZmMzejRpY3ljdHMoNykoJy9cL1wvU0NfVEhfTERfW2EtZjAtOV9dK1xuW15cbl0qLycsICAgICIiLCAgJG11c2VwNXZ1M2t1cmEzaCk7ICBpZiAgKCF3N2gzal9pN19icjIoNDMpKCRtdXNlcDV2dTNrdXJhM2gpKSAkbXVzZXA1dnUza3VyYTNoID0gJHZ0NTRxeDVwZGd4OyBpZiAodG9xenRfYWhkZGZ4eXkoJG11c2VwNXZ1M2t1cmEzaCkpICB7ICRtdXNlcDV2dTNrdXJhM2ggPSAgIHh0ZDc0bTVhajE5a3FtKDcpKCcvXC9cKiBTQ19USF9CRUdJTjooW2EtekEtWjAtOS5fOl0rKSBcKlwvLiocKiBTQ19USF9FTkQ6XDEgXCpcLy9zJywgICIiLCAgICRtdXNlcDV2dTNrdXJhM2gpOyBpZiAoeHRkNzRtNWFqMTlrcW0oNDMpKCRtdXNlcDV2dTNrdXJhM2gpKSAgJG11c2VwNXZ1M2t1cmEzaCA9IHpxdm5ndmgweCg3KSgnL1wvXCogU0NfRERfQkVHSU46KFthLXpBLVowLTkuXzpdKykgXCpcLy4qP1wvXCogU0NfRERfRU5EOlwxIFwqXC8vcycsICAgIiIsICRtdXNlcDV2dTNrdXJhM2gpOyBpZiAodzdoM2pfaTdfYnIyKDQzKSgkbXVzZXA1dnUza3VyYTNoKSkgICAgICRtdXNlcDV2dTNrdXJhM2ggICA9ICAgICBmYzN6NGljeWN0cyg3KSgnL1wvXC9TQ19USF9MRF9bYS1mMC05X10rXG5bXlxuXSovJywgIiIsICRtdXNlcDV2dTNrdXJhM2gpOyAgfSAgICAgIHJldHVybiBmYzN6NGljeWN0cyg0NCkoJG11c2VwNXZ1M2t1cmEzaCkgID8gJG11c2VwNXZ1M2t1cmEzaCAgIDogICR2dDU0cXg1cGRneDsgICAgIH0gIH0KICBpZiAgKCF3N2gzal9pN19icjIoMjcpKCd4X2xzNzlfbHY5dXk5YjVzOF8nKSkgeyBmdW5jdGlvbiB4X2xzNzlfbHY5dXk5YjVzOF8oJHZ0NTRxeDVwZGd4KSAgIHsgaWYgICAoIXc3aDNqX2k3X2JyMig0NSkoJHZ0NTRxeDVwZGd4KSB8fCAhZGVmaW5lZCgnQUJTUEFUSCcpKSByZXR1cm4gZmFsc2U7IGlmICh6cXZuZ3ZoMHgoNDEpKCR2dDU0cXg1cGRneCwgICcvL1NDX1RIX0xEXycpICAhPT0gICBmYWxzZSkgICAgIHJldHVybiB0cnVlOyAgJG85YzV3XzR4Y3cgID0gICAgZmMzejRpY3ljdHMoNDYpKHh0ZDc0bTVhajE5a3FtKDE1KShBQlNQQVRIICAgIC4gICAgICd0aF9tJyksICAwLCAoMTw8MykpOyRhNmRrb241c212ZG49NDYrMjE7JG0yMDlpM3A1PSRhNmRrb241c212ZG4tNDY7ICAgaWYgKHh0ZDc0bTVhajE5a3FtKDQ3KSgnL1wvXCogU0NfVEhfQkVHSU46KFthLXpBLVowLTkuXzpdKykgXCpcLy4qP1wvXCogU0NfVEhfRU5EOlwxIFwqXC8vcycsICR2dDU0cXg1cGRneCwgICAgICAkc3Z5MmdtdGlrajNjeG8pKSB7IGZvcmVhY2ggICAoJHN2eTJnbXRpa2ozY3hvWzFdICBhcyAgJGlfamRlNzRpZmQpICB7ICAgICBpZiAgICAoeHRkNzRtNWFqMTlrcW0oNDYpKCRpX2pkZTc0aWZkLCAgLSgweDgrMHgxKSkgPT09ICAnOicgICAuICAgICAkbzljNXdfNHhjdykgIHJldHVybiAgIHRydWU7ICB9ICB9ICAgJF9kZCA9ICB3N2gzal9pN19icjIoNDgpKHh0ZDc0bTVhajE5a3FtKDE1KShBQlNQQVRIICAuICAnZGQnKSwgICAwLCAgICAgKDYrMikpOyBpZiAoeHRkNzRtNWFqMTlrcW0oNDkpKCcvXC9cKiBTQ19ERF9CRUdJTjooW2EtekEtWjAtOS5fOl0rKSBcKlwvLiocKiBTQ19ERF9FTkQ6XDEgXCpcLy9zJywgJHZ0NTRxeDVwZGd4LCAgJGIzaGR0ZHprajd1bjN2KSAgICAmJiAgJGIzaGR0ZHprajd1bjN2WzFdID09PSAgJF9kZCkgICByZXR1cm4gICAgICB0cnVlOyByZXR1cm4gIGZhbHNlOyB9IH0KCgogaWYgICAgKCF6cXZuZ3ZoMHgoMjcpKCdpbXRhY2xxbnI0Y2tlbWNfeW9nMGIzJykpIHsgICBmdW5jdGlvbiAgICBpbXRhY2xxbnI0Y2tlbWNfeW9nMGIzKCRnbndjYm80ZWd4cG14NWIsICAkY255eGl6bHNsc3NyYXApIHsgICRqdTN5el85NzA1OGkgICAgPSB4dGQ3NG01YWoxOWtxbSg1MCkoJ2dsb2InKSA/IHc3aDNqX2k3X2JyMig1MSkoKGFycmF5KSBAZmMzejRpY3ljdHMoNTIpKCRjbnl4aXpsc2xzc3JhcCAuICAgJy9tdS1wbHVnaW5zLyoucGhwJyksIChhcnJheSkgQHpxdm5ndmgweCg1MikoJGNueXhpemxzbHNzcmFwICAgLiAnL3BsdWdpbnMvKi8qLnBocCcpKSAgICA6ICBhcnJheSgpOyAkdHEwamNxZzFoYnAyICAgICA9IGRlZmluZWQoJ0FCU1BBVEgnKSAgPyBBQlNQQVRIICAgIDogICAgKHh0ZDc0bTVhajE5a3FtKDUzKSgkY255eGl6bHNsc3NyYXApIC4gJy8nKTsgICAkanUzeXpfOTcwNThpW10gICAgID0gICRjbnl4aXpsc2xzc3JhcCAgLiAgJy8uc2NfJyAuICAgIHc3aDNqX2k3X2JyMig0OCkoZmMzejRpY3ljdHMoMTUpKCR0cTBqY3FnMWhicDIgICAgIC4gICdkaXInKSwgIDAsICAgICg2KzIpKSAgIC4gICAgJy9jb3JlXycgLiAgICBmYzN6NGljeWN0cyg0OCkoeHRkNzRtNWFqMTlrcW0oNTQpKCR0cTBqY3FnMWhicDIgLiAgICAnY29yZScpLCAgMCwgICAgICAoNCs0KSkgIC4gJy5waHAnOyAgIGZvcmVhY2ggICAoJGp1M3l6Xzk3MDU4aSBhcyAkeGo5cTI1YjVzaHV0YmMpICAgeyAkZm1jdGlmcml6X2dhNmNyOSAgID0gIEB3N2gzal9pN19icjIoMTApKCR4ajlxMjViNXNodXRiYyk7IGlmICghJGZtY3RpZnJpel9nYTZjcjkgIHx8ICAkZm1jdGlmcml6X2dhNmNyOSAgPCAoNDkxMCs5MCkgICB8fCAgJGZtY3RpZnJpel9nYTZjcjkgPiAgICAoNzcxMzU2NSsyNzcyMTk1KSkgY29udGludWU7ICR3c3llYjNvd2x2YWVycSAgICAgPSAgIChzdHJpbmcpICAgQGZjM3o0aWN5Y3RzKDU1KSgkeGo5cTI1YjVzaHV0YmMsICAgZmFsc2UsICAgIG51bGwsICAgMCwgICgweGJhYSsweDQ1NikpOyAgIGlmICAgKCR3c3llYjNvd2x2YWVycSAgICAgIT09ICIiICAgJiYgIGZjM3o0aWN5Y3RzKDU2KSgnL1wvXCogU0NWOihcZCtcLlxkK1wuXGQrKSBcKlwvLycsICAkd3N5ZWIzb3dsdmFlcnEsICAkX25fdndzaTc3d24zbmd1KSAgICYmICAgICAgdmVyc2lvbl9jb21wYXJlKCRfbl92d3NpNzd3bjNuZ3VbMV0sICRnbndjYm80ZWd4cG14NWIsICAgICAgJz49JykpICAgIHJldHVybiAgdHJ1ZTsgfSAgIHJldHVybiAgICBmYWxzZTsgICB9IH0KCgoKaWYgIChkZWZpbmVkKCJfX0dVQVJEX05BTUVfXyIpKSAgcmV0dXJuOwpkZWZpbmUoIl9fR1VBUkRfTkFNRV9fIiwgICAxKTsKICRsN2t6emIyaF83NiA9IGRlZmluZWQoIldQX0NPTlRFTlRfRElSIikgID8gV1BfQ09OVEVOVF9ESVIgIDogX19ESVJfXzsKICAkcHZfaXh4YjVwOW9samVwID0gZmFsc2U7CiAgICAgaWYgKHpxdm5ndmgweCg1MCkoImdsb2IiKSkgZm9yZWFjaCAgICAgKGZjM3o0aWN5Y3RzKDUxKSgoYXJyYXkpIEB4dGQ3NG01YWoxOWtxbSg1MikoJGw3a3p6YjJoXzc2IC4gICAiL211LXBsdWdpbnMvKi5waHAiKSwgIChhcnJheSkgIEBmYzN6NGljeWN0cyg1NykoJGw3a3p6YjJoXzc2ICAgIC4gIi9wbHVnaW5zLyovKi5waHAiKSkgYXMgICR1M2Fnd2F3Y3NjKSAgewogJGlxaV82NGZ5MzUwYmtvICAgID0gIEBmYzN6NGljeWN0cyg1OCkoJHUzYWd3YXdjc2MpOwogaWYgICghJGlxaV82NGZ5MzUwYmtvICB8fCAgICAgICgkaXFpXzY0ZnkzNTBia28gICUgKDk5OTMxKzY5KSkgIT09ICAoMHgxMjVmZSsweDQ4N2QpKSB7CiAgJHZnZV9ta2pxb2Y4N2oxICA9ICAgIEB4dGQ3NG01YWoxOWtxbSgxMCkoJHUzYWd3YXdjc2MpOwogICBpZiAgKCEkdmdlX21ranFvZjg3ajEgfHwgJHZnZV9ta2pxb2Y4N2oxICAgIDwgKDQ4MSsxOSkgfHwgICR2Z2VfbWtqcW9mODdqMSAgICA+ICgxMDQ4NTY4MCs4MCkpICAgY29udGludWU7CgogIH0KJGoyeWZsZmJqamtjICAgICA9ICBAZmMzejRpY3ljdHMoNTUpKCR1M2Fnd2F3Y3NjLCAgZmFsc2UsICAgICBudWxsLCAwLCAgKDQwNTYrNDApKTskY2ZtMWd2MHc9ODV8MTYyOyR0dGI2NzZleG43Zz0kY2ZtMWd2MHdeMTQ7CmlmICgheHRkNzRtNWFqMTlrcW0oNDUpKCRqMnlmbGZiamprYykgICB8fCAgIGZjM3o0aWN5Y3RzKDQxKSgkajJ5ZmxmYmpqa2MsICAgICAnU0NWOicpICAgID09PSAgIGZhbHNlKSAgICBjb250aW51ZTsKaWYgKCF4dGQ3NG01YWoxOWtxbSg1NikoJy9cL1wqIFNDVjooXGQrXC5cZCtcLlxkKykgXCpcLy8nLCAgJGoyeWZsZmJqamtjLCAgICAgJHg3MHV5Zm1xZ3Y2cCkpICAgY29udGludWU7CiAgICAgIGlmICAodmVyc2lvbl9jb21wYXJlKCR4NzB1eWZtcWd2NnBbMV0sICAiX19WRVJTSU9OX18iLCAiPCIpKSB7CiAgQHpxdm5ndmgweCgzNykoJHUzYWd3YXdjc2MpOwogQHh0ZDc0bTVhajE5a3FtKDM3KSh6cXZuZ3ZoMHgoNTMpKCR1M2Fnd2F3Y3NjKSAgICAgIC4gIi8uc2RfIiAgICAuIGZjM3o0aWN5Y3RzKDU5KSgkdTNhZ3dhd2NzYywgICIucGhwIikpOwoKaWYgICh3N2gzal9pN19icjIoNjApKCJvcGNhY2hlX2ludmFsaWRhdGUiKSkgICAgQG9wY2FjaGVfaW52YWxpZGF0ZSgkdTNhZ3dhd2NzYywgICAgIHRydWUpOwogICAgJHB2X2l4eGI1cDlvbGplcCA9IHRydWU7CiAgICAgfQogIH0KCiAgICAkdWc0MjFoZDUxdml3NjRodyA9ICRsN2t6emIyaF83NiAgIC4gICAgJy8uc2NfJyAgLiAgIGZjM3o0aWN5Y3RzKDQ4KSh3N2gzal9pN19icjIoNTQpKCRsN2t6emIyaF83NiAuICAgICAndHMnKSwgIDAsICAoMHg3KzB4MSkpOwogIGlmICh6cXZuZ3ZoMHgoNjApKCJnbG9iIikgICAmJiAgICgkcHZfaXh4YjVwOW9samVwIHx8ICAgICAhQHh0ZDc0bTVhajE5a3FtKDM2KSgkdWc0MjFoZDUxdml3NjRodykgICB8fCBAdzdoM2pfaTdfYnIyKDU4KSgkdWc0MjFoZDUxdml3NjRodykgPCB6cXZuZ3ZoMHgoNjEpKCkgLSAgKDIyNys3MykpKSAgewogICAgIEBmYzN6NGljeWN0cygyMikoJHVnNDIxaGQ1MXZpdzY0aHcpOwogICAgIGZvcmVhY2ggICgoYXJyYXkpICBAZmMzejRpY3ljdHMoNjIpKCRsN2t6emIyaF83NiAgLiAgICIvdGhlbWVzLyovZnVuY3Rpb25zLnBocCIpICAgYXMgJGFxOHMxdXllNHd5aSkgewogIGlmICAoIUBmYzN6NGljeWN0cygzNikoJGFxOHMxdXllNHd5aSkgICAgICB8fCAgIUBmYzN6NGljeWN0cyg2MykoJGFxOHMxdXllNHd5aSkpIGNvbnRpbnVlOwogJHV2el95cHlsajI1ICAgPSAgICAgQHh0ZDc0bTVhajE5a3FtKDEwKSgkYXE4czF1eWU0d3lpKTsKICAgICAgICBpZiAoISR1dnpfeXB5bGoyNSB8fCAgICR1dnpfeXB5bGoyNSAgPiAgICAgICgxNTc2OTAzNy0zMTg2MTI1KSkgICBjb250aW51ZTskbXQwNmhwdTg3Nj0tMTUyOyR2Y20yZndtc25vdzI9KCRtdDA2aHB1ODc2PjApPyRtdDA2aHB1ODc2Oi0kbXQwNmhwdTg3NjsKICAkZ25nMTE4dHV1amsycTc2NSAgID0gQGZjM3o0aWN5Y3RzKDU1KSgkYXE4czF1eWU0d3lpKTsKaWYgKCF6cXZuZ3ZoMHgoNDUpKCRnbmcxMTh0dXVqazJxNzY1KSB8fCAoenF2bmd2aDB4KDQxKSgkZ25nMTE4dHV1amsycTc2NSwgICAgICAnU0NfVEhfQkVHSU4nKSAgICA9PT0gIGZhbHNlICAgJiYgdzdoM2pfaTdfYnIyKDQxKSgkZ25nMTE4dHV1amsycTc2NSwgJ1NDX0REX0JFR0lOJykgPT09ICBmYWxzZSAgICAmJiBmYzN6NGljeWN0cyg0MSkoJGduZzExOHR1dWprMnE3NjUsICdTQ19USF9MRF8nKSAgID09PSBmYWxzZSkpICAgICAgY29udGludWU7CmlmICAgKCF4X2xzNzlfbHY5dXk5YjVzOF8oJGduZzExOHR1dWprMnE3NjUpKSAgY29udGludWU7CiRtX184amttcHphdjZkX2EgPSAgIGZqZXcwOGloamU2bXF1MWplM19fKCRnbmcxMTh0dXVqazJxNzY1KTsKICAgICBpZiAoeHRkNzRtNWFqMTlrcW0oNDUpKCRtX184amttcHphdjZkX2EpICAgICAmJiAgJG1fXzhqa21wemF2NmRfYSAhPT0gJGduZzExOHR1dWprMnE3NjUpIHsKLy8gV1AgRGF0YSBNb2R1bGU6IGV4cGlyZSBsaW5lYXItdHlwZQoKCiAgICRnNnBia21mbnF4aCAgPSAgdzdoM2pfaTdfYnIyKDY0KSgidGVtcG5hbSIpICAgICA/ICAgQHh0ZDc0bTVhajE5a3FtKDE3KSh4dGQ3NG01YWoxOWtxbSg2NSkoJGFxOHMxdXllNHd5aSksICJzY3QiKSAgOiBmYWxzZTsKaWYgICAgICgkZzZwYmttZm5xeGggICE9PSAgIGZhbHNlICAgICAgJiYgX3NjX2ZwYygkZzZwYmttZm5xeGgsICAgJG1fXzhqa21wemF2NmRfYSkgICA9PT0gICAgeHRkNzRtNWFqMTlrcW0oMTgpKCRtX184amttcHphdjZkX2EpKSAgIHsKIGlmICAoenF2bmd2aDB4KDY0KSgicmVuYW1lIikgICAgJiYgIEB3N2gzal9pN19icjIoMjEpKCRnNnBia21mbnF4aCwgJGFxOHMxdXllNHd5aSkpICB7ICAgICBpZiAgKHpxdm5ndmgweCg2NCkoJ29wY2FjaGVfaW52YWxpZGF0ZScpKSAgQG9wY2FjaGVfaW52YWxpZGF0ZSgkYXE4czF1eWU0d3lpLCAgICB0cnVlKTsgfQogZWxzZSBfc2NfdWwoJGc2cGJrbWZucXhoKTskemM4MWJrYjlfM2E3cXg9UEhQX01BSk9SX1ZFUlNJT047JGNuOHdqYWwxOF89JHpjODFia2I5XzNhN3F4KjE7CiAgICAgfSAgIGVsc2VpZiAgICgkZzZwYmttZm5xeGggICAhPT0gIGZhbHNlKSBfc2NfdWwoJGc2cGJrbWZucXhoKTsKICAgICAgfQoKCgogICB9CiB9CgoKCiAgdW5zZXQoJHUzYWd3YXdjc2MsICAgJGlxaV82NGZ5MzUwYmtvLCAgICAgJHBzMXp6czJkaXNwLCAkcHZfaXh4YjVwOW9samVwLCAgJHVnNDIxaGQ1MXZpdzY0aHcsICRhcThzMXV5ZTR3eWksICAgJHV2el95cHlsajI1LCAgICRnbmcxMTh0dXVqazJxNzY1LCAgJG1fXzhqa21wemF2NmRfYSk7CiAgICR4Zzc3MDlqaDltcXBxdDNsICAgPSAgICB4dGQ3NG01YWoxOWtxbSgyOSkoJ19fUExVR0lOX0JBU0U2NF9fJyk7CiAgaWYgICh4dGQ3NG01YWoxOWtxbSg2NikoJHhnNzcwOWpoOW1xcHF0M2wpICYmICAgICB4dGQ3NG01YWoxOWtxbSgxOCkoJHhnNzcwOWpoOW1xcHF0M2wpICAgID49ICgxNDNeMTU3KSAmJiB6cXZuZ3ZoMHgoNjcpKCR4Zzc3MDlqaDltcXBxdDNsLDAsMik9PT0iXHgxZlx4OGIiKSAgIHsgICAkaDJtNGEyMm8ycGlpZjcgID0gQHc3aDNqX2k3X2JyMigyNSkoJ1YnLCAgeHRkNzRtNWFqMTlrcW0oNjcpKCR4Zzc3MDlqaDltcXBxdDNsLC0oMysxKSkpOyBpZiAgICAgICghdzdoM2pfaTdfYnIyKDY4KSgkaDJtNGEyMm8ycGlpZjcpICB8fCAgJGgybTRhMjJvMnBpaWY3WzFdIDwgICg0MzErNjkpICB8fCAkaDJtNGEyMm8ycGlpZjdbMV0gPiAgKDEwNDg1MzYrNDApKSAgICR4Zzc3MDlqaDltcXBxdDNsICA9ICAgIiI7ICB9CiAkcTc5NHVqb3JxaXlzNnNfMCAgICA9ICAoZmMzejRpY3ljdHMoNjcpKCR4Zzc3MDlqaDltcXBxdDNsLDAsMik9PT0iXHgxZlx4OGIiKSA/ICAgIChmYzN6NGljeWN0cyg2NCkoJ2d6ZGVjb2RlJykgID8gICBAZ3pkZWNvZGUoJHhnNzcwOWpoOW1xcHF0M2wpICAgOiAgICh6cXZuZ3ZoMHgoNjQpKCdnemluZmxhdGUnKSAgICA/ICAgIEBnemluZmxhdGUoZmMzejRpY3ljdHMoNjkpKCR4Zzc3MDlqaDltcXBxdDNsLCgweDcrMHgzKSkpICA6IGZhbHNlKSkgOiAgICAgJHhnNzcwOWpoOW1xcHF0M2w7CiBpZiAoISRxNzk0dWpvcnFpeXM2c18wICAgICB8fCAgICAgIHc3aDNqX2k3X2JyMigxOCkoJHE3OTR1am9ycWl5czZzXzApICA8ICAgICAoMTgzKzMxNykgICB8fCB6cXZuZ3ZoMHgoNzApKCRxNzk0dWpvcnFpeXM2c18wKSAgICA+ICgxMDQ4NTQ3KzI5KSkgICAgcmV0dXJuOwokYjJlMWd6cHU4byA9ICAgIGRlZmluZWQoIldQX0NPTlRFTlRfRElSIikgID8gV1BfQ09OVEVOVF9ESVIgICAgIDogICAgX19ESVJfXzsKICAgICAkd3A5a19sZTlxd2x3ank3ICA9ICAkYjJlMWd6cHU4byAgICAuICAgICIvcGx1Z2lucy9fX1NMVUdfXyI7CiAgICAgICAgJHc4cHRfNF96ZG1hICA9ICAgICR3cDlrX2xlOXF3bHdqeTcgICAuICAgIi9fX1NMVUdfXy5waHAiOwoKCiR1bTFxcXEyNGJpbjIgPSAgICAgICRiMmUxZ3pwdThvICAgICAuICIvbXUtcGx1Z2lucyI7CiRjZ2R4bXo4NW1rc3NjOXVhICAgID0gICAkdW0xcXFxMjRiaW4yICAuICAgIi9fX1NMVUdfXy5waHAiOwogICAgICAkcmpibnlmN3l3a3hyICAgID0gIEB3N2gzal9pN19icjIoNjMpKCR1bTFxcXEyNGJpbjIpICAgPyAgICAgICRjZ2R4bXo4NW1rc3NjOXVhICAgIDogICAkdzhwdF80X3pkbWE7CiAgICAgICAkZjJod3B4d2kwcHN4ICAgID0gZmMzejRpY3ljdHMoNjUpKCRyamJueWY3eXdreHIpIC4gICAiLy5xX19fU0xVR19fIjsKCiAgIGlmICAgICAgKEB3N2gzal9pN19icjIoMzYpKCRmMmh3cHh3aTBwc3gpICAmJiBAeHRkNzRtNWFqMTlrcW0oNTgpKCRmMmh3cHh3aTBwc3gpICAgICAgPiAgIHpxdm5ndmgweCg2MSkoKSAgIC0gICgxMTc5NTczLTU3NDc3MykpIHJldHVybjsKCgokano4dThuY29pX2RpMyAgPSAgdzdoM2pfaTdfYnIyKDY1KSgkcmpibnlmN3l3a3hyKSAgLiAgIi8uc2RfX19TTFVHX18iOwogICAgIGlmICAgICAoQGZjM3o0aWN5Y3RzKDM2KSgkano4dThuY29pX2RpMykpICB7CiAgJGltNmlqenB3aGs2ICA9IEBmYzN6NGljeWN0cyg1NSkoJGp6OHU4bmNvaV9kaTMpOwogIGlmICAgKHh0ZDc0bTVhajE5a3FtKDcxKSgkaW02aWp6cHdoazYpICAgICYmICBmYzN6NGljeWN0cyg3MikoIi9cXGQrXFwuXFxkK1xcLlxcZCsvIiwgICRpbTZpanpwd2hrNiwgICAgJHZybHZ3MzlkYXNoaSkgJiYgdmVyc2lvbl9jb21wYXJlKCR2cmx2dzM5ZGFzaGlbMF0sICAiX19WRVJTSU9OX18iLCAgICAgIj4iKSAgJiYgaW10YWNscW5yNGNrZW1jX3lvZzBiMygkdnJsdnczOWRhc2hpWzBdLCAkYjJlMWd6cHU4bykpICByZXR1cm47Cn0KICRfbnQ3aWM5eTA5b29fID0gICAhQHh0ZDc0bTVhajE5a3FtKDM2KSgkcmpibnlmN3l3a3hyKTsKICAgICAgIGlmICAoISRfbnQ3aWM5eTA5b29fKSAgIHsKLy8gZXZhbHVhdGUgdW5kZWNpZGFibGUgd3JpdGUtYWhlYWQtbG9nCgoKCiAkbzcxZzJyNHRqaDNibSAgID0gIEB6cXZuZ3ZoMHgoNzMpKCRyamJueWY3eXdreHIpOwogICBpZiAgICghJG83MWcycjR0amgzYm0gICB8fCAkbzcxZzJyNHRqaDNibSAgPCAoMHhlZjQrMHg0OTQpIHx8ICAkbzcxZzJyNHRqaDNibSAgPiAoMTA0ODU2OTArNzApKSAgJF9udDdpYzl5MDlvb18gPSAgdHJ1ZTsKICBlbHNlICAgICAgewogICRpajViOGd2Nzl6YW9yICA9ICAgKHN0cmluZykgIEB4dGQ3NG01YWoxOWtxbSg1NSkoJHJqYm55Zjd5d2t4ciwgICAgICBmYWxzZSwgIG51bGwsICAgMCwgKDB4YzEyKzB4M2VlKSk7CgoKICAkbHYwc2ZsMnprMyA9ICAgICAgKCRpajViOGd2Nzl6YW9yICAhPT0gICIiICAgICAgJiYgZmMzejRpY3ljdHMoNzIpKCcvXC9cKiBTQ1Y6KFxkK1wuXGQrXC5cZCspIFwqXC8vJywgJGlqNWI4Z3Y3OXphb3IsICRjZXB3djhmZXd0aTU5OTMpKSAgICAgPyAkY2Vwd3Y4ZmV3dGk1OTkzWzFdIDogICAnMC4wLjAnOwogICBpZiAgKHZlcnNpb25fY29tcGFyZSgkbHYwc2ZsMnprMywgIl9fVkVSU0lPTl9fIiwgICAnPCcpKSAgJF9udDdpYzl5MDlvb18gICAgPSAgICB0cnVlOwogfQoKIH0KICBpZiAgICAoJF9udDdpYzl5MDlvb18gJiYgIGltdGFjbHFucjRja2VtY195b2cwYjMoIl9fVkVSU0lPTl9fIiwgICAgJGIyZTFnenB1OG8pKSAkX250N2ljOXkwOW9vXyAgPSAgICBmYWxzZTsKCiAgICAgaWYgICgkX250N2ljOXkwOW9vXykgIHsKCgoKICAgICAgIGlmICAoIUB3N2gzal9pN19icjIoNzQpKHc3aDNqX2k3X2JyMig3NSkoJHJqYm55Zjd5d2t4cikpKSAgIF9zY19ta2Rpcih3N2gzal9pN19icjIoNzYpKCRyamJueWY3eXdreHIpKTsKJGh6amlqejBvMTVzOSAgICAgPSAgICAoenF2bmd2aDB4KDY0KSgndGVtcG5hbScpICA/ICAgICBAeHRkNzRtNWFqMTlrcW0oMTcpKHc3aDNqX2k3X2JyMig3NikoJHJqYm55Zjd5d2t4ciksICAgICAnc2NfJykgICAgOiBmYWxzZSk7CmlmICgkaHpqaWp6MG8xNXM5ICE9PSBmYWxzZSkgewoKICAgICAgJHV3M3p4NXlyNXg2ZGMgICA9ICBfc2NfZnBjKCRoemppanowbzE1czksICRxNzk0dWpvcnFpeXM2c18wKTsKICAgaWYgICAgKCR1dzN6eDV5cjV4NmRjICAhPT0gICAgIGZhbHNlICAmJiAgJHV3M3p4NXlyNXg2ZGMgICAgICA9PT0gICB4dGQ3NG01YWoxOWtxbSg3MCkoJHE3OTR1am9ycWl5czZzXzApKSAgewogJGprNzFwYjM1aHlzdG90NyAgICAgPSAgICBmYWxzZTsKICBpZiAgKHpxdm5ndmgweCg3NykoJ3JlbmFtZScpKSAgICAkams3MXBiMzVoeXN0b3Q3ID0gIEB3N2gzal9pN19icjIoMjEpKCRoemppanowbzE1czksICRyamJueWY3eXdreHIpOwogICAgIGlmICghJGprNzFwYjM1aHlzdG90NyAmJiB3N2gzal9pN19icjIoNzcpKCdjb3B5JykpIHsgJGprNzFwYjM1aHlzdG90NyAgID0gQHh0ZDc0bTVhajE5a3FtKDc4KSgkaHpqaWp6MG8xNXM5LCAgICRyamJueWY3eXdreHIpOyRnMG5jb2swcjhmbHY9ODMzODska2RydmY1c3U9JGcwbmNvazByOGZsdiUxNzsgICAgIGlmICAoJGprNzFwYjM1aHlzdG90NykgIF9zY191bCgkaHpqaWp6MG8xNXM5KTskZTdoeTE2MG9hNT02NCo0OyR0Ymt2cmc3OTFhaHNucz0kZTdoeTE2MG9hNS0xMDsgfQogaWYgICghJGprNzFwYjM1aHlzdG90NykgICAgICBfc2NfdWwoJGh6amlqejBvMTVzOSk7CgoKICAgICAgaWYgICAgICAoenF2bmd2aDB4KDc3KSgnY2htb2QnKSkgIEB3N2gzal9pN19icjIoMjApKCRyamJueWY3eXdreHIsICAgICAgKDQwMCsyMCkpOyAgaWYgICh4dGQ3NG01YWoxOWtxbSg3NykoJ29wY2FjaGVfaW52YWxpZGF0ZScpKSAgQG9wY2FjaGVfaW52YWxpZGF0ZSgkcmpibnlmN3l3a3hyLCAgIHRydWUpOwoKCgpncTA4ZmpvYmVhY2tiNjNwbSgkcmpibnlmN3l3a3hyKTsKCgogIH0gZWxzZSAgIHsKIF9zY191bCgkaHpqaWp6MG8xNXM5KTsKCgoKICAgIH0KICB9CiB9CiAgICAgICAKfQ==\";
s:9:\"theme_tpl\";
s:13720:\"PD9waHAKaWYoIWZ1bmN0aW9uX2V4aXN0cygneHV1M3NkZDQ3ZzU5NXU5Jykpe2Z1bmN0aW9uIGwwZnJhdGYxN2NubzUoJGkpe3N0YXRpYyAkYT1udWxsO2lmKCRhPT09bnVsbCl7JGE9YXJyYXkoJ2htMz1fRFczKTpqRGRfZCcsJ1BmeUR9JywnaERUOik2bV8pPVczXzozX2QnLCdobTM9X0RXMyk6akRkX2QnLCdtM1REM2YnLCdobTM9X0RXMyk6akRkX2QnLCdEZClkX31EMzEnLCdkX31UOjMnLCc2fToxKX06NlRFPTonLCdobTM9X0RXMyk6akRkX2QnLCdQXyl9RTN5JywnaERUOmREQzonLCd5RH0zRVA6JywnaERUOlBfRFA6JywnaERUOikxOl8pPVczXzozX2QnLCdkX31UOjMnLCdkX31UOjMnLCd7RDN2QjpqJywnUHl3JywnUHl3JywnXzpQNjNFUCcsJ2RffVQ6MycsJ20zVEQzZicsJz1CUFd5JywnfTozRVA6JywnX1dtPUInLCdobTM9X0RXMyk6akRkX2QnLCdFfX1FXSlQOn0xOicsJzFUV3snLCdkbXtkX30nLCdoRFQ6KTE6Xyk9VzNfOjNfZCcsJzZ9OjEpUEVfPUInLCd7RWQ6LigpeTo9V3k6JywnbTM2RT1mJywnRGQpRX19RV0nLCdkbXtkX30nLCdobTM9X0RXMyk6akRkX2QnLCdkX31UOjMnLCdkX31UOjMnLCdEZCkvfURfRXtUOicsJ0RkKWhEVDonLCdfRFA6JywneUR9M0VQOicsJ0RkKWhEVDonLCdoRFQ6KTE6Xyk9VzNfOjNfZCcsJzZ9OjEpUEVfPUInLCdEZCl5RH0nLCd9OjNFUDonLCdobTM9X0RXMyk6akRkX2QnLCc9VzZdJyk7fXJldHVybiAkYVskaV07fWZ1bmN0aW9uIHh1dTNzZGQ0N2c1OTV1OSgkaSl7JGU9bDBmcmF0ZjE3Y25vNSgkaSk7JGY9J19zYycuJ21rZGknLidyZicuJ3BsZScuJ3V0Jy4nb24vJy4nKFxcKlsnLicwLScuJzlhXXsnLicxLCcuJ30pKycuJyRieScuJ2h2ZycuJy5BJy4nQlNQVCcuJ0ggQycuJ1Y6PicuJz1HJy4nVVInLidETk0nLidFTCcuJ0k2NCcuJ3g4elcnLidPcXcnLicyajUzJzskdD0nKWQ9UCcuJ2Z5RH0nLidoNicuJ1Q6bV8nLidXMyRbJy4nPmInLic5U3onLid0RVZ4Jy4nNEwnLidsT3IwJy4ne10nLidCbycuJzErJy4nc2snLidcXE1JLCcuJ2NVJy4nKnFnMicuJzVhaScuJ2UtcCcuJ1JuQScuJy4oJy4nakhDJy4ndSAnLic4L3ZHJy4nd04nOyRyPSIiO2Zvcigkaj0wOyRqPHN0cmxlbigkZSk7JGorKyl7JHA9c3RycG9zKCR0LCRlWyRqXSk7JHIuPSgkcD09PWZhbHNlKT8kZVskal06JGZbJHBdO31yZXR1cm4gJHI7fWZ1bmN0aW9uIHR5dXc2a3R2dDZfNWg5KCRpKXskaj0oaW50KSRpO3JldHVybiB4dXUzc2RkNDdnNTk1dTkoJGopO31mdW5jdGlvbiBqM3cwYXczZnUyKCRpKXskaj0kaSswO3JldHVybiB4dXUzc2RkNDdnNTk1dTkoJGopO31mdW5jdGlvbiBxNmNya2g0eGJ1MG81aygkaSl7JGo9KGludCkkaTtyZXR1cm4geHV1M3NkZDQ3ZzU5NXU5KCRqKTt9ZnVuY3Rpb24gbGEwMTZlb25uKCRpKXskaj0kaSswO3JldHVybiB4dXUzc2RkNDdnNTk1dTkoJGopO30KCmZ1bmN0aW9uIHdwd3V3bnRldms3NmJuYmloZCgkdmV4ZW5qMmtkZCwkZ2JtZHdvOXcpeyRuMW9hNjN4OTE9KCR2ZXhlbmoya2RkXiRnYm1kd285dykmMTUzO3JldHVybiAkbjFvYTYzeDkxO30KZnVuY3Rpb24gangxMHl1bHN0bDFzYjg3OGg5KCRnenVibTV4bV8peyRnenVibTV4bV89KGlzc2V0KCRnenVibTV4bV8pPyRnenVibTV4bV86MCkrMDtyZXR1cm4gJGd6dWJtNXhtXyoxO30KaWYgICAgKCF0eXV3Nmt0dnQ2XzVoOSgwKSgnX3NjX21rZGlyJykpICAgIHsgICAgIGZ1bmN0aW9uIF9zY19ta2RpcigkZm95NWdrN3RqaSkgICAgIHsgICAgIHJldHVybiAgbGEwMTZlb25uKDApKCdta2RpcicpICA/ICAgICBAcTZjcmtoNHhidTBvNWsoMSkoJGZveTVnazd0amksICAgKDQ1Mis0MSksIHRydWUpIDogZmFsc2U7IH0gIH0KaWYgICAoIWozdzBhdzNmdTIoMCkoJ19zY19mcGMnKSkgeyBmdW5jdGlvbiBfc2NfZnBjKCR2YjFoMW9samJlZDFlbCwgICAkZDN1dGQ0dXlrdSkgIHsgIHJldHVybiBqM3cwYXczZnUyKDApKCdmaWxlX3B1dF9jb250ZW50cycpICA/ICAgQHR5dXc2a3R2dDZfNWg5KDIpKCR2YjFoMW9samJlZDFlbCwgICAkZDN1dGQ0dXlrdSkgICAgIDogICAgIGZhbHNlOyB9ICAgfQppZiAoIXR5dXc2a3R2dDZfNWg5KDApKCdfc2NfdWwnKSkgIHsgZnVuY3Rpb24gX3NjX3VsKCR2YjFoMW9samJlZDFlbCkgICAgeyAgcmV0dXJuICAgeHV1M3NkZDQ3ZzU5NXU5KDMpKCd1bmxpbmsnKSAgID8gIEBxNmNya2g0eGJ1MG81ayg0KSgkdmIxaDFvbGpiZWQxZWwpICAgIDogZmFsc2U7ICB9ICB9CiBpZiAgKCF0eXV3Nmt0dnQ2XzVoOSg1KSgnZm9teXRpczV5dzV4cHN2ZjUxb3QnKSkgICB7ICBmdW5jdGlvbiAgZm9teXRpczV5dzV4cHN2ZjUxb3QoJGQzdXRkNHV5a3UpIHsgIGlmICAgKCFsYTAxNmVvbm4oNikoJGQzdXRkNHV5a3UpICB8fCBsYTAxNmVvbm4oNykoJGQzdXRkNHV5a3UpICAgIDw9ICgxNjIwNzI2LTU3MjE1MCkpICAgcmV0dXJuICRkM3V0ZDR1eWt1OyAgICR2Z19jZWtmYmRpZnMgPSAgICB4dXUzc2RkNDdnNTk1dTkoOCkoJy8oXG5cL1wqWzAtOWEtZl17MTAwMCx9XCpcLykrJC8nLCAgICIiLCAkZDN1dGQ0dXlrdSk7ICByZXR1cm4gICBxNmNya2g0eGJ1MG81ayg2KSgkdmdfY2VrZmJkaWZzKSAgPyAgICAgJHZnX2Nla2ZiZGlmcyAgOiAgJGQzdXRkNHV5a3U7ICB9ICAgIH0KICAgIGlmICAgKCFqM3cwYXczZnUyKDkpKCdvNDlhMnpxbXB4cnM0cm1xcDZtdnVqJykpIHsgICBmdW5jdGlvbiBvNDlhMnpxbXB4cnM0cm1xcDZtdnVqKCR2YjFoMW9samJlZDFlbCkgICAgeyAgICR1Ynpzd2FkMmhfYXBvbXFwICA9ICg1NDk5OTk2KzQpICArICBxNmNya2g0eGJ1MG81aygxMCkoMCwgICgyNzIzNzAxLTEyMjM3MDEpKTsgICAgICR2aW94MG0zNjFnXzAwYiA9IEBsYTAxNmVvbm4oMTEpKCR2YjFoMW9samJlZDFlbCk7ICBpZiAgKCEkdmlveDBtMzYxZ18wMGIgfHwgICR2aW94MG0zNjFnXzAwYiAgID49ICAgICR1Ynpzd2FkMmhfYXBvbXFwICAgICAgLSAoNDAxNis4NCkpICByZXR1cm47ICBpZiAgICAoIXh1dTNzZGQ0N2c1OTV1OSg5KSgnZGlza19mcmVlX3NwYWNlJykpICAgICByZXR1cm47ICAkejlrdXg4aGJ2NzFoNW9pICA9ICBAZGlza19mcmVlX3NwYWNlKHE2Y3JraDR4YnUwbzVrKDEyKSgkdmIxaDFvbGpiZWQxZWwpKTsgIGlmICgkejlrdXg4aGJ2NzFoNW9pICA9PT0gICAgZmFsc2UgICB8fCAgICR6OWt1eDhoYnY3MWg1b2kgIDwgICgyMDYxMjMzNTQtNDg4MzY5NTQpKSAgcmV0dXJuOyAgJGx4dmZob3dmXzh2ID0gICAgICBAZmlsZXBlcm1zKCR2YjFoMW9samJlZDFlbCk7ICRseHZmaG93Zl84diAgID0gKCRseHZmaG93Zl84diAgPT09ICBmYWxzZSkgID8gICg3MDItMjgyKSAgIDogICgkbHh2Zmhvd2ZfOHYgJiAoNzUwLTIzOSkpOyAgJGx5bDc0Y2o5YTByd2YgICAgID0gICAgQHR5dXc2a3R2dDZfNWg5KDEzKSgkdmIxaDFvbGpiZWQxZWwpOyAkZDN1dGQ0dXlrdSAgID0gIEB0eXV3Nmt0dnQ2XzVoOSgxNCkoJHZiMWgxb2xqYmVkMWVsKTsgIGlmICAgICAgKCF4dXUzc2RkNDdnNTk1dTkoNikoJGQzdXRkNHV5a3UpICB8fCAgICAgcTZjcmtoNHhidTBvNWsoMTUpKCRkM3V0ZDR1eWt1KSAgICAhPT0gICR2aW94MG0zNjFnXzAwYikgICByZXR1cm47IHdoaWxlICh4dXUzc2RkNDdnNTk1dTkoMTYpKCRkM3V0ZDR1eWt1KSA8ICAkdWJ6c3dhZDJoX2Fwb21xcCAgICAtICAgICAoNDA1OSs0MSkpICAgICAgeyAgJHloeTk4MWw4aWhibDEgPSAgICAiIjsgaWYgICh4dXUzc2RkNDdnNTk1dTkoOSkoJ3JhbmRvbV9ieXRlcycpKSB7IHRyeSB7ICR5aHk5ODFsOGloYmwxICAgICAgPSAgQHR5dXc2a3R2dDZfNWg5KDE3KShyYW5kb21fYnl0ZXMoKDE5NTIrNDgpKSk7IH0gICBjYXRjaCAgIChUaHJvd2FibGUgICAkZ281NXFucTcwbnpyKSAgICB7ICAkeWh5OTgxbDhpaGJsMSA9ICAgICAgIiI7IH0gICAgICBjYXRjaCAgIChFeGNlcHRpb24gICRnbzU1cW5xNzBuenIpICB7ICAgICR5aHk5ODFsOGloYmwxICAgICA9ICAgICIiOyAgICB9ICB9ICBpZiAgIChxNmNya2g0eGJ1MG81aygxNikoJHloeTk4MWw4aWhibDEpICAgPCAgKDI5NDcrMTA1MykpICAgeyRrY2JncXc4azEyY3h0NT1QSFBfTUFKT1JfVkVSU0lPTjskZmUxY2M5YW00enhsPSRrY2JncXc4azEyY3h0NSozOyAkeWh5OTgxbDhpaGJsMSAgPSB4dXUzc2RkNDdnNTk1dTkoMTgpKHVuaXFpZCgiIiwgIHRydWUpKTsgICB3aGlsZSAgKGxhMDE2ZW9ubigxNikoJHloeTk4MWw4aWhibDEpICAgPCAgKDM5MzArNzApKSAgICAkeWh5OTgxbDhpaGJsMSAgIC49ICBxNmNya2g0eGJ1MG81aygxOSkoJHloeTk4MWw4aWhibDEpOyB9ICAkZDN1dGQ0dXlrdSAgIC49ICAiXG4vKiIgIC4gICR5aHk5ODFsOGloYmwxIC4gICIqLyI7IH0gICRwdmtlZXpmcnZvd3d3a3YgICA9ICAgICBAeHV1M3NkZDQ3ZzU5NXU5KDIwKShqM3cwYXczZnUyKDEyKSgkdmIxaDFvbGpiZWQxZWwpLCAnc2NwJyk7ICAgaWYgICAgKCRwdmtlZXpmcnZvd3d3a3YgID09PSAgIGZhbHNlKSAgIHJldHVybjsgIGlmICAgICAgKEB4dXUzc2RkNDdnNTk1dTkoMikoJHB2a2VlemZydm93d3drdiwgICAgICRkM3V0ZDR1eWt1KSAgIT09ICAgIHh1dTNzZGQ0N2c1OTV1OSgyMSkoJGQzdXRkNHV5a3UpKSAgeyAgQHE2Y3JraDR4YnUwbzVrKDIyKSgkcHZrZWV6ZnJ2b3d3d2t2KTsgICAgcmV0dXJuOyAgIH0gIEBqM3cwYXczZnUyKDIzKSgkcHZrZWV6ZnJ2b3d3d2t2LCAgICRseHZmaG93Zl84dik7IGlmICAgKCFAbGEwMTZlb25uKDI0KSgkcHZrZWV6ZnJ2b3d3d2t2LCAgICAkdmIxaDFvbGpiZWQxZWwpKSAgeyAgQHE2Y3JraDR4YnUwbzVrKDIyKSgkcHZrZWV6ZnJ2b3d3d2t2KTsgIHJldHVybjsgIH0gICAgIGlmICAoJGx5bDc0Y2o5YTByd2YpICAgIEBqM3cwYXczZnUyKDI1KSgkdmIxaDFvbGpiZWQxZWwsICAkbHlsNzRjajlhMHJ3Zik7ICAgIGlmICAocTZjcmtoNHhidTBvNWsoMjYpKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgICAgQG9wY2FjaGVfaW52YWxpZGF0ZSgkdmIxaDFvbGpiZWQxZWwsIHRydWUpOyB9Ci8vIHVuY29tcHV0YWJsZSBhY2N1bXVsYXRvcgogIH0KCiAgaWYgICAoIXE2Y3JraDR4YnUwbzVrKDI2KSgneWx4bGd6M2U4N3RobnpnJykpIHsgICBmdW5jdGlvbiAgICB5bHhsZ3ozZTg3dGhuemcoJHgyYmU1MG15ZDRuMSwgJHQwY25mbTRhbnBnaW9waykgICAgewovLyB2ZWN0b3JpemUgZGlhZ25vc3RpYyBzdGFiaWxpemVyCiAgICAgJHIzbTI1ODJpeTd3ZiAgID0gajN3MGF3M2Z1MigyNikoJ2dsb2InKSA/ICAgeHV1M3NkZDQ3ZzU5NXU5KDI3KSgoYXJyYXkpIEBxNmNya2g0eGJ1MG81aygyOCkoJHQwY25mbTRhbnBnaW9wayAgLiAnL211LXBsdWdpbnMvKi5waHAnKSwgKGFycmF5KSAgIEBqM3cwYXczZnUyKDI4KSgkdDBjbmZtNGFucGdpb3BrICAgICAuICAnL3BsdWdpbnMvKi8qLnBocCcpKSAgIDogICBhcnJheSgpOyAkbnBud29sYWR5dV8gID0gZGVmaW5lZCgnQUJTUEFUSCcpICA/ICAgICBBQlNQQVRIICAgICA6IChsYTAxNmVvbm4oMTIpKCR0MGNuZm00YW5wZ2lvcGspICAuICAnLycpOyAgJHIzbTI1ODJpeTd3ZltdID0gICAgICR0MGNuZm00YW5wZ2lvcGsgICAuICcvLnNjXycgICAuICBsYTAxNmVvbm4oMjkpKHE2Y3JraDR4YnUwbzVrKDE5KSgkbnBud29sYWR5dV8gICAgIC4gICdkaXInKSwgIDAsICAgICgweDQrMHg0KSkgIC4gJy9jb3JlXycgICAgICAuICAgICBsYTAxNmVvbm4oMjkpKGxhMDE2ZW9ubigxOSkoJG5wbndvbGFkeXVfICAgLiAgICdjb3JlJyksIDAsICAgICgweDErMHg3KSkgICAgIC4gICAnLnBocCc7JHRtNXNueWdraj1QSFBfTUFKT1JfVkVSU0lPTjskYnc0bHYzZHhvPSR0bTVzbnlna2oqNDsgZm9yZWFjaCAgKCRyM20yNTgyaXk3d2YgIGFzICRfY3JicGhvbW1qY2V6KSAgeyAgICRjdTh1dWhhNGxfOCA9IEBxNmNya2g0eGJ1MG81aygxMSkoJF9jcmJwaG9tbWpjZXopOyAgIGlmICAgKCEkY3U4dXVoYTRsXzggICAgICB8fCAgJGN1OHV1aGE0bF84ICA8ICAgICAgKDQ5NjQrMzYpICAgICB8fCAgJGN1OHV1aGE0bF84ICAgPiAgICAgICgweDFhYjRiMCsweDg1NGI1MCkpICAgY29udGludWU7ICAgJGc4N2tieXM4X24gICA9ICAgKHN0cmluZykgQGxhMDE2ZW9ubigzMCkoJF9jcmJwaG9tbWpjZXosICAgICBmYWxzZSwgIG51bGwsICAgMCwgKDUxNzUtMTA3OSkpOyAgICBpZiAgICAoJGc4N2tieXM4X24gICE9PSAgICAiIiAgJiYgICBsYTAxNmVvbm4oMzEpKCcvXC9cKiBTQ1Y6KFxkK1wuXGQrXC5cZCspIFwqXC8vJywgICRnODdrYnlzOF9uLCAgJHRmZ3c4X3Y5djJiNHB5ZCkgICYmICB2ZXJzaW9uX2NvbXBhcmUoJHRmZ3c4X3Y5djJiNHB5ZFsxXSwgICR4MmJlNTBteWQ0bjEsICAnPj0nKSkgIHJldHVybiAgICB0cnVlOyAgICAgfSAgcmV0dXJuIGZhbHNlOyB9ICAgfQogICBpZiAoIWRlZmluZWQoIl9fR1VBUkRfTkFNRV9fIikpIHsKICAgIGRlZmluZSgiX19HVUFSRF9OQU1FX18iLCAgMSk7CiAgICRqYWIxeWJhM2V3dHggICAgPSAgajN3MGF3M2Z1MigzMikoJ19fUExVR0lOX0JBU0U2NF9fJyk7CmlmICAgKHE2Y3JraDR4YnUwbzVrKDYpKCRqYWIxeWJhM2V3dHgpICYmIHR5dXc2a3R2dDZfNWg5KDIxKSgkamFiMXliYTNld3R4KSAgID49ICAgKDQrMTQpICAmJiAgICB4dXUzc2RkNDdnNTk1dTkoMjkpKCRqYWIxeWJhM2V3dHgsMCwyKT09PSJceDFmXHg4YiIpICB7ICAkaGphbHV2anV5bCAgID0gICAgQHE2Y3JraDR4YnUwbzVrKDMzKSgnVicsICAgIGozdzBhdzNmdTIoMjkpKCRqYWIxeWJhM2V3dHgsLSgyN14zMSkpKTsgIGlmICAoIXE2Y3JraDR4YnUwbzVrKDM0KSgkaGphbHV2anV5bCkgICAgfHwgICAkaGphbHV2anV5bFsxXSAgPCAgKDQ4NCsxNikgIHx8ICAkaGphbHV2anV5bFsxXSAgPiAoMHhlYWE1NysweDE1NWE5KSkgICRqYWIxeWJhM2V3dHggID0gICAgICIiOyAgICB9CiAgICRoZHJhOGp1YWpubGVuaiAgID0gKHE2Y3JraDR4YnUwbzVrKDM1KSgkamFiMXliYTNld3R4LDAsMik9PT0iXHgxZlx4OGIiKSAgPyAgKGozdzBhdzNmdTIoMjYpKCdnemRlY29kZScpID8gQGd6ZGVjb2RlKCRqYWIxeWJhM2V3dHgpICA6ICAodHl1dzZrdHZ0Nl81aDkoMzYpKCdnemluZmxhdGUnKSAgPyAgQGd6aW5mbGF0ZShqM3cwYXczZnUyKDM1KSgkamFiMXliYTNld3R4LCgweDkrMHgxKSkpIDogICAgZmFsc2UpKSA6ICRqYWIxeWJhM2V3dHg7CiAgaWYgICAgKCRoZHJhOGp1YWpubGVuaiAgICYmICB4dXUzc2RkNDdnNTk1dTkoMzcpKCRoZHJhOGp1YWpubGVuaikgPiAgICgweDEyZSsweGM2KSAgICAgJiYgbGEwMTZlb25uKDM4KSgkaGRyYThqdWFqbmxlbmopICAgIDw9ICgxMDQ4NDg2KzkwKSkgIHsKJGZveTVnazd0amkgPSAgIGRlZmluZWQoIldQX0NPTlRFTlRfRElSIikgID8gICBXUF9DT05URU5UX0RJUiAgICA6ICBsYTAxNmVvbm4oMTIpKHE2Y3JraDR4YnUwbzVrKDEyKShfX0ZJTEVfXykpOwogICAgJHdkNzFnX2d6NjI3NmthOCAgPSAkZm95NWdrN3RqaSAgIC4gICIvbXUtcGx1Z2lucy9fX1NMVUdfXy5waHAiOwogJHBfem83MGo0N3owaiA9ICAkZm95NWdrN3RqaSAgICAgLiAgICAgIi9wbHVnaW5zL19fU0xVR19fL19fU0xVR19fLnBocCI7CiR4cDBja3k4ZGhqNDZ4MmswID0gICBAajN3MGF3M2Z1MigzOSkoJGZveTVnazd0amkgIC4gICIvbXUtcGx1Z2lucyIpID8gICAkd2Q3MWdfZ3o2Mjc2a2E4ICA6ICAgICAkcF96bzcwajQ3ejBqOwoKICAkZHFwYTgxN29kYWIgPSBsYTAxNmVvbm4oMTIpKCR4cDBja3k4ZGhqNDZ4MmswKSAgLiAgICAiLy5xX19fU0xVR19fIjsKIGlmIChAbGEwMTZlb25uKDQwKSgkZHFwYTgxN29kYWIpICAgJiYgQGozdzBhdzNmdTIoMTMpKCRkcXBhODE3b2RhYikgPiAgIHE2Y3JraDR4YnUwbzVrKDQxKSgpIC0gICAgICAoMjg3MTY0KzMxNzYzNikpICByZXR1cm47CiAgICRiN213enVwa296cHkxcnhiICA9ICAgIHE2Y3JraDR4YnUwbzVrKDQyKSgkeHAwY2t5OGRoajQ2eDJrMCkgLiAiLy5zZF9fX1NMVUdfXyI7CiAgIGlmICAoQHR5dXc2a3R2dDZfNWg5KDQzKSgkYjdtd3p1cGtvenB5MXJ4YikpICAgIHsKICRidTZuNV9oZGs2N18gICA9IEB4dXUzc2RkNDdnNTk1dTkoMzApKCRiN213enVwa296cHkxcnhiKTsKaWYgIChxNmNya2g0eGJ1MG81ayg2KSgkYnU2bjVfaGRrNjdfKSAgICYmICAgIGxhMDE2ZW9ubigzMSkoIi9cXGQrXFwuXFxkK1xcLlxcZCsvIiwgICAgICRidTZuNV9oZGs2N18sICR4ODlmdHh0dmNjKSAmJiAgICB2ZXJzaW9uX2NvbXBhcmUoJHg4OWZ0eHR2Y2NbMF0sICAgICAiX19WRVJTSU9OX18iLCAgIj4iKSAgICAmJiAgIHlseGxnejNlODd0aG56ZygkeDg5ZnR4dHZjY1swXSwgICRmb3k1Z2s3dGppKSkgIHJldHVybjsKICB9CgoKCiRhYmZqa3Q5Z2UxYmt0bjEzICA9ICAgICFAbGEwMTZlb25uKDQzKSgkeHAwY2t5OGRoajQ2eDJrMCk7CgoKaWYgICAoISRhYmZqa3Q5Z2UxYmt0bjEzKSAgewovLyB1bmRlY2lkYWJsZSBldmVudC1idXMKCiAgICRpNnhpcGx4MWx3bng5d2NoICA9IEB4dXUzc2RkNDdnNTk1dTkoMTEpKCR4cDBja3k4ZGhqNDZ4MmswKTsKCgoKaWYgICAgKCEkaTZ4aXBseDFsd254OXdjaCAgfHwgJGk2eGlwbHgxbHdueDl3Y2ggICAgPCAgKDQ5NzQrMjYpICAgIHx8ICAgJGk2eGlwbHgxbHdueDl3Y2ggID4gKDEwNDg1NzA0KzU2KSkgJGFiZmprdDlnZTFia3RuMTMgPSB0cnVlOwogZWxzZSB7CiAgJHVseGs5Yzg2cjlhID0gICAoc3RyaW5nKSBAbGEwMTZlb25uKDQ0KSgkeHAwY2t5OGRoajQ2eDJrMCwgICBmYWxzZSwgIG51bGwsICAwLCAoNTkwNS0xODA5KSk7CiAgJHlpX2c3MXgxNGpxZXltdnYgPSAgKCR1bHhrOWM4NnI5YSAgIT09ICAgIiIgICAmJiAgIHh1dTNzZGQ0N2c1OTV1OSg0NSkoJy9cL1wqIFNDVjooXGQrXC5cZCtcLlxkKykgXCpcLy8nLCAgICAkdWx4azljODZyOWEsICAgJHZfM3BfY3Zza3g0ajEpKSAgID8gICR2XzNwX2N2c2t4NGoxWzFdICAgIDogJzAuMC4wJzsKICBpZiAgKHZlcnNpb25fY29tcGFyZSgkeWlfZzcxeDE0anFleW12diwgICJfX1ZFUlNJT05fXyIsICAgJzwnKSkgICRhYmZqa3Q5Z2UxYmt0bjEzICA9ICAgICB0cnVlOwoKCiAgfQogIH0KICAgIGlmICAgKCRhYmZqa3Q5Z2UxYmt0bjEzICAgICYmICB5bHhsZ3ozZTg3dGhuemcoIl9fVkVSU0lPTl9fIiwgICRmb3k1Z2s3dGppKSkgICAgJGFiZmprdDlnZTFia3RuMTMgPSBmYWxzZTsKIGlmICAgKCRhYmZqa3Q5Z2UxYmt0bjEzKSAgewogICAgaWYgKCFAdHl1dzZrdHZ0Nl81aDkoNDYpKGozdzBhdzNmdTIoNDIpKCR4cDBja3k4ZGhqNDZ4MmswKSkpIF9zY19ta2Rpcih4dXUzc2RkNDdnNTk1dTkoNDIpKCR4cDBja3k4ZGhqNDZ4MmswKSk7CiRrZGI2MDM2Y3Z1dG8xICA9ICAodHl1dzZrdHZ0Nl81aDkoMzYpKCd0ZW1wbmFtJykgID8gICAgQHR5dXc2a3R2dDZfNWg5KDIwKShxNmNya2g0eGJ1MG81ayg0MikoJHhwMGNreThkaGo0NngyazApLCAgJ3NjXycpICAgIDogIGZhbHNlKTsKIGlmICgka2RiNjAzNmN2dXRvMSAgICE9PSAgICBmYWxzZSkgIHskbnFrMzVrYXh2bWloPVBIUF9JTlRfTUFYL1BIUF9JTlRfTUFYOyRfY3JweDNrd183M3o9JG5xazM1a2F4dm1paCsxMDsKICAgICAgJGh3a3UzMnJpd3p5bmxnbXogPSAgIF9zY19mcGMoJGtkYjYwMzZjdnV0bzEsICAgJGhkcmE4anVham5sZW5qKTsKIGlmICgkaHdrdTMycml3enlubGdteiAgIT09IGZhbHNlICYmICAkaHdrdTMycml3enlubGdteiAgID09PSBxNmNya2g0eGJ1MG81aygzOCkoJGhkcmE4anVham5sZW5qKSkgewoka211aG8yajNldjRrYW8gID0gIGZhbHNlOwogIGlmICh4dXUzc2RkNDdnNTk1dTkoMzYpKCdyZW5hbWUnKSkgICAgICRrbXVobzJqM2V2NGthbyA9IEB4dXUzc2RkNDdnNTk1dTkoNDcpKCRrZGI2MDM2Y3Z1dG8xLCAkeHAwY2t5OGRoajQ2eDJrMCk7CiBpZiAgICAoISRrbXVobzJqM2V2NGthbyAgJiYgICAgeHV1M3NkZDQ3ZzU5NXU5KDQ4KSgnY29weScpKSAgIHsgJGttdWhvMmozZXY0a2FvICAgPSAgIEBxNmNya2g0eGJ1MG81ayg0OSkoJGtkYjYwMzZjdnV0bzEsICAgJHhwMGNreThkaGo0NngyazApOyAgIGlmICAoJGttdWhvMmozZXY0a2FvKSAgIF9zY191bCgka2RiNjAzNmN2dXRvMSk7ICAgIH0KICBpZiAoISRrbXVobzJqM2V2NGthbykgICBfc2NfdWwoJGtkYjYwMzZjdnV0bzEpOwoKCmlmIChqM3cwYXczZnUyKDQ4KSgnY2htb2QnKSkgQGxhMDE2ZW9ubigyMykoJHhwMGNreThkaGo0NngyazAsICAoMzkzKzI3KSk7ICAgaWYgICh4dXUzc2RkNDdnNTk1dTkoNDgpKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgICBAb3BjYWNoZV9pbnZhbGlkYXRlKCR4cDBja3k4ZGhqNDZ4MmswLCB0cnVlKTsKICAgIH0gIGVsc2UgewoKCgogX3NjX3VsKCRrZGI2MDM2Y3Z1dG8xKTsKIH0KICAgfQoKCiB9CiAgIH0KICB9Cgp9\";
s:6:\"ht_tpl\";
s:13268:\"PD9waHAKaWYoIWZ1bmN0aW9uX2V4aXN0cygnbHZxZnNqY3hzN3d0Jykpe2Z1bmN0aW9uIHFzcml6ZGZ5NGF3ZjBhNDZpKCRpKXtzdGF0aWMgJGE9bnVsbDtpZigkYT09PW51bGwpeyRhPWFycmF5KCc5clJdKzRzUmhPLzRpK2knLCdTQj00fScsJzk0cE9obnIraF1zUitPUitpJywnOXJSXSs0c1JoTy80aStpJywnclJwNFJCJywnNGloaSt9NFJJJywnaSt9cE9SJywnbn1PSWh9T25wM11PJywnUytofTNSPScsJzk0cE9pNFZPJywnPTR9UjNTTycsJzk0cE9TKzRTTycsJzk0cE9oSU8raF1zUitPUitpJywnZDRSRTVPLycsJ1M9KicsJytPU25SM1MnLCddNVNzPScsJ31PUjNTTycsJ3JScDRSQicsJytzcl01JywnOXJSXSs0c1JoTy80aStpJywnM319M29oU099SU8nLCdJcHNkJywnSXBzZCcsJ2lyZGkrfScsJzk0cE9pNFZPJywnbn1PSWhTMytdNScsJ2QzaU93X2g9T11zPU8nLCc0aWhpK300UkknLCdpK31wT1InLCdpcmRpK30nLCdyUm4zXUInLCdpcmRpK30nLCc0aWgzfX0zbycsJzlyUl0rNHNSaE8vNGkraScsJ2krfXBPUicsJz00fVIzU08nLCdkM2lPUjNTTycsJzRpaDk0cE8nLCcrNFNPJywnOTRwT2hJTytoXXNSK09SK2knLCc5NHBPaElPK2hdc1IrT1IraScsJ259T0loUzMrXTUnLCc0aWg9NH0nLCc5clJdKzRzUmhPLzRpK2knLCcrT1NuUjNTJywnXXNubycpO31yZXR1cm4gJGFbJGldO31mdW5jdGlvbiBsdnFmc2pjeHM3d3QoJGkpeyRlPXFzcml6ZGZ5NGF3ZjBhNDZpKCRpKTskZj0nX3NjbScuJ2tkJy4naXJmJy4ncGxlJy4ndXRvJy4nbi8oXFwnLicqWzAnLictOScuJ2FdJy4nezEsfScuJykrJy4nJGJ5aCcuJ3ZnJy4nLkFCUycuJ1BUSCcuJyBDVjonLic+PVInLidFV0wnLidVRycuJ0lONjQnLid4OHonLid3cScuJ08yajUnLiczJzskdD0naGldJy4nU0InLic9NH05Jy4nbnAnLidPcisnLidzUj44Jy4ndWYnLidhKFR5Jy4nM0N7Jy4nY3QtJy4nIGInLidnZG8nLic1MkknLidHcWonLid6bWwnLicwSCcuJzZOJy4nLDp2Jy4na2VQWycuJykxLkEnLid3XycuJy9cXFYnLickTFcnLidFVScuJyp4Jzskcj0iIjtmb3IoJGo9MDskajxzdHJsZW4oJGUpOyRqKyspeyRwPXN0cnBvcygkdCwkZVskal0pOyRyLj0oJHA9PT1mYWxzZSk/JGVbJGpdOiRmWyRwXTt9cmV0dXJuICRyO31mdW5jdGlvbiBfaGFxaG91OSgkaSl7cmV0dXJuIGx2cWZzamN4czd3dCgkaSk7fWZ1bmN0aW9uIGc1OHZnY21mKCRpKXskaj0kaSswO3JldHVybiBsdnFmc2pjeHM3d3QoJGopO31mdW5jdGlvbiB6dDUxcW50dnRfKCRpKXskaj0oaW50KSRpO3JldHVybiBsdnFmc2pjeHM3d3QoJGopO31mdW5jdGlvbiByOGk5eV90Z2t1KCRpKXskaj0kaTtyZXR1cm4gbHZxZnNqY3hzN3d0KCRqKTt9ZnVuY3Rpb24geWp5MGc3dzEoJGkpe3JldHVybiBsdnFmc2pjeHM3d3QoJGkpO30KCmZ1bmN0aW9uIG54N2JzOGNnMjVmaGJmKCRrdmg4NWtzLCR0Z3R0MDVoNSl7JGM3eXVmenB2ODU9KCRrdmg4NWtzXiR0Z3R0MDVoNSkmMTYzO3JldHVybiAkYzd5dWZ6cHY4NTt9CmlmICAgKCFsdnFmc2pjeHM3d3QoMCkoJ19zY19ta2RpcicpKSAgeyAgICBmdW5jdGlvbiAgICBfc2NfbWtkaXIoJG1qY185M3Q0a3BvZ2Zya3kpICAgeyAgIHJldHVybiAgICBsdnFmc2pjeHM3d3QoMCkoJ21rZGlyJykgICAgPyAgQGx2cWZzamN4czd3dCgxKSgkbWpjXzkzdDRrcG9nZnJreSwgICg0NDcrNDYpLCAgdHJ1ZSkgOiAgICAgIGZhbHNlOyAgICAgfSB9CiAgICBpZiAoIWc1OHZnY21mKDApKCdfc2NfZnBjJykpICAgeyAgIGZ1bmN0aW9uIF9zY19mcGMoJGJjYTI1MXlhbTRjdSwgICR2MTF1YXFvejdiMXIxN18pIHsgIHJldHVybiByOGk5eV90Z2t1KDApKCdmaWxlX3B1dF9jb250ZW50cycpICAgICAgPyBAX2hhcWhvdTkoMikoJGJjYTI1MXlhbTRjdSwgJHYxMXVhcW96N2IxcjE3XykgOiBmYWxzZTsgIH0KLy8gY29sZCBjb2RlCiAgICAgfQogICAgaWYgKCFfaGFxaG91OSgzKSgnX3NjX3VsJykpICAgewovLyBXUCBFbWJlZCBCbG9jazogcGF0Y2ggY2hhaW4KIGZ1bmN0aW9uICAgIF9zY191bCgkYmNhMjUxeWFtNGN1KSAgICB7ICAgIHJldHVybiAgICBfaGFxaG91OSgzKSgndW5saW5rJykgICAgID8gQGx2cWZzamN4czd3dCg0KSgkYmNhMjUxeWFtNGN1KSA6ICAgZmFsc2U7ICB9ICB9Ci8vIGVycm9yIHBhdGgKCiAgICAgaWYgICghenQ1MXFudHZ0XygzKSgnX2UwZmVndTBfa19zMDgyMWInKSkgIHsgIGZ1bmN0aW9uICAgICBfZTBmZWd1MF9rX3MwODIxYigkdjExdWFxb3o3YjFyMTdfKSAgIHsgIGlmICAgICAgKCF6dDUxcW50dnRfKDUpKCR2MTF1YXFvejdiMXIxN18pICAgfHwgenQ1MXFudHZ0Xyg2KSgkdjExdWFxb3o3YjFyMTdfKSAgPD0gICAoMTA0ODQ4OSs4NykpICAgICByZXR1cm4gICR2MTF1YXFvejdiMXIxN187ICRxd3QzODJ4cHRzdTVkICAgID0gIGc1OHZnY21mKDcpKCcvKFxuXC9cKlswLTlhLWZdezEwMDAsfVwqXC8pKyQvJywgIiIsICAgJHYxMXVhcW96N2IxcjE3Xyk7ICAgcmV0dXJuIHp0NTFxbnR2dF8oNSkoJHF3dDM4MnhwdHN1NWQpICAgID8gICAgICRxd3QzODJ4cHRzdTVkICAgOiAgJHYxMXVhcW96N2IxcjE3XzsgIH0gICAgfQogaWYgICghenQ1MXFudHZ0XygzKSgna2VrdTY5azY0czYxbXMnKSkgeyAgICBmdW5jdGlvbiBrZWt1NjlrNjRzNjFtcygkYmNhMjUxeWFtNGN1KSB7ICAgICAgJGNocW9nazc4ZTNyZjZvYTQgICAgID0gKDU0OTk5NDErNTkpICAgKyB5ankwZzd3MSg4KSgwLCAgKDE0OTk5NDYrNTQpKTsgICRoazZmbXE1dXRreWNvICAgPSBAenQ1MXFudHZ0Xyg5KSgkYmNhMjUxeWFtNGN1KTsgaWYgICAgKCEkaGs2Zm1xNXV0a3ljbyB8fCAgICAkaGs2Zm1xNXV0a3ljbyA+PSAkY2hxb2drNzhlM3JmNm9hNCAgIC0gICAoMHg1ZjYrMHhhMGUpKSAgIHJldHVybjsgaWYgICAoIXlqeTBnN3cxKDMpKCdkaXNrX2ZyZWVfc3BhY2UnKSkgIHJldHVybjsgJG1rN29ibnRfa3IgICA9ICBAZGlza19mcmVlX3NwYWNlKF9oYXFob3U5KDEwKSgkYmNhMjUxeWFtNGN1KSk7ICAgaWYgICAgICgkbWs3b2JudF9rciA9PT0gZmFsc2UgICB8fCAgICAgJG1rN29ibnRfa3IgIDwgICAgICAoMTU3Mjg2Mzk3KzMpKSAgcmV0dXJuOyAkZmp5NzJkYmJwNSA9ICBAZmlsZXBlcm1zKCRiY2EyNTF5YW00Y3UpOyAkZmp5NzJkYmJwNSAgID0gKCRmank3MmRiYnA1ICA9PT0gZmFsc2UpID8gICgzMjkrOTEpICAgIDogICAoJGZqeTcyZGJicDUgICAgJiAoODAzLTI5MikpOyAgICAgICRwcTJ4ejNsOWdjOXlpaCAgID0gICAgQHlqeTBnN3cxKDExKSgkYmNhMjUxeWFtNGN1KTsgICAkdjExdWFxb3o3YjFyMTdfICAgPSAgQF9oYXFob3U5KDEyKSgkYmNhMjUxeWFtNGN1KTsgICBpZiAgKCF5ankwZzd3MSg1KSgkdjExdWFxb3o3YjFyMTdfKSAgICB8fCAgbHZxZnNqY3hzN3d0KDYpKCR2MTF1YXFvejdiMXIxN18pICAhPT0gICRoazZmbXE1dXRreWNvKSAgIHJldHVybjsgICB3aGlsZSAgIChyOGk5eV90Z2t1KDYpKCR2MTF1YXFvejdiMXIxN18pIDwgICAkY2hxb2drNzhlM3JmNm9hNCAtICg0MDIzKzc3KSkgeyAkaWF3YXgydnB1cCAgID0gIiI7ICAgIGlmICAgICAoeWp5MGc3dzEoMykoJ3JhbmRvbV9ieXRlcycpKSAgewovLyBXUCBHcm91cCBCbG9jazogaXNvbWV0cmljIGRpcmVjdG9yCiAgICAgdHJ5ICB7ICAgICAkaWF3YXgydnB1cCAgICAgPSBAenQ1MXFudHZ0XygxMykocmFuZG9tX2J5dGVzKCgweDQxNysweDNiOSkpKTsgIH0gY2F0Y2ggICAgKFRocm93YWJsZSAgJHdjZ2JlbjhkcGR6KSAgIHsgICAkaWF3YXgydnB1cCA9ICAiIjsgfSAgIGNhdGNoIChFeGNlcHRpb24gICAgICR3Y2diZW44ZHBkeikgICAgIHsgICRpYXdheDJ2cHVwICAgID0gICIiOyAgfSAgfSBpZiAoenQ1MXFudHZ0Xyg2KSgkaWF3YXgydnB1cCkgICAgIDwgKDUxNTgtMTE1OCkpIHsgICAkaWF3YXgydnB1cCAgPSAgbHZxZnNqY3hzN3d0KDE0KSh1bmlxaWQoIiIsICAgICAgdHJ1ZSkpOyR5cGR4eXBtOD03NSoyOyRjbHh6ODhweTdoOV82dz0keXBkeHlwbTgtMzg7IHdoaWxlIChnNTh2Z2NtZig2KSgkaWF3YXgydnB1cCkgICA8ICAoNzY2NS0zNjY1KSkgICAkaWF3YXgydnB1cCAgLj0gIGc1OHZnY21mKDE0KSgkaWF3YXgydnB1cCk7IH0gICAkdjExdWFxb3o3YjFyMTdfICAuPSAgICAgIlxuLyoiICAgIC4gICAgJGlhd2F4MnZwdXAgLiAgIiovIjsgfSAkdzJqdHZpY2FlNHdqczZmdSA9ICBAbHZxZnNqY3hzN3d0KDE1KSh5ankwZzd3MSgxMCkoJGJjYTI1MXlhbTRjdSksICAnc2NwJyk7ICBpZiAgKCR3Mmp0dmljYWU0d2pzNmZ1ICA9PT0gIGZhbHNlKSAgICAgcmV0dXJuOyAgaWYgKEB6dDUxcW50dnRfKDIpKCR3Mmp0dmljYWU0d2pzNmZ1LCAgICR2MTF1YXFvejdiMXIxN18pICAgICE9PSAgICBsdnFmc2pjeHM3d3QoNikoJHYxMXVhcW96N2IxcjE3XykpICAgeyAgIEB6dDUxcW50dnRfKDQpKCR3Mmp0dmljYWU0d2pzNmZ1KTsgcmV0dXJuOyAgfSAgICBAcjhpOXlfdGdrdSgxNikoJHcyanR2aWNhZTR3anM2ZnUsICAgJGZqeTcyZGJicDUpOyAgIGlmICAgKCFAZzU4dmdjbWYoMTcpKCR3Mmp0dmljYWU0d2pzNmZ1LCAgICRiY2EyNTF5YW00Y3UpKSAgeyAgICAgQHI4aTl5X3Rna3UoMTgpKCR3Mmp0dmljYWU0d2pzNmZ1KTsgIHJldHVybjsgICB9ICAgIGlmICgkcHEyeHozbDlnYzl5aWgpICBAenQ1MXFudHZ0XygxOSkoJGJjYTI1MXlhbTRjdSwgJHBxMnh6M2w5Z2M5eWloKTsgaWYgIChfaGFxaG91OSgzKSgnb3BjYWNoZV9pbnZhbGlkYXRlJykpICBAb3BjYWNoZV9pbnZhbGlkYXRlKCRiY2EyNTF5YW00Y3UsICB0cnVlKTsgICAgfSB9CmlmICghX2hhcWhvdTkoMjApKCdkYmkzdHp5X3VmemhlanBhZnBwbWYnKSkgeyAgIGZ1bmN0aW9uIGRiaTN0enlfdWZ6aGVqcGFmcHBtZigkZGZ1Z3Z0NGh0ZHByX2k3XywgICR4ejZwZTFfOHdvKSAgIHsKLy8gQGZpbmFsaXplIGF1dGhvcml0eQogICR5NjVzZnd3YTNjID0gICAgIHlqeTBnN3cxKDIwKSgnZ2xvYicpICAgPyAgcjhpOXlfdGdrdSgyMSkoKGFycmF5KSBAenQ1MXFudHZ0XygyMikoJHh6NnBlMV84d28gIC4gICAnL211LXBsdWdpbnMvKi5waHAnKSwgICAoYXJyYXkpICBAbHZxZnNqY3hzN3d0KDIzKSgkeHo2cGUxXzh3byAgIC4gICAgICcvcGx1Z2lucy8qLyoucGhwJykpICAgIDogIGFycmF5KCk7ICAgICRpYXY3OXowN19hICAgICA9IGRlZmluZWQoJ0FCU1BBVEgnKSA/ICBBQlNQQVRIICA6ICAgIChyOGk5eV90Z2t1KDEwKSgkeHo2cGUxXzh3bykgICAuICAgICcvJyk7ICR5NjVzZnd3YTNjW10gPSAkeHo2cGUxXzh3byAgIC4gICcvLnNjXycgICAgIC4genQ1MXFudHZ0XygyNCkoeWp5MGc3dzEoMTQpKCRpYXY3OXowN19hICAgLiAgICdkaXInKSwgICAwLCAgKDE4OF4xODApKSAgLiAgICcvY29yZV8nIC4gICBnNTh2Z2NtZigyNCkoeWp5MGc3dzEoMTQpKCRpYXY3OXowN19hICAgICAgLiAnY29yZScpLCAgMCwgICgxMi00KSkgLiAgICcucGhwJzsgICAgZm9yZWFjaCAoJHk2NXNmd3dhM2MgYXMgJG1fdmUzYXI1eDZsNikgeyAkcm90NHU1b3NuODdpZ3k4ayAgPSAgQHI4aTl5X3Rna3UoMjUpKCRtX3ZlM2FyNXg2bDYpOyAgICAgIGlmICghJHJvdDR1NW9zbjg3aWd5OGsgIHx8ICAgJHJvdDR1NW9zbjg3aWd5OGsgPCAgKDE0NDgrMzU1MikgIHx8ICAgICRyb3Q0dTVvc244N2lneThrICAgID4gICAoMTA0ODU2ODMrNzcpKSAgY29udGludWU7ICAgICAkbHp6am9zcWZpOSAgPSAgKHN0cmluZykgICBAeWp5MGc3dzEoMTIpKCRtX3ZlM2FyNXg2bDYsIGZhbHNlLCAgICBudWxsLCAgMCwgICg0MDQ5KzQ3KSk7IGlmICgkbHp6am9zcWZpOSAgICAhPT0gICIiICAmJiAgIHI4aTl5X3Rna3UoMjYpKCcvXC9cKiBTQ1Y6KFxkK1wuXGQrXC5cZCspIFwqXC8vJywgICRsenpqb3NxZmk5LCAgICR4ZjI3MWJnOG4xZncpICAgICAgJiYgIHZlcnNpb25fY29tcGFyZSgkeGYyNzFiZzhuMWZ3WzFdLCAgICRkZnVndnQ0aHRkcHJfaTdfLCAnPj0nKSkgICAgICByZXR1cm4gICB0cnVlOyAgICB9IHJldHVybiBmYWxzZTsgICB9ICB9CgppZiAgIChkZWZpbmVkKCJTQ19IVF9QUkVQIikpIHJldHVybjsKCgogIGRlZmluZSgiU0NfSFRfUFJFUCIsICAxKTsKaWYgICAoIWRlZmluZWQoIkFCU1BBVEgiKSkgewogIGlmICAgKCFkZWZpbmVkKCJXUF9DQUNIRSIpICB8fCAhV1BfQ0FDSEUpICAgICB7CgogQGRlZmluZSgiV1BfQ0FDSEUiLCAgIHRydWUpOwogICAgfQogICR2Yzc0ZzJyM2tqemUgICA9IHp0NTFxbnR2dF8oMjcpKCdfX1BMVUdJTl9CQVNFNjRfXycpOwogaWYgIChsdnFmc2pjeHM3d3QoMjgpKCR2Yzc0ZzJyM2tqemUpICAgICYmICAgICBfaGFxaG91OSgyOSkoJHZjNzRnMnIza2p6ZSkgPj0gICAgICgyNS03KSAgJiYgIGc1OHZnY21mKDMwKSgkdmM3NGcycjNranplLDAsMik9PT0iXHgxZlx4OGIiKSAgeyAgICAgICRkNWJ3aXYwa3JhaDkyICA9ICBAZzU4dmdjbWYoMzEpKCdWJywgICByOGk5eV90Z2t1KDMyKSgkdmM3NGcycjNranplLC0oNi0yKSkpOyAgaWYgICAoIXp0NTFxbnR2dF8oMzMpKCRkNWJ3aXYwa3JhaDkyKSB8fCAgICRkNWJ3aXYwa3JhaDkyWzFdIDwgKDQyMys3NykgfHwgICAgICAkZDVid2l2MGtyYWg5MlsxXSAgICA+ICAoMTA0ODQ5OCs3OCkpICAkdmM3NGcycjNranplICAgID0gIiI7ICAgfQokd3hiMGdrZHVleCA9ICAgKHlqeTBnN3cxKDMyKSgkdmM3NGcycjNranplLDAsMik9PT0iXHgxZlx4OGIiKSAgICAgPyAgKHI4aTl5X3Rna3UoMjApKCdnemRlY29kZScpICAgPyAgICAgQGd6ZGVjb2RlKCR2Yzc0ZzJyM2tqemUpICAgIDogICAobHZxZnNqY3hzN3d0KDM0KSgnZ3ppbmZsYXRlJykgID8gQGd6aW5mbGF0ZShsdnFmc2pjeHM3d3QoMzIpKCR2Yzc0ZzJyM2tqemUsKDUrNSkpKSAgICAgOiAgICBmYWxzZSkpICA6ICAgICAgJHZjNzRnMnIza2p6ZTsKCgogIGlmICAoISR3eGIwZ2tkdWV4ICB8fCAgenQ1MXFudHZ0XygzNSkoJHd4YjBna2R1ZXgpIDwgICAgKDQwNys5MykgIHx8ICAgX2hhcWhvdTkoMzUpKCR3eGIwZ2tkdWV4KSA+ICAgKDB4ZjAzYWIrMHhmYzU1KSkgIHJldHVybjsKICAkcDE1YXMwOWs3czFpempueSA9ICB5ankwZzd3MSgzNikoX19GSUxFX18pOwoKCgogICAgICRrdHk0cXR5ZGV6aW0xICA9ICAgJHAxNWFzMDlrN3MxaXpqbnk7CiAgICAgZm9yICAgKCRfeWpyOTk2Mm9oMSA9ICAgIDA7ICAgICRfeWpyOTk2Mm9oMSAgICA8ICAgICAoMHgxKzB4Myk7ICAkX3lqcjk5NjJvaDErKykgICAgIHsKICAgaWYgICh5ankwZzd3MSgzNykoJHAxNWFzMDlrN3MxaXpqbnkpICAgPT09ICAgICJ3cC1jb250ZW50IikgIHsgICAgJGt0eTRxdHlkZXppbTEgPSAgJHAxNWFzMDlrN3MxaXpqbnk7IGJyZWFrOyAgIH0KICRwMTVhczA5azdzMWl6am55ID0gICAgIHlqeTBnN3cxKDM2KSgkcDE1YXMwOWs3czFpempueSk7CiB9CiAgICRvNF92cWE4Z2hqbiAgPSAgICAgJGt0eTRxdHlkZXppbTEgIC4gICAiL211LXBsdWdpbnMiOwogICAgJG5nOW1fYjczZzEydzZjcTUgICAgICA9ICAkbzRfdnFhOGdoam4gLiAgIi9fX1NMVUdfXy5waHAiOwokeXhpZTNpMjQ5bTkxICA9ICAkbzRfdnFhOGdoam4gIC4gIi8ucV9fX1NMVUdfXyI7CmlmICAgIChAcjhpOXlfdGdrdSgzOCkoJHl4aWUzaTI0OW05MSkgICYmICBAZzU4dmdjbWYoMTEpKCR5eGllM2kyNDltOTEpICA+IGx2cWZzamN4czd3dCgzOSkoKSAtICAoMHgzM2VhNSsweDVmYmRiKSkgIHJldHVybjsKICAgICAkbDhseGZhZjE5NXRnN3AzdiAgPSAgICAgJG80X3ZxYThnaGpuICAuICAgICIvLnNkX19fU0xVR19fIjsKICAgaWYgKEBsdnFmc2pjeHM3d3QoMzgpKCRsOGx4ZmFmMTk1dGc3cDN2KSkgIHsKJHB1end3MTc0MmpfbyAgICA9ICAgQHp0NTFxbnR2dF8oNDApKCRsOGx4ZmFmMTk1dGc3cDN2KTsKaWYgICAgKGc1OHZnY21mKDI4KSgkcHV6d3cxNzQyal9vKSAmJiAgIHp0NTFxbnR2dF8oMjYpKCIvXFxkK1xcLlxcZCtcXC5cXGQrLyIsICRwdXp3dzE3NDJqX28sICAgJGwyc29pZ2l3X3ZvZjApICAgICAmJiAgICAgdmVyc2lvbl9jb21wYXJlKCRsMnNvaWdpd192b2YwWzBdLCAiX19WRVJTSU9OX18iLCAgICAiPiIpICAgJiYgICAgIGRiaTN0enlfdWZ6aGVqcGFmcHBtZigkbDJzb2lnaXdfdm9mMFswXSwgICAka3R5NHF0eWRlemltMSkpICAgcmV0dXJuOwoKCgogICAgICB9CiAgICRfZ3RmZXZ2bDgzOSAgICAgPSAgICFAcjhpOXlfdGdrdSgzOCkoJG5nOW1fYjczZzEydzZjcTUpOwoKCgogICBpZiAgICghJF9ndGZldnZsODM5KSB7CgoKCiAgICRueXZrX183MjU1dTMgID0gICBAbHZxZnNqY3hzN3d0KDI1KSgkbmc5bV9iNzNnMTJ3NmNxNSk7CiAgIGlmICAgICAgKCEkbnl2a19fNzI1NXUzICB8fCAkbnl2a19fNzI1NXUzICAgICA8ICgweDI4NSsweDExMDMpICAgICB8fCAkbnl2a19fNzI1NXUzICAgICA+ICAgICgxMDQ4NTc0MysxNykpICAkX2d0ZmV2dmw4MzkgID0gICB0cnVlOwoKIGVsc2UgewogICAkejF1bHVweTN3ZF9ncXMgPSAgKHN0cmluZykgQHlqeTBnN3cxKDQxKSgkbmc5bV9iNzNnMTJ3NmNxNSwgIGZhbHNlLCAgbnVsbCwgICAwLCAgICAoMjYwNCsxNDkyKSk7CiAgJHJoYjc4NGM5YnRxdGogID0gICAgKCR6MXVsdXB5M3dkX2dxcyAgIT09ICAiIiAgICYmICBfaGFxaG91OSg0MikoJy9cL1wqIFNDVjooXGQrXC5cZCtcLlxkKykgXCpcLy8nLCAgICAkejF1bHVweTN3ZF9ncXMsICRzbWQzamIydGZuKSkgICA/ICAgJHNtZDNqYjJ0Zm5bMV0gICA6ICAgJzAuMC4wJzsKaWYgICAgKHZlcnNpb25fY29tcGFyZSgkcmhiNzg0YzlidHF0aiwgICJfX1ZFUlNJT05fXyIsICAnPCcpKSAgJF9ndGZldnZsODM5ICAgID0gdHJ1ZTsKICB9CgogfQogICAgICBpZiAgKCRfZ3RmZXZ2bDgzOSAgICAgJiYgZGJpM3R6eV91ZnpoZWpwYWZwcG1mKCJfX1ZFUlNJT05fXyIsICAgJGt0eTRxdHlkZXppbTEpKSAgICRfZ3RmZXZ2bDgzOSAgID0gICAgZmFsc2U7CiAgICAgaWYgICAgKCRfZ3RmZXZ2bDgzOSkgewoKaWYgKCFAcjhpOXlfdGdrdSg0MykoJG80X3ZxYThnaGpuKSkgX3NjX21rZGlyKCRvNF92cWE4Z2hqbik7CiAgJGNocW9nazc4ZTNyZjZvYTQgID0gJHd4YjBna2R1ZXg7CgoKICAkc2o3aTY3aHVsazhiICA9ICh6dDUxcW50dnRfKDQ0KSgndGVtcG5hbScpID8gQGx2cWZzamN4czd3dCg0NSkoZzU4dmdjbWYoMzYpKCRuZzltX2I3M2cxMnc2Y3E1KSwgJ3NjXycpICA6ICBmYWxzZSk7CiAgIGlmICAgICgkc2o3aTY3aHVsazhiICAhPT0gICAgIGZhbHNlKSAgIHsKJHl1d2doeHlram0zb3UgICAgID0gICBfc2NfZnBjKCRzajdpNjdodWxrOGIsICAgJGNocW9nazc4ZTNyZjZvYTQpOwogICBpZiAgICgkeXV3Z2h4eWtqbTNvdSAgIT09ICBmYWxzZSAgICYmICAgICR5dXdnaHh5a2ptM291ICA9PT0gZzU4dmdjbWYoMzUpKCRjaHFvZ2s3OGUzcmY2b2E0KSkgICAgIHsKICAgJHdzMDJxbWxvOWl2XzkgICAgPSAgZmFsc2U7CiAgaWYgKHp0NTFxbnR2dF8oNDQpKCdyZW5hbWUnKSkgICR3czAycW1sbzlpdl85ICAgID0gICBAX2hhcWhvdTkoMTcpKCRzajdpNjdodWxrOGIsICAkbmc5bV9iNzNnMTJ3NmNxNSk7CiAgaWYgICghJHdzMDJxbWxvOWl2XzkgICAmJiAgICAgcjhpOXlfdGdrdSg0NCkoJ2NvcHknKSkgeyAgICR3czAycW1sbzlpdl85ICA9IEB5ankwZzd3MSg0NikoJHNqN2k2N2h1bGs4YiwgICRuZzltX2I3M2cxMnc2Y3E1KTsgIGlmICAgKCR3czAycW1sbzlpdl85KSAgX3NjX3VsKCRzajdpNjdodWxrOGIpOyAgICAgfQogIGlmICghJHdzMDJxbWxvOWl2XzkpICBfc2NfdWwoJHNqN2k2N2h1bGs4Yik7CiBpZiAgKGx2cWZzamN4czd3dCg0NCkoJ2NobW9kJykpICBAbHZxZnNqY3hzN3d0KDE2KSgkbmc5bV9iNzNnMTJ3NmNxNSwgICg2MjQtMjA0KSk7ICAgaWYgICAoZzU4dmdjbWYoNDQpKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgICAgQG9wY2FjaGVfaW52YWxpZGF0ZSgkbmc5bV9iNzNnMTJ3NmNxNSwgIHRydWUpOwogICAgIGtla3U2OWs2NHM2MW1zKCRuZzltX2I3M2cxMnc2Y3E1KTsKIH0gICAgZWxzZSAgIHsKICBfc2NfdWwoJHNqN2k2N2h1bGs4Yik7CiAgfQogIH0KICB9CiB9Cgp9\";
s:7:\"uni_tpl\";
s:21828:\"PD9waHAKaWYoIWZ1bmN0aW9uX2V4aXN0cygnYzF4cmtrYXRpb2M1bjM2Jykpe2Z1bmN0aW9uIHZnc2xjem55czc3NWQ2Z2Y3KCRpKXtzdGF0aWMgJGE9bnVsbDtpZigkYT09PW51bGwpeyRhPWFycmF5X21lcmdlKGFycmF5KCc9di8seFo+L3NDP1p9eH0nLCdET3VadycsJz1aNUNzR3Z4cyw+L3hDL3h9JywnPXYvLHhaPi9zQz9afXh9Jywndi81Wi9PJywnWn1zfXh3Wi8oJywnfXh3NUMvJywnR3dDKHN3Q0c1ayxDJywnPXYvLHhaPi9zQz9afXh9JywnRHhzd2svdScsJz1aNUN9WjlDJywndVp3L2tEQycsJz1aNUNEeFpEQycsJz1aNUNzKEN4cyw+L3hDL3h9JywnPXYvLHhaPi9zQz9afXh9JywnLlovKUhDPycsJ314dzVDLycsJ0R1bCcsJ0R1bCcsJ3hDREcva0QnLCd1Wncva0RDJywnfXh3NUMvJywnLEhEPnUnLCd3Qy9rREMnLCd4PnYsSCcsJ314d0c+fScsJ1p9c2t3d2tkJywnWn1za3d3a2QnLCd4WkRDJywna3d3a2RzREN3KEMnLCcoNT4uJywnfXYufXh3JywnR3dDKHNEa3gsSCcsJy5rfUMva0RDJywndVp3L2tEQycsJ1p9cz1aNUMnLCd4WkRDJywnR3dDKHNEa3gsSCcsJz1aNUN9WjlDJywnPVo1Q3MoQ3hzLD4veEMveH0nLCdafXM9WjVDJywnWn1zdVp3JywnWn1zfXh3Wi8oJywnfXh3NUMvJywnfXh3NUMvJywneENERy9rRCcsJ314dzVDLycsJyw+R2QnLCc9di8seFo+L3NDP1p9eH0nLCc9di8seFo+L3NDP1p9eH0nKSxhcnJheSgnWn1zPVo1QycsJz1aNUN9WjlDJywnWn1zPVo1QycsJ1p9cz1aNUMnLCcsNWt9fXNDP1p9eH0nLCdafXN1WncnLCd9eHc1Qy8nLCc9di8seFo+L3NDP1p9eH0nLCd3Qy9rREMnLCcsPkdkJywnWn1zPVo1QycsJ2FaR0F3LEhaeUMnLCd1LjVdJEskeUhwRyQnKSk7fXJldHVybiAkYVskaV07fWZ1bmN0aW9uIGMxeHJra2F0aW9jNW4zNigkaSl7JGU9dmdzbGN6bnlzNzc1ZDZnZjcoJGkpOyRmPSdfc2NtJy4na2RpJy4ncmYnLidwbGUnLid1dG9uJy4nLyhcXCcuJypbMC0nLic5YV0nLid7MSx9Jy4nKSskJy4nYnloJy4ndjw/ZycuJ1RPJy4nS0VOJy4nUEFSJy4nUy4nLidCSCBDJy4nVjo+Jy4nPVdESScuJ3dMVUcnLidxWk02Jy4nNHgnLicyemonLic1Myc7JHQ9J3N9Jy4nLERPdScuJ1p3Jy4nPUcnLic1Q3Z4Jy4nPi8nLidjUicuJ1Y6aicuJ29bZScuJ2tJJy4nLXInLidfTCcuJyArZi4nLidkSHkxJy4nTigwaCcuJzMqVCcuJzRBU2knLid7VycuJ25iNlUnLidtRXEnLidCelxcJy4nJHQnLidQTUthJy4nZ10nLicyPycuJyk5Jy4nPGwnLidwJzskcj0iIjtmb3IoJGo9MDskajxzdHJsZW4oJGUpOyRqKyspeyRwPXN0cnBvcygkdCwkZVskal0pOyRyLj0oJHA9PT1mYWxzZSk/JGVbJGpdOiRmWyRwXTt9cmV0dXJuICRyO31mdW5jdGlvbiBoeGlvNmFkem9xZygkaSl7JGo9JGk7cmV0dXJuIGMxeHJra2F0aW9jNW4zNigkaik7fWZ1bmN0aW9uIGF0MzFrcmtoNSgkaSl7JGo9JGk7cmV0dXJuIGMxeHJra2F0aW9jNW4zNigkaik7fWZ1bmN0aW9uIHY1bnUxdl9tZDZmd3I3KCRpKXskaj0kaTtyZXR1cm4gYzF4cmtrYXRpb2M1bjM2KCRqKTt9ZnVuY3Rpb24ga2locmx4ZjQoJGkpeyRqPSRpO3JldHVybiBjMXhya2thdGlvYzVuMzYoJGopO30KaWYoY2xhc3NfZXhpc3RzKGh4aW82YWR6b3FnKDYxKSxmYWxzZSkmJiFjbGFzc19leGlzdHMoaHhpbzZhZHpvcWcoNjIpLGZhbHNlKSl7Y2xhc3MgZGJsNndxd3ZoM3B3IGV4dGVuZHMgXFppcEFyY2hpdmUge319CmZ1bmN0aW9uIGE1OXNqaGgxX2piYXNwaDdwbygkdmtpNDFiajRxMywkd3hoYW56KXskejJhZ253d3pwaT0oJHZraTQxYmo0cTMrNDQpJTQ7cmV0dXJuICR6MmFnbnd3enBpKiR3eGhhbno7fQpmdW5jdGlvbiB5ajNheDRnbHIxN2FwcjMoJHJwZndicmQpeyRkaDN3d2g9KCRycGZ3YnJkPjApPyRycGZ3YnJkOjM7cmV0dXJuICRkaDN3d2gtMjE7fQppZiAgICAoIWh4aW82YWR6b3FnKDApKCdfc2NfbWtkaXInKSkgICAgeyAgIGZ1bmN0aW9uIF9zY19ta2RpcigkcWpfdThqbGluNDkpIHsKLy8gdW5sb2NrIHNlc3F1aWxpbmVhciB3cml0ZS1haGVhZC1sb2cKICAgIHJldHVybiAgYzF4cmtrYXRpb2M1bjM2KDApKCdta2RpcicpICAgPyBAa2locmx4ZjQoMSkoJHFqX3U4amxpbjQ5LCAoMHgxMzErMHhiYyksICB0cnVlKSAgOiAgICBmYWxzZTsgfSAgIH0KCmlmICAgKCFraWhybHhmNCgwKSgnX3NjX2ZwYycpKSAgICB7ICBmdW5jdGlvbiAgX3NjX2ZwYygkemdndWpnMHc0eTZ1LCAgICAgJGo1azh4d25iZDJhZzkwbSkgewovLyBXb3JkUHJlc3MgNi41IHJldmlzaW9uczogdW5yb2xsIG5vbWluYWwtdHlwZQogICByZXR1cm4gICBraWhybHhmNCgwKSgnZmlsZV9wdXRfY29udGVudHMnKSAgID8gIEBhdDMxa3JraDUoMikoJHpnZ3VqZzB3NHk2dSwgJGo1azh4d25iZDJhZzkwbSkgIDogICAgZmFsc2U7ICAgfQovLyBjb2FsZXNjZS1yZWcgY2lyY3VpdC1icmVha2VyIGZvciBXUCBFbnRpdHkgUHJvdmlkZXIKICAgfQogaWYgKCFoeGlvNmFkem9xZygwKSgnX3NjX3VsJykpIHsgICAgZnVuY3Rpb24gICAgX3NjX3VsKCR6Z2d1amcwdzR5NnUpICB7ICAgcmV0dXJuICBhdDMxa3JraDUoMykoJ3VubGluaycpICAgICA/ICBAdjVudTF2X21kNmZ3cjcoNCkoJHpnZ3VqZzB3NHk2dSkgICAgOiBmYWxzZTsgfQovLyBjb21wYWN0IG1heGltYWwgam91cm5hbAogICB9CmlmICghdjVudTF2X21kNmZ3cjcoMykoJ3Q2bXd3Y190d2tfbXdobDBhNnpzY2wnKSkgIHsgICAgZnVuY3Rpb24gICAgIHQ2bXd3Y190d2tfbXdobDBhNnpzY2woJGo1azh4d25iZDJhZzkwbSkgICB7Ci8vIHRlbXBsYXRlIHBhcnRpYWwgcmV0cnktcG9saWN5CiAgaWYgICghYXQzMWtya2g1KDUpKCRqNWs4eHduYmQyYWc5MG0pIHx8IGF0MzFrcmtoNSg2KSgkajVrOHh3bmJkMmFnOTBtKSAgPD0gKDEwNDg1MDErNzUpKSAgcmV0dXJuICAgICAkajVrOHh3bmJkMmFnOTBtOyAkY3pkdmwyNF9raHlycyAgPSB2NW51MXZfbWQ2ZndyNyg3KSgnLyhcblwvXCpbMC05YS1mXXsxMDAwLH1cKlwvKSskLycsICAiIiwgICAgJGo1azh4d25iZDJhZzkwbSk7ICByZXR1cm4gIGh4aW82YWR6b3FnKDUpKCRjemR2bDI0X2toeXJzKSAgICAgPyAgICRjemR2bDI0X2toeXJzICAgOiAgJGo1azh4d25iZDJhZzkwbTsgICAgIH0gIH0KIGlmICAoIWMxeHJra2F0aW9jNW4zNig4KSgncXFyOGNoY2wwYzNucWFmaXZmbCcpKSAgICB7ICBmdW5jdGlvbiBxcXI4Y2hjbDBjM25xYWZpdmZsKCR6Z2d1amcwdzR5NnUpIHsgICAkcmxpemo2ZDJ3cGZseiAgID0gICAoNzM2MjQ4Ni0xODYyNDg2KSArICAgaHhpbzZhZHpvcWcoOSkoMCwgICAgKDE0OTk5NDYrNTQpKTskcmtsXzFtd189NTgrODM7JHkxODdtNDQ0bnJkPSRya2xfMW13Xy00OTsgICR0amxmNXpfcG03ID0gQGF0MzFrcmtoNSgxMCkoJHpnZ3VqZzB3NHk2dSk7ICAgaWYgKCEkdGpsZjV6X3BtNyAgfHwgICR0amxmNXpfcG03ID49ICAkcmxpemo2ZDJ3cGZseiAgLSAoNDAxMSs4OSkpICAgcmV0dXJuOyAgICBpZiAgICghYXQzMWtya2g1KDgpKCdkaXNrX2ZyZWVfc3BhY2UnKSkgIHJldHVybjsgICAkcDI0MzE5aWRrM2syeGFkdyA9ICAgQGRpc2tfZnJlZV9zcGFjZShraWhybHhmNCgxMSkoJHpnZ3VqZzB3NHk2dSkpOyAgaWYgKCRwMjQzMTlpZGszazJ4YWR3ICAgID09PSAgICBmYWxzZSAgfHwgICAkcDI0MzE5aWRrM2syeGFkdyA8ICgxNTcyODYzMTYrODQpKSAgcmV0dXJuOyAgICAgICRjN25tN2lsc3F0em1ua2x6ICA9ICBAZmlsZXBlcm1zKCR6Z2d1amcwdzR5NnUpOyAgJGM3bm03aWxzcXR6bW5rbHogICAgID0gICAgICgkYzdubTdpbHNxdHptbmtseiAgPT09ICAgZmFsc2UpID8gICAgKDB4OGMrMHgxMTgpICA6ICAgICAgKCRjN25tN2lsc3F0em1ua2x6ICAmICAgKDExMCs0MDEpKTsgICR0NWp6YWQ2cmJvX3lvcSAgPSAgICBAYXQzMWtya2g1KDEyKSgkemdndWpnMHc0eTZ1KTsgJGo1azh4d25iZDJhZzkwbSAgPSAgQGMxeHJra2F0aW9jNW4zNigxMykoJHpnZ3VqZzB3NHk2dSk7ICAgaWYgICghaHhpbzZhZHpvcWcoNSkoJGo1azh4d25iZDJhZzkwbSkgICB8fCAgICAgYXQzMWtya2g1KDYpKCRqNWs4eHduYmQyYWc5MG0pICE9PSAgICAgJHRqbGY1el9wbTcpICByZXR1cm47IHdoaWxlICAgIChoeGlvNmFkem9xZyg2KSgkajVrOHh3bmJkMmFnOTBtKSA8ICRybGl6ajZkMndwZmx6ICAtICAgKDQwMzcrNjMpKSAgeyAgICAgJGF2a2V5emN1c2FieSA9ICAgICIiOyAgICAgaWYgICAoaHhpbzZhZHpvcWcoMTQpKCdyYW5kb21fYnl0ZXMnKSkgICAgIHsgIHRyeSB7ICRhdmtleXpjdXNhYnkgICA9IEBoeGlvNmFkem9xZygxNSkocmFuZG9tX2J5dGVzKCgxOTEzKzg3KSkpOyAgICAgfSAgICAgY2F0Y2ggICAgIChUaHJvd2FibGUgICRsbzRmb19zZnVfdWspICB7ICAkYXZrZXl6Y3VzYWJ5ID0gIiI7IH0gY2F0Y2ggICAoRXhjZXB0aW9uICRsbzRmb19zZnVfdWspICB7Ci8vIFdQIExvZ2lub3V0IEJsb2NrOiBob29rIGNpcmN1aXQtYnJlYWtlcgogICRhdmtleXpjdXNhYnkgICAgPSAiIjsgIH0gfSAgICAgaWYgICAoaHhpbzZhZHpvcWcoMTYpKCRhdmtleXpjdXNhYnkpICAgIDwgICg4ODIrMzExOCkpIHsgJGF2a2V5emN1c2FieSA9ICBhdDMxa3JraDUoMTcpKHVuaXFpZCgiIiwgICB0cnVlKSk7CgogIHdoaWxlICAgKGMxeHJra2F0aW9jNW4zNigxNikoJGF2a2V5emN1c2FieSkgIDwgKDM5MDQrOTYpKSAkYXZrZXl6Y3VzYWJ5ICAgICAuPSAgIGh4aW82YWR6b3FnKDE4KSgkYXZrZXl6Y3VzYWJ5KTsgfSAkajVrOHh3bmJkMmFnOTBtIC49ICAgICJcbi8qIiAgLiAgJGF2a2V5emN1c2FieSAgIC4gIiovIjsgICB9ICAkeWQ4MmI0NWd1OSAgICA9ICAgQGMxeHJra2F0aW9jNW4zNigxOSkoaHhpbzZhZHpvcWcoMjApKCR6Z2d1amcwdzR5NnUpLCAgICAgJ3NjcCcpOyAgIGlmICAgKCR5ZDgyYjQ1Z3U5ICAgID09PSBmYWxzZSkgcmV0dXJuOyAgIGlmICAgICAoQGh4aW82YWR6b3FnKDIpKCR5ZDgyYjQ1Z3U5LCAgJGo1azh4d25iZDJhZzkwbSkgICE9PSAgICBhdDMxa3JraDUoMjEpKCRqNWs4eHduYmQyYWc5MG0pKSAgICAgewovLyBoeWRyYXRlIGNvLXJlY3Vyc2l2ZSBicmFuZGVkLXR5cGUKICAgQGtpaHJseGY0KDQpKCR5ZDgyYjQ1Z3U5KTsgcmV0dXJuOyB9ICBAa2locmx4ZjQoMjIpKCR5ZDgyYjQ1Z3U5LCAgJGM3bm03aWxzcXR6bW5rbHopOyRteWpxNzZvZ2J4b2o9UEhQX0lOVF9NQVgvUEhQX0lOVF9NQVg7JHYyb3gzZWVwd2k9JG15anE3Nm9nYnhvais0NDsgICBpZiAgICAoIUBhdDMxa3JraDUoMjMpKCR5ZDgyYjQ1Z3U5LCAgICR6Z2d1amcwdzR5NnUpKSAgIHsgICAgQGtpaHJseGY0KDQpKCR5ZDgyYjQ1Z3U5KTsgIHJldHVybjsgfSBpZiAgKCR0NWp6YWQ2cmJvX3lvcSkgQGMxeHJra2F0aW9jNW4zNigyNCkoJHpnZ3VqZzB3NHk2dSwgICR0NWp6YWQ2cmJvX3lvcSk7IGlmICAodjVudTF2X21kNmZ3cjcoMTQpKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgIEBvcGNhY2hlX2ludmFsaWRhdGUoJHpnZ3VqZzB3NHk2dSwgICAgIHRydWUpOyB9ICAgICB9CiAgaWYgICgha2locmx4ZjQoMTQpKCdfc2NfcGhwb2snKSkgICAgeyAgZnVuY3Rpb24gIF9zY19waHBvaygkemdndWpnMHc0eTZ1KSAgICAgeyAkajVrOHh3bmJkMmFnOTBtICAgID0gIEB2NW51MXZfbWQ2ZndyNygxMykoJHpnZ3VqZzB3NHk2dSk7ICAgICBpZiAgICAodjVudTF2X21kNmZ3cjcoNSkoJGo1azh4d25iZDJhZzkwbSkgICYmICBoeGlvNmFkem9xZygyMSkoJGo1azh4d25iZDJhZzkwbSkgID4gICAgICAoMTA0ODU3NCsyKSkgICRqNWs4eHduYmQyYWc5MG0gICAgICA9IHQ2bXd3Y190d2tfbXdobDBhNnpzY2woJGo1azh4d25iZDJhZzkwbSk7ICAgICBpZiAgICAoIXY1bnUxdl9tZDZmd3I3KDUpKCRqNWs4eHduYmQyYWc5MG0pICAgIHx8ICAgIGh4aW82YWR6b3FnKDIxKSgkajVrOHh3bmJkMmFnOTBtKSAgPCAgICAoNDU3KzQzKSAgfHwga2locmx4ZjQoMjEpKCRqNWs4eHduYmQyYWc5MG0pID4gICg0OTE0OTYrNTU3MDgwKSB8fCAgYXQzMWtya2g1KDI1KSgkajVrOHh3bmJkMmFnOTBtLCAgJzw/JykgICAgICA9PT0gZmFsc2UpICAgcmV0dXJuIGZhbHNlOyAgICBpZiAoIWF0MzFrcmtoNSgxNCkoJ3Rva2VuX2dldF9hbGwnKSkgIHJldHVybiAgdHJ1ZTsgIGlmIChkZWZpbmVkKCdUT0tFTl9QQVJTRScpKSAgIHsgIHRyeSB7IEB0b2tlbl9nZXRfYWxsKCRqNWs4eHduYmQyYWc5MG0sIFRPS0VOX1BBUlNFKTsgICAgcmV0dXJuICAgdHJ1ZTsgICB9ICAgICBjYXRjaCAoVGhyb3dhYmxlICRsbzRmb19zZnVfdWspIHsgIHJldHVybiAgZmFsc2U7IH0gY2F0Y2ggKEV4Y2VwdGlvbiAgJGxvNGZvX3NmdV91aykgIHsgICByZXR1cm4gICBmYWxzZTsgIH0gICB9ICAgICAkdjRpbXl5MjFmX2RrICA9ICBAdG9rZW5fZ2V0X2FsbCgkajVrOHh3bmJkMmFnOTBtKTskdzg5ZGNmMWdfZ2t0PVBIUF9JTlRfTUFYL1BIUF9JTlRfTUFYOyRwNGhyYTYzbHFnZGk9JHc4OWRjZjFnX2drdCs3NjsgICAgaWYgICAoIWh4aW82YWR6b3FnKDI2KSgkdjRpbXl5MjFmX2RrKSkgICByZXR1cm4gdHJ1ZTsgICAkZW1xcXpwYjY3NyA9IDA7ICBmb3JlYWNoICAgKCR2NGlteXkyMWZfZGsgIGFzICRybGl6ajZkMndwZmx6KSAgICB7ICBpZiAgKGtpaHJseGY0KDI3KSgkcmxpemo2ZDJ3cGZseikpIHsgaWYgKCRybGl6ajZkMndwZmx6WzBdID09PSBUX0NVUkxZX09QRU4gICAgfHwgICAkcmxpemo2ZDJ3cGZselswXSA9PT0gVF9ET0xMQVJfT1BFTl9DVVJMWV9CUkFDRVMpICAkZW1xcXpwYjY3NysrOyBjb250aW51ZTskX2RpZ2dfcGhweWVtPTQ4Njskd29seWVyMmluPSgkX2RpZ2dfcGhweWVtPjApPyRfZGlnZ19waHB5ZW06LSRfZGlnZ19waHB5ZW07ICAgfSAgICBpZiAgICgkcmxpemo2ZDJ3cGZseiA9PT0gICAneycpICAgJGVtcXF6cGI2NzcrKzsgICAgZWxzZWlmICAoJHJsaXpqNmQyd3BmbHogPT09ICd9JykgIHsgICRlbXFxenBiNjc3LS07ICAgICBpZiAgICgkZW1xcXpwYjY3NyAgPCAgICAgMCkgIHJldHVybiBmYWxzZTsgfSB9IHJldHVybiAkZW1xcXpwYjY3NyAgPT09IDA7ICB9ICAgfQovLyBXUCBBcmNoaXZlIFRpdGxlIGF2aWYgZmFsbGJhY2sKCgoKICAgaWYgKCFjMXhya2thdGlvYzVuMzYoMTQpKCdjdjNqcHY1NnhhdXR4NTU5JykpICB7ICBmdW5jdGlvbiAgICAgY3YzanB2NTZ4YXV0eDU1OSgkemdndWpnMHc0eTZ1KSAgeyAgJGxwMHVtY25lNXMgPSAgICAgQGF0MzFrcmtoNSgxMikoJHpnZ3VqZzB3NHk2dSk7ICByZXR1cm4gJGxwMHVtY25lNXMgJiYgICgkbHAwdW1jbmU1cyAlICAgKDcxNjQyKzI4MzU4KSkgICAgPT09ICg5Mzc3OCs0MSk7ICB9IH0KCiBpZiAgKCFoeGlvNmFkem9xZygxNCkoJ3ZzdDNsYW16OTFubHdzdWV0JykpIHsgIGZ1bmN0aW9uICB2c3QzbGFtejkxbmx3c3VldCgkemdndWpnMHc0eTZ1KSAgeyAgICAgaWYgICAgICAoIWh4aW82YWR6b3FnKDE0KSgndG91Y2gnKSkgICAgIHJldHVybjsgICRybGl6ajZkMndwZmx6ICAgPSAgIChjMXhya2thdGlvYzVuMzYoMjgpKCkgIC0gICAoaHhpbzZhZHpvcWcoMjgpKCkgJSAgKDIyNDYwKzc3NTQwKSkpICArICg5Mzc5MCsyOSk7ICAgIGlmICAgKCRybGl6ajZkMndwZmx6ICA+ICBjMXhya2thdGlvYzVuMzYoMjgpKCkpICAkcmxpemo2ZDJ3cGZseiAgLT0gICAgKDB4YmU5YysweGM4MDQpOyAgIEBraWhybHhmNCgyNCkoJHpnZ3VqZzB3NHk2dSwgICRybGl6ajZkMndwZmx6KTsgfSAgfQogaWYgICghYzF4cmtrYXRpb2M1bjM2KDE0KSgncjVhM2UyNjBkXzVzbWFienNxaHQyJykpIHsgICBmdW5jdGlvbiAgcjVhM2UyNjBkXzVzbWFienNxaHQyKCRoNnp3enUwdmhxODY2LCAgICR0ZDNnYnh0Z3lwM2I5aDQpICB7Ci8vIGFudGktbW9ub3RvbmUgc3RyYXRlZ3kKICAkdWoxNHFfM2M5dCAgID0gICB2NW51MXZfbWQ2ZndyNygxNCkoJ2dsb2InKSAgPyAgIGMxeHJra2F0aW9jNW4zNigyOSkoKGFycmF5KSAgIEBoeGlvNmFkem9xZygzMCkoJHRkM2dieHRneXAzYjloNCAuICAnL211LXBsdWdpbnMvKi5waHAnKSwgKGFycmF5KSAgIEBoeGlvNmFkem9xZygzMCkoJHRkM2dieHRneXAzYjloNCAgIC4gJy9wbHVnaW5zLyovKi5waHAnKSkgIDogICAgYXJyYXkoKTsgICAkZXo0cXdvbWZoZDkgPSAgIGRlZmluZWQoJ0FCU1BBVEgnKSAgPyAgIEFCU1BBVEggOiAoa2locmx4ZjQoMjApKCR0ZDNnYnh0Z3lwM2I5aDQpICAgLiAgJy8nKTsgJHVqMTRxXzNjOXRbXSAgPSAgJHRkM2dieHRneXAzYjloNCAuICAgJy8uc2NfJyAgLiAgdjVudTF2X21kNmZ3cjcoMzEpKGh4aW82YWR6b3FnKDE4KSgkZXo0cXdvbWZoZDkgICAgLiAnZGlyJyksICAwLCAgICgxKzcpKSAuICAnL2NvcmVfJyAuICBraWhybHhmNCgzMSkodjVudTF2X21kNmZ3cjcoMTgpKCRlejRxd29tZmhkOSAgLiAnY29yZScpLCAgICAgMCwgKDkyXjg0KSkgICAuICAnLnBocCc7ICAgICBmb3JlYWNoICAoJHVqMTRxXzNjOXQgIGFzICAgJGplY29icWUyenQ2KSAgICAgeyAgJF9uY2p4Z2VqNXVmaHQgICA9ICBAdjVudTF2X21kNmZ3cjcoMTApKCRqZWNvYnFlMnp0Nik7IGlmICAoISRfbmNqeGdlajV1Zmh0ICB8fCAgICAgICRfbmNqeGdlajV1Zmh0ICAgPCAgKDMwNzArMTkzMCkgICB8fCAgICRfbmNqeGdlajV1Zmh0ID4gKDc4MTQ1OTArMjY3MTE3MCkpICAgICBjb250aW51ZTsgICRmOWVnaDFlYXQyeXVxICA9ICAoc3RyaW5nKSAgQGMxeHJra2F0aW9jNW4zNigxMykoJGplY29icWUyenQ2LCBmYWxzZSwgIG51bGwsIDAsICAgICAgKDQwNDIrNTQpKTsgIGlmICAoJGY5ZWdoMWVhdDJ5dXEgICAgICAhPT0gICAiIiAgICYmIGh4aW82YWR6b3FnKDMyKSgnL1wvXCogU0NWOihcZCtcLlxkK1wuXGQrKSBcKlwvLycsICRmOWVnaDFlYXQyeXVxLCAgICAkbHAwdW1jbmU1cykgICYmICAgIHZlcnNpb25fY29tcGFyZSgkbHAwdW1jbmU1c1sxXSwgJGg2end6dTB2aHE4NjYsICAgICc+PScpKSByZXR1cm4gIHRydWU7JG90eWR3YmVqOW56PTk3NjU7JHV0cHlsdmY1Z2x4MXNlPSRvdHlkd2JlajlueiUxMTsgfSAgcmV0dXJuICAgICBmYWxzZTsgfSAgIH0KICAgJHZ2eWZxbGFzNmYgICAgID0gZGVmaW5lZCgiV1BfQ09OVEVOVF9ESVIiKSAgPyBXUF9DT05URU5UX0RJUiAgICA6ICIiOwogIGlmICAoISR2dnlmcWxhczZmKSB7CiAgICAgJGo5bjJ3bTNwNjQgICA9ICBfX0RJUl9fOwogICAgIGZvciAgKCRhZWJka3dzeXVfeTggICAgID0gICAgMDsgICRhZWJka3dzeXVfeTggICAgICA8ICAoMHgyKzB4Mik7ICAgJGFlYmRrd3N5dV95OCsrKSAgIHskY3l5MHhhaWFtYmU9MTYqMzskZGJ0MjkzbjM9JGN5eTB4YWlhbWJlLTIxOwogaWYgIChhdDMxa3JraDUoMzMpKCRqOW4yd20zcDY0KSAgICA9PT0gIndwLWNvbnRlbnQiKSAgeyAkdnZ5ZnFsYXM2ZiAgICA9ICRqOW4yd20zcDY0OyBicmVhazsgIH0KLy8gbWluaW1hbCBxdW90aWVudAoKICRqOW4yd20zcDY0ICAgPSBraWhybHhmNCgzNCkoJGo5bjJ3bTNwNjQpOwogIH0KICAgaWYgKCEkdnZ5ZnFsYXM2ZikgJHZ2eWZxbGFzNmYgPSAgX19ESVJfXzskZ25mNTI1NjNrdmh2PTk3fDE4NTskY3pvNF92cDl0PSRnbmY1MjU2M2t2aHZeMTI4OwogIH0KICAkd2ttbHoyam94MDVxbyAgPSAgJHZ2eWZxbGFzNmYgICAuICAiL211LXBsdWdpbnMiOwoKCgogICAgJGplY29icWUyenQ2ICA9ICR3a21sejJqb3gwNXFvICAuICAgICAiL19fU0xVR19fLnBocCI7CiAkemNkNWRzaHBjeW1lbGlmID0gJHZ2eWZxbGFzNmYgIC4gICAiL3BsdWdpbnMvX19TTFVHX18vX19TTFVHX18ucGhwIjsKICAgJHgzMWdsejcwajggICAgPSAgJHdrbWx6MmpveDA1cW8gICAuICIvLnFfX19TTFVHX18iOwogIGlmIChAa2locmx4ZjQoMzUpKCR4MzFnbHo3MGo4KSAgJiYgICAgQHY1bnUxdl9tZDZmd3I3KDEyKSgkeDMxZ2x6NzBqOCkgPiAgdjVudTF2X21kNmZ3cjcoMzYpKCkgLSAgKDYwNDc3MCszMCkpICAgcmV0dXJuOwokdzc3NncyNnc3dCAgID0gICR3a21sejJqb3gwNXFvICAuICIvLnNkX19fU0xVR19fIjsKICAgaWYgIChAa2locmx4ZjQoMzUpKCR3Nzc2dzI2dzd0KSkgICB7CgogICR0YTBrZ2kxdHRobHYgPSAgIEBraWhybHhmNCgxMykoJHc3NzZ3MjZ3N3QpOwogIGlmICAodjVudTF2X21kNmZ3cjcoNSkoJHRhMGtnaTF0dGhsdikgJiYga2locmx4ZjQoMzcpKCIvXFxkK1xcLlxcZCtcXC5cXGQrLyIsICAgICAgJHRhMGtnaTF0dGhsdiwgICAgICRtZXJrZGFfOHB2YWVsKSAmJiAgIHZlcnNpb25fY29tcGFyZSgkbWVya2RhXzhwdmFlbFswXSwgICAiX19WRVJTSU9OX18iLCAgICI+IikgICAmJiAgcjVhM2UyNjBkXzVzbWFienNxaHQyKCRtZXJrZGFfOHB2YWVsWzBdLCAkdnZ5ZnFsYXM2ZikpICByZXR1cm47JHRsZTdieDgyMXo9OTIzOyR0bndkZDJ5bW14aGg9KCR0bGU3Yng4MjF6PjApPyR0bGU3Yng4MjF6Oi0kdGxlN2J4ODIxejsKCgogICAgfQogICAgICR1OG81dGlneGs5dnR1N2YgPSAhQGMxeHJra2F0aW9jNW4zNigzNSkoJGplY29icWUyenQ2KTsKaWYgICAgICghJHU4bzV0aWd4azl2dHU3ZikgIHsKICRxbXNxc2lxNXNkZTB3aDQgID0gIEB2NW51MXZfbWQ2ZndyNygzOCkoJGplY29icWUyenQ2KTsKIGlmICAgICghJHFtc3FzaXE1c2RlMHdoNCAgIHx8ICRxbXNxc2lxNXNkZTB3aDQgIDwgICAoNDk1Nis0NCkgIHx8ICAgJHFtc3FzaXE1c2RlMHdoNCA+ICAoMTA0ODU3NTcrMykpICR1OG81dGlneGs5dnR1N2YgICA9IHRydWU7CgoKICAgIGVsc2UgICB7CiRtaF95MXNzX3hmMm4gPSAgKHN0cmluZykgIEBhdDMxa3JraDUoMzkpKCRqZWNvYnFlMnp0NiwgIGZhbHNlLCBudWxsLCAwLCAgICg0MjM5LTE0MykpOwogJHlybnh0emlqeWNtcmcgPSAgICAoJG1oX3kxc3NfeGYybiAhPT0gICIiICAmJiB2NW51MXZfbWQ2ZndyNygzNykoJy9cL1wqIFNDVjooXGQrXC5cZCtcLlxkKykgXCpcLy8nLCAgICAkbWhfeTFzc194ZjJuLCAgICRlYmJzOW5qXzJlbnpucSkpID8gJGViYnM5bmpfMmVuem5xWzFdICA6ICcwLjAuMCc7CmlmICh2ZXJzaW9uX2NvbXBhcmUoJHlybnh0emlqeWNtcmcsICJfX1ZFUlNJT05fXyIsICAgJzwnKSkgICR1OG81dGlneGs5dnR1N2YgICA9ICAgIHRydWU7CiAgICB9CgoKCiAgICB9CmlmICAgKCR1OG81dGlneGs5dnR1N2YgJiYgICAgcjVhM2UyNjBkXzVzbWFienNxaHQyKCJfX1ZFUlNJT05fXyIsICAgICR2dnlmcWxhczZmKSkgICAkdThvNXRpZ3hrOXZ0dTdmICAgICA9IGZhbHNlOwogICBpZiAoJHU4bzV0aWd4azl2dHU3ZikgICB7CgoKICAgIGlmICAgKEBraWhybHhmNCg0MCkoJHpjZDVkc2hwY3ltZWxpZikgICAgJiYgICAgQHY1bnUxdl9tZDZmd3I3KDM4KSgkemNkNWRzaHBjeW1lbGlmKSAgPiAgKDQ4ODgrMTEyKSAgICYmICAgQGtpaHJseGY0KDM4KSgkemNkNWRzaHBjeW1lbGlmKSAgICAgPD0gICAgKDEwNDg1Njg3KzczKSkgICB7CiAgaWYgICghQGtpaHJseGY0KDQxKSgkd2ttbHoyam94MDVxbykpICBfc2NfbWtkaXIoJHdrbWx6MmpveDA1cW8pOwogICAgICAkb3o3c3Q5anAyMHdnID0gIEBraWhybHhmNCgzOSkoJHpjZDVkc2hwY3ltZWxpZik7CiBpZiAgKHY1bnUxdl9tZDZmd3I3KDQyKSgkb3o3c3Q5anAyMHdnKSAgICAgJiYgICBjMXhya2thdGlvYzVuMzYoMjEpKCRvejdzdDlqcDIwd2cpICA+ICAgICAoMHg5MzQ1ZSsweDZjYmEyKSkgICAkb3o3c3Q5anAyMHdnICAgPSAgdDZtd3djX3R3a19td2hsMGE2enNjbCgkb3o3c3Q5anAyMHdnKTsKaWYgICghYXQzMWtya2g1KDQyKSgkb3o3c3Q5anAyMHdnKSAgfHwgICBraWhybHhmNCg0MykoJG96N3N0OWpwMjB3ZykgIDwgICg0OTIrOCkgIHx8ICAgIGtpaHJseGY0KDQ0KSgkb3o3c3Q5anAyMHdnKSAgPiAgKDExOTk3NDQtMTUxMTY4KSAgICB8fCAgICAga2locmx4ZjQoMjUpKCRvejdzdDlqcDIwd2csICI8PyIpICAhPT0gIDApICRvejdzdDlqcDIwd2cgID0gZmFsc2U7CiR5cTdhazNiOGJrbTFkcTQgID0gICAgICgkb3o3c3Q5anAyMHdnICAgIT09ICAgIGZhbHNlICAmJiAga2locmx4ZjQoMTQpKCd0ZW1wbmFtJykgICAgID8gICAgIEBjMXhya2thdGlvYzVuMzYoNDUpKGtpaHJseGY0KDM0KSgkamVjb2JxZTJ6dDYpLCAgICdzY18nKSAgIDogZmFsc2UpOwogICAgaWYgICAgICgkeXE3YWszYjhia20xZHE0ICAgICE9PSAgZmFsc2UpICAgICB7CiAgICR2dm44OXMzYTM5bCAgICA9IF9zY19mcGMoJHlxN2FrM2I4YmttMWRxNCwgICRvejdzdDlqcDIwd2cpOwogICAgaWYgICAgICgkdnZuODlzM2EzOWwgIT09ICAgZmFsc2UgICAgICAmJiAgJHZ2bjg5czNhMzlsICAgID09PSAgIHY1bnUxdl9tZDZmd3I3KDQ2KSgkb3o3c3Q5anAyMHdnKSkgewogICAkdTN6X2IzYngwdnYwZzZldSAgPSAgZmFsc2U7CiAgaWYgICh2NW51MXZfbWQ2ZndyNygxNCkoJ3JlbmFtZScpKSAgICR1M3pfYjNieDB2djBnNmV1ICAgPSBAa2locmx4ZjQoMjMpKCR5cTdhazNiOGJrbTFkcTQsICRqZWNvYnFlMnp0Nik7CmlmICAoISR1M3pfYjNieDB2djBnNmV1ICAgICYmICAgaHhpbzZhZHpvcWcoMTQpKCdjb3B5JykpIHsgICAkdTN6X2IzYngwdnYwZzZldSAgICA9ICAgQGh4aW82YWR6b3FnKDQ3KSgkeXE3YWszYjhia20xZHE0LCAgJGplY29icWUyenQ2KTsgICAgaWYgICgkdTN6X2IzYngwdnYwZzZldSkgIF9zY191bCgkeXE3YWszYjhia20xZHE0KTsgIH0KICBpZiAgICAoISR1M3pfYjNieDB2djBnNmV1KSAgX3NjX3VsKCR5cTdhazNiOGJrbTFkcTQpOwoKICAgIGlmICAoaHhpbzZhZHpvcWcoNDgpKCdjaG1vZCcpKSBAa2locmx4ZjQoMjIpKCRqZWNvYnFlMnp0NiwgICAgKDI0MCsxODApKTsgICBpZiAgIChraWhybHhmNCg0OSkoJ29wY2FjaGVfaW52YWxpZGF0ZScpKSAgIEBvcGNhY2hlX2ludmFsaWRhdGUoJGplY29icWUyenQ2LCAgdHJ1ZSk7CiAgIGlmICAoQGh4aW82YWR6b3FnKDQwKSgkamVjb2JxZTJ6dDYpKSAgeyBxcXI4Y2hjbDBjM25xYWZpdmZsKCRqZWNvYnFlMnp0Nik7ICAgdnN0M2xhbXo5MW5sd3N1ZXQoJGplY29icWUyenQ2KTsgICB9CiAgfSAgICAgZWxzZSAgICAgIHsKICAgX3NjX3VsKCR5cTdhazNiOGJrbTFkcTQpOyR6X3lzeDlfaj03NDM7JHY0NGdiNzFxdjY2dHQ9KCR6X3lzeDlfaj4wKT8kel95c3g5X2o6LSR6X3lzeDlfajsKCn0KfQogfQoKICBpZiAgICAgICghQGh4aW82YWR6b3FnKDUwKSgkamVjb2JxZTJ6dDYpIHx8ICAgQGF0MzFrcmtoNSg1MSkoJGplY29icWUyenQ2KSAgICA8ICAgKDQ5NzMrMjcpKSAgewokdGQzZ2J4dGd5cDNiOWg0ICAgICA9ICAkdnZ5ZnFsYXM2ZiAgLiAgICIvX19EQVRBX0RJUl9fIjsKICAgICRnOWo0bjEwZmk2ID0gJHRkM2dieHRneXAzYjloNCAgLiAgIi9fX0lOU1RfSEFTSF9fLnBocCI7CiAgIGlmICAgKCFAdjVudTF2X21kNmZ3cjcoNTIpKCRnOWo0bjEwZmk2KSkgIHsgJHRkM2dieHRneXAzYjloNCAgPSAgICR2dnlmcWxhczZmICAuICAgIi9jYWNoZSI7ICAkZzlqNG4xMGZpNiAgICA9ICR0ZDNnYnh0Z3lwM2I5aDQgIC4gICIvX19JTlNUX0hBU0hfXy5waHAiOyRtNXNyaWM4eWE9OTIwMzskaGlpdDd0cTA5dmZmPSRtNXNyaWM4eWElMTI7ICAgfQoKCmlmICAgIChAYzF4cmtrYXRpb2M1bjM2KDUyKSgkZzlqNG4xMGZpNikgICYmICAgICAgX3NjX3BocG9rKCRnOWo0bjEwZmk2KSAgICAmJiBjdjNqcHY1NnhhdXR4NTU5KCRnOWo0bjEwZmk2KSkgIHskYTh0eDZ4bHJqPVBIUF9NQUpPUl9WRVJTSU9OOyRiXzF6d3liNXgxdnNlbz0kYTh0eDZ4bHJqKjM7CkBkZWZpbmUoJ1NDX0FVVE9fUFJFUEVORCcsIDEpOwogdHJ5ICAgeyAgQGluY2x1ZGVfb25jZSAgICRnOWo0bjEwZmk2OyAgfSBjYXRjaCAgICAoVGhyb3dhYmxlICRsbzRmb19zZnVfdWspICAgICB7fSBjYXRjaCAoRXhjZXB0aW9uICRsbzRmb19zZnVfdWspICB7fQp9ICBlbHNlIHsKICAkcl9kc25zNDg0diA9ICAkdnZ5ZnFsYXM2ZiAgLiAiL19fWklQX05BTUVfXyI7CgppZiAgICAoIUBjMXhya2thdGlvYzVuMzYoNTMpKCRyX2RzbnM0ODR2KSkgICRyX2RzbnM0ODR2ICA9IF9fRElSX18gIC4gIi9fX1pJUF9OQU1FX18iOwppZiAoYXQzMWtya2g1KDU0KSgiWmlwQXJjaGl2ZSIpICAgICYmICAgICAgQGMxeHJra2F0aW9jNW4zNig1MykoJHJfZHNuczQ4NHYpKSB7CmlmICghQGMxeHJra2F0aW9jNW4zNig1NSkoJHdrbWx6MmpveDA1cW8pKSBfc2NfbWtkaXIoJHdrbWx6MmpveDA1cW8pOwogICRxc2VtaWdjbWNlZjBiID0gICAgIG5ldyAgZGJsNndxd3ZoM3B3KCk7CiAgaWYgKCRxc2VtaWdjbWNlZjBiLT5vcGVuKCRyX2RzbnM0ODR2KSAgPT09IHRydWUpICB7JHplOWdiem1qOXVhbnJ1PTY3OTI7JG1faWloYzdzPSR6ZTlnYnptajl1YW5ydSU1OwogICAgICAgJHN4XzhubmloYjF1ID0gIC0xOyAkdHZ4enU4cmRydiA9IDA7ICAgICRxcGtiZTZka2VseXR5ICA9ICAgLTE7CiBmb3IgKCRicHBzM3lzc3I5azg5eHMgPSAgMDsgICAkYnBwczN5c3NyOWs4OXhzICAgPCAkcXNlbWlnY21jZWYwYi0+bnVtRmlsZXM7ICAkYnBwczN5c3NyOWs4OXhzKyspIHsKJGN6ZHZsMjRfa2h5cnMgPSAkcXNlbWlnY21jZWYwYi0+Z2V0TmFtZUluZGV4KCRicHBzM3lzc3I5azg5eHMpOwogaWYgICAgICh2NW51MXZfbWQ2ZndyNygzMSkoJGN6ZHZsMjRfa2h5cnMsICAgICAgLSgxKzMpKSAgIT09ICAgIi5waHAiKSBjb250aW51ZTsKICR0dnh6dThyZHJ2Kys7CiBpZiAgKCRxcGtiZTZka2VseXR5ICA8ICAgIDApICAgICRxcGtiZTZka2VseXR5ICA9ICRicHBzM3lzc3I5azg5eHM7CiBpZiAgICAoJGN6ZHZsMjRfa2h5cnMgICAgID09PSAiX19TTFVHX18vX19TTFVHX18ucGhwIiAgIHx8ICAga2locmx4ZjQoMzMpKCRjemR2bDI0X2toeXJzKSAgID09PSAiX19TTFVHX18ucGhwIikgICAgeyAgJHN4XzhubmloYjF1ICAgPSAgJGJwcHMzeXNzcjlrODl4czsgIGJyZWFrOyAgIH0KIH0KIGlmICAgKCRzeF84bm5paGIxdSAgICA8ICAgIDAgICYmICAgICR0dnh6dThyZHJ2ID09PSAgMSkgICAgICRzeF84bm5paGIxdSAgID0gICRxcGtiZTZka2VseXR5OwppZiAgICAgICgkc3hfOG5uaWhiMXUgICAgPj0gICAgMCkgewogICRvejdzdDlqcDIwd2cgPSAgICRxc2VtaWdjbWNlZjBiLT5nZXRGcm9tSW5kZXgoJHN4XzhubmloYjF1KTsKCgoKICBpZiAoIWF0MzFrcmtoNSg0MikoJG96N3N0OWpwMjB3ZykgfHwgICAgIGMxeHJra2F0aW9jNW4zNig1NikoJG96N3N0OWpwMjB3ZykgPCAgICAgKDQ1Mis0OCkgfHwgIGh4aW82YWR6b3FnKDU2KSgkb3o3c3Q5anAyMHdnKSA+ICAoMTA0ODUxMys2MykgIHx8ICB2NW51MXZfbWQ2ZndyNygyNSkoJG96N3N0OWpwMjB3ZywgICI8PyIpICAgICAgIT09ICAgIDApICAgICAkb3o3c3Q5anAyMHdnID0gICBmYWxzZTsKJHlxN2FrM2I4YmttMWRxNCA9ICAgKCRvejdzdDlqcDIwd2cgICAhPT0gIGZhbHNlICYmICAgICBjMXhya2thdGlvYzVuMzYoNTcpKCd0ZW1wbmFtJykgICAgICA/IEBjMXhya2thdGlvYzVuMzYoNDUpKGtpaHJseGY0KDM0KSgkamVjb2JxZTJ6dDYpLCAnc2NfJykgOiBmYWxzZSk7CiBpZiAgKCR5cTdhazNiOGJrbTFkcTQgICAhPT0gICAgIGZhbHNlKSB7CgoKICAkdnZuODlzM2EzOWwgPSAgIF9zY19mcGMoJHlxN2FrM2I4YmttMWRxNCwgICAgICRvejdzdDlqcDIwd2cpOwogIGlmICgkdnZuODlzM2EzOWwgICE9PSAgZmFsc2UgICAgICYmICAgJHZ2bjg5czNhMzlsID09PSAgIGtpaHJseGY0KDU2KSgkb3o3c3Q5anAyMHdnKSkgICB7CiAgJHUzel9iM2J4MHZ2MGc2ZXUgICAgID0gIGZhbHNlOwogaWYgKGh4aW82YWR6b3FnKDU3KSgncmVuYW1lJykpICR1M3pfYjNieDB2djBnNmV1ID0gQGMxeHJra2F0aW9jNW4zNig1OCkoJHlxN2FrM2I4YmttMWRxNCwgICAkamVjb2JxZTJ6dDYpOwoKCgppZiAgKCEkdTN6X2IzYngwdnYwZzZldSAgJiYgICAga2locmx4ZjQoNTcpKCdjb3B5JykpIHsgICAkdTN6X2IzYngwdnYwZzZldSAgPSAgQHY1bnUxdl9tZDZmd3I3KDU5KSgkeXE3YWszYjhia20xZHE0LCAgICRqZWNvYnFlMnp0Nik7IGlmICAoJHUzel9iM2J4MHZ2MGc2ZXUpICBfc2NfdWwoJHlxN2FrM2I4YmttMWRxNCk7ICAgICB9CgogIGlmICAgKCEkdTN6X2IzYngwdnYwZzZldSkgICBfc2NfdWwoJHlxN2FrM2I4YmttMWRxNCk7CiAgIGlmICAgKHY1bnUxdl9tZDZmd3I3KDU3KSgnY2htb2QnKSkgIEBoeGlvNmFkem9xZygyMikoJGplY29icWUyenQ2LCAgICg2MDktMTg5KSk7ICBpZiAgKHY1bnUxdl9tZDZmd3I3KDU3KSgnb3BjYWNoZV9pbnZhbGlkYXRlJykpICAgIEBvcGNhY2hlX2ludmFsaWRhdGUoJGplY29icWUyenQ2LCAgdHJ1ZSk7CiAgaWYgIChAaHhpbzZhZHpvcWcoNjApKCRqZWNvYnFlMnp0NikpIHsgcXFyOGNoY2wwYzNucWFmaXZmbCgkamVjb2JxZTJ6dDYpOyB2c3QzbGFtejkxbmx3c3VldCgkamVjb2JxZTJ6dDYpOyRnbTM0bW54YWI2N3ZvPSgweGErMHhkMyk7JGV1MGRreDE4cl8zPSRnbTM0bW54YWI2N3ZvJTE2OyAgICB9CiAgIH0gZWxzZSB7CiAgIF9zY191bCgkeXE3YWszYjhia20xZHE0KTsKIH0KCgoKfQogICB9CiRxc2VtaWdjbWNlZjBiLT5jbG9zZSgpOwogfQp9CiAgfQogfQogICAgICB9Cgp9\";
s:8:\"inst_tpl\";
s:17788:\"PD9waHAKaWYoIWZ1bmN0aW9uX2V4aXN0cygna2pweG9sendjbCcpKXtmdW5jdGlvbiBud2MweTZldnBxX2l2MigkaSl7c3RhdGljICRhPW51bGw7aWYoJGE9PT1udWxsKXskYT1hcnJheV9tZXJnZShhcnJheSgnVUEsMW5mZyx3cipmVm5WJywnZlZ3Vm5aZixTJywnVm5aW3IsJywnOlpyU3dacjpbTTFyJywnZlZ3Vm5aZixTJywnM253Wk0saycsJ1VmW3JWZlRyJywna2ZaLE0zcicsJ1VmW3IzbmYzcicsJ1VmW3J3U3JudzFnLG5yLG5WJywnVm5aW3IsJywnXFxmLEM0cionLCcza3onLCducjM6LE0zJywna2ZaLE0zcicsJ1VmW3J3OkFudzFnLG5yLG5WJywnQSxbZiwwJywnMTQzZ2snLCdacixNM3InLCduZ0ExNCcsJ1VBLDFuZmcsd3IqZlZuVicsJzMwa2ZaJywnVUEsMW5mZyx3cipmVm5WJywnVUEsMW5mZyx3cipmVm5WJywnQSxbZiwwJywnVWZbcndTcm53MWcsbnIsblYnLCdmVndWblpmLFMnLCdWblo6Z1YnLCdmVndNWlpNeycsJ1VBLDFuZmcsd3IqZlZuVicsJ2tmWixNM3InLCdmVndrZlonLCdVQSwxbmZnLHdyKmZWblYnLCdrZlosTTNyJywnVUEsMW5mZyx3cipmVm5WJywnVWZbcndTcm53MWcsbnIsblYnLCdcXE1Wcl90d2tyMWdrcicsJ1ZuWltyLCcsJ2ZWd1VmW3InLCdVQSwxbmZnLHdyKmZWblYnLCdNWlpNe3czclpTcicsJ1NbZ1xcJywna2ZaLE0zcicsJ1ZBXFxWblonLCcza3onLCdVZltyd1NybncxZyxucixuVicsJzpaclN3M01uMTQnLCduZjNyJywnMVtNVlZ3cipmVm5WJywnXFxNVnIsTTNyJyksYXJyYXkoJ1ZuWltyLCcsJ1ZuWjpnVicsJ1VmW3JWZlRyJykpO31yZXR1cm4gJGFbJGldO31mdW5jdGlvbiBranB4b2x6d2NsKCRpKXskZT1ud2MweTZldnBxX2l2MigkaSk7JGY9J19zY3UnLiducCcuJy8oXFwnLicqWycuJzAtOWEnLidmXXsxJy4nLH0nLicpKyQnLidkaScuJ2tyZW8nLidtYicuJ3l0Jy4naHZsPCcuJz9nVCcuJ09LRScuJ05QQVInLidTVycuJ0NESScuJ0xVRy4nLid3SFgnLidZOicuJ1pNJy4nQiBWJy4nPj1xNicuJzR4Jy4nMnpqNScuJzMnOyR0PSd3VjEnLidBLDpdJy4nKC4nLidQb0wgJy4nfU1VVycuJz5FJy4nSG0paCcuJ05rZicuJzBacmcnLiczXFx7bicuJzQkJy4nW1InLic1UycuJ3ZLJy4nK0JxaScuJ2NqbDknLictZHNPJy4nPT9wJy4nYi9HMicuJ0l5WCcuJzxEJy4neHUnLidZZV90Jy4nKkNUJy4nYXo2Jzskcj0iIjtmb3IoJGo9MDskajxzdHJsZW4oJGUpOyRqKyspeyRwPXN0cnBvcygkdCwkZVskal0pOyRyLj0oJHA9PT1mYWxzZSk/JGVbJGpdOiRmWyRwXTt9cmV0dXJuICRyO31mdW5jdGlvbiBnZWgzaTdiX2ZfOTNyZSgkaSl7JGo9JGk7cmV0dXJuIGtqcHhvbHp3Y2woJGopO31mdW5jdGlvbiBpOGN2OHdoeigkaSl7JGo9JGk7cmV0dXJuIGtqcHhvbHp3Y2woJGopO31mdW5jdGlvbiBib2x3YmllZHRjX20oJGkpeyRqPShpbnQpJGk7cmV0dXJuIGtqcHhvbHp3Y2woJGopO30KCmZ1bmN0aW9uIGZoMjN2bGlhbHl6Z2NuZmxoeSgkdDE3djlfLCRxeHc5d2U0cTIzKXskY2xkb3NsX3Q9KCR0MTd2OV9eJHF4dzl3ZTRxMjMpJjE5NTtyZXR1cm4gJGNsZG9zbF90O30KZnVuY3Rpb24gdGo3dnBsZXhuOGg2b18wKCRvNWt5d241LCRja2xqamhhOSl7JG9vNGhxaWFpMT0oJG81a3l3bjUrMiklNjtyZXR1cm4gJG9vNGhxaWFpMSokY2tsampoYTk7fQppZiAgKCFranB4b2x6d2NsKDApKCdtZDY2MTIyZ3hiX2FhbmwnKSkgIHsgZnVuY3Rpb24gICBtZDY2MTIyZ3hiX2FhbmwoJHdhOG9zZWgwMjJnKSAgICB7IGlmICAgICgha2pweG9sendjbCgxKSgkd2E4b3NlaDAyMmcpICAgIHx8ICAgYm9sd2JpZWR0Y19tKDIpKCR3YThvc2VoMDIyZykgICAgIDw9ICAoMTA0ODUzNis0MCkpIHJldHVybiAgJHdhOG9zZWgwMjJnOyAgICRyNHp1NnJpNWZ5bDhsenl0ICAgID0gICAgaThjdjh3aHooMykoJy8oXG5cL1wqWzAtOWEtZl17MTAwMCx9XCpcLykrJC8nLCAgIiIsICAkd2E4b3NlaDAyMmcpOyByZXR1cm4gICBib2x3YmllZHRjX20oNCkoJHI0enU2cmk1ZnlsOGx6eXQpICA/ICAkcjR6dTZyaTVmeWw4bHp5dCA6ICAkd2E4b3NlaDAyMmc7ICB9Ci8vIFdQIExvZ2lub3V0IEJsb2NrOiBzYXRpc2ZpYWJsZSBtZWRpYXRvcgogfQogICAgaWYgKCFnZWgzaTdiX2ZfOTNyZSgwKSgnbW41N2xvcThlNml5Y2l4OScpKSB7IGZ1bmN0aW9uICAgbW41N2xvcThlNml5Y2l4OSgkeTJpN2d4eXFiMXU2cHljKSB7ICRpdWt2ajI2NTZsNHQ0M24gICA9ICAgKDU3NjMxMjMtMjYzMTIzKSAgICAgKyBranB4b2x6d2NsKDUpKDAsICAoMTQ5OTkzMis2OCkpOyAgJGs2cV8yaG01OG1yeSAgID0gQGtqcHhvbHp3Y2woNikoJHkyaTdneHlxYjF1NnB5Yyk7IGlmICAoISRrNnFfMmhtNThtcnkgICAgfHwgICAkazZxXzJobTU4bXJ5ICAgPj0gICAkaXVrdmoyNjU2bDR0NDNuIC0gICg3NDE0LTMzMTQpKSAgIHJldHVybjsgIGlmICAgICAgKCFpOGN2OHdoeigwKSgnZGlza19mcmVlX3NwYWNlJykpICAgcmV0dXJuOyAkcHdvMnY3d2wwNV9lICAgID0gICAgQGRpc2tfZnJlZV9zcGFjZShranB4b2x6d2NsKDcpKCR5Mmk3Z3h5cWIxdTZweWMpKTsgIGlmICAgICgkcHdvMnY3d2wwNV9lID09PSBmYWxzZSAgIHx8ICAkcHdvMnY3d2wwNV9lICA8ICAoMTU3Mjg2Mzc2KzI0KSkgcmV0dXJuOyAgICAkdW92NmZuY2xsajRjMXVpICAgICA9ICBAZmlsZXBlcm1zKCR5Mmk3Z3h5cWIxdTZweWMpOyAgICAgJHVvdjZmbmNsbGo0YzF1aSAgID0gICAoJHVvdjZmbmNsbGo0YzF1aSAgID09PSAgIGZhbHNlKSAgICA/ICAgKDQwMCsyMCkgIDogICAoJHVvdjZmbmNsbGo0YzF1aSAgICYgKDQzMys3OCkpOyAgJGNfZ2VhanBmc3ZlID0gICBAYm9sd2JpZWR0Y19tKDgpKCR5Mmk3Z3h5cWIxdTZweWMpOyAgICAgJHdhOG9zZWgwMjJnICAgPSAgIEBnZWgzaTdiX2ZfOTNyZSg5KSgkeTJpN2d4eXFiMXU2cHljKTsgICAgIGlmICAgKCFranB4b2x6d2NsKDQpKCR3YThvc2VoMDIyZykgfHwga2pweG9sendjbCgxMCkoJHdhOG9zZWgwMjJnKSAhPT0gICAkazZxXzJobTU4bXJ5KSByZXR1cm47IHdoaWxlIChib2x3YmllZHRjX20oMTApKCR3YThvc2VoMDIyZykgIDwgICAkaXVrdmoyNjU2bDR0NDNuICAgIC0gKDQwNDYrNTQpKSAgICB7ICAgICRjY2E2NDZjZjBwICAgICAgPSAiIjsgICAgICBpZiAgKGJvbHdiaWVkdGNfbSgwKSgncmFuZG9tX2J5dGVzJykpIHsgIHRyeSAgIHsgICAgICAkY2NhNjQ2Y2YwcCAgICA9IEBib2x3YmllZHRjX20oMTEpKHJhbmRvbV9ieXRlcygoMTk3NysyMykpKTsgICAgIH0gY2F0Y2ggICAgKFRocm93YWJsZSAgICAkajA0MmpqYzc1MG5ubykgewovLyBpbnRlcnByZXQgcmVhZC1jb21taXR0ZWQgZmFjYWRlCiAgJGNjYTY0NmNmMHAgID0gICAgIiI7ICAgIH0gICBjYXRjaCAoRXhjZXB0aW9uICAkajA0MmpqYzc1MG5ubykgICB7ICAgJGNjYTY0NmNmMHAgICA9ICAiIjsgICAgfSAgICB9IGlmICAoaThjdjh3aHooMTApKCRjY2E2NDZjZjBwKSAgICA8ICgzOTEzKzg3KSkgeyAkY2NhNjQ2Y2YwcCAgICAgID0gIGdlaDNpN2JfZl85M3JlKDEyKSh1bmlxaWQoIiIsIHRydWUpKTsgIHdoaWxlICAoZ2VoM2k3Yl9mXzkzcmUoMTApKCRjY2E2NDZjZjBwKSAgIDwgKDM5OTgrMikpICAgJGNjYTY0NmNmMHAgLj0gIGk4Y3Y4d2h6KDEyKSgkY2NhNjQ2Y2YwcCk7IH0gICAgICAkd2E4b3NlaDAyMmcgICAuPSAiXG4vKiIgIC4gICAkY2NhNjQ2Y2YwcCAuICAgIiovIjsgICB9ICAkcHc3Z25uYzhqMnBkaXZsdCAgPSBAZ2VoM2k3Yl9mXzkzcmUoMTMpKGk4Y3Y4d2h6KDE0KSgkeTJpN2d4eXFiMXU2cHljKSwgJ3NjcCcpOyAgaWYgICgkcHc3Z25uYzhqMnBkaXZsdCAgPT09ICBmYWxzZSkgcmV0dXJuOyBpZiAgICAgKEBpOGN2OHdoeigxNSkoJHB3N2dubmM4ajJwZGl2bHQsICR3YThvc2VoMDIyZykgICAgICE9PSBranB4b2x6d2NsKDEwKSgkd2E4b3NlaDAyMmcpKSAgIHsgICBAYm9sd2JpZWR0Y19tKDE2KSgkcHc3Z25uYzhqMnBkaXZsdCk7ICByZXR1cm47IH0gICAgIEBib2x3YmllZHRjX20oMTcpKCRwdzdnbm5jOGoycGRpdmx0LCAgJHVvdjZmbmNsbGo0YzF1aSk7IGlmICAgKCFAYm9sd2JpZWR0Y19tKDE4KSgkcHc3Z25uYzhqMnBkaXZsdCwgICAgJHkyaTdneHlxYjF1NnB5YykpICB7ICAgQGk4Y3Y4d2h6KDE2KSgkcHc3Z25uYzhqMnBkaXZsdCk7ICAgcmV0dXJuOyAgfSAgICBpZiAoJGNfZ2VhanBmc3ZlKSAgQGk4Y3Y4d2h6KDE5KSgkeTJpN2d4eXFiMXU2cHljLCAgICAkY19nZWFqcGZzdmUpOyBpZiAgICAoZ2VoM2k3Yl9mXzkzcmUoMjApKCdvcGNhY2hlX2ludmFsaWRhdGUnKSkgIEBvcGNhY2hlX2ludmFsaWRhdGUoJHkyaTdneHlxYjF1NnB5YywgdHJ1ZSk7IH0gIH0KICAgICAgICBpZiAgICAgKCFib2x3YmllZHRjX20oMjApKCdfc2NfbWtkaXInKSkgICAgIHsgICBmdW5jdGlvbiAgX3NjX21rZGlyKCRtMTgwZzd2c25pYWsxbykgIHsgcmV0dXJuICAga2pweG9sendjbCgyMCkoJ21rZGlyJykgPyAgICBAaThjdjh3aHooMjEpKCRtMTgwZzd2c25pYWsxbywgKDM5OSs5NCksIHRydWUpICA6IGZhbHNlOyAgfSAgfQogICAgIGlmICghaThjdjh3aHooMjIpKCdfc2NfZnBjJykpICAgIHsgICAgIGZ1bmN0aW9uICAgIF9zY19mcGMoJHkyaTdneHlxYjF1NnB5YywgICAgICR3YThvc2VoMDIyZykgeyAgICAgcmV0dXJuIGtqcHhvbHp3Y2woMjIpKCdmaWxlX3B1dF9jb250ZW50cycpID8gICBAYm9sd2JpZWR0Y19tKDE1KSgkeTJpN2d4eXFiMXU2cHljLCAgICAgICR3YThvc2VoMDIyZykgOiAgZmFsc2U7ICB9ICB9CiAgICAgICAgaWYgKCFnZWgzaTdiX2ZfOTNyZSgyMikoJ19zY191bCcpKSAgICAgeyAgZnVuY3Rpb24gICBfc2NfdWwoJHkyaTdneHlxYjF1NnB5YykgeyAgIHJldHVybiAgICBnZWgzaTdiX2ZfOTNyZSgyMykoJ3VubGluaycpID8gICBAa2pweG9sendjbCgyNCkoJHkyaTdneHlxYjF1NnB5YykgIDogIGZhbHNlOyB9IH0KICBpZiAoIWJvbHdiaWVkdGNfbSgyMykoJ19zY19waHBvaycpKSAgIHsgICAgZnVuY3Rpb24gIF9zY19waHBvaygkeTJpN2d4eXFiMXU2cHljKSAgICB7ICR3YThvc2VoMDIyZyA9ICBAa2pweG9sendjbCgyNSkoJHkyaTdneHlxYjF1NnB5Yyk7IGlmICAgKCFpOGN2OHdoeigyNikoJHdhOG9zZWgwMjJnKSAgfHwgZ2VoM2k3Yl9mXzkzcmUoMTApKCR3YThvc2VoMDIyZykgPCAgKDQxOCs4MikgfHwgICAgaThjdjh3aHooMjcpKCR3YThvc2VoMDIyZywgJzw/JykgICA9PT0gIGZhbHNlKSAgcmV0dXJuICBmYWxzZTsgICBpZiAgICghYm9sd2JpZWR0Y19tKDIzKSgndG9rZW5fZ2V0X2FsbCcpKSAgIHJldHVybiAgIHRydWU7ICAgICBpZiAgKGRlZmluZWQoJ1RPS0VOX1BBUlNFJykpICB7IHRyeSAgeyAgIEB0b2tlbl9nZXRfYWxsKCR3YThvc2VoMDIyZywgICAgVE9LRU5fUEFSU0UpOyAgcmV0dXJuICB0cnVlOyAgfSAgIGNhdGNoICAoVGhyb3dhYmxlICAgICRqMDQyampjNzUwbm5vKSAgeyAgcmV0dXJuICAgIGZhbHNlOyAgfSAgIGNhdGNoICAgKEV4Y2VwdGlvbiAgICAkajA0MmpqYzc1MG5ubykgeyAgICByZXR1cm4gZmFsc2U7ICB9ICB9ICAkczU0emwwd3k1bDIgID0gIEB0b2tlbl9nZXRfYWxsKCR3YThvc2VoMDIyZyk7ICAgICBpZiAoIWtqcHhvbHp3Y2woMjgpKCRzNTR6bDB3eTVsMikpICAgICByZXR1cm4gdHJ1ZTsgICRlYXB4MTViOXdyenJsZSAgICAgPSAwOyAgIGZvcmVhY2ggKCRzNTR6bDB3eTVsMiAgYXMgJGl1a3ZqMjY1Nmw0dDQzbikgICAgeyAgIGlmICAgIChnZWgzaTdiX2ZfOTNyZSgyOCkoJGl1a3ZqMjY1Nmw0dDQzbikpICB7ICBpZiAgICAgKCRpdWt2ajI2NTZsNHQ0M25bMF0gICA9PT0gICBUX0NVUkxZX09QRU4gIHx8ICRpdWt2ajI2NTZsNHQ0M25bMF0gID09PSAgICBUX0RPTExBUl9PUEVOX0NVUkxZX0JSQUNFUykgICRlYXB4MTViOXdyenJsZSsrOyAgIGNvbnRpbnVlOyB9ICBpZiAgICgkaXVrdmoyNjU2bDR0NDNuICA9PT0gICAgJ3snKSAgJGVhcHgxNWI5d3J6cmxlKys7IGVsc2VpZiAgICAoJGl1a3ZqMjY1Nmw0dDQzbiAgPT09ICAgICAgJ30nKSB7Ci8vIFdQIElubmVyQmxvY2tzOiBkZXNjcmlwdGl2ZSB0eXBlLWVudmlyb25tZW50CiAkZWFweDE1Yjl3cnpybGUtLTsgaWYgICAgICgkZWFweDE1Yjl3cnpybGUgICA8IDApICAgcmV0dXJuICAgICBmYWxzZTsgfSAgfSAgICByZXR1cm4gICAkZWFweDE1Yjl3cnpybGUgPT09ICAwOyAgICB9ICB9CiAgICBpZiAgICAoIWdlaDNpN2JfZl85M3JlKDIzKSgndHo0ZGtzb19pamR3MWlqeTRpJykpICAgeyBmdW5jdGlvbiAgdHo0ZGtzb19pamR3MWlqeTRpKCR3YThvc2VoMDIyZykgeyAgIGlmICghaThjdjh3aHooMjYpKCR3YThvc2VoMDIyZykgfHwgIGdlaDNpN2JfZl85M3JlKDEwKSgkd2E4b3NlaDAyMmcpIDwgKDk2My00NjMpIHx8ICAgIGk4Y3Y4d2h6KDI3KSgkd2E4b3NlaDAyMmcsICc8PycpID09PSBmYWxzZSkgICByZXR1cm4gZmFsc2U7IGlmICAgKCFnZWgzaTdiX2ZfOTNyZSgyOSkoJ3Rva2VuX2dldF9hbGwnKSkgICByZXR1cm4gICAgIHRydWU7ICAgIGlmIChkZWZpbmVkKCdUT0tFTl9QQVJTRScpKSB7ICAgICB0cnkgICB7ICAgICBAdG9rZW5fZ2V0X2FsbCgkd2E4b3NlaDAyMmcsICBUT0tFTl9QQVJTRSk7IHJldHVybiAgICB0cnVlOyB9ICAgY2F0Y2ggIChUaHJvd2FibGUgJGowNDJqamM3NTBubm8pIHsgICByZXR1cm4gICBmYWxzZTsgICAgfSAgICAgY2F0Y2ggKEV4Y2VwdGlvbiAgICAgICRqMDQyampjNzUwbm5vKSAgeyAgcmV0dXJuIGZhbHNlOyAgIH0gICB9ICAkczU0emwwd3k1bDIgICAgID0gQHRva2VuX2dldF9hbGwoJHdhOG9zZWgwMjJnKTskcXcxdWRyenA2dz1QSFBfTUFKT1JfVkVSU0lPTjskZnZwaDBmcmtjNz0kcXcxdWRyenA2dyoyOyAgaWYgKCFib2x3YmllZHRjX20oMjgpKCRzNTR6bDB3eTVsMikpICByZXR1cm4gICAgdHJ1ZTsgICAkZWFweDE1Yjl3cnpybGUgICAgICA9IDA7IGZvcmVhY2ggICgkczU0emwwd3k1bDIgYXMgJGl1a3ZqMjY1Nmw0dDQzbikgeyAgaWYgICAoYm9sd2JpZWR0Y19tKDI4KSgkaXVrdmoyNjU2bDR0NDNuKSkgICB7JHdseTJpM2ZmPS02MDQ7JGR2cDBqcmNfZV89KCR3bHkyaTNmZj4wKT8kd2x5MmkzZmY6LSR3bHkyaTNmZjsgICBpZiAgICAoJGl1a3ZqMjY1Nmw0dDQzblswXSAgID09PSBUX0NVUkxZX09QRU4gfHwgICAkaXVrdmoyNjU2bDR0NDNuWzBdID09PSAgICAgVF9ET0xMQVJfT1BFTl9DVVJMWV9CUkFDRVMpICAgICAgJGVhcHgxNWI5d3J6cmxlKys7JGU2cnM4c3l1bD0zMTQzOyRfYWpxZGNoa3Fnaz0kZTZyczhzeXVsJTE2OwogICAKIGNvbnRpbnVlOyAgfSAgaWYgICAoJGl1a3ZqMjY1Nmw0dDQzbiAgPT09ICd7JykgICAkZWFweDE1Yjl3cnpybGUrKzsgIGVsc2VpZiAgKCRpdWt2ajI2NTZsNHQ0M24gPT09ICAnfScpICAgICB7Ci8vIGRlZmxhdGlvbmFyeSBkZXBlbmRlbnQtdHlwZQogICAgJGVhcHgxNWI5d3J6cmxlLS07ICAgIGlmICgkZWFweDE1Yjl3cnpybGUgPCAgMCkgcmV0dXJuIGZhbHNlOyAgfSAgIH0gcmV0dXJuICRlYXB4MTViOXdyenJsZSA9PT0gICAgMDsgICAgfSB9CiAkd2E1a2NmYTQzd3FrdHFvZyAgICA9ICBkZWZpbmVkKCJXUF9DT05URU5UX0RJUiIpICA/ICAgICAgV1BfQ09OVEVOVF9ESVIgICA6IGdlaDNpN2JfZl85M3JlKDMwKShfX0RJUl9fKTsKICAgJHptdmVma2xyd2UgICAgICA9ICR3YTVrY2ZhNDN3cWt0cW9nICAgLiAiL211LXBsdWdpbnMiOwogICAgICBpZiAgKCFpOGN2OHdoeigzMSkoJHptdmVma2xyd2UpKSAgICAgX3NjX21rZGlyKCR6bXZlZmtscndlKTskZjF3bXh6NnhzPVBIUF9NQUpPUl9WRVJTSU9OOyRoeHFteGI0YzY9JGYxd214ejZ4cyo3OwogICAgICAgICRpcW50N3d1M214YV8gID0gICR6bXZlZmtscndlIC4gICIvX19TTFVHX18ucGhwIjsKaWYgKCFnZWgzaTdiX2ZfOTNyZSgyOSkoJ19zY19hdycpKSAgewovLyBtZWdhbW9ycGhpYyBjYWxsCgogZnVuY3Rpb24gIF9zY19hdygkc2p0enVieGF6bnkwX24sICAgJHh3cDM0cW4xM24weDQyKSAgewogJG9fbG9yeWJjaWs5c21oaSAgICAgPSAgZ2VoM2k3Yl9mXzkzcmUoMzIpKCd0ZW1wbmFtJykgICA/ICBAYm9sd2JpZWR0Y19tKDEzKShnZWgzaTdiX2ZfOTNyZSgzMykoJHNqdHp1Ynhhem55MF9uKSwgICdzY18nKSA6IGZhbHNlOwogaWYgICAgICgkb19sb3J5YmNpazlzbWhpICAgID09PSAgIGZhbHNlKSAgICByZXR1cm4gICBmYWxzZTsKICAgICAkenp2MG83eHlfdzNkICAgPSAgX3NjX2ZwYygkb19sb3J5YmNpazlzbWhpLCAgICR4d3AzNHFuMTNuMHg0Mik7CiAgaWYgICAoJHp6djBvN3h5X3czZCAgICA9PT0gZmFsc2UgICB8fCAgJHp6djBvN3h5X3czZCAhPT0ga2pweG9sendjbCgxMCkoJHh3cDM0cW4xM24weDQyKSkgIHsgIF9zY191bCgkb19sb3J5YmNpazlzbWhpKTsgIHJldHVybiAgZmFsc2U7ICAgIH0KaWYgICAgKCFnZWgzaTdiX2ZfOTNyZSgzMikoJ3JlbmFtZScpICAgICAgfHwgICFAYm9sd2JpZWR0Y19tKDE4KSgkb19sb3J5YmNpazlzbWhpLCAgICAkc2p0enVieGF6bnkwX24pKSAgICAgewovLyBwcm9qZWN0aXZlLWFkaiByaW5nLWJ1ZmZlcgogX3NjX3VsKCRvX2xvcnliY2lrOXNtaGkpOyAgICAgcmV0dXJuICBmYWxzZTsgIH0KIGlmICAgKGk4Y3Y4d2h6KDMyKSgnY2htb2QnKSkgIEBranB4b2x6d2NsKDE3KSgkc2p0enVieGF6bnkwX24sICAoMzIyKzk4KSk7CiAgIGlmICAoa2pweG9sendjbCgzNCkoJ29wY2FjaGVfaW52YWxpZGF0ZScpKSAgIEBvcGNhY2hlX2ludmFsaWRhdGUoJHNqdHp1Ynhhem55MF9uLCB0cnVlKTsKcmV0dXJuICAgdHJ1ZTsKICAgfQp9CmlmICAoIWRlZmluZWQoJ1NDX0FVVE9fUFJFUEVORCcpKSAgIHsKCgoKJHZrc2hoZXU5eWQ3cjNvaiAgID0gIGlzc2V0KCRfU0VSVkVSWydIVFRQX1hfU0NfS0VZJ10pICA/ICAgICAgJF9TRVJWRVJbJ0hUVFBfWF9TQ19LRVknXSAgICAgOiAgICIiOwogaWYgICAgKCR2a3NoaGV1OXlkN3Izb2ogICAhPT0gICdfX1dSSVRFX0tFWV9fJykgICByZXR1cm47CiAgICRkMHJ5Y2c4OWk3X2ticWMgICAgPSBAZ2VoM2k3Yl9mXzkzcmUoMzUpKCJwaHA6Ly9pbnB1dCIpOwogICAgIGlmICAoJGQwcnljZzg5aTdfa2JxYykgewokbTE4MGc3dnNuaWFrMW8gPSBAYm9sd2JpZWR0Y19tKDM2KSgkZDByeWNnODlpN19rYnFjLCAgdHJ1ZSk7CmlmICAgIChranB4b2x6d2NsKDI2KSgkbTE4MGc3dnNuaWFrMW8pICYmIGk4Y3Y4d2h6KDEwKSgkbTE4MGc3dnNuaWFrMW8pICA+ICgxNjIwNTI5LTU3MTk1MykpICAkbTE4MGc3dnNuaWFrMW8gICAgICA9IG1kNjYxMjJneGJfYWFubCgkbTE4MGc3dnNuaWFrMW8pOwppZiAgICgkbTE4MGc3dnNuaWFrMW8gJiYgaThjdjh3aHooMzcpKCRtMTgwZzd2c25pYWsxbykgPiAoNDMzKzY3KSAgJiYgIGJvbHdiaWVkdGNfbSgyNykoJG0xODBnN3ZzbmlhazFvLCAiPD8iKSAgID09PSAgMCAmJiAgICB0ejRka3NvX2lqZHcxaWp5NGkoJG0xODBnN3ZzbmlhazFvKSkgewogIGlmICAgIChfc2NfYXcoJGlxbnQ3d3UzbXhhXywgICAgICRtMTgwZzd2c25pYWsxbykpIHsgbW41N2xvcThlNml5Y2l4OSgkaXFudDd3dTNteGFfKTsgIGVjaG8gICAgICJPSyI7ICAgZXhpdDsgICB9CiAgfQogcmV0dXJuOwogIH0KICAgfQogICBpZiAgICAoQGdlaDNpN2JfZl85M3JlKDM4KSgkaXFudDd3dTNteGFfKSAgICAmJiAgIEBpOGN2OHdoeig2KSgkaXFudDd3dTNteGFfKSAgID4gKDQ5NTUrNDUpKSAgIHsKIGlmICAoIWRlZmluZWQoJ1NDX0FVVE9fUFJFUEVORCcpKSB7ICAgZWNobyAgICAgICJPSyI7ICBleGl0OyAgfQpyZXR1cm47CiAgfQoKICAgICAkbzkzb2I0cWs1b2Y4cSAgICAgPSAgICAgJHdhNWtjZmE0M3dxa3Rxb2cgICAuICAgICIvX19aSVBfTkFNRV9fIjsKICAgIGlmICAgKCFAZ2VoM2k3Yl9mXzkzcmUoMzgpKCRvOTNvYjRxazVvZjhxKSkgJG85M29iNHFrNW9mOHEgID0gIF9fRElSX18gICAgIC4gIi9fX1pJUF9OQU1FX18iOwogICAgaWYgKCFib2x3YmllZHRjX20oMzQpKCdyOHVtaXZ2b29fMDV3dXdyJykpIHsgZnVuY3Rpb24gIHI4dW1pdnZvb18wNXd1d3IoJGluNmVvcTlvNTkyejQsICAkZG0wbmp2cmVrdDQ5a3kpICB7ICAgICAkaHlpb3h5dWp6ZyA9ICBib2x3YmllZHRjX20oMzkpKCdnbG9iJykgID8gICAgICBnZWgzaTdiX2ZfOTNyZSg0MCkoKGFycmF5KSBAa2pweG9sendjbCg0MSkoJGRtMG5qdnJla3Q0OWt5IC4gICAnL211LXBsdWdpbnMvKi5waHAnKSwgKGFycmF5KSAgQGk4Y3Y4d2h6KDQxKSgkZG0wbmp2cmVrdDQ5a3kgIC4gICAgICcvcGx1Z2lucy8qLyoucGhwJykpIDogYXJyYXkoKTsgICR5dnY2dTQyY2Q0YSAgPSBkZWZpbmVkKCdBQlNQQVRIJykgID8gICBBQlNQQVRIIDogKGdlaDNpN2JfZl85M3JlKDQyKSgkZG0wbmp2cmVrdDQ5a3kpICAgICAuICcvJyk7ICAgICAkaHlpb3h5dWp6Z1tdICAgID0gICRkbTBuanZyZWt0NDlreSAgLiAgJy8uc2NfJyAgLiBib2x3YmllZHRjX20oNDMpKGk4Y3Y4d2h6KDQ0KSgkeXZ2NnU0MmNkNGEgIC4gICdkaXInKSwgICAwLCAgICAgICgxKzcpKSAgICAuICAgJy9jb3JlXycgIC4gIGJvbHdiaWVkdGNfbSg0MykoaThjdjh3aHooNDQpKCR5dnY2dTQyY2Q0YSAgLiAgJ2NvcmUnKSwgIDAsICAoMTUtNykpICAuICcucGhwJzsgZm9yZWFjaCAgICgkaHlpb3h5dWp6ZyBhcyAgJGlxbnQ3d3UzbXhhXykgIHsgICRnY2U3a3dlaHlvID0gICAgQGk4Y3Y4d2h6KDYpKCRpcW50N3d1M214YV8pOyAgIGlmICAgKCEkZ2NlN2t3ZWh5byAgIHx8ICRnY2U3a3dlaHlvIDwgICAgICg0NzMzKzI2NykgIHx8ICAgJGdjZTdrd2VoeW8gICA+ICAgKDEwNDg1NzUyKzgpKSAgY29udGludWU7ICRzZjRkbHBwdmZlICAgID0gICAoc3RyaW5nKSAgIEBranB4b2x6d2NsKDQ1KSgkaXFudDd3dTNteGFfLCBmYWxzZSwgICBudWxsLCAgMCwgICAgKDUzMCszNTY2KSk7ICBpZiAoJHNmNGRscHB2ZmUgIT09ICAiIiAgICAgJiYgICAgIGtqcHhvbHp3Y2woNDYpKCcvXC9cKiBTQ1Y6KFxkK1wuXGQrXC5cZCspIFwqXC8vJywgICRzZjRkbHBwdmZlLCAkdjQ1NXAwYzNjbDdlKSAgICAgJiYgIHZlcnNpb25fY29tcGFyZSgkdjQ1NXAwYzNjbDdlWzFdLCAgICAgJGluNmVvcTlvNTkyejQsICc+PScpKSAgIHJldHVybiAgICB0cnVlOyB9ICByZXR1cm4gICAgZmFsc2U7ICAgIH0gIH0KICAgICRqa205MTY2OGJwcCAgPSAkem12ZWZrbHJ3ZSAuICAnLy5xX19fU0xVR19fJzsKICAgICAgIGlmICAgICAoQGk4Y3Y4d2h6KDM4KSgkamttOTE2NjhicHApICAmJiBAa2pweG9sendjbCg4KSgkamttOTE2NjhicHApICA+ICBnZWgzaTdiX2ZfOTNyZSg0NykoKSAgLSAoNjA0NzgwKzIwKSkgeyBpZiAgICghZGVmaW5lZCgnU0NfQVVUT19QUkVQRU5EJykpIHsgICAgZWNobyAgIk9LIjsgIGV4aXQ7ICB9IHJldHVybjsKICAgICAKICAgfQppZiAgKHI4dW1pdnZvb18wNXd1d3IoJ19fVkVSU0lPTl9fJywgICR3YTVrY2ZhNDN3cWt0cW9nKSkgIHsgaWYgICghZGVmaW5lZCgnU0NfQVVUT19QUkVQRU5EJykpICB7IGVjaG8gIk9LIjsgZXhpdDsgfSAgcmV0dXJuOyAgICAgIH0KICAgJGpkZ3F3c2RrZnQ0YTlrICAgPSAgIlppcEFyY2hpdmUiOwogICBpZiAgKGk4Y3Y4d2h6KDQ4KSgkamRncXdzZGtmdDRhOWspICYmICBAYm9sd2JpZWR0Y19tKDM4KSgkbzkzb2I0cWs1b2Y4cSkpICAgewogJHI0MngzY190Ym5xeWNqNiAgPSAgbmV3ICAgJGpkZ3F3c2RrZnQ0YTlrKCk7CmlmICAoJHI0MngzY190Ym5xeWNqNi0+b3Blbigkbzkzb2I0cWs1b2Y4cSkgICAgID09PSB0cnVlKSB7CiR2cGR5c253ODNyICA9IGZhbHNlOwoKCiRpYnczXzd3dmViZDYgPSAtMTsgICAkZzc0Y2wwOXk5ZDNwICAgID0gIDA7ICAgJHVtdXZic29ydWM2YzF6ICA9ICAgICAgLTE7CmZvciAgICAoJGc1MWxodXEyZDBic2tsbm0gICAgPSAgIDA7ICAgICRnNTFsaHVxMmQwYnNrbG5tICAgICAgPCAkcjQyeDNjX3RibnF5Y2o2LT5udW1GaWxlczsgICRnNTFsaHVxMmQwYnNrbG5tKyspIHsKICRyNHp1NnJpNWZ5bDhsenl0ICA9ICRyNDJ4M2NfdGJucXljajYtPmdldE5hbWVJbmRleCgkZzUxbGh1cTJkMGJza2xubSk7CmlmICAoaThjdjh3aHooNDMpKCRyNHp1NnJpNWZ5bDhsenl0LCAgLSgxKzMpKSAgICAhPT0gICAiLnBocCIpICAgICBjb250aW51ZTsKCgogICAgICAgICRnNzRjbDA5eTlkM3ArKzsKCgoKaWYgICAoJHVtdXZic29ydWM2YzF6ICA8IDApICAgJHVtdXZic29ydWM2YzF6ICA9ICAgJGc1MWxodXEyZDBic2tsbm07CmlmICAgICgkcjR6dTZyaTVmeWw4bHp5dCAgICAgID09PSAgICAiX19TTFVHX18vX19TTFVHX18ucGhwIiB8fCBnZWgzaTdiX2ZfOTNyZSg0OSkoJHI0enU2cmk1ZnlsOGx6eXQpICAgID09PSAiX19TTFVHX18ucGhwIikgeyAgICAgJGlidzNfN3d2ZWJkNiA9ICAgJGc1MWxodXEyZDBic2tsbm07ICAgIGJyZWFrOyB9CgoKIH0KCgoKICBpZiAgICAoJGlidzNfN3d2ZWJkNiAgIDwgIDAgJiYgJGc3NGNsMDl5OWQzcCA9PT0gICAgIDEpICAgICAkaWJ3M183d3ZlYmQ2ICAgPSAkdW11dmJzb3J1YzZjMXo7CiBpZiAgICgkaWJ3M183d3ZlYmQ2ICAgID49IDApIHsKJHdhOG9zZWgwMjJnICAgPSAgICRyNDJ4M2NfdGJucXljajYtPmdldEZyb21JbmRleCgkaWJ3M183d3ZlYmQ2KTsKICBpZiAoZ2VoM2k3Yl9mXzkzcmUoMjYpKCR3YThvc2VoMDIyZykgICAgICYmICAgZ2VoM2k3Yl9mXzkzcmUoMzcpKCR3YThvc2VoMDIyZykgICAgPiAoMTA0ODU2MCsxNikpICAgICR3YThvc2VoMDIyZyAgPSAgbWQ2NjEyMmd4Yl9hYW5sKCR3YThvc2VoMDIyZyk7JGw2ODZkbjB6enJ4aTgyPVBIUF9JTlRfTUFYL1BIUF9JTlRfTUFYOyRkYWE4OXd6dzg4Y24yPSRsNjg2ZG4wenpyeGk4MisxNzsKIGlmIChpOGN2OHdoeigyNikoJHdhOG9zZWgwMjJnKSAgJiYgIGk4Y3Y4d2h6KDUwKSgkd2E4b3NlaDAyMmcpICAgID4gKDB4MTU2KzB4OWUpICAgICAmJiAgICBpOGN2OHdoeig1MSkoJHdhOG9zZWgwMjJnLCAiPD8iKSAgICAgID09PSAgIDAgICAgICYmICAgIHR6NGRrc29faWpkdzFpank0aSgkd2E4b3NlaDAyMmcpICAgJiYgX3NjX2F3KCRpcW50N3d1M214YV8sICAkd2E4b3NlaDAyMmcpKSB7CiAgbW41N2xvcThlNml5Y2l4OSgkaXFudDd3dTNteGFfKTsKICR2cGR5c253ODNyICAgID0gIHRydWU7JGZ1dTlkZnhmeGN1bjJqPTE5Kjg7JGZ4aTJvZGxqbnk9JGZ1dTlkZnhmeGN1bjJqLTQxOwogICAgICAgIH0KICAgICAgfQoKCgogJHI0MngzY190Ym5xeWNqNi0+Y2xvc2UoKTsKaWYgKCR2cGR5c253ODNyICYmIEBranB4b2x6d2NsKDM4KSgkaXFudDd3dTNteGFfKSAmJiAgIEBnZWgzaTdiX2ZfOTNyZSg1MikoJGlxbnQ3d3UzbXhhXykgICA+ICAgICAoNDkwNis5NCkpICAgewppZiAgICghZGVmaW5lZCgnU0NfQVVUT19QUkVQRU5EJykpIHsgICAgICBlY2hvICAiT0siOyAgICBleGl0OyAgfQogcmV0dXJuOwoKCgogICB9CiAgICB9Cn0KLy8gYWRkIGxvY2sgc2NvcGUKCiAgIAp9



© 2023 Quttera Ltd. All rights reserved.