D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
local
/
psa
/
var
/
modules
/
xovi
/
Filename :
serp_1.json
back
Copy
{"success":true,"settings":{"hash":"1","url":"https:\/\/www.google.co.uk\/search?q=coverpage&as_rights=&num=100&start=0&pws=0&hl=en&near=United+Kingdom&uule=w+CAIQICIOVW5pdGVkIEtpbmdkb20&gws_rd=cr&gl=UK&glp=1&gbv=1"},"code":200,"exception":null,"bodyLen":83503,"body":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4tR0IiPjxoZWFkPjx0aXRsZT5Hb29nbGUgU2VhcmNoPC90aXRsZT4gPC9oZWFkPjxib2R5Pjxub3NjcmlwdD4gPG1ldGEgY29udGVudD0iMDt1cmw9L2h0dHBzZXJ2aWNlL3JldHJ5L2VuYWJsZWpzP3NlaT1iWGxRYUt2SUpwaXM0LUVQX191TWVBIiBodHRwLWVxdWl2PSJyZWZyZXNoIj48ZGl2IHN0eWxlPSJkaXNwbGF5OmJsb2NrIj5QbGVhc2UgY2xpY2sgPGEgaHJlZj0iL2h0dHBzZXJ2aWNlL3JldHJ5L2VuYWJsZWpzP3NlaT1iWGxRYUt2SUpwaXM0LUVQX191TWVBIj5oZXJlPC9hPiBpZiB5b3UgYXJlIG5vdCByZWRpcmVjdGVkIHdpdGhpbiBhIGZldyBzZWNvbmRzLjwvZGl2Pjwvbm9zY3JpcHQ+PHNjcmlwdCBub25jZT0iTUV1MUpaWU9UTFZiVUx0ZUVvR1JrdyI+Ly8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb2dNeXdpYzI5MWNtTmxjeUk2V3lJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lJQ0pkTENKdVlXMWxjeUk2V3lKamJHOXpkWEpsUkhsdVlXMXBZMEoxZEhSdmJpSmRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVpZlE9PQooZnVuY3Rpb24oKXtmdW5jdGlvbiB4KFQpe3JldHVybiBUfXZhciBZPWZ1bmN0aW9uKFQsTSxLLHQsRCx5LHosRyxWLGMscSxGKXtGPTcyO3txPU07d2hpbGUoIVtdPT1mYWxzZSl0cnl7aWYoRj09VClicmVhaztlbHNlIGlmKEY9PTQ4KUY9RyYmRy5jcmVhdGVQb2xpY3k\/NTE6NTY7ZWxzZSBpZihGPT01MSlxPUssVj1HLmNyZWF0ZVBvbGljeSh5LHtjcmVhdGVIVE1MOlAsY3JlYXRlU2NyaXB0OlAsY3JlYXRlU2NyaXB0VVJMOlB9KSxGPTUwO2Vsc2UgaWYoRj09MzUpRj1OLmNvbnNvbGU\/dDo1MDtlbHNlIGlmKEY9PXQpTi5jb25zb2xlW0RdKGMubWVzc2FnZSksRj01MDtlbHNle2lmKEY9PTU2KXJldHVybiBWO2lmKEY9PTUwKXJldHVybiBxPU0sVjtGPT03Mj8oVj16LEc9Ti50cnVzdGVkVHlwZXMsRj00OCk6Rj09MTcmJihxPU0sRj0zNSl9fWNhdGNoKHcpe2lmKHE9PU0pdGhyb3cgdztxPT1LJiYoYz13LEY9MTcpfX19LFA9ZnVuY3Rpb24oVCl7cmV0dXJuIHguY2FsbCh0aGlzLFQpfSxOPXRoaXN8fHNlbGY7KDAsZXZhbCkoZnVuY3Rpb24oVCxNKXtyZXR1cm4oTT1ZKDc4LDMyLDMsNiwiZXJyb3IiLCJrcyIsbnVsbCkpJiZULmV2YWwoTS5jcmVhdGVTY3JpcHQoIjEiKSk9PT0xP2Z1bmN0aW9uKEspe3JldHVybiBNLmNyZWF0ZVNjcmlwdChLKX06ZnVuY3Rpb24oSyl7cmV0dXJuIiIrS319KE4pKEFycmF5KE1hdGgucmFuZG9tKCkqNzgyNHwwKS5qb2luKCJcbiIpK1snLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb2dNeXdpYzI5MWNtTmxjeUk2V3lJaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lJQ0pkTENKdVlXMWxjeUk2V3lKamJHOXpkWEpsUkhsdVlXMXBZMEoxZEhSdmJpSmRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdRVUZCUVR0QlFVRkJPMEZCUVVFN1FVRkJRVHRCUVVGQk8wRkJRVUVpZlE9PScsCicoZnVuY3Rpb24oKXsvKicsCicnLAonIENvcHlyaWdodCBHb29nbGUgTExDJywKJyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCcsCicqLycsCid2YXIgd1Y9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCl7Zm9yKHQ9ODY7dCE9Nzc7KWlmKHQ9PTU0KXQ9eCs3Pj4xPHgmJih4LTN8MTkpPj14PzY2OjkxO2Vsc2UgaWYodD09ODYpdD01NDtlbHNlIGlmKHQ9PTY2KVYuY2xhc3NMaXN0P1YuY2xhc3NMaXN0LnJlbW92ZSh3KTpUQShmYWxzZSx3LE0sNzIsVCxWKSYmdShWLDksSyxBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoeFkoNDQsVCxWKSxmdW5jdGlvbihxKXtyZXR1cm4gcSE9d30pLmpvaW4oRykpLHQ9OTE7ZWxzZXtpZih0PT0xNilyZXR1cm4gTjt0PT0xMT8oSy5GPSgoSy5GP0suRisifiI6IkU6IikrTS5tZXNzYWdlK1QrTS5zdGFjaykuc2xpY2UoMCxGKSx0PTE2KTp0PT05MSYmKHQ9eCs5Pj0tNTEmJih4PDwyJjgpPDM\/MTE6MTYpfX0sVEE9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMpe3txPTY7d2hpbGUocSE9NTEpaWYocT09MzcpQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh4LGZ1bmN0aW9uKFAseSx6KXtmb3Ioej03Mjt6IT03ODspej09NTA\/KHk9TVgoMTEsIiIsInN0cmluZyIsVCksdShULDUsInN0cmluZyIseSsoeS5sZW5ndGg+MD8iICIrUDpQKSksej03OCk6ej09NzI\/ej1ULmNsYXNzTGlzdD80ODo1MTp6PT00OD8oVC5jbGFzc0xpc3QuYWRkKFApLHo9NzgpOno9PTUxJiYoej1UQShmYWxzZSxQLDEsNzMsIiIsVCk\/Nzg6NTApfSkscT0yODtlbHNlIGlmKHE9PTc0KXc9cVgsViBpbiB3P00uc2V0QXR0cmlidXRlKE4sd1tWXSk6TS5yZW1vdmVBdHRyaWJ1dGUoTikscT02NztlbHNlIGlmKHE9PTU0KXE9Rz09PSIifHxHPT12b2lkIDA\/NjU6NDA7ZWxzZSBpZihxPT0zMSl0PXt9LHFYPSh0LmF0b21pYz1GLHQuYXV0b2NvbXBsZXRlPSJub25lIix0LmRyb3BlZmZlY3Q9Im5vbmUiLHQuaGFzcG9wdXA9Rix0LmxpdmU9Im9mZiIsdC5tdWx0aWxpbmU9Rix0Lm11bHRpc2VsZWN0YWJsZT1GLHQub3JpZW50YXRpb249InZlcnRpY2FsIix0LnJlYWRvbmx5PUYsdC5yZWxldmFudD0iYWRkaXRpb25zIHRleHQiLHQucmVxdWlyZWQ9Rix0LnNvcnQ9Im5vbmUiLHQuYnVzeT1GLHQuZGlzYWJsZWQ9Rix0LmhpZGRlbj1GLHQuaW52YWxpZD1ULHQpLHE9NzQ7ZWxzZSBpZihxPT02KXE9NzY7ZWxzZSBpZihxPT00MClNLnNldEF0dHJpYnV0ZShOLEcpLHE9Njc7ZWxzZSBpZihxPT02OSlxPUstOTw3JiZLLTI+PjM+PTA\/NTc6Mjg7ZWxzZSBpZihxPT0yMCl7Zm9yKE0gaW4gVj0oQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh4WSg0MywoRz17fSwiIiksVCksZnVuY3Rpb24oUCl7R1tQXT10cnVlfSksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh4LGZ1bmN0aW9uKFApe0dbUF09dHJ1ZX0pLCIiKSxHKVYrPVYubGVuZ3RoPjA\/IiAiK006TTtxPSh1KFQsNywic3RyaW5nIixWKSwyOCl9ZWxzZSBpZihxPT04Mil0KysscT0xMztlbHNlIGlmKHE9PTY1KXE9cVg\/NzQ6MzE7ZWxzZSBpZihxPT01NylxPVQuY2xhc3NMaXN0PzM3OjIwO2Vsc2V7aWYocT09NjcpcmV0dXJuIGM7cT09NTk\/KEFycmF5LmlzQXJyYXkoRykmJihHPUcuam9pbih4KSksTj0iYXJpYS0iK1YscT01NCk6cT09NzY\/cT0oKEteNjYpJjE1KT09Mj84OTo2OTpxPT0xMD8oYz13LHE9NjEpOnE9PTI0P3E9Ry5jbGFzc0xpc3Q\/Nzg6OTg6cT09Mzk\/KFRBKGZhbHNlLE0sMCwxNix0cnVlLEcsVix3LE5bdF0pLHE9ODIpOnE9PTc4Pyh3PUcuY2xhc3NMaXN0LmNvbnRhaW5zKE0pLHE9MTApOnE9PTEzP3E9dDxOLmxlbmd0aD8zOTo2OTpxPT02MT9xPShLPj4xJjcpPT0zPzU5OjY3OnE9PTk4PyhWPXhZKDQ1LHgsRyksdz1KKDU3LFQsVixNKT49MCxxPTEwKTpxPT00Mz9xPTEzOnE9PTg5P3E9QXJyYXkuaXNBcnJheShOKT80OTo1ODpxPT0yOD9xPShLfDcyKT09Sz8yNDo2MTpxPT00OT8odD1ULHE9NDMpOnE9PTU4JiYodz1HQSgzMix3KSxWJiZWW3QyXT9WLkguYWRkKFN0cmluZyhOKSx3LHgsYzgoOSwib2JqZWN0IixNKT8hIU0uY2FwdHVyZTohIU0sRyk6c0coRiwxNCwib2JqZWN0Iix3LEcsTixNLHgsVikscT02OSl9fX0saz1mdW5jdGlvbihGLE0sVCxLLHgpe3JldHVybihNLTQ+PjR8fChGLmw\/eD1EdyhGLlosRik6KEs9eWwoRiw4LHRydWUpLC1+KEsmMTI4KSsoSyYtMTI5KSsofkt8MTI4KSYmKEs9MiooS3wwKS0zKihLJjEyOCktIC0xMjkrKH5LfDEyOCksVD15bChGLDIsdHJ1ZSksSz0oSzw8MikrKFR8MCkpLHg9SykpLChNJjU2KT09TSYmKEYubD94PUR3KEYuWixGKTooVD15bChGLDgsdHJ1ZSksLX4oVCYxMjgpKyhUJi0xMjkpKyh+VHwxMjgpJiYoVD0yKihUfDApLTMqKFQmMTI4KS0gLTEyOSsoflR8MTI4KSxLPXlsKEYsMix0cnVlKSxUPShUPDwyKSsoS3wwKSkseD1UKSksTSs1JjExKXx8KHg9S1tUXTw8MjR8S1soVHwwKSsxXTw8MTZ8S1soVHwyKS0gLTMrKFR8LTMpXTw8OHxLWy0xLTIqfihUfEYpLSh+VCZGKSsoflR8RildKSx4fSx2OD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEpe2Zvcih0PTM1O3QhPTY1OylpZih0PT04NylxPUcsdD0xMDtlbHNlIGlmKHQ9PTE5KXQ9Sy5GTj85MTo4OTtlbHNlIGlmKHQ9PTEwKXQ9VDw8MiY3PzU5Ojk7ZWxzZXtpZih0PT01OSlyZXR1cm4gcTt0PT04OT8odz1uZXcga1koeCx0aGlzKSxWPUsubVd8fEsuc3JjLE49Sy5saXN0ZW5lcixLLm9tJiZHQSg1LG51bGwsIm9uIixLKSxHPU4uY2FsbChWLHcpLHQ9ODcpOnQ9PTM1P3Q9TTp0PT05P3Q9NTk6dD09TT90PShULTgmTSk9PUY\/MTk6MTA6dD09OTEmJihHPXRydWUsdD04Nyl9fSxNWD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQLHkpe2ZvcihQPTQwO1AhPTk1OylpZihQPT01KVA9cTxWLmxlbmd0aD8xNjo3ODtlbHNlIGlmKFA9PTUyKVA9NTtlbHNlIGlmKFA9PTg0KVA9KEYtMyY2KT49NCYmKEY+PjImNik8MT8xMDo4OTtlbHNlIGlmKFA9PTIxKShjPU4uU2EoRyxWLHcsdCkpJiZHQSg4LG51bGwsIm9uIixjKSxQPTc4O2Vsc2UgaWYoUD09NDIpcT1ULFA9NTI7ZWxzZSBpZihQPT00MSlQPShGJjU2KT09Rj82Ojc2O2Vsc2UgaWYoUD09NjQpUD1LPzQ4Ojc4O2Vsc2V7aWYoUD09ODkpcmV0dXJuIHk7UD09NDQ\/KHErKyxQPTUpOlA9PTg2Pyh5PXR5cGVvZiBLLmNsYXNzTmFtZT09VD9LLmNsYXNzTmFtZTpLLmdldEF0dHJpYnV0ZSYmSy5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fE0sUD04NCk6UD09MTA\/KFI0LmNhbGwodGhpcyksTXx8ZUh8fChlSD1uZXcgcFkpLHRoaXMuZFA9dGhpcy5KeD1udWxsLHRoaXMuQ3Y9ZmFsc2UsdGhpcy5pMz1udWxsLHRoaXMuVGk9ZmFsc2UsdGhpcy56aT12b2lkIDAsdGhpcy5mcT10aGlzLlQ9bnVsbCxQPTg5KTpQPT00OD8oTj1lKDgsSyksUD02Mik6UD09NzY\/UD0oRi02XjMwKTxGJiYoRis5JjQzKT49Rj83NDo3ODpQPT02Pyh5PSEhKFQuSCQmeCkmJiEhKFQuSSZ4KSE9SyYmKCEoRz1ULlpsLC0xLX54LSh+RyZ4KSl8fFQuZGlzcGF0Y2hFdmVudChJKDUsNCwyLE0sNjQsSyx4KSkpJiYhVC5WLFA9NzYpOlA9PTE2PyhNWCg1LCJvYmplY3QiLDAsSyx4LEcsVltxXSx3KSxQPTQ0KTpQPT03ND9QPUFycmF5LmlzQXJyYXkoVik\/NDI6MjpQPT02Mj9QPU4\/MjE6Nzg6UD09Mj8odD1jOCg2LE0seCk\/ISF4LmNhcHR1cmU6ISF4LEc9R0EoMzQsRyksUD0xMyk6UD09NDA\/UD00MTpQPT03OD9QPShGLTgmOSk9PTE\/ODY6ODQ6UD09MTM\/UD1LJiZLW3QyXT81NTo2NDpQPT01NSYmKEsuSC5yZW1vdmUoU3RyaW5nKFYpLEcsdCx3KSxQPTc4KX19LGgyPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOKXtmb3IoTj04ODtOIT0yNjspaWYoTj09NTIpTj0oTSY2Mik9PU0\/ODozMTtlbHNlIGlmKE49PTg4KU49NTI7ZWxzZSBpZihOPT05MSl0aGlzLkxxPUUuZG9jdW1lbnR8fGRvY3VtZW50LE49MztlbHNlIGlmKE49PTQ2KUc9Syh4KS5yZXBsYWNlKC9cXCsvZywiLSIpLnJlcGxhY2UoL1xcLy9nLCJfIikucmVwbGFjZSgvPS9nLCIiKSxOPTc0O2Vsc2UgaWYoTj09Nyl4Kz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsVC5zbGljZShWLFYrODE5MikpLE49Mzc7ZWxzZSBpZihOPT05NylOPUs\/ODk6MTY7ZWxzZSBpZihOPT05MilOPXRoaXMudS5sZW5ndGg8NTA\/NTE6NDc7ZWxzZSBpZihOPT01MSl0aGlzLnUucHVzaChUKSxOPTMxO2Vsc2V7aWYoTj09NzkpcmV0dXJuIHc7Tj09MTY\/KEc9dm9pZCAwLE49NzQpOk49PTMxP049TT4+MSY1PzM6OTE6Tj09Mzc\/KFYrPTgxOTIsTj0zMCk6Tj09NDc\/KEs9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnRoaXMubiksSzw1MCYmKHRoaXMudVtLXT1UKSxOPTMxKTpOPT1GP049MzA6Tj09OD8odGhpcy5uKyssTj05Mik6Tj09MzA\/Tj1WPFQubGVuZ3RoPzc6NDY6Tj09NzQ\/KHc9RyxOPTc5KTpOPT04OT8oVj0wLHg9IiIsTj1GKTpOPT01ND8oSz13aW5kb3cuYnRvYSxOPTk3KTpOPT0zJiYoTj0oKE1eMTIpJjgpPDUmJihNPj4yJjMpPj0xPzU0Ojc5KX19LEdBPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFAseSx6LEQpe2ZvcihEPTM5O0QhPTA7KWlmKEQ9PTc4KUQ9KEYmMTUpPT1GPzE2OjU0O2Vsc2UgaWYoRD09MTEpe2E6e2Zvcih0PSh3PUcuc3BsaXQoKGM9ZFYsTSkpLFQpO3Q8dy5sZW5ndGgtSzt0Kyspe2lmKCEoTj13W3RdLE4gaW4gYykpYnJlYWsgYTtjPWNbTl19cT1WKCh5PWNbUD13W3cubGVuZ3RoLUtdLFBdLHkpKSxxIT15JiZxIT14JiZpMChjLFAse2NvbmZpZ3VyYWJsZTp0cnVlLHdyaXRhYmxlOnRydWUsdmFsdWU6cX0pfUQ9Nzh9ZWxzZSBpZihEPT02NSlEPVYmJlZbdDJdPzI4OjY7ZWxzZSBpZihEPT0xOCl0eXBlb2YgTT09PSJmdW5jdGlvbiI\/ej1NOihNW3UwXXx8KE1bdTBdPWZ1bmN0aW9uKEgpe3JldHVybiBNLmhhbmRsZUV2ZW50KEgpfSksej1NW3UwXSksRD02NjtlbHNlIGlmKEQ9PTE2KUQ9dHlwZW9mIEshPT0ibnVtYmVyIiYmSyYmIUsuRk4\/ODA6NTQ7ZWxzZSBpZihEPT00Nyl6PVQgaW4gQjg\/QjhbVF06QjhbVF09TStULEQ9NztlbHNle2lmKEQ9PTcpcmV0dXJuIHo7RD09NTk\/RD1WPzExOjc4OkQ9PTgwPyhWPUsuc3JjLEQ9NjUpOkQ9PTEwP0Q9KEY8PDImMTUpPj04JiZGLTI+PjQ8Mj81OTo3ODpEPT0zNT9EPXg\/ODE6Njc6RD09NDI\/RD14LnNLPT0wPzQ5OjU0OkQ9PTY3PygkWSgxLDE3LHRydWUsSyksRD01NCk6RD09NTQ\/RD0oRl4zNik8MjAmJkYrMj49Nz8xODo2NjpEPT02Pyh3PUsucHJveHksRz1LLnR5cGUsVi5yZW1vdmVFdmVudExpc3RlbmVyP1YucmVtb3ZlRXZlbnRMaXN0ZW5lcihHLHcsSy5jYXB0dXJlKTpWLmRldGFjaEV2ZW50P1YuZGV0YWNoRXZlbnQoR0EoNTksVCxHKSx3KTpWLmFkZExpc3RlbmVyJiZWLnJlbW92ZUxpc3RlbmVyJiZWLnJlbW92ZUxpc3RlbmVyKHcpLG80LS0seD1lKDcsViksRD0zNSk6RD09ODE\/KHUoSyw4MCwwLHgpLEQ9NDIpOkQ9PTQ5Pyh4LnNyYz1NLFZbSjJdPU0sRD01NCk6RD09NjY\/RD0oRis1JjY1KT49RiYmKEYtNF4yNSk8Rj80Nzo3OkQ9PTI4Pyh1KEssNzIsMCxWLkgpLEQ9NTQpOkQ9PTM5JiYoRD0xMCl9fSxJND1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQLHkpe2Zvcih5PTgwO3khPTIyOylpZih5PT0xOSl5PShNKzdeMTApPj1NJiYoTSs3JjQ2KTxNPzM5OjI7ZWxzZXtpZih5PT0xMSlyZXR1cm4gUDtpZih5PT04MCl5PTE5O2Vsc2UgaWYoeT09Mzkpe2lmKHE9eC5ILmlbU3RyaW5nKFQpXSl7Zm9yKGM9KHQ9KHE9cS5jb25jYXQoKSwwKSxGKTt0PHEubGVuZ3RoOysrdCkoVj1xW3RdKSYmIVYuRk4mJlYuY2FwdHVyZT09RyYmKHc9Vi5tV3x8Vi5zcmMsTj1WLmxpc3RlbmVyLFYub20mJnUoViw3MywwLHguSCksYz1OLmNhbGwodyxLKSE9PWZhbHNlJiZjKTtQPWMmJiFLLmRlZmF1bHRQcmV2ZW50ZWR9ZWxzZSBQPUY7eT0yfWVsc2UgeT09Mj95PU0rNj4+ND8xMTo4Mjp5PT04MiYmKHRoaXMuTj1GLHk9MTEpfX0sWD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWKXsoRi01fDI1KTxGJiYoRis0XjI2KT49RiYmKE0ubD9WPUR3KE0uWixNKTooSz15bChNLDgsdHJ1ZSksLX4oSyYxMjgpKyhLJi0xMjkpKyh+S3wxMjgpJiYoSz0yKihLfDApLTMqKEsmMTI4KS0gLTEyOSsofkt8MTI4KSxUPXlsKE0sMix0cnVlKSxLPShLPDwyKSsoVHwwKSksVj1LKSk7c3dpdGNoKCEoKEYrNSY1OSk+PUYmJkYtNjw8MTxGKSl7Y2FzZSAhKDAhPT0tMCk9PSEiIjowO2JyZWFrO2Nhc2UgW109PShudWxsIT0oTmFOPT09TmFOKSk6Rz1rKEssMTMpO3t4PU07d2hpbGUoVD5NKXg9eDw8OHxyVig4LHRydWUsSyksVC0tfW4oRyxLLHgpO2JyZWFrfXJldHVybiBWfSxJPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOKXtmb3Iodz01Nzt3IT02MjspaWYodz09NTcpdz02NjtlbHNlIGlmKHc9PTY2KXc9KEYtMV43KT49RiYmKEYrNF43KTxGPzUyOjMxO2Vsc2UgaWYodz09NTIpdihULEssTSksTVt6QV09Mjc5Nix3PTMxO2Vsc2UgaWYodz09OSl7YTp7c3dpdGNoKFYpe2Nhc2UgMTpOPUc\/ImRpc2FibGUiOiJlbmFibGUiO2JyZWFrIGE7Y2FzZSBUOk49Rz8iaGlnaGxpZ2h0IjoidW5oaWdobGlnaHQiO2JyZWFrIGE7Y2FzZSBNOk49Rz8iYWN0aXZhdGUiOiJkZWFjdGl2YXRlIjticmVhayBhO2Nhc2UgODpOPUc\/InNlbGVjdCI6InVuc2VsZWN0IjticmVhayBhO2Nhc2UgSzpOPUc\/ImNoZWNrIjoidW5jaGVjayI7YnJlYWsgYTtjYXNlIDMyOk49Rz8iZm9jdXMiOiJibHVyIjticmVhayBhO2Nhc2UgeDpOPUc\/Im9wZW4iOiJjbG9zZSI7YnJlYWsgYX10aHJvdyBFcnJvcigiSW52YWxpZCBjb21wb25lbnQgc3RhdGUiKTt9dz02OH1lbHNlIGlmKHc9PTkzKVlZLmNhbGwodGhpcyksdGhpcy5IPW5ldyBIOCh0aGlzKSx0aGlzLnFaPW51bGwsdGhpcy5jYj10aGlzLHc9MztlbHNlIGlmKHc9PTMpdz0oRjw8MSY3KT09Mj85OjY4O2Vsc2V7aWYodz09NjgpcmV0dXJuIE47dz09MzEmJih3PUYrOT4+MTxGJiYoRi02XjE2KT49Rj85MzozKX19LGU9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxKXtmb3IodD0zNzt0IT03NTspaWYodD09ODkpdD1UPzc6NTI7ZWxzZXtpZih0PT00OCl0aHJvdyBFcnJvcigiSW52YWxpZCBkZWNvcmF0b3IgZnVuY3Rpb24gIitNKTtpZih0PT0yMil0PShGKzkmMjcpPj1GJiYoRis0XjE1KTxGPzU3OjkyO2Vsc2UgaWYodD09MCl0PShGJjgxKT09Rj84MDozNDtlbHNle2lmKHQ9PTEyKXJldHVybiBxO2lmKHQ9PTkyKXQ9KEZ8NTYpPT1GPzg5OjEyO2Vsc2UgaWYodD09MzcpdD0wO2Vsc2UgaWYodD09MzQpdD0oRl4zOCk8MjEmJkY8PDE+PTk\/OTE6MjI7ZWxzZSBpZih0PT01NylUPU1bSjJdLHE9VCBpbnN0YW5jZW9mIEg4P1Q6bnVsbCx0PTkyO2Vsc2UgaWYodD09ODApe2lmKHgudi5sZW5ndGgpe3guVUsmJiI6VFFSOlRRUjoiKCkseC5VSz10cnVlLHgubDY9Szt0cnl7Rz14LkooKSx4LmFtPUcseC5PSz1NLHgubDM9Ryx4Llo2PU0sVj1uWSh4LDIsdHJ1ZSxLLDYsOCxudWxsKSx3PVQ\/MDoxMCxOPXguSigpLXgubDMseC51Mys9Tix4LndQJiZ4LndQKE4teC5TLHguaix4LlkseC5PSykseC5ZPWZhbHNlLHguaj1mYWxzZSx4LlM9TSxOPHd8fHgubnEtLTw9TXx8KE49TWF0aC5mbG9vcihOKSx4LlFyLnB1c2goTjw9MjU0P046MjU0KSl9ZmluYWxseXt4LlVLPWZhbHNlfXE9Vn10PTM0fWVsc2UgaWYodD09OTEpdGhpcy50eXBlPU0sdGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PVQsdGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMuSlI9ZmFsc2UsdD0yMjtlbHNlIGlmKHQ9PTcpdD10eXBlb2YgTSE9PSJmdW5jdGlvbiI\/NDg6MTI7ZWxzZSBpZih0PT01Mil0aHJvdyBFcnJvcigiSW52YWxpZCBjbGFzcyBuYW1lICIrVCk7fX19LHNHPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjLFAseSx6LEQpe3tEPTUwO3doaWxlKEQhPTI4KXtpZihEPT0zNSlyZXR1cm4geTtpZihEPT04NSljPVNIKDU0LDIzKSx0LnByb3h5PWMsYy5zcmM9TixjLmxpc3RlbmVyPXQsRD02MztlbHNlIGlmKEQ9PTYzKUQ9Ti5hZGRFdmVudExpc3RlbmVyPzY0OjgzO2Vsc2UgaWYoRD09NDMpTi5hdHRhY2hFdmVudChHQSg2MCwib24iLEcudG9TdHJpbmcoKSksYyksRD03NztlbHNlIGlmKEQ9PTgzKUQ9Ti5hdHRhY2hFdmVudD80Mzo1O2Vsc2UgaWYoRD09NTUpRD0oTSsyXjE5KTxNJiYoTS0yfDE3KT49TT8xNDo2MTtlbHNlIGlmKEQ9PTQ1KXRoaXMubisrLFQ9Ri10aGlzLmcsdGhpcy5nKz1UL3RoaXMubix0aGlzLnRSKz1UKihGLXRoaXMuZyksRD0zNTtlbHNle2lmKEQ9PTkwKXRocm93IEVycm9yKCJJbnZhbGlkIGV2ZW50IHR5cGUiKTtpZihEPT0xNClEPUc\/NDA6OTA7ZWxzZSBpZihEPT01KUQ9Ti5hZGRMaXN0ZW5lciYmTi5yZW1vdmVMaXN0ZW5lcj8xNjo0NjtlbHNle2lmKEQ9PTQ2KXRocm93IEVycm9yKCJhZGRFdmVudExpc3RlbmVyIGFuZCBhdHRhY2hFdmVudCBhcmUgdW5hdmFpbGFibGUuIik7RD09MjY\/KHo9ZnVuY3Rpb24oKXt9LHoucHJvdG90eXBlPUsucHJvdG90eXBlLFQuRD1LLnByb3RvdHlwZSxULnByb3RvdHlwZT1uZXcgeixULnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ULFQuR1M9ZnVuY3Rpb24oSCxZLGQpe2Zvcih2YXIgQj04MDtCIT0yNTspaWYoQj09MTApVSsrLEI9MTM7ZWxzZXtpZihCPT02MSlyZXR1cm4gSy5wcm90b3R5cGVbWV0uYXBwbHkoSCxwKTtpZihCPT04MCl2YXIgcD1BcnJheShhcmd1bWVudHMubGVuZ3RoLShCPTM3LEYpKSxVPUY7ZWxzZSBCPT0zNz9CPTEzOkI9PTE1PyhwW1UtRl09YXJndW1lbnRzW1VdLEI9MTApOkI9PTEzJiYoQj1VPGFyZ3VtZW50cy5sZW5ndGg\/MTU6NjEpfX0sRD0yNCk6RD09NDA\/KFA9YzgoNSxULFYpPyEhVi5jYXB0dXJlOiEhViwocT1lKDYsTikpfHwoTltKMl09cT1uZXcgSDgoTikpLHQ9cS5hZGQoRyxLLHcsUCx4KSxEPTc5KTpEPT0xNj8oTi5hZGRMaXN0ZW5lcihjKSxEPTc3KTpEPT0yND9EPShNPj4xJjE1KT49MTMmJk0tMzwzMz80NTozNTpEPT01MD9EPTU1OkQ9PTc5P0Q9dC5wcm94eT82MTo4NTpEPT02MT9EPU0rMz4+ND8yNDoyNjpEPT02ND8oVUd8fChWPVApLFY9PT12b2lkIDAmJihWPUYpLE4uYWRkRXZlbnRMaXN0ZW5lcihHLnRvU3RyaW5nKCksYyxWKSxEPTc3KTpEPT03NyYmKG80KyssRD02MSl9fX19fSwkbj1mdW5jdGlvbihGLE0sVCl7e1Q9OTU7d2hpbGUoVCE9MzEpaWYoVD09MTApVD0yNztlbHNle2lmKFQ9PTQwKXJldHVybiBNO1Q9PTk5PyhNLnB1c2goTWF0aC5yYW5kb20oKSoyNTV8MCksVD0xMCk6VD09MTM\/VD0yNzpUPT05NT8oTT1bXSxUPTEzKTpUPT0yNyYmKFQ9Ri0tPzk5OjQwKX19fSxIOD1mdW5jdGlvbihGKXtyZXR1cm4gT0cuY2FsbCh0aGlzLDQwLEYsMTQpfSx5ZD1mdW5jdGlvbihGLE0sVCxLLHgpe3JldHVybiBTSC5jYWxsKHRoaXMsNTQsNSxGLHgsSyxNLFQpfSx6MD1mdW5jdGlvbigpe3JldHVybiBFRy5jYWxsKHRoaXMsNjUsMzIpfSxyWT1mdW5jdGlvbihGLE0sVCxLKXtKRChNLEMoUygoSz1rKChUPWsoTSw5KSxNKSw1KSxNKSxUKSxGKSxLKX0sU0g9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMsUCl7e2M9Nzc7d2hpbGUoYyE9NTMpaWYoYz09ODgpYz0oTT4+MiY3KT09MT8zODo2MztlbHNlIGlmKGM9PTc3KWM9ODg7ZWxzZSBpZihjPT02MSljPShWPUspP0Y6OTg7ZWxzZSBpZihjPT1GKXRoaXMuVz1WLGM9MTE7ZWxzZSBpZihjPT0xNClHPU9HKDQwLHQsNSksYz02NDtlbHNlIGlmKGM9PTgwKWM9dD8xNDoxMDtlbHNlIGlmKGM9PTM4KXRoaXMubGlzdGVuZXI9Syx0aGlzLnByb3h5PW51bGwsdGhpcy5zcmM9VCx0aGlzLnR5cGU9Ryx0aGlzLmNhcHR1cmU9ISFWLHRoaXMubVc9eCx0aGlzLmtleT0rK0xZLHRoaXMub209dGhpcy5GTj1mYWxzZSxjPTYzO2Vsc2UgaWYoYz09OTApYz0oTT4+MiYzMCk9PTI\/OTM6NDg7ZWxzZSBpZihjPT00KWM9KE0rMyYxNSk9PTM\/NzY6OTA7ZWxzZSBpZihjPT03MSl0PShOPU9iamVjdC5nZXRQcm90b3R5cGVPZih0LnByb3RvdHlwZSkpJiZOLmNvbnN0cnVjdG9yLGM9Njg7ZWxzZSBpZihjPT0zNSljPTEwO2Vsc2UgaWYoYz09ODcpUD1mdW5jdGlvbih5KXtyZXR1cm4gVC5jYWxsKFAuc3JjLFAubGlzdGVuZXIseSl9LFQ9Q1kscT1QLGM9NDtlbHNlIGlmKGM9PTkzKWM9NDg7ZWxzZSBpZihjPT03Nil7aWYoKHg9Sy5sZW5ndGgseCk+VCl7Zm9yKEc9KFY9QXJyYXkoeCksVCk7Rzx4O0crKylWW0ddPUtbR107cT1WfWVsc2UgcT1bXTtjPTkwfWVsc2UgaWYoYz09NDgpYz0oTXw4OCk9PU0\/OTY6MTE7ZWxzZSBpZihjPT0xMClWPXc\/dHlwZW9mIHcuYyQ9PT0iZnVuY3Rpb24iP3cuYyQoKTpuZXcgdzpudWxsLGM9RjtlbHNlIGlmKGM9PTMzKWM9ODA7ZWxzZSBpZihjPT02MyljPShNXjM4KT4+NDw0JiYoTTw8MiYzMSk+PTI2Pzg3OjQ7ZWxzZSBpZihjPT05OCl0PXRoaXMuY29uc3RydWN0b3IsYz0zMztlbHNlIGlmKGM9PTY4KWM9ODA7ZWxzZSBpZihjPT02NCljPSh3PWIwW0ddKT8zNTo3MTtlbHNle2lmKGM9PTExKXJldHVybiBxO2M9PTk2JiYoQTIuY2FsbCh0aGlzLHgpLGM9NjEpfX19LCRZPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSl7e3E9NzM7d2hpbGUocSE9NjEpaWYocT09ODIpe2E6e2ZvcihWPVtUPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxHLFQ9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyxUPT10eXBlb2Ygc2VsZiYmc2VsZixUPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdLHc9Szt3PFYubGVuZ3RoOysrdylpZigoTj1WW3ddKSYmTlt4XT09TWF0aCl7dD1OO2JyZWFrIGF9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9cT0zNH1lbHNlIGlmKHE9PTIwKXE9TStGPj00JiZNK0Y+PjQ8Rj84MjozNDtlbHNle2lmKHE9PTg5KXJldHVybiB0O2lmKHE9PTUzKUsuRk49VCxLLmxpc3RlbmVyPW51bGwsSy5wcm94eT1udWxsLEsuc3JjPW51bGwsSy5tVz1udWxsLHE9MjtlbHNlIGlmKHE9PTczKXE9MjA7ZWxzZSBpZihxPT0yKXE9KE0mNjApPT1NPzEzOjU4O2Vsc2UgaWYocT09MTMpdGhpcy5uPT09MD90PVswLDBdOih0aGlzLnUuc29ydChmdW5jdGlvbihjLFApe3JldHVybiBjLVB9KSx0PVt0aGlzLm4sdGhpcy51W3RoaXMudS5sZW5ndGg+PkZdXSkscT01ODtlbHNlIGlmKHE9PTU4KXE9KE18NDgpPT1NPzQ2Ojg5O2Vsc2UgaWYocT09NDYpe2E6e2ZvcihWIGluIEcpaWYoeC5jYWxsKHZvaWQgMCxHW1ZdLFYsRykpe3Q9VDticmVhayBhfXQ9S31xPTg5fWVsc2UgcT09MzQmJihxPU0tOT4+Mz09Rj81MzoyKX19fSxEbj1mdW5jdGlvbihGLE0sVCxLLHgpe2ZvcihLPTc0O0shPTQ2OylpZihLPT03KUs9KE18Rik9PU0\/NTY6NDA7ZWxzZSBpZihLPT03NClLPTQyO2Vsc2UgaWYoSz09NTYpVC5jJD1mdW5jdGlvbigpe3JldHVybiBULlJtP1QuUm06VC5SbT1uZXcgVH0sVC5SbT12b2lkIDAsSz00MDtlbHNlIGlmKEs9PTIzKXg9dGhpcy5uPT09MD8wOk1hdGguc3FydCh0aGlzLnRSL3RoaXMubiksSz03O2Vsc2UgaWYoSz09NDIpSz0oTT4+MSY3KTw1JiYoTXw1KT49LTUyPzIzOjc7ZWxzZSBpZihLPT00MClyZXR1cm4geH0sc3k9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMpe3g9TVswXTtzd2l0Y2goISh4PT1QXykpe2Nhc2UgLTA9PT0wOmlmKHg9PXREKXtjPU1bMV07dHJ5e049Ri5GfHxGLlIoTSl9Y2F0Y2goUCl7d1YoMjA0OCxQLCI6IixGLDIwKSxOPUYuRn0oKEc9Ri5KKCksYykoTiksRikuUys9Ri5KKCktR31lbHNlIHN3aXRjaCghKHg9PU1NKSl7Y2FzZSAhW10hPW51bGw6aWYoeD09aUMpRi5qPXRydWUsRi5SKE0pO2Vsc2Ugc3dpdGNoKCEoeD09dUMpKXtjYXNlIE5hTiE9PU5hTjppZih4PT1OTSlyZXR1cm4gdz1NW1RdLHYoRiwxNTksTVtLXSksbigxMTUsRix3KSxGLlIoTSk7d2hpbGUoImYiKWlmKHg9PUJfPyhGLlIoTSksRi5CPW51bGwsRi5ENj1bXSxGLlFyPVtdKTp4PT16QSYmRS5kb2N1bWVudC5yZWFkeVN0YXRlPT09ImxvYWRpbmciJiYoRi5oPWZ1bmN0aW9uKFAseSl7ZnVuY3Rpb24geihEKXt7RD0zMjt3aGlsZShEIT00OClEPT0zMj9EPXk\/NDg6NTc6RD09NTcmJih5PXRydWUsRS5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix6LHdZKSxFLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHosd1kpLFAoKSxEPTQ4KX19KEUuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIseiwoeT1mYWxzZSx3WSkpLEUpLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHosd1kpfSksdHJ1ZSlicmVhazticmVhaztjYXNlIGZhbHNlOnRyeXt7dD0wO3doaWxlKHQ8Ri5oUi5sZW5ndGgpe3RyeXtxPUYuaFJbdF0scVswXVtxWzFdXShxW1RdKX1jYXRjaChQKXt9dCsrfX19Y2F0Y2goUCl7fSgoMCxNWzFdKShmdW5jdGlvbihQLHkpe0YuTVooUCx0cnVlLHkpfSxmdW5jdGlvbihQKXt1KChQPSFGLnYubGVuZ3RoLEYpLDMzLDAsW0JfXSksUCYmZSgxNywwLGZhbHNlLHRydWUsRil9LGZ1bmN0aW9uKFApe3JldHVybiBGLkVLKFApfSwoVj0oRi5oUj1bXSxGKS5KKCksZnVuY3Rpb24oUCx5LHope3JldHVybiBGLm9UKFAseSx6KX0pKSxGKS5TKz1GLkooKS1WO2JyZWFrfWJyZWFrO2Nhc2UgZmFsc2U9PW51bGw6TVszXSYmKEYuaj10cnVlKSxNWzRdJiYoRi5ZPXRydWUpLEYuUihNKTticmVha31icmVhaztjYXNlIGZhbHNlIT0wOkYubnE9MjUsRi5ZPXRydWUsRi5SKE0pO2JyZWFrfX0sanU9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVil7e1Y9NDM7d2hpbGUoViE9NzgpaWYoVj09MzgpVj1ULTU8NiYmKFQ+PjEmNyk+PTM\/NjY6MjM7ZWxzZSBpZihWPT00OSlWPShUKzUmMTcpPj1UJiZUKzg+PjI8VD9GOjM4O2Vsc2UgaWYoVj09NDMpVj00OTtlbHNlIGlmKFY9PTY2KVQwLmNhbGwodGhpcyxLLE18fEs1LmMkKCkseCksVj0yMztlbHNlIGlmKFY9PUYpTS5kUCYmTS5kUC5mb3JFYWNoKEssdm9pZCAwKSxWPTM4O2Vsc2UgaWYoVj09MjMpcmV0dXJuIEd9fSxHMD1mdW5jdGlvbihGLE0sVCxLLHgsRyl7e3g9NzI7d2hpbGUoeCE9Ril7aWYoeD09ODApcmV0dXJuIEc7eD09NzQ\/eD04ODp4PT01Nj8ocU0uY2FsbCh0aGlzLFQ\/VC50eXBlOiIiKSx0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PW51bGwsdGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPXRoaXMub2Zmc2V0WT10aGlzLm9mZnNldFg9MCx0aGlzLmtleT0iIix0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wLHRoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT1mYWxzZSx0aGlzLnN0YXRlPW51bGwsdGhpcy5wb2ludGVySWQ9MCx0aGlzLnBvaW50ZXJUeXBlPSIiLHRoaXMudGltZVN0YW1wPTAsdGhpcy5CJD1udWxsLFQmJnRoaXMuaW5pdChULEspLHg9MTgpOng9PTY3P3g9TS1GPj4zPT0yPzY2OjQyOng9PTcyP3g9Njc6eD09MTg\/eD0oTV4xMyk8RiYmKChNfEYpJjExKT49Mj83NDo4ODp4PT02Nj8oRz14bltUXSh4bi5wcm90b3R5cGUse3NwbGljZTpLLGNhbGw6Syxjb25zb2xlOkssbGVuZ3RoOkssZmxvb3I6Syxwcm90b3R5cGU6Syxwb3A6Syxwcm9wZXJ0eUlzRW51bWVyYWJsZTpLLHJlcGxhY2U6Syxkb2N1bWVudDpLLHBhcmVudDpLLHN0YWNrOkt9KSx4PTQyKTp4PT00Mj94PShNJjkxKT09TT81NjoxODp4PT04OD94PShNXjcxKT4+ND84MDo4Nzp4PT04NyYmKFQuY2xhc3NMaXN0P0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoSyxmdW5jdGlvbihWKXt3VigyMDQ4LDEsIiIsInN0cmluZyIsMTAsIiAiLFQsVil9KTp1KFQsMTEsInN0cmluZyIsQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHhZKDQxLCIiLFQpLGZ1bmN0aW9uKFYpe3JldHVybiEoSig1OCwxLEssVik+PTApfSkuam9pbigiICIpKSx4PTgwKX19fSxUMD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcpe3JldHVybiBTSC5jYWxsKHRoaXMsNTQsODgsRixNLFQsSyx4LEcsVix3KX0sUz1mdW5jdGlvbihGLE0sVCl7VD1GLkJbTV07c3dpdGNoKCEoVD09PXZvaWQgMCkpe2Nhc2UgMD09PS0wOk5hTj09PU5hTjticmVhaztjYXNlIGZhbHNlOnRocm93W1luLDMwLE1dO2JyZWFrfWZvcih0cnVlIT1bXTtULnZhbHVlOzAhPSFbIiJdPT1udWxsKXtyZXR1cm4gVC5jcmVhdGUoKTtpZihudWxsIT1mYWxzZSlicmVha31yZXR1cm4oVC5jcmVhdGUoTSo1Kk0rLTkwKk0rNDQpLFQpLnByb3RvdHlwZX0sSj1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQKXt7UD0yNTt3aGlsZShQIT02NylpZihQPT05OCljPU0sUD02NTtlbHNle2lmKFA9PTY1KXJldHVybiBjO2lmKFA9PTQzKXRoaXMuVj10aGlzLlYsdGhpcy5BUj10aGlzLkFSLFA9NzM7ZWxzZSBpZihQPT04NSl7YTppZih0eXBlb2YgVD09PSJzdHJpbmciKWM9dHlwZW9mIEshPT0ic3RyaW5nInx8Sy5sZW5ndGghPU0\/LTE6VC5pbmRleE9mKEssMCk7ZWxzZXtmb3IoeD0wO3g8VC5sZW5ndGg7eCsrKWlmKHggaW4gVCYmVFt4XT09PUspe2M9eDticmVhayBhfWM9LTF9UD00OH1lbHNlIGlmKFA9PTIxKVA9Rjw8MTwyNiYmKEZeNzkpPj0yMD80Mzo3MztlbHNlIGlmKFA9PTYwKVA9Ris0Pj40Pj0zJiYoKEZeNTYpJjEyKTwxPzg1OjQ4O2Vsc2UgaWYoUD09NzEpe2E6e2Zvcih3PU07dzxULmxlbmd0aDsrK3cpaWYoVj1UW3ddLCFWLkZOJiZWLmxpc3RlbmVyPT14JiZWLmNhcHR1cmU9PSEhSyYmVi5tVz09Ryl7Yz13O2JyZWFrIGF9Yz0tMX1QPTIxfWVsc2UgaWYoUD09NzMpUD0oRnw5KT4+ND49MCYmKEZeNDYpPDg\/OTg6NjU7ZWxzZSBpZihQPT02OSlQPShGKzcmNyk9PTQ\/MTY6NjA7ZWxzZSBpZihQPT00OClQPShGJjkwKT09Rj83MToyMTtlbHNlIGlmKFA9PTE2KXtpZihHLk49KChWPShxPSh0PShUfHxHLlo2KyssRy5JbSk+TSYmRy5VSyYmRy5sNiYmRy54Tjw9MSYmIUcubCYmIUcuaCYmKCFUfHxHLkZWLUs+MSkmJmRvY3VtZW50LmhpZGRlbj09MCwoTj1HLlo2PT00KXx8dD9HLkooKTpHLmFtKSxxLUcuYW0pLEcpLkcrPVY+PjE0Pk0sRy5LJiYoRy5LXj0oRy5HKzE+PjIpKihWPDwyKSksRy5HKzE+PjIpIT1NfHxHLk4sTnx8dClHLmFtPXEsRy5aNj1NO3Q\/KEcuSW0+Ry5PSyYmKEcuT0s9Ry5JbSkscS1HLmwzPEcuSW0tKHg\/MjU1OlQ\/NToyKT9jPWZhbHNlOihHLkZWPUssdz1aKEcsVD8zNTg6Nyksbig3LEcsRy5DKSxHLnYucHVzaChbTU0sdyxUP0srMTpLLEcuaixHLlldKSxHLmg9RnMsYz10cnVlKSk6Yz1mYWxzZSxQPTYwfWVsc2UgUD09MjUmJihQPTY5KX19fSxFRz1mdW5jdGlvbihGLE0sVCxLKXtmb3IoSz02NDtLIT0yOTspaWYoSz09NzgpSz0oTXw0OCk9PU0\/NDpGO2Vsc2UgaWYoSz09MjMpSz0oTSY0MSk9PU0\/NzI6Nzg7ZWxzZSBpZihLPT00KVQ9TWF0aC5mbG9vcih0aGlzLnUzKyh0aGlzLkooKS10aGlzLmwzKSksSz1GO2Vsc2UgaWYoSz09ODQpdGhpc1t0aGlzKyIiXT10aGlzLEs9MjM7ZWxzZSBpZihLPT03MilLPTc4O2Vsc2UgaWYoSz09OTgpSz1NKzM8MjQmJk0rMT49OT84NDoyMztlbHNlIGlmKEs9PTY0KUs9OTg7ZWxzZSBpZihLPT1GKXJldHVybiBUfSxPRz1mdW5jdGlvbihGLE0sVCxLLHgpe3t4PUY7d2hpbGUoeCE9ODgpaWYoeD09MTEpSz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTSxadykmJk1bWnddfHwoTVtad109KytsMCkseD03OTtlbHNlIGlmKHg9PTc5KXg9KFQrMl4yMyk8VCYmKFQrMSYzMSk+PVQ\/OTY6MTg7ZWxzZSBpZih4PT1GKXg9OTU7ZWxzZSBpZih4PT05Nil0aGlzLnNyYz1NLHRoaXMuaT17fSx0aGlzLnNLPTAseD0xODtlbHNlIGlmKHg9PTk1KXg9KFR8MSkmMj83OToxMTtlbHNlIGlmKHg9PTE4KXJldHVybiBLfX0seFk9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMpe2Zvcih0PTI2O3QhPTI1OylpZih0PT00MilxPU1hdGguZmxvb3IodGhpcy5KKCkpLHQ9NjM7ZWxzZSBpZih0PT05MCl0PShGJjEwNik9PUY\/NDE6ODE7ZWxzZSBpZih0PT0zNylOKyssdD01O2Vsc2UgaWYodD09MjkpcT1ULmNsYXNzTGlzdD9ULmNsYXNzTGlzdDpNWCg5LE0sInN0cmluZyIsVCkubWF0Y2goL1xcUysvZyl8fFtdLHQ9OTc7ZWxzZSBpZih0PT05NiljPWZ1bmN0aW9uKCl7fSxLPXZvaWQgMCxWPVc4KE0sZnVuY3Rpb24oUCx5KXtmb3IoeT05Nzt5IT05ODspeT09MTI\/KFQmJkZzKFQpLEs9UCxjKCksYz12b2lkIDAseT05OCk6eT09OTcmJih5PWM\/MTI6OTgpfSwhIVQpLHg9VlsxXSxHPVZbMF0scT17dG9wOmZ1bmN0aW9uKFAseSx6LEQsSCxZLGQpe2ZvcihkPTg1O2QhPTY4OylpZihkPT05NSlZKCksZD02ODtlbHNlIGlmKGQ9PTYyKWQ9Sz85NTo5O2Vsc2UgaWYoZD09ODUpWT1mdW5jdGlvbigpe0soZnVuY3Rpb24oQil7RnMoZnVuY3Rpb24oKXtQKEIpfSl9LHopfSxkPTUxO2Vsc2UgaWYoZD09NTEpZD15PzYyOjE4O2Vsc2UgaWYoZD09OSlEPWMsYz1mdW5jdGlvbigpeyhEKCksRnMpKFkpfSxkPTY4O2Vsc2UgaWYoZD09MTgpcmV0dXJuIEg9Ryh6KSxQJiZQKEgpLEh9LHBlOmZ1bmN0aW9uKFApe3gmJngoUCl9fSx0PTM2O2Vsc2UgaWYodD09MjYpdD05MDtlbHNlIGlmKHQ9PTE4KXQ9KEYmODkpPT1GPzQyOjYzO2Vsc2UgaWYodD09NjIpVEEoZmFsc2UseCwwLDMyLHRydWUsdyxLLEcsViksdD0xODtlbHNlIGlmKHQ9PTMyKXhZKDEyLCJvYmplY3QiLGZhbHNlLEsseCxHLFZbTl0sdyksdD0zNztlbHNlIGlmKHQ9PTQxKUc9dHlwZW9mIHgsVj1HIT1UP0c6eD9BcnJheS5pc0FycmF5KHgpPyJhcnJheSI6RzoibnVsbCIscT1WPT1LfHxWPT1UJiZ0eXBlb2YgeC5sZW5ndGg9PU0sdD04MTtlbHNlIGlmKHQ9PTM2KXQ9KEY+PjEmMjEpPT00Pzc2OjE4O2Vsc2V7aWYodD09NjMpcmV0dXJuIHE7dD09NT90PU48Vi5sZW5ndGg\/MzI6MTg6dD09Nj8oRz1HQSgzMyxHKSxLJiZLW3QyXT9LLkguYWRkKFN0cmluZyhWKSxHLFQsYzgoOCxNLHgpPyEheC5jYXB0dXJlOiEheCx3KTpzRyhmYWxzZSwxNSwib2JqZWN0IixHLHcsVix4LFQsSyksdD0xOCk6dD09OTc\/dD1GKzkmMjI\/MzY6OTY6dD09Nz8oTj0wLHQ9MTUpOnQ9PTc2P3Q9eCYmeC5vbmNlPzYyOjMzOnQ9PTE1P3Q9NTp0PT04MT90PShGfDQwKT09Rj8yOTo5Nzp0PT0zMyYmKHQ9QXJyYXkuaXNBcnJheShWKT83OjYpfX0sZFk9ZnVuY3Rpb24oRil7cmV0dXJuIFhiLmNhbGwodGhpcyw4LDMsRil9LGtZPWZ1bmN0aW9uKEYsTSl7aWYoZmFsc2UhPSFbXSE9bnVsbClyZXR1cm4gRzAuY2FsbCh0aGlzLDksMyxGLE0pfSxuWT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQLHkpe3k9NzM7e2M9OTt3aGlsZSh0cnVlKXRyeXtpZih5PT0wKWJyZWFrO2Vsc2UgaWYoeT09NzEpeT0yNjtlbHNlIGlmKHk9PTcwKXk9SyYmRi5oPzY6MzE7ZWxzZSBpZih5PT02MylQPXcseT00NTtlbHNlIGlmKHk9PTM0KWM9OSx3VigyMDQ4LHEsIjoiLEYsMjQpLHk9ODg7ZWxzZSBpZih5PT0xKXk9KEcmNDQpPT1HPzcxOjQ1O2Vsc2UgaWYoeT09MjYpeT1GLnYubGVuZ3RoPzMzOjYzO2Vsc2UgaWYoeT09NzMpeT0zODtlbHNlIGlmKHk9PTg4KWM9OSx5PTcwO2Vsc2UgaWYoeT09MTcpYz04MCx3PXN5KEYsTixNLHgpLHk9ODg7ZWxzZSBpZih5PT00MylLPU0sSz0oeD1LPDwxMywtfihLJngpK354KyhLJn54KSsyKih+SyZ4KSksS149Sz4+MTcsSz0oRj1LPDw1LC0oS3wwKS0xLX4oS3xGKSsoSyZ+RikpLChLJj1UKXx8KEs9MSksUD0oVnxLKSt+KFYmSyktIC0xLHk9MTtlbHNlIGlmKHk9PTM4KXk9KEctMyYzKT49MiYmKEcrOCY2KTwzPzQzOjE7ZWxzZSBpZih5PT0zMSl5PTI2O2Vsc2UgaWYoeT09MzMpRi5oPVYsTj1GLnYucG9wKCkseT0xNztlbHNle2lmKHk9PTQ1KXJldHVybiBQO3k9PTYmJih0PUYuaCx0KGZ1bmN0aW9uKCl7ZSgxNiwwLFQsVCxGKX0pLHk9NjMpfX1jYXRjaCh6KXtpZihjPT05KXRocm93IHo7Yz09ODAmJihxPXoseT0zNCl9fX0sWVk9ZnVuY3Rpb24oKXtyZXR1cm4gSi5jYWxsKHRoaXMsMyl9LFhiPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQpe2Zvcih0PTEwO3QhPTI2OylpZih0PT02OSl3PXc8PEt8VFtHXSx4Kz1LLHQ9ODM7ZWxzZSBpZih0PT01MCl0PShNPj4yJjIzKT09Mj84MDoyODtlbHNlIGlmKHQ9PTgwKVQoZnVuY3Rpb24ocSl7cShLKX0pLE49W2Z1bmN0aW9uKCl7cmV0dXJuIEt9LGZ1bmN0aW9uKCl7fV0sdD0yODtlbHNlIGlmKHQ9PTgzKXQ9MzA7ZWxzZSBpZih0PT03OSlOPVQmJlQucGFyZW50Tm9kZT9ULnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoVCk6bnVsbCx0PTg5O2Vsc2UgaWYodD09NzcpdD0zMDtlbHNlIGlmKHQ9PTg5KXQ9TS03PDwyPj1NJiYoTS0yfDU3KTxNPzY3OjU7ZWxzZSBpZih0PT05OSl4LT1GLFYucHVzaCh3Pj54JjI1NSksdD03NztlbHNlIGlmKHQ9PTQ2KXQ9TStGPj40Pzg5Ojc5O2Vsc2UgaWYodD09MTgpTj1WLHQ9MjtlbHNlIGlmKHQ9PTY0KUcrKyx0PTk2O2Vsc2V7aWYodD09MilyZXR1cm4gTjt0PT0xMD90PTUwOnQ9PTU\/dD0oTV4xNyk8NyYmKE18NSk+PjM+PTE\/ODY6Mjp0PT04Nj8oeD1HPTAsVj1bXSx0PTkwKTp0PT05Nj90PUc8VC5sZW5ndGg\/Njk6MTg6dD09Njc\/KEc9Sig1OSwxLEsseCksKFY9Rz49VCkmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChLLEcsMSksTj1WLHQ9NSk6dD09OTA\/dD05Njp0PT0xPyhLLk1aKGZ1bmN0aW9uKHEpe0c9cX0sVCx4KSxOPUcsdD00Nik6dD09Mjg\/dD1NKzYmMTM\/NDY6MTp0PT0zMCYmKHQ9eD43Pzk5OjY0KX19LGw9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMpe2lmKChUKzNeOCk8VCYmKFQtOV4yMCk+PVQpaWYoeD1WZCgic3BsaWNlIiwibnVtYmVyIixLKT09PSJhcnJheSI\/SzpbS10sdGhpcy5GKUYodGhpcy5GKTtlbHNlIHRyeXtHPVtdLFY9IXRoaXMudi5sZW5ndGgsdSh0aGlzLDMzLDAsW1BfLEcseF0pLHUodGhpcywzNCwwLFt0RCxGLEddKSxNJiYhVnx8ZSgxNiwwLHRydWUsTSx0aGlzKX1jYXRjaChQKXt3VigyMDQ4LFAsIjoiLHRoaXMsMjEpLEYodGhpcy5GKX1yZXR1cm4oKFReKChUJjEwNik9PSgoVCYyOSk9PVQmJih4PXJWKDgsdHJ1ZSxNKSx4JjEyOCYmKHg9KEc9eCYxMjcsSz1yVig4LHRydWUsTSk8PEYsKEt8MCkrfkstfihHfEspKSkscT14KSxUKSYmKHc9RyY3LHQ9Y18seD1bLTU4LC05MCw4Myw0MiwyNywtODIseCwtNjYsLTQ0LDU2XSxOPXhuW00uVV0oTS5IYiksTltNLlVdPWZ1bmN0aW9uKFApe3crPTYrNypHLHcmPShWPVAsNyl9LE4uY29uY2F0PWZ1bmN0aW9uKFAseSx6LEQpe3JldHVybigoVj0oej0oRD0oUD1LJTE2KzEsLTE3NSpLKksqViktUCpWK3hbdyszNSY3XSpLKlAtMTU0MCpWK3ctIC0zMTUwKksqViszNSpWKlYrKHQoKXxGKSpQKzUqSypLKlAseClbRF0sdm9pZCAwKSx4KVsoeT13KzY5LC04LTIqfih5fDcpLSh5XjcpKyh+eXw3KSkrKEcmMildPXoseClbdysoRyYyKV09LTkwLHp9LHE9TiksMjkpKSY3KT09NCYmKEs9eG5bTS5VXShNLmI2KSxLW00uVV09ZnVuY3Rpb24oKXtyZXR1cm4gRn0sSy5jb25jYXQ9ZnVuY3Rpb24oUCl7Rj1QfSxxPUspLChULTJeOSk+PVQmJihUKzJeMjQpPFQmJihxPWM9ZnVuY3Rpb24oKXtmb3IodmFyIFA9Mjg7UCE9NTY7KWlmKFA9PTI4KVA9Ry5OPT1HPzU1OjU2O2Vsc2UgaWYoUD09NjIpUD1LPT0yPzM1OjQ7ZWxzZSBpZihQPT0zNSl7dmFyIHk9ZSgodShHLDMyLDAsRCksNjUpLDAsRixGLEcpO1A9NDN9ZWxzZSBpZihQPT01NSlQPUcuQj8yMTo1NDtlbHNlIGlmKFA9PTk4KXt2YXIgej0hRy52Lmxlbmd0aDtQPSh1KEcsMzUsMCxEKSx6JiZlKDY0LDAsRixGLEcpLDQzKX1lbHNle2lmKFA9PTQzKXJldHVybiB5O2lmKFA9PTkyKXk9c3koRyxELDIsNiksUD00MztlbHNlIGlmKFA9PTU0KXcmJk4mJncucmVtb3ZlRXZlbnRMaXN0ZW5lcihOLGMsd1kpLFA9NTY7ZWxzZSBpZihQPT00KVA9Sz09TT85ODo5MjtlbHNlIGlmKFA9PTIxKXZhciBEPVtOTSx4LChQPTYyLFYpLHZvaWQgMCx3LE4sYXJndW1lbnRzXX19KSxxfSxvRD1mdW5jdGlvbihGLE0pe3JldHVybiBHMC5jYWxsKHRoaXMsOSw2OCxGLE0pfSx1PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSxjKXtmb3IocT00ODtxIT00NjspaWYocT09OTIpVis9VC5jaGFyQ29kZUF0KHgpLFYrPVY8PDEwLFY9KHc9Vj4+NiwoVnwwKSsod3wwKS0yKihWJncpKSxxPTM7ZWxzZSBpZihxPT00MSlxPUsuaVt4XS5sZW5ndGg9PVQ\/OTQ6NjA7ZWxzZSBpZihxPT02MClxPShNXjQ0KT4+Mz09Mj82NDo0NDtlbHNlIGlmKHE9PTM4KVYrPVY8PDMsVj0odD1WPj4xMSwoVnx0KSt+KFZ8dCkrKFYmfnQpLShWfH50KSksRz1WKyhWPDwxNSk+Pj4wLE49bmV3IE51bWJlcihHJigxPDxGKS0xKSxOWzBdPShHPj4+RiklSyxjPU4scT00NDtlbHNlIGlmKHE9PTMpeCsrLHE9NDI7ZWxzZSBpZihxPT00MilxPXg8VC5sZW5ndGg\/OTI6Mzg7ZWxzZSBpZihxPT00OClxPTY1O2Vsc2UgaWYocT09MCkkWSgxLDIxLHRydWUsRikscT00MTtlbHNlIGlmKHE9PTI3KXE9KE0tMnw3MSk8TSYmTS02PDwxPj1NPzUyOjYwO2Vsc2UgaWYocT09NjUpcT0oTS0xfDEpPj1NJiZNLTg8PDE8TT81NToxNTtlbHNlIGlmKHE9PTQ0KXE9KE0tMXw4KT49TSYmKE0rN14xOCk8TT8xODo1MztlbHNlIGlmKHE9PTk2KUYudi5zcGxpY2UoVCxULEspLHE9Mjc7ZWxzZSBpZihxPT02NClWPXg9MCxxPTY7ZWxzZSBpZihxPT0xNSlxPU0+PjImMjM\/Mjc6OTY7ZWxzZSBpZihxPT01NSl0eXBlb2YgRi5jbGFzc05hbWU9PVQ\/Ri5jbGFzc05hbWU9SzpGLnNldEF0dHJpYnV0ZSYmRi5zZXRBdHRyaWJ1dGUoImNsYXNzIixLKSxxPTE1O2Vsc2UgaWYocT09NTIpeD1GLnR5cGUscT0yOTtlbHNlIGlmKHE9PTI5KXE9eCBpbiBLLmkmJlhiKDgsNjIsVCxLLmlbeF0sRik\/MDo2MDtlbHNle2lmKHE9PTUzKXJldHVybiBjO3E9PTE4PyhjPShOPVFsW1Quc3Vic3RyaW5nKDAsMykrIl8iXSk\/TihULnN1YnN0cmluZygzKSxGLEsseCxHLFYsdyk6WGIoOCw4LEYsVCkscT01Myk6cT09Nj9xPTQyOnE9PTk0JiYoZGVsZXRlIEsuaVt4XSxLLnNLLS0scT02MCl9fSxjOD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0KXtmb3IoTj0zNjtOIT0xNTspaWYoTj09MTMpTj0oRiszJjQ3KTxGJiYoRi03XjgpPj1GPzMyOjE3O2Vsc2UgaWYoTj09MTApTj0oRi0yXjExKTxGJiYoRi0yXjcpPj1GPzk0OjEzO2Vsc2UgaWYoTj09MzIpe2ZvcihHIGluIFY9TSxLLmkpe2Zvcih4PUsuaVtHXSx3PU07dzx4Lmxlbmd0aDt3KyspKytWLCRZKDEsMTksVCx4W3ddKTtLLnNLLS0sZGVsZXRlIEsuaVtHXX1OPTE3fWVsc2UgaWYoTj09MTcpTj0oRnwyNCk9PUY\/NjM6NDM7ZWxzZSBpZihOPT0zNilOPTcxO2Vsc2UgaWYoTj09MTkpTj1WPEc\/OTg6MTM7ZWxzZXtpZihOPT03KXJldHVybiB0O049PTk4PyhWIGluIHcmJksuY2FsbCh2b2lkIDAsd1tWXSxWLHgpLE49NDUpOk49PTgzP049MTk6Tj09NjM\/KHRoaXNbdGhpcysiIl09dGhpcyx0PVByb21pc2UucmVzb2x2ZSgpLE49NDMpOk49PTk0PyhHPXgubGVuZ3RoLHc9dHlwZW9mIHg9PT0ic3RyaW5nIj94LnNwbGl0KE0pOngsVj1ULE49ODMpOk49PTI1PyhLPU0sdD1mdW5jdGlvbigpe3JldHVybiBLPFQubGVuZ3RoP3tkb25lOmZhbHNlLHZhbHVlOlRbSysrXX06e2RvbmU6dHJ1ZX19LE49MTApOk49PTQzP049KEYtM144KT49RiYmRi03PDwxPEY\/NDo3Ok49PTQ1PyhWKyssTj0xOSk6Tj09NzE\/Tj0oKEZ8MykmMTUpPDUmJkYrMz49MTQ\/MjU6MTA6Tj09NCYmKEs9dHlwZW9mIFQsdD1LPT1NJiZUIT1udWxsfHxLPT0iZnVuY3Rpb24iLE49Nyl9fSxLNT1mdW5jdGlvbigpe3JldHVybiBHMC5jYWxsKHRoaXMsOSw1KX0seWw9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMsUCx5LHosRCxIKXtpZigoRD1PKEYsNyksRCk+PUYuQyl0aHJvd1tZbiwzMV07Zm9yKHQ9MCxOPU0sej1GLldiLmxlbmd0aCx4PUQ7Tj4wOylHPXglOCxxPTgtKEd8MCksYz1xPE4\/cTpOLEs9eD4+Myx3PUYuRDZbS10sVCYmKEg9RixWPXgsSC5MIT1WPj42JiYoSC5MPVY+PjYsUD1aKEgsMjAyKSxILkJiPW1EKDI0LEguSywyNTUsSC5MLFswLDAsUFsxXSxQWzJdXSkpLHdePUYuQmJbSyZ6XSksdHw9KHc+PjgtKEd8MCktKGN8MCkmKDE8PGMpLTEpPDwoTnwwKS0oY3wwKSxOLT1jLHgrPWM7cmV0dXJuIHYoKHk9dCxGKSw3LChEfDApKyhNfDApKSx5fSxuPWZ1bmN0aW9uKEYsTSxUKXtpZihGPT03fHxGPT0zNTgpTS5CW0ZdP00uQltGXS5jb25jYXQoVCk6TS5CW0ZdPWwoVCxNLDgxKTtlbHNle2lmKE0uYjMmJkYhPTIwMilyZXR1cm47Rj09MjI3fHxGPT0yNDV8fEY9PTMxN3x8Rj09MjY0fHxGPT0xODB8fEY9PTQ2MHx8Rj09NTA4fHxGPT0yMDd8fEY9PTIzOHx8Rj09NDU0P00uQltGXXx8KE0uQltGXT1sKDAsTSw2NCxGLFQsMjIpKTpNLkJbRl09bCgwLE0sNzIsRixULDgxKX1GPT0yMDImJihNLks9eWwoTSwzMixmYWxzZSksTS5MPXZvaWQgMCl9LGI9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVil7Vj10aGlzO3RyeXtrbihULHRoaXMsTSxLLHgsRixHKX1jYXRjaCh3KXt3aGlsZSh0cnVlKWlmKHdWKDIwNDgsdywiOiIsdGhpcywyNSksRihmdW5jdGlvbihOKXtOKFYuRil9KSwxNSlicmVha319LFJEPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOLHQscSl7Zm9yKEs9KFQ9KHE9TS5yZXBsYWNlKC9cXHJcXG4vZywiXFxuIiksMCksdz1bXSwwKTtUPHEubGVuZ3RoO1QrKylOPXEuY2hhckNvZGVBdChUKSxOPDEyOD93W0srK109TjooTjwyMDQ4P3dbSysrXT0oVj1OPj42LC0xLX5WLSh+Vl4xOTIpKyh+VnwxOTIpKTooNjQ1MTItKH5OJjY0NTEyKT09NTUyOTYmJlQrMTxxLmxlbmd0aCYmKHEuY2hhckNvZGVBdChUKzEpJjY0NTEyKT09NTYzMjA\/KE49NjU1MzYrKChOJjEwMjMpPDwxMCkrKHEuY2hhckNvZGVBdCgrK1QpJjEwMjMpLHdbSysrXT1OPj4xOHwyNDAsd1tLKytdPShHPU4+PkYmNjMsMjU2LX5HKy0yNTgtKEd8LTEyOSkpKTp3W0srK109Tj4+RnwyMjQsd1tLKytdPSh0PU4+PjYmNjMsLX50Kyh0XjEyOCkrKH50fDEyOCkpKSx3W0srK109KHg9TiY2MywtfngrKHgmLTEyOSkrKH54XjEyOCkrMioofngmMTI4KSkpO3JldHVybiB3fSxPeT1mdW5jdGlvbihGKXtyZXR1cm4gSi5jYWxsKHRoaXMsNDAsRil9LHBZPWZ1bmN0aW9uKCl7cmV0dXJuIGgyLmNhbGwodGhpcyw4MCw1KX0sa249ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCl7Tj0oKE0uSGI9RzAoOSwyOSwoKE0udHg9TDUsTS5oeD1DNSxNKS5XYj1NW3REXSxNLlUpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25jYXQoKX19KSxNKS5iNj14bltNLlVdKE0uSGIse3ZhbHVlOnt2YWx1ZTp7fX19KSwwKTt7dD1bXTt3aGlsZShOPDI4Nyl0W05dPVN0cmluZy5mcm9tQ2hhckNvZGUoTiksTisrfWlmKChNLlFyPVtdLHc9d2luZG93LnBlcmZvcm1hbmNlfHx7fSxNKS5HPShNLkY9dm9pZCAwLE0udTY9MCxNLkM9MCxNLkQ2PVtdLE0ubD12b2lkIDAsTS5nUD1bXSwxKSx0cnVlKU0uaD1udWxsO00ubDM9KE0udj0oKChNLllOPWZhbHNlLE0pLndQPVQsTSkuT0s9MCxNLkx2PVtdLFtdKSwwKSxNLkI9W10sTS51Mz0wO3doaWxlKDEwKWlmKE0uWj12b2lkIDAsdHJ1ZSlicmVhazsoTS5aNj0oTS54Tj0oTS5PQz1mdW5jdGlvbihxKXtyZXR1cm4gSTQuY2FsbCh0aGlzLHEsMyl9LE0uWUU9SyxNLkw9KCgoTS5iMz1mYWxzZSxNKS5Ldj1bXSxNLmo9ZmFsc2UsTSkuYW09KE0uSz12b2lkIDAsTS5sNj0oTS5VSz1mYWxzZSwoTS5ucT0yNSxNKS5GVj04MDAxLGZhbHNlKSxNLkJiPShNLkltPTAsdm9pZCAwKSxNLnFYPShNLlM9KChNLlk9ZmFsc2UsTSkuTj1NLDApLE0uamE9dm9pZCAwLHcudGltZU9yaWdpbnx8KHcudGltaW5nfHx7fSkubmF2aWdhdGlvblN0YXJ0fHwwKSwwKSx2b2lkIDApLDApLE0uaFI9W10sdm9pZCAwKSxGKSYmRi5sZW5ndGg9PTImJihNLkt2PUZbMV0sTS5Mdj1GWzBdKTtmb3IoIVtdO1Y7MSl7dHJ5e00uamE9SlNPTi5wYXJzZShWKX1jYXRjaChxKXtNLmphPXt9fWlmKDA9PSFbIiJdKWJyZWFrfWUoMTcsMCx0cnVlLHRydWUsKHUoTSwzNCwodShNLCh1KE0sKEkoMzUsZnVuY3Rpb24ocSxjLFAseSx6LEQsSCxZLGQsQixwLFUsVyxWbCxoKXtmb3IoaD04MTtoIT0xMTspaWYoaD09NDgpaD1IPFk\/OTM6MTE7ZWxzZSBpZihoPT05MSloPXEuTj09cT85NDoxMTtlbHNlIGlmKGg9PTgxKWg9SigzNywwLHRydWUsYyx0cnVlLHEpPzExOjU3O2Vsc2UgaWYoaD09NzQpSCs9ZCxoPTQ4O2Vsc2UgaWYoaD09NjQpaD1WZCgic3BsaWNlIiwibnVtYmVyIixQKT09Im9iamVjdCI\/OTo5MTtlbHNlIGlmKGg9PTkpe2ZvcihWbCBpbiBEPVtdLFApRC5wdXNoKFZsKTtoPShQPUQsOTEpfWVsc2UgaD09OTM\/KFUoUC5zbGljZShILDMqKEgmZCkrfmQtKH5IXmQpKyh+SCZkKSksQiksaD03NCk6aD09OTQ\/KEg9MCxZPVAubGVuZ3RoLGQ9ZD4wP2Q6MSxoPTU4KTpoPT01OD9oPTQ4Omg9PTU3JiYoVz1rKHEsMjQpLHA9ayhxLDcpLHo9ayhxLDQ4KSx5PVgoMzIscSksVT1TKHEscCksUD1PKHEsVyksZD1PKHEseiksQj1TKHEseSksaD02NCl9LE0sKEkoNTksKGYoMjY0LE0sJG4oKEkoMyxmdW5jdGlvbihxLGMsUCx5LHosRCxILFkpe0g9WihxLChEPShjPWsocSwoej1rKHEsKHk9ayhxLChZPVgoMzQscSksMTApKSw0OCkpLDUpKSxaKShxLGMpLFA9TyhxLHkpLHopKSxuKFkscSxsKGZhbHNlLDEsMTksRCxQLHEsSCkpfSwoSSgzNSwoSSgoSSgyNiwoSSgzNSxmdW5jdGlvbigpe30sKEkoNTgsKE0uZ2s9KEkoMjcsZnVuY3Rpb24ocSxjLFApe2YoKGM9KFA9ayhxLDI0KSxYKSgzNSxxKSxjKSxxLCIiK08ocSxQKSl9LChJKDM0LGZ1bmN0aW9uKHEpe3JZKDQscSl9LE0sKEkoNTgsZnVuY3Rpb24ocSxjLFAseSx6LEQsSCxZLGQsQixwKXtmb3IocD0yNztwIT04NDspcD09Mjc\/KFk9ayhxLDYpLGQ9ayhxLDEyKSxEPWsocSwzMiksYz1rKHEsNyksQj1PKHEsZCksUD1PKHEsRCksSD1aKHEuTixZKSx5PVoocSxjKSxwPTQ5KTpwPT00OT9wPUghPT0wPzU0Ojg0OnA9PTU0JiYoej1sKGZhbHNlLDEsMTgsMSxQLHEseSxILEIpLEguYWRkRXZlbnRMaXN0ZW5lcihCLHosd1kpLE8ocSwxNykucHVzaChmdW5jdGlvbigpe0gucmVtb3ZlRXZlbnRMaXN0ZW5lcihCLHosd1kpfSksbig0OTAscSxbSCxCLHpdKSxwPTg0KX0sKEkoMzQsKEkoKEkoMjcsZnVuY3Rpb24ocSxjLFAseSx6KXtmb3Ioej05ODt6IT0yNDspej09MzM\/KFA9WCgzMixxKSx5PWsocSwxMiksbih5LHEsZnVuY3Rpb24oRCl7cmV0dXJuIGV2YWwoRCl9KGJDKE8ocS5OLFApKSkpLHo9MjQpOno9PTk4JiYoej1KKDI5LDAsdHJ1ZSxjLGZhbHNlLHEpPzI0OjMzKX0sTSwoZigyMjcsTSwoSSgzLGZ1bmN0aW9uKHEsYyxQLHkseixEKXt7RD0zNDt3aGlsZShEIT0zNylEPT0zND8oUD1rKHEsMTkpLGM9bCg3LHEsMjkpLHo9W10sRD15PTApOkQ9PTA\/RD02MDpEPT02MT8oZihQLHEseiksRD0zNyk6RD09NjU\/KHoucHVzaChyVig4LHRydWUscSkpLEQ9MjIpOkQ9PTIyPyh5KyssRD02MCk6RD09NjAmJihEPXk8Yz82NTo2MSl9fSxNLChJKDU4LGZ1bmN0aW9uKHEsYyxQKXtjPU8oKFA9ayhxLDcpLHEuTiksUCksY1swXS5yZW1vdmVFdmVudExpc3RlbmVyKGNbMV0sY1syXSx3WSl9LChJKDI3LChNLmpYPSh2KE0sNDU0LChJKDI2LGZ1bmN0aW9uKHEsYyxQLHkpe24oKHk9WCgzNSwoYz1yVig4LChQPWsocSwxNCksdHJ1ZSkscSkscSkpLHkpLHEsWihxLFApPj4+Yyl9LChJKDM0LChmKDE3LChuKDE4MCxNLCh2KE0sKHYoTSwyMzgsKEkoNTgsZnVuY3Rpb24ocSxjLFAseSx6KXsoeT1WZCgic3BsaWNlIiwoej0oYz1rKHEsKFA9ayhxLDUpLDQ4KSksUykocSxQKSwibnVtYmVyIikseiksZikoYyxxLHkpfSxNLChJKDU5LGZ1bmN0aW9uKHEsYyxQLHkseixEKXtmKCh6PU8ocSwoYz1aKChEPVgoMzAsKHk9ayhxLChQPVgoMzIscSksMTApKSxxKSkscSkseSksUCkpPT1jLEQpLHEsK3opfSwoZigyOTIsTSwoZigzMTcsKHYoTSwodihNLCh2KChNLlFnPShJKDI3LGZ1bmN0aW9uKHEsYyxQLHkseil7bigoYz1PKHEsKHo9KHk9WCgzMywoUD1rKHEsMzIpLHEpKSxPKHEseSkpLFApKSx5KSxxLHorYyl9LChuKDExNSxNLChJKDI2LGZ1bmN0aW9uKHEpe3A1KDMscSl9LE0sKEkoKEkoMyxmdW5jdGlvbihxLGMsUCx5LHosRCxILFksZCxCLHAsVSxXLFZsLGgsS1ksUSxOWCxyKXt7cj01Nzt3aGlsZShyIT02MylyPT0yMT9yPTU5OnI9PTkxPyhCPU5YKDEpLGMucHVzaChCKSxQKz1CPzA6MSxyPTc0KTpyPT0xNz8oRC5wdXNoKFoocSxYKDMxLHEpKSkscj0yOCk6cj09NzU\/cj15LS0\/MTc6MDpyPT0wPyhJKDMsZnVuY3Rpb24oTCxGYixhLGpILG1fLFIpe2ZvcihSPTQxO1IhPTQ3OylSPT00PyhGYi5wdXNoKGsoTCw1NikpLFI9OTQpOlI9PTI3P1I9NTA6Uj09NTA\/Uj1tXz49RmIubGVuZ3RoPzQ6MTM6Uj09NDE\/KGpIPTAsYT1bXSxGYj1bXSxSPTMxKTpSPT01Mj9SPWpIPHo\/NjU6NjM6Uj09NjU\/KG1fPVFbakhdLFI9NDIpOlI9PTkzPyhqSCsrLFI9NTIpOlI9PTI4PyhhLnB1c2gobV8pLFI9OTMpOlI9PTk0P1I9NTA6Uj09NDI\/Uj1jW2pIXT8yODoyNzpSPT0xMz8obV89RmJbbV9dLFI9MjgpOlI9PTMxP1I9NTI6Uj09NjMmJihMLmw9bChELnNsaWNlKCksTCw0OSksTC5aPWwoYSxMLDY1KSxSPTQ3KX0scSxWbCkscj02Myk6cj09NTA\/cj1VPHo\/OTE6OTU6cj09NzQ\/KFUrKyxyPTUwKTpyPT0xND8oY1tkXXx8KFFbZF09TlgoVykpLHI9NTUpOnI9PTk0PyhjW2hdJiYoUVtoXT1rKHEsNTYpKSxyPTgzKTpyPT04Nz9yPTUwOnI9PTQ3P3I9NzU6cj09NTU\/KGQrKyxyPTgpOnI9PTU3PyhOWD1mdW5jdGlvbihMLEZiKXtmb3IoO0g8TDspcHw9clYoOCx0cnVlLHEpPDxILEgrPTg7cmV0dXJuIHA+Pj0oRmI9cCYoMTw8TCktKEgtPUwsMSksTCksRmJ9LFZsPWsocSwxOSksSD1wPTAsWT0oS1k9TlgoMyksLTEtMip+KEtZfDEpKyh+S1leMSkpLHo9TlgoNSksUD0wLGM9W10sVT0wLHI9ODcpOnI9PTk5PyhoPTAscj0yMSk6cj09Mjg\/cj03NTpyPT04Mz8oaCsrLHI9NTkpOnI9PTUyP3I9ODpyPT00MT8oRD1bXSx5PVkscj00Nyk6cj09OD9yPWQ8ej8xNDo5OTpyPT05NT8oVz0oMit+KFB8MSkrMiooUCYtMiktKH5QJjEpKS50b1N0cmluZygyKS5sZW5ndGgsZD0wLFE9W10scj01Mik6cj09NTkmJihyPWg8ej85NDo0MSl9fSwoKEkoMzUsZnVuY3Rpb24ocSxjLFAseSl7dihxLChjPShQPWsocSwoeT1rKHEsMjQpLDYpKSxrKHEsNikpLGMpLFMocSx5KXx8WihxLFApKX0sKHYoTSwyOTMsKGYoNDQsKEkoMzQsZnVuY3Rpb24ocSxjKXtuKChjPWsocSwzMiksYykscSxbXSl9LChuKDM1OCwoZig3LE0sKEkoMjcsZnVuY3Rpb24ocSxjLFAseSx6LEQsSCxZLGQsQil7Zm9yKEI9Njc7QiE9NTc7KUI9PTM4P0I9RDxjLmxlbmd0aD81ODo2MjpCPT02Mj8obihkLHEsSCBpbiB6fDApLEI9NTcpOkI9PTE3P0I9Mzg6Qj09NT8oRCsrLEI9MzgpOkI9PTY3Pyh5PVgoMzMscSksUD1rKHEsMTMpLGQ9WCgyOSxxKSxjPVMocSx5KSx6PVoocSxQKSxIPSIiLEQ9MCxCPTE3KTpCPT01OCYmKEgrPVN0cmluZy5mcm9tQ2hhckNvZGUoKFk9Y1tEXSwtMi0oWXwtMTIyKS0ofll8MTIxKSkpLEI9NSl9LChJKDM1LGZ1bmN0aW9uKHEsYyxQLHkseixELEgsWSxkKXt7ZD0zMTt3aGlsZShkIT05NilkPT03MD8oSCs9U3RyaW5nLmZyb21DaGFyQ29kZSh6W1BdXjEyMSksZD01MCk6ZD09NTA\/KFArKyxkPTQ4KTpkPT0zMj9kPTQ4OmQ9PTc2PyhmKHkscSxEW0hdKSxkPTk2KTpkPT00OD9kPVA8ei5sZW5ndGg\/NzA6NzY6ZD09MzEmJihjPVgoMjkscSksWT1YKDMxLHEpLHk9ayhxLDQwKSxEPU8ocSxjKSx6PVMocSxZKSxQPTAsSD0iIixkPTMyKX19LChJKDM0LGZ1bmN0aW9uKHEsYyxQLHkseixELEgsWSl7e1k9NTI7d2hpbGUoWSE9NTYpWT09NTQ\/KEg9KChIfDApKyhsKDcscSw1KXwwKSkleixjLnB1c2goeVtIXSksWT0xOSk6WT09NTI\/KFA9ayhxLDEzKSxEPWwoNyxxLDEzKSxjPVtdLHk9UyhxLDE2NiksSD0wLHo9eS5sZW5ndGgsWT03MSk6WT09Nj8obihQLHEsYyksWT01Nik6WT09NzY\/WT1ELS0\/NTQ6NjpZPT03MT9ZPTc2Olk9PTE5JiYoWT03Nil9fSxNLDI0KSxNKSw0MTIpLE0pLDQ2NiksMCkpLE0pLDApLE0pLDM2NyksTSksNTEpLEkoNTksZnVuY3Rpb24ocSxjLFAseSx6LEQsSCxZKXt7WT02MDt3aGlsZShZIT00MClZPT05P1k9NzA6WT09NzA\/WT1jLS0\/ODM6MzM6WT09MzM\/KGYoeixxLEQpLFk9NDApOlk9PTYwPyh6PWsocSw5KSxjPWwoNyxxLDI4KSxEPSIiLEg9UyhxLDE2NikseT1ILmxlbmd0aCxQPTAsWT05KTpZPT04Mz8oUD0oKFB8MCkrKGwoNyxxLDE2KXwwKSkleSxEKz10W0hbUF1dLFk9MzgpOlk9PTM4JiYoWT03MCl9fSxNLDM5MSksMCkpLE0pLDI3NSksbmV3IElEKCJTdWJtaXQiKSkuZGlzcG9zZSgpLE0pLDE4KSwzKSxmdW5jdGlvbihxLGMsUCx5KXtaKHEsKFA9TyhxLCh5PWsocSwoYz1YKDM0LHEpLDE4KSkseSkpLGMpKSE9MCYmbig3LHEsUCl9LE0sNDI2KSw0NTApKSx7fSkpLE0pLDI4NyksMCksTSksNDkwLDApLDUwOCksW10pLDQ2MCksW10pLE0pLFtdKSxFKSksTSksNDg0KSwxMDEpKSwkbig0KSkpLDI0NSksJG4oNCkpLEkoMjYsZnVuY3Rpb24ocSl7cDUoNCxxKX0sTSwyMjIpLFtdKSksTSksW10pLGZ1bmN0aW9uKHEsYyxQLHkseil7e3o9NTc7d2hpbGUoeiE9NDApej09ND8oZig3LHEscS5DKSx6PTQwKTp6PT04MD8oUC0tLHo9NDIpOno9PTI\/ej00Mjp6PT04ND8oUD1yVig4LHRydWUscSksej0yKTp6PT01Nz8oYz1xLmdQLnBvcCgpLHo9NzUpOno9PTg4PyhjWzE4MF09cS5CWzE4MF0sY1s0NTRdPXEuQls0NTRdLHEuQj1jLHo9NDApOno9PTc1P3o9Yz84NDo0Ono9PTIzPyh5PWsocSwxMiksY1t5XT1xLkJbeV0sej04MCk6ej09NDImJih6PVA+MD8yMzo4OCl9fSksTSwyOCksTSksNDUyKSxbMjA0OF0pKSwwKSxmdW5jdGlvbihxLGMsUCx5LHosRCl7Zm9yKEQ9NTY7RCE9Nzg7KUQ9PTU2P0Q9SigyMSwwLHRydWUsYyxmYWxzZSxxKT83ODo2MTpEPT02MT8oeT1BRCg4LHEsdHJ1ZSwwKSxQPXkuYVQsej15Lk5YLEQ9NTQpOkQ9PTU0P0Q9cS5OPT1xfHx6PT1xLk9DJiZQPT1xPzY1Ojc4OkQ9PTY1JiYodihxLHkuc0Msei5hcHBseShQLHkuWCkpLHEuYW09cS5KKCksRD03OCl9KSxNLDI3NiksTSksNDMzKSw4MCkpLGYoMjA3LE0sWzAsMCwwXSksWzE1NCwwLDBdKSksMzQ1KSksMjYpLGZ1bmN0aW9uKHEsYyxQLHkseixEKXtQPU8oKGM9KEQ9WCgyOSxxKSx6PWsocSw0MCksWCgzNCxxKSkscSksRCk7d2hpbGUoe30paWYoeT1PKHEseikse30pYnJlYWs7ZihjLHEsUFt5XSl9LE0sNDc4KSxmdW5jdGlvbihxLGMpe2dZKDAsKGM9WihxLGsocSw5KSkscSkuTiwxMDQsYyw3KX0pLE0sMTk0KSxNKSwxNzApLHYoTSwyMTAsTSksMTI1KSksTSksMzk4KSwwKSxmdW5jdGlvbihxKXtYKDYsMCw0LHEpfSksTSwzNTQpLE0pLDQ2NyksZnVuY3Rpb24ocSxjLFAseSx6LEQsSCxZLGQsQil7Zm9yKEI9ODE7QiE9NjU7KUI9PTgxP0I9Sig1MywwLHRydWUsYyxmYWxzZSxxKT82NTo1MDpCPT01MCYmKHk9QUQoOCxxLk4sdHJ1ZSwwKSxIPXkuc0MsWT15Lk5YLEQ9eS5hVCxQPXkuWCx6PVAubGVuZ3RoLGQ9ej09MD9uZXcgRFtZXTp6PT0xP25ldyBEW1ldKFBbMF0pOno9PTI\/bmV3IERbWV0oUFswXSxQWzFdKTp6PT0zP25ldyBEW1ldKFBbMF0sUFsxXSxQWzJdKTp6PT00P25ldyBEW1ldKFBbMF0sUFsxXSxQWzJdLFBbM10pOjIoKSxmKEgscSxkKSxCPTY1KX0pLE0sNDY5KSw1OSksZnVuY3Rpb24ocSxjLFAseSx6LEQpe24oKGM9TyhxLChQPU8oKEQ9aygoej1YKCh5PVgoMzAscSksMzYpLHEpLHEpLDE3KSxxKSx5KSx6KSksRCkscSxQIGluIGN8MCl9LE0sODMpLGZ1bmN0aW9uKHEpe3JZKDEscSl9KSxNLDQpLE0pLDUwMCksNCkpKSxmdW5jdGlvbihxLGMsUCx5LHosRCxILFkpe3tZPTgwO3doaWxlKFkhPTg3KVk9PTY\/KHEuTD12b2lkIDAsWT03Nik6WT09NTE\/WT1xLk49PXE\/Njk6ODc6WT09NzY\/WT1EPT0yPzUyOjg3Olk9PTUyPyhxLks9eWwocSwzMixmYWxzZSkscS5MPXZvaWQgMCxZPTg3KTpZPT0yMj9ZPXk9PTIwMj82Ojg3Olk9PTgwPyh5PWsocSw1NiksUD1YKDM2LHEpLGM9ayhxLDEwKSxZPTUxKTpZPT02OSYmKEQ9WihxLFApLEg9UyhxLHkpLHo9UyhxLGMpLEhbRF09eixZPTIyKX19KSxNLDQwMCksNTMpKSwzMiksMCxbekFdKSwzNSksMCxbaUMseF0pLDApLFt1QyxHXSksTSkpfSxoRD1mdW5jdGlvbihGLE0pe2Z1bmN0aW9uIFQoKXt0aGlzLnRSPXRoaXMuZz10aGlzLm49MH1yZXR1cm5bKE09bmV3IChULnByb3RvdHlwZS5HaT1mdW5jdGlvbihLLHgpe3JldHVybiBzRy5jYWxsKHRoaXMsSywyNix4KX0sVC5wcm90b3R5cGUuRGw9ZnVuY3Rpb24oKXtyZXR1cm4gRG4uY2FsbCh0aGlzLDE2LDMpfSxGPW5ldyBULFQpLGZ1bmN0aW9uKEspe0YuR2koSyk7d2hpbGUobnVsbD09KCFbXT09ZmFsc2U9PVtdKT09IVtdIT1bXSlpZihNLkdpKEspLC0wPT09MClicmVha30pLGZ1bmN0aW9uKEspe3JldHVybiBNPW5ldyAoSz1bRi5EbCgpLE0uRGwoKSxGLmcsTS5nXSxUKSxLfV19LFZkPWZ1bmN0aW9uKEYsTSxULEsseCl7Sz10eXBlb2YgVDtzd2l0Y2goIShLPT0ib2JqZWN0Iikpe2Nhc2UgMD09KCFmYWxzZSE9ISIiKTpmb3IoMD09IVsiIl07Sz09ImZ1bmN0aW9uIiYmdHlwZW9mIFQuY2FsbD09InVuZGVmaW5lZCI7ISIiPT0hKDAhPSFbdW5kZWZpbmVkXSkpe3JldHVybiJvYmplY3QiO2lmKG51bGwhPWZhbHNlKWJyZWFrfWJyZWFrO2Nhc2UgISFudWxsOnN3aXRjaCghVCl7Y2FzZSAwPT09LTA6cmV0dXJuIm51bGwiO2JyZWFrO2Nhc2UgIVtdOnN3aXRjaCghKFQgaW5zdGFuY2VvZiBBcnJheSkpe2Nhc2UgIVsiIl09PU51bWJlcigpOnVuZGVmaW5lZDticmVhaztjYXNlIGZhbHNlOnJldHVybiJhcnJheSI7YnJlYWt9aWYoVCBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gSztpZigoeD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoVCkseCk9PSJbb2JqZWN0IFdpbmRvd10iKWlmKHRydWUpcmV0dXJuIm9iamVjdCI7Zm9yKCEiIj09IShbXT09KDA9PWZhbHNlKSk7eD09IltvYmplY3QgQXJyYXldInx8dHlwZW9mIFQubGVuZ3RoPT1NJiZ0eXBlb2YgVC5zcGxpY2UhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgVC5wcm9wZXJ0eUlzRW51bWVyYWJsZSE9InVuZGVmaW5lZCImJiFULnByb3BlcnR5SXNFbnVtZXJhYmxlKEYpO2ZhbHNlKXtyZXR1cm4iYXJyYXkiO2lmKHRydWUpYnJlYWt9aWYoeD09IltvYmplY3QgRnVuY3Rpb25dInx8dHlwZW9mIFQuY2FsbCE9InVuZGVmaW5lZCImJnR5cGVvZiBULnByb3BlcnR5SXNFbnVtZXJhYmxlIT0idW5kZWZpbmVkIiYmIVQucHJvcGVydHlJc0VudW1lcmFibGUoImNhbGwiKSlyZXR1cm4iZnVuY3Rpb24iO2JyZWFrfWJyZWFrfXJldHVybiBLfSxwNT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWKXtldSgoKEc9KFQ9KFY9KEZ8KHg9RiY0LDApKS0gLTErKH5GfDMpLGsoTSwxOCkpLGspKE0sMTQpLEs9WihNLFQpLHgmJihLPVJEKDEyLCIiK0spKSxWKSYmZXUoTSxDKEsubGVuZ3RoLDIpLEcpLE0pLEssRyl9LElEPWZ1bmN0aW9uKEYsTSxUKXtyZXR1cm4ganUuY2FsbCh0aGlzLDUzLE0sNixGLFQpfSxTdT1mdW5jdGlvbigpe3JldHVybiBTSC5jYWxsKHRoaXMsNTQsOCl9LEV5PWZ1bmN0aW9uKEYsTSxULEsseCl7aWYoRi5sZW5ndGg9PTMpe2ZvcihUPTA7VDwzO1QrKylNW1RdKz1GW1RdO2ZvcihLPVsxMyw4LDEzLDEyLDE2LDUsMywxMCwxNV0seD0wO3g8OTt4KyspTVszXShNLHglMyxLW3hdKX19LEpEPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyxOKXtzd2l0Y2goIShGLk49PUYpKXtjYXNlIDA9PSFbdW5kZWZpbmVkXTpmYWxzZTticmVhaztjYXNlIDAhPSFbXTpmb3IoRz1aKEYsVCksVD09MjQ1fHxUPT0yMzh8fFQ9PTI2ND8oeD1mdW5jdGlvbih0LHEsYyxQLHkseixELEgsWSl7Zm9yKFk9MzYsRD01ODs7KXRyeXtpZihZPT0zMilicmVhaztlbHNle2lmKFk9PTApdGhyb3cgRD01OCxIO1k9PTcwP1k9Ry5DcSE9UD80MDozOlk9PTU3PyhEPTkwLEcueXI9bUQoMjQsaygzLDI3LGMsRyksMjU1LGsoMyw0MywzKihjJjQpKzIqfihjJjQpLSAtNS0ofmN8NCksRykseSksWT0zKTpZPT00MD8oRy5DcT1QLGM9KHo9UDw8MywtKHpeNCktMioofnpeNCkrMiooenwtNSkpLHk9WzAsMCxOWzFdLE5bMl1dLFk9NTcpOlk9PTM\/KEcucHVzaChHLnlyW3EmN11edCksWT0zMik6WT09MzYmJihxPUcubGVuZ3RoLFA9KHF8MCktND4+MyxZPTcwKX19Y2F0Y2goZCl7aWYoRD09NTgpdGhyb3cgZDtEPT05MCYmKEg9ZCxZPTApfX0sTj1aKEYsMjA3KSk6eD1mdW5jdGlvbih0KXtHLnB1c2godCl9LEsmJngoNTEwLShLfDI1NSkrMiooSyYtMjU2KS0oS14yNTUpKSx3PTAsVj1NLmxlbmd0aDt3PFY7dysrKXgoTVt3XSk7YnJlYWt9fSxEdz1mdW5jdGlvbihGLE0sVCl7cmV0dXJuKFQ9Ri5jcmVhdGUoKS5zaGlmdCgpLE0ubCkuY3JlYXRlKCkubGVuZ3RofHxNLlouY3JlYXRlKCkubGVuZ3RofHwoTS5sPXZvaWQgMCxNLlo9dm9pZCAwKSxUfSxPPWZ1bmN0aW9uKEYsTSxUKXtpZihUPUYuQltNXSxUPT09dm9pZCAwKXRocm93W1luLDMwLE1dO3N3aXRjaCghVC52YWx1ZSl7Y2FzZSB0cnVlOiEoMCE9IVt0cnVlLnRydWVdKSE9ISIiO2JyZWFrO2Nhc2UgbnVsbD09ZmFsc2U6cmV0dXJuIFQuY3JlYXRlKCk7YnJlYWt9cmV0dXJuIFQuY3JlYXRlKE0qNSpNKy05MCpNKzQ0KSxULnByb3RvdHlwZX0sdl89ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCxxLGMpe3txPTgwO3doaWxlKHEhPTYxKWlmKHE9PTMwKXE9TjxLLmxlbmd0aD85OTo2MTtlbHNlIGlmKHE9PTk2KXE9MzA7ZWxzZSBpZihxPT0yNSl7YTp7aWYodyYmdHlwZW9mIHcubGVuZ3RoPT1NKXtpZihjOCgzLCJvYmplY3QiLHcpKXt0PXR5cGVvZiB3Lml0ZW09PSJmdW5jdGlvbiJ8fHR5cGVvZiB3Lml0ZW09PVY7YnJlYWsgYX1pZih0eXBlb2Ygdz09PSJmdW5jdGlvbiIpe3Q9dHlwZW9mIHcuaXRlbT09ImZ1bmN0aW9uIjticmVhayBhfX10PWZhbHNlfXE9KGM4KDExLFQsRyxjLHQ\/U0goNTQsMTYsRyx3KTp3KSw0MSl9ZWxzZSBxPT04MD8oYz1mdW5jdGlvbihQKXtQJiZ4LmFwcGVuZENoaWxkKHR5cGVvZiBQPT09InN0cmluZyI\/Ri5jcmVhdGVUZXh0Tm9kZShQKTpQKX0sTj0xLHE9OTYpOnE9PTkwPyhjKHcpLHE9NDEpOnE9PTQxPyhOKysscT0zMCk6cT09ODE\/cT0heFkoMTAsTSwib2JqZWN0IiwiYXJyYXkiLHcpfHxjOCg3LCJvYmplY3QiLHcpJiZ3Lm5vZGVUeXBlPkc\/OTA6MjU6cT09OTkmJih3PUtbTl0scT04MSl9fSxyVj1mdW5jdGlvbihGLE0sVCl7cmV0dXJuIFQubD9EdyhULlosVCk6eWwoVCxGLE0pfSxtRD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcpe3c9KFY9MCx4WzJdfDApO3tHPXhbM118MDt3aGlsZShWPDE0KUc9Rz4+Pjh8Rzw8RixLPUs+Pj44fEs8PEYsSys9TXwwLEtePXcrNTU4LE09TTw8M3xNPj4+MjksTV49SyxHKz13fDAsR149Vis1NTgsdz13PDwzfHc+Pj4yOSx3Xj1HLFYrK31yZXR1cm5bTT4+PkYmVCxNPj4+MTYmVCxNPj4+OCZULE0+Pj4wJlQsSz4+PkYmVCxLPj4+MTYmVCxLPj4+OCZULEs+Pj4wJlRdfSxYcz1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQLHkpe00ucHVzaCgoRz0ocT1GWzBdPDwyNHxGWzFdPDwxNixLPUZbMl08PDgsMiooS3wwKSt+Sy0ofnF8SykpLGM9RlszXSwoRyZjKSt+Yy1+KEd8YykrKH5HJmMpKSksTS5wdXNoKCh5PUZbNF08PDI0LFQ9Rls1XTw8MTYsfnktMip+KHl8VCkrKHkmflQpKyh+eV5UKSl8Rls2XTw8OHxGWzddKSxNLnB1c2goKHg9KE49KFA9Rls4XTw8MjQsdD1GWzldPDwxNiwtflArMiooflAmdCkrKFB8fnQpKSx3PUZbMTBdPDw4LC1+TisoTiZ+dykrKH5OJncpKyh+Tnx3KSksVj1GWzExXSwoeHwwKS0xLSh4fH5WKSkpfSxaPWZ1bmN0aW9uKEYsTSxUKXtUPUYuQltNXTt3aGlsZShUPT09dm9pZCAwKXt0aHJvd1tZbiwzMCxNXTtpZih0cnVlKWJyZWFrfWZvcih0cnVlLnRydWU7VC52YWx1ZTt2b2lkIHVuZGVmaW5lZCl7cmV0dXJuIFQuY3JlYXRlKCk7aWYoZmFsc2UhPW51bGwpYnJlYWt9cmV0dXJuKFQuY3JlYXRlKE0qNSpNKy05MCpNKzQ0KSxUKS5wcm90b3R5cGV9LHFNPWZ1bmN0aW9uKEYsTSl7cmV0dXJuIGUuY2FsbCh0aGlzLDMyLEYsTSl9LFc4PWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyl7cmV0dXJuIHUuY2FsbCh0aGlzLE0sMTcsRixULEsseCxHLFYsdyl9LFFkPWZ1bmN0aW9uKEYsTSxULEspe3RyeXtLPUZbKH5NKy0zLTQqfihNfDIpKzIqKH5NXjIpKSUzXSxGW01dPShGW01dfDApLShGWygoTXwwKSsxKSUzXXwwKS0oS3wwKV4oTT09MT9LPDxUOks+Pj5UKX1jYXRjaCh4KXt0aHJvdyB4O319LEEsZ1k9ZnVuY3Rpb24oRixNLFQsSyx4KXtNLmdQLmxlbmd0aD5UP1V5KE0sRixbWW4sMzZdLEYpOihNLmdQLnB1c2goTS5CLnNsaWNlKCkpLE0uQlt4XT12b2lkIDAsZih4LE0sSykpfSxuNT1mdW5jdGlvbigpe3JldHVybiB2OC5jYWxsKHRoaXMsMSwzLDYpfSxmPWZ1bmN0aW9uKEYsTSxUKXtpZihGPT03fHxGPT0zNTgpTS5CW0ZdP00uQltGXS5jb25jYXQoVCk6TS5CW0ZdPWwoVCxNLDMzKTtlbHNle2lmKE0uYjMmJkYhPTIwMilyZXR1cm47Rj09MjI3fHxGPT0yNDV8fEY9PTMxN3x8Rj09MjY0fHxGPT0xODB8fEY9PTQ2MHx8Rj09NTA4fHxGPT0yMDd8fEY9PTIzOHx8Rj09NDU0P00uQltGXXx8KE0uQltGXT1sKDAsTSwzNCxGLFQsMjIpKTpNLkJbRl09bCgwLE0sNDAsRixULDgxKX1GPT0yMDImJihNLks9eWwoTSwzMixmYWxzZSksTS5MPXZvaWQgMCl9LEEyPWZ1bmN0aW9uKEYpe3JldHVybiBNWC5jYWxsKHRoaXMsNyxGKX0scTg9ZnVuY3Rpb24oRixNLFQsSyx4KXtyZXR1cm4gVEEuY2FsbCh0aGlzLGZhbHNlLEssRiwzLE0sVCx4KX0sQz1mdW5jdGlvbihGLE0sVCxLLHgpe2Zvcih4PShNfDApLTEsSz1bXTt4Pj0wO3gtLSlLWyhNfDApLTEtKHh8MCldPShUPUY+PngqOCwtflQtMiooVCYtMjU2KSsoVF4yNTUpKyhUfC0yNTYpKTtyZXR1cm4gS30sQUQ9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3LE4sdCl7eD1rKE0sKFY9TVtqTF18fHt9LDQwKSk7d2hpbGUoe30paWYoIShWLnNDPWsoTSwzMiksW10pIT10cnVlKWJyZWFrO2ZvcihHPSh3PVgoMzMsKE49KFYuWD1bXSxNKS5OPT1NPyh0PXJWKEYsVCxNKSwyKzIqKHQmLTIpKyh0XjEpKzIqKH50XjEpKToxLE0pKSxLKTtHPE47RysrKVYuWC5wdXNoKFgoMzAsTSkpO2Zvcig7Ti0tO1YuWFtOXT1aKE0sVi5YW05dKSk7cmV0dXJuIFYuYVQ9UyhNLHcpLFYuTlg9TyhNLHgpLFZ9LGY1PWZ1bmN0aW9uKEYsTSxULEsseCxHKXtyZXR1cm4geFkuY2FsbCh0aGlzLDIzLEYsTSxULEsseCxHKX0sTTg9ZnVuY3Rpb24oRixNKXtmdW5jdGlvbiBUKCl7dGhpcy51PVtdLHRoaXMubj0wfXJldHVybiBGPW5ldyAoTT0oVC5wcm90b3R5cGUuaTY9KFQucHJvdG90eXBlLnJQPWZ1bmN0aW9uKEsseCl7cmV0dXJuIGgyLmNhbGwodGhpcyw4MCw2LEsseCl9LGZ1bmN0aW9uKCl7cmV0dXJuICRZLmNhbGwodGhpcywxLDE2KX0pLG5ldyBUKSxUKSxbZnVuY3Rpb24oSyl7TS5yUChLKSxGLnJQKEspfSxmdW5jdGlvbihLKXtyZXR1cm4gRj1uZXcgKEs9TS5pNigpLmNvbmNhdChGLmk2KCkpLFQpLEt9XX0saTA9dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzPT0iZnVuY3Rpb24iP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihGLE0sVCxLKXt7Sz01NDt3aGlsZShLIT03NilpZihLPT01NClLPUY9PUFycmF5LnByb3RvdHlwZXx8Rj09T2JqZWN0LnByb3RvdHlwZT85MToxNjtlbHNle2lmKEs9PTkxKXJldHVybiBGO2lmKEs9PTE2KXJldHVybiBGW01dPVQudmFsdWUsRn19fSx2PWZ1bmN0aW9uKEYsTSxUKXtpZihNPT03fHxNPT0zNTgpRi5CW01dP0YuQltNXS5jb25jYXQoVCk6Ri5CW01dPWwoVCxGLDk3KTtlbHNle2lmKEYuYjMmJk0hPTIwMilyZXR1cm47TT09MjI3fHxNPT0yNDV8fE09PTMxN3x8TT09MjY0fHxNPT0xODB8fE09PTQ2MHx8TT09NTA4fHxNPT0yMDd8fE09PTIzOHx8TT09NDU0P0YuQltNXXx8KEYuQltNXT1sKDAsRiw2NixNLFQsMjIpKTpGLkJbTV09bCgwLEYsMzIsTSxULDgxKX1NPT0yMDImJihGLks9eWwoRiwzMixmYWxzZSksRi5MPXZvaWQgMCl9LFdfPWZ1bmN0aW9uKEYsTSxULEsseCxHLFYsdyl7aWYoIU0uRil7TS54TisrO3RyeXt4PSh3PXZvaWQgMCxNLkMpO3tWPTA7d2hpbGUoLS1LKXRyeXtpZihHPXZvaWQgMCxNLmwpdz1EdyhNLmwsTSk7ZWxzZXtpZigoVj1TKE0sRiksVik+PXgpYnJlYWs7dz0oRz1YKCh2KE0sMzU4LFYpLDMxKSxNKSxTKE0sRykpfUooMTMsKHcmJndbQl9dJlQ\/dyhNLEspOlV5KE0sMCxbWW4sMjEsR10sMCksMCksZmFsc2UsSyxmYWxzZSxNKX1jYXRjaChOKXtPKE0sNDQpP1V5KE0sMjIsTiwwKTpuKDQ0LE0sTil9fWlmKCFLKXtpZihNLm1mKXtXXyg3LE0sMjA0OCwoTS54Ti0tLDkzMjk2NTk2NjE3KSk7cmV0dXJufVV5KE0sMCxbWW4sMzNdLDApfX1jYXRjaChOKXt0cnl7VXkoTSwyMixOLDApfWNhdGNoKHQpe3dWKDIwNDgsdCwiOiIsTSw1KX19TS54Ti0tfX0sQ1k9ZnVuY3Rpb24oRixNLFQsSyx4LEcpe3JldHVybiB2OC5jYWxsKHRoaXMsMSwzLDUsRixNLFQsSyx4LEcpfSxVeT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQKXtzd2l0Y2goISghRi5iMyYmKHg9dm9pZCAwLFQmJlRbS109PT1ZbiYmKHg9VFsyXSxNPVRbMV0sVD12b2lkIDApLEc9UyhGLDE4MCksRy5sZW5ndGg9PUsmJihQPVooRiwzNTgpPj4zLEcucHVzaChNLChOPVA+PjgsLTI1NS0yKn4oTnwyNTUpKzIqKH5OXjI1NSkrKH5OJjI1NSkpLC0xLX4oUHwyNTUpLShQXjI1NSkpLHghPXZvaWQgMCYmRy5wdXNoKHgmMjU1KSksdD0iIixUJiYoVC5tZXNzYWdlJiYodCs9VC5tZXNzYWdlKSxULnN0YWNrJiYodCs9IjoiK1Quc3RhY2spKSx3PU8oRiw0NTQpLHdbS10+MykpKXtjYXNlIDA9PT0tMDpmYWxzZTticmVhaztjYXNlIGZhbHNlPT1udWxsOkYuTj0ocT0odD0od1t0PXQuc2xpY2UoSywod1tLXXxLKS0zKSxLXS09KHQubGVuZ3RofEspKzMsUkQoMTIsdCkpLEYuTiksRik7dHJ5e0YuWU4\/KFY9KFY9WihGLDQ2MCkpJiZWW1YubGVuZ3RoLTFdfHw5NSwoYz1aKEYsNTA4KSkmJmNbYy5sZW5ndGgtMV09PVZ8fGV1KEYsWy0yNTUtMip+KFZ8MjU1KSsoflZeMjU1KSsoflZ8MjU1KV0sNTA4KSk6ZXUoRixbOTVdLDQ2MCksZXUoRixDKHQubGVuZ3RoLDIpLmNvbmNhdCh0KSwyNDUsNTEpfWZpbmFsbHl7Ri5OPXF9YnJlYWt9fSxGQj1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyl7Zm9yKHQ9KGM9Syw1OSk7Oyl0cnl7aWYoYz09RilicmVhaztlbHNle2lmKGM9PU0pcmV0dXJuIE47aWYoYz09OCljPXcmJncuY3JlYXRlUG9saWN5P1Q6TTtlbHNle2lmKGM9PTcyKXJldHVybiB0PTU5LE47Yz09Njg\/KEUuY29uc29sZVt4XShxLm1lc3NhZ2UpLGM9NzIpOmM9PTY\/Yz1FLmNvbnNvbGU\/Njg6NzI6Yz09VD8odD03MCxOPXcuY3JlYXRlUG9saWN5KEcse2NyZWF0ZUhUTUw6T3ksY3JlYXRlU2NyaXB0Ok95LGNyZWF0ZVNjcmlwdFVSTDpPeX0pLGM9NzIpOmM9PTc4Pyh0PTU5LGM9Nik6Yz09SyYmKE49Vix3PUUudHJ1c3RlZFR5cGVzLGM9OCl9fX1jYXRjaChQKXtpZih0PT01OSl0aHJvdyBQO3Q9PTcwJiYocT1QLGM9NzgpfX0sYUQ9ZnVuY3Rpb24oRixNLFQsSyx4LEcpe3JldHVybiBaKHgsKHYoeCwoV18oNyx4LCgoRz1PKHgsVCkseC5ENikmJkc8eC5DPyhmKFQseCx4LkMpLGdZKDAseCwxMDQsTSxUKSk6ZihULHgsTSksMjA0OCksSyksVCksRyksRikpfSxldT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTil7c3dpdGNoKCEoRi5OPT1GKSl7Y2FzZSB0cnVlOjA7YnJlYWs7Y2FzZSBudWxsPT1mYWxzZTp7eD1aKEYsVCksVD09MjQ1fHxUPT0yMzh8fFQ9PTI2ND8oVj1mdW5jdGlvbih0LHEsYyxQLHkseixELEgsWSl7Zm9yKEQ9KFk9MzEsNzApOzspdHJ5e2lmKFk9PTQ3KWJyZWFrO2Vsc2UgaWYoWT09Nil4LkNxPXosYz0oeT16PDwzLC0oeV40KS0yKih+eV40KSsyKih5fC01KSkscT1bMCwwLE5bMV0sTlsyXV0sWT0xODtlbHNlIGlmKFk9PTE4KUQ9NzQseC55cj1tRCgyNCxrKDMsMzEsYyx4KSwyNTUsaygzLDQ3LDMqKGMmNCkrMip+KGMmNCktIC01LSh+Y3w0KSx4KSxxKSxZPTQxO2Vsc2UgaWYoWT09NDEpeC5wdXNoKHgueXJbUCY3XV50KSxZPTQ3O2Vsc2UgaWYoWT09MzEpUD14Lmxlbmd0aCx6PShQfDApLTQ+PjMsWT0xMTtlbHNlIGlmKFk9PTExKVk9eC5DcSE9ej82OjQxO2Vsc2UgaWYoWT09NSl0aHJvdyBEPTcwLEg7fWNhdGNoKGQpe2lmKEQ9PTcwKXRocm93IGQ7RD09NzQmJihIPWQsWT01KX19LE49TyhGLDIwNykpOlY9ZnVuY3Rpb24odCl7eC5wdXNoKHQpfSxLJiZWKDUxMC0oS3wyNTUpKzIqKEsmLTI1NiktKEteMjU1KSksdz0wLEc9TS5sZW5ndGg7d2hpbGUodzxHKVYoTVt3XSksdysrfWJyZWFrfX0sUjQ9ZnVuY3Rpb24oKXtyZXR1cm4gSS5jYWxsKHRoaXMsMTIpfSxLQj1mdW5jdGlvbihGLE0pe2Zvcih2YXIgVD0yO1QhPTEyOylpZihUPT02NylUPTc3O2Vsc2UgaWYoVD09MCl7dmFyIEs9YXJndW1lbnRzW1ZdO2ZvcihHIGluIEspRltHXT1LW0ddO3ZhciB4PShUPTQsMCl9ZWxzZSBpZihUPT02KXgrKyxUPTY4O2Vsc2UgaWYoVD09NzcpVD1WPGFyZ3VtZW50cy5sZW5ndGg\/MDoxMjtlbHNlIGlmKFQ9PTQpVD02ODtlbHNlIGlmKFQ9PTY4KVQ9eDxUbi5sZW5ndGg\/ODI6Nzg7ZWxzZSBpZihUPT04Mil7dmFyIEc9VG5beF07VD0oT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEssRykmJihGW0ddPUtbR10pLDYpfWVsc2UgaWYoVD09Mil2YXIgVj0oVD02NywxKTtlbHNlIFQ9PTc4JiYoVisrLFQ9NzcpfSxkVj0kWSgxLDMsIm9iamVjdCIsMCwiTWF0aCIsdGhpcyksRT0oR0EoMTgsIi4iLDAsMSxudWxsLCJTeW1ib2wiLGZ1bmN0aW9uKEYsTSxULEsseCxHKXtmb3IoeD0zMjt4IT01ODspe2lmKHg9PTE4KXJldHVybiBGO2lmKHg9PTk0KXJldHVybiBLLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLklUfSxUPSJqc2NvbXBfc3ltYm9sXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCkrIl8iLE09MCxHO3g9PTMyPyhLPWZ1bmN0aW9uKFYsdyl7dGhpcy5JVD1WLGkwKHRoaXMsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOnRydWUsd3JpdGFibGU6dHJ1ZSx2YWx1ZTp3fSl9LEc9ZnVuY3Rpb24oVix3KXtmb3Iodz00Nzt3IT03MDspaWYodz09NDcpdz10aGlzIGluc3RhbmNlb2YgRz8xNDo4MTtlbHNle2lmKHc9PTgxKXJldHVybiBuZXcgSyhUKyhWfHwiIikrIl8iK00rKyxWKTtpZih3PT0xNCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IiKTt9fSx4PTU0KTp4PT01NCYmKHg9Rj8xODo5NCl9fSksdGhpcyl8fHNlbGYsWnc9ImNsb3N1cmVfdWlkXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCksbDA9MCxlSCxVRz1mdW5jdGlvbihGLE0sVCxLLHgsRyl7Zm9yKEs9ODcsRz03ODs7KXRyeXtpZihLPT04MilicmVhaztlbHNlIGlmKEs9PTU1KU09ZmFsc2UsVD1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtNPXRydWV9fSksSz04O2Vsc2V7aWYoSz09ODUpcmV0dXJuIGZhbHNlO2lmKEs9PTYxKUc9NzgsSz05MztlbHNlIGlmKEs9PTg3KUs9RS5hZGRFdmVudExpc3RlbmVyJiZPYmplY3QuZGVmaW5lUHJvcGVydHk\/NTU6ODU7ZWxzZXtpZihLPT05MylyZXR1cm4gRz03OCxNO0s9PTgmJihHPTMsRj1mdW5jdGlvbigpe30sRS5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixGLFQpLEUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsRixUKSxLPTkzKX19fWNhdGNoKFYpe2lmKEc9PTc4KXRocm93IFY7Rz09MyYmKHg9VixLPTYxKX19KCksdDI9KCgoc0coMiw1LGtZLChZWS5wcm90b3R5cGVbKFlZLnByb3RvdHlwZS5vPWZ1bmN0aW9uKEYpe3tGPTc7d2hpbGUoRiE9NjkpRj09MzQ\/Rj04MjpGPT03MD8odGhpcy5BUi5zaGlmdCgpKCksRj0zNCk6Rj09ODI\/Rj10aGlzLkFSLmxlbmd0aD83MDo2OTpGPT01Mz9GPTgyOkY9PTcmJihGPXRoaXMuQVI\/NTM6NjkpfX0sWVkucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oRil7Zm9yKEY9Mzk7RiE9MTc7KUY9PTU\/KHRoaXMuVj10cnVlLHRoaXMubygpLEY9MTcpOkY9PTM5JiYoRj10aGlzLlY\/MTc6NSl9LHFNLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD10cnVlfSxZWSkucHJvdG90eXBlLlY9ZmFsc2UsKHFNLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXt0aGlzLkpSPXRydWV9LFN5bWJvbCkuZGlzcG9zZV09ZnVuY3Rpb24oKXt3aGlsZSh7fSlpZih0aGlzLmRpc3Bvc2UoKSx7fSlicmVha30scU0pKSxrWS5wcm90b3R5cGUpLmluaXQ9ZnVuY3Rpb24oRixNLFQsSyx4LEcpe3tHPTM7d2hpbGUoRyE9MjUpRz09MjQ\/Rz1LPT0ibW91c2VvdmVyIj85Nzo5NjpHPT05Nj9HPUs9PSJtb3VzZW91dCI\/NDY6NzU6Rz09NDY\/KFQ9Ri50b0VsZW1lbnQsRz03NSk6Rz09OTc\/KFQ9Ri5mcm9tRWxlbWVudCxHPTc1KTpHPT03NT8odGhpcy5yZWxhdGVkVGFyZ2V0PVQsRz0yMSk6Rz09OTI\/Rz1UPzc1OjI0Okc9PTcwPyh0aGlzLmNsaWVudFg9eC5jbGllbnRYIT09dm9pZCAwP3guY2xpZW50WDp4LnBhZ2VYLHRoaXMuY2xpZW50WT14LmNsaWVudFkhPT12b2lkIDA\/eC5jbGllbnRZOngucGFnZVksdGhpcy5zY3JlZW5YPXguc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9eC5zY3JlZW5ZfHwwLEc9NzgpOkc9PTM\/KEs9dGhpcy50eXBlPUYudHlwZSx4PUYuY2hhbmdlZFRvdWNoZXMmJkYuY2hhbmdlZFRvdWNoZXMubGVuZ3RoP0YuY2hhbmdlZFRvdWNoZXNbMF06bnVsbCx0aGlzLnRhcmdldD1GLnRhcmdldHx8Ri5zcmNFbGVtZW50LHRoaXMuY3VycmVudFRhcmdldD1NLFQ9Ri5yZWxhdGVkVGFyZ2V0LEc9OTIpOkc9PTc4Pyh0aGlzLmJ1dHRvbj1GLmJ1dHRvbix0aGlzLmtleUNvZGU9Ri5rZXlDb2RlfHwwLHRoaXMua2V5PUYua2V5fHwiIix0aGlzLmNoYXJDb2RlPUYuY2hhckNvZGV8fChLPT0ia2V5cHJlc3MiP0Yua2V5Q29kZTowKSx0aGlzLmN0cmxLZXk9Ri5jdHJsS2V5LHRoaXMuYWx0S2V5PUYuYWx0S2V5LHRoaXMuc2hpZnRLZXk9Ri5zaGlmdEtleSx0aGlzLm1ldGFLZXk9Ri5tZXRhS2V5LHRoaXMucG9pbnRlcklkPUYucG9pbnRlcklkfHwwLHRoaXMucG9pbnRlclR5cGU9Ri5wb2ludGVyVHlwZSx0aGlzLnN0YXRlPUYuc3RhdGUsdGhpcy50aW1lU3RhbXA9Ri50aW1lU3RhbXAsdGhpcy5CJD1GLEYuZGVmYXVsdFByZXZlbnRlZCYma1kuRC5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpLEc9MjUpOkc9PTY1Pyh0aGlzLm9mZnNldFg9Ri5vZmZzZXRYLHRoaXMub2Zmc2V0WT1GLm9mZnNldFksdGhpcy5jbGllbnRYPUYuY2xpZW50WCE9PXZvaWQgMD9GLmNsaWVudFg6Ri5wYWdlWCx0aGlzLmNsaWVudFk9Ri5jbGllbnRZIT09dm9pZCAwP0YuY2xpZW50WTpGLnBhZ2VZLHRoaXMuc2NyZWVuWD1GLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPUYuc2NyZWVuWXx8MCxHPTc4KTpHPT0yMSYmKEc9eD83MDo2NSl9fSxrWS5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7a1kuRC5zdG9wUHJvcGFnYXRpb24uY2FsbCh0aGlzKSx0aGlzLkIkLnN0b3BQcm9wYWdhdGlvbj90aGlzLkIkLnN0b3BQcm9wYWdhdGlvbigpOnRoaXMuQiQuY2FuY2VsQnViYmxlPXRydWV9LGtZLnByb3RvdHlwZSkucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oRil7aWYoRj0oa1kuRC5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpLHRoaXMuQiQpLHt9KUYucHJldmVudERlZmF1bHQ\/Ri5wcmV2ZW50RGVmYXVsdCgpOkYucmV0dXJuVmFsdWU9ZmFsc2V9LCJjbG9zdXJlX2xpc3RlbmFibGVfIikrKE1hdGgucmFuZG9tKCkqMUU2fDApLFRuPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIiksTFk9MCxKMj0iY2xvc3VyZV9sbV8iKygoSDgucHJvdG90eXBlLmFkZD0oSDgucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcpe3t3PTU3O3doaWxlKHchPTk5KWlmKHc9PTIxKXc9Ry5sZW5ndGg9PTA\/NDk6MTI7ZWxzZSBpZih3PT00Nil3PVY+LTE\/Mjk6Nzc7ZWxzZXtpZih3PT03NylyZXR1cm4gZmFsc2U7aWYodz09Njkpdz14IGluIHRoaXMuaT8wOjM3O2Vsc2UgaWYodz09MjkpJFkoMSwxOCx0cnVlLEdbVl0pLEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChHLFYsMSksdz0yMTtlbHNlIGlmKHc9PTApRz10aGlzLmlbeF0sVj1KKDI0LDAsRyxULE0sSyksdz00NjtlbHNlIGlmKHc9PTU3KXg9Ri50b1N0cmluZygpLHc9Njk7ZWxzZXtpZih3PT0xMilyZXR1cm4gdHJ1ZTtpZih3PT00OSlkZWxldGUgdGhpcy5pW3hdLHRoaXMuc0stLSx3PTEyO2Vsc2UgaWYodz09MzcpcmV0dXJuIGZhbHNlfX19fSxmdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0KXt7dD0xMzt3aGlsZSh0IT04OClpZih0PT02OSl0PVQ\/NzY6NDtlbHNlIGlmKHQ9PTEzKU49Ri50b1N0cmluZygpLFY9dGhpcy5pW05dLHQ9NjA7ZWxzZXtpZih0PT03NilyZXR1cm4gRzt0PT0zOD8oVj10aGlzLmlbTl09W10sdGhpcy5zSysrLHQ9MzYpOnQ9PTQ\/KEcub209ZmFsc2UsdD03Nik6dD09NDM\/dD13Pi0xPzkyOjM5OnQ9PTYwP3Q9Vj8zNjozODp0PT0zNj8odz1KKDE2LDAsVixLLE0seCksdD00Myk6dD09OTI\/KEc9Vlt3XSx0PTY5KTp0PT0zOSYmKEc9bmV3IHlkKHRoaXMuc3JjLE4sISFLLHgsTSksRy5vbT1ULFYucHVzaChHKSx0PTc2KX19fSksSDgucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKEYsTSxULEsseCl7cmV0dXJuICRZKDEsNDksdHJ1ZSwoeD0oVD1NIT09dm9pZCAwLChLPUYhPT12b2lkIDApP0YudG9TdHJpbmcoKToiIiksZmFsc2UpLGZ1bmN0aW9uKEcsVix3KXtmb3Iodz00O3chPTM1OylpZih3PT00KVY9MCx3PTIxO2Vsc2UgaWYodz09MjEpdz0xNDtlbHNlIGlmKHc9PTc0KXc9SyYmR1tWXS50eXBlIT14fHxUJiZHW1ZdLmNhcHR1cmUhPU0\/Mzc6NjY7ZWxzZXtpZih3PT01KXJldHVybiBmYWxzZTtpZih3PT02NilyZXR1cm4gdHJ1ZTt3PT0xND93PVY8Ry5sZW5ndGg\/NzQ6NTp3PT0zNyYmKCsrVix3PTE0KX19LHRoaXMuaSl9LEg4LnByb3RvdHlwZSkuU2E9ZnVuY3Rpb24oRixNLFQsSyx4LEcpe3JldHVybiBHPSh4PXRoaXMuaVtNLnRvU3RyaW5nKCldLC0xKSx4JiYoRz1KKDE4LDAseCxLLEYsVCkpLEc+LTE\/eFtHXTpudWxsfSxNYXRoLnJhbmRvbSgpKjFFNnwwKSxCOD17fSxvND0wLHUwPSJfX2Nsb3N1cmVfZXZlbnRzX2ZuXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7KChBPShzRygyLDksUjQsWVkpLFI0LnByb3RvdHlwZVt0Ml09dHJ1ZSxSNC5wcm90b3R5cGUpLEEuUCQ9ZnVuY3Rpb24oRil7dGhpcy5xWj1GfSxBLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oRixNLFQsSyl7eFkoMTMsIm9iamVjdCIsZmFsc2UsdGhpcyxULE0sRixLKX0sQSkucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihGLE0sVCxLKXtNWCgzLCJvYmplY3QiLDAsdGhpcyxULE0sRixLKX0sQSkuZGlzcGF0Y2hFdmVudD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyl7e2M9NzU7d2hpbGUoYyE9OTIpaWYoYz09MTEpRz0wLGM9MTA7ZWxzZSBpZihjPT05MSlLPXRydWUsYz05MztlbHNle2lmKGM9PTUpcmV0dXJuIEs7Yz09NDM\/Yz1WPzExOjU6Yz09ODA\/KEctLSxjPTg0KTpjPT0wP2M9IU0uSlImJkc8Vi5sZW5ndGg\/NDI6NTpjPT01Nj8odz10aGlzLmNiLFY9TixNPUYsVD1NLnR5cGV8fE0sYz00NCk6Yz09MTk\/KHE9TS5jdXJyZW50VGFyZ2V0PVZbR10sSz1JNCh0cnVlLDEyLFQsTSxxLHRydWUpJiZLLGM9ODApOmM9PTk5PyhOLnB1c2goeCksYz01Mik6Yz09NDI\/KHE9TS5jdXJyZW50VGFyZ2V0PVZbR10sSz1JNCh0cnVlLDExLFQsTSxxLGZhbHNlKSYmSyxjPTgxKTpjPT01Mj8oeD14LnFaLGM9MjApOmM9PTQ4PyhNPW5ldyBxTShNLHcpLGM9OTEpOmM9PTgxPyhHKyssYz0wKTpjPT0yMD9jPXg\/OTk6NTY6Yz09MTA\/Yz0wOmM9PTI3P2M9TS5KUj80Mzo2NjpjPT01Nz9jPXg\/NzQ6NTY6Yz09NzQ\/KE49W10sYz0xKTpjPT03NT8oeD10aGlzLnFaLGM9NTcpOmM9PTgzPyhHPVYubGVuZ3RoLTEsYz0xNik6Yz09NzE\/KE0udGFyZ2V0PU0udGFyZ2V0fHx3LGM9OTEpOmM9PTY2PyhxPU0uY3VycmVudFRhcmdldD13LEs9STQodHJ1ZSwxMCxULE0scSx0cnVlKSYmSyxNLkpSfHwoSz1JNCh0cnVlLDEzLFQsTSxxLGZhbHNlKSYmSyksYz00Myk6Yz09ODQ\/Yz0hTS5KUiYmRz49MD8xOToyNzpjPT00ND9jPXR5cGVvZiBNPT09InN0cmluZyI\/NDg6NDc6Yz09MzE\/KHQ9TSxNPW5ldyBxTShULHcpLEtCKE0sdCksYz05MSk6Yz09MT9jPTIwOmM9PTkzP2M9Vj84MzoyNzpjPT0xNj9jPTg0OmM9PTQ3JiYoYz1NIGluc3RhbmNlb2YgcU0\/NzE6MzEpfX19LEEuU2E9ZnVuY3Rpb24oRixNLFQsSyl7cmV0dXJuIHRoaXMuSC5TYShGLFN0cmluZyhNKSxULEspfSxBLm89ZnVuY3Rpb24oKXt0aGlzLnFaPSgoUjQuRC5vLmNhbGwodGhpcyksdGhpcy5IKSYmYzgoMTQsMCx0cnVlLHRoaXMuSCksbnVsbCl9LEEuaGFzTGlzdGVuZXI9ZnVuY3Rpb24oRixNKXtyZXR1cm4gdGhpcy5ILmhhc0xpc3RlbmVyKEYhPT12b2lkIDA\/U3RyaW5nKEYpOnZvaWQgMCxNKX07dmFyIHFYOygoKCgoQT0oc0coMiwzLCgoRG4oMTYsKCgoKCgoKEE9KCJBUlRJQ0xFIFNFQ1RJT04gTkFWIEFTSURFIEgxIEgyIEgzIEg0IEg1IEg2IEhFQURFUiBGT09URVIgQUREUkVTUyBQIEhSIFBSRSBCTE9DS1FVT1RFIE9MIFVMIExIIExJIERMIERUIEREIEZJR1VSRSBGSUdDQVBUSU9OIE1BSU4gRElWIEVNIFNUUk9ORyBTTUFMTCBTIENJVEUgUSBERk4gQUJCUiBSVUJZIFJCIFJUIFJUQyBSUCBEQVRBIFRJTUUgQ09ERSBWQVIgU0FNUCBLQkQgU1VCIFNVUCBJIEIgVSBNQVJLIEJESSBCRE8gU1BBTiBCUiBXQlIgTk9CUiBJTlMgREVMIFBJQ1RVUkUgUEFSQU0gVFJBQ0sgTUFQIFRBQkxFIENBUFRJT04gQ09MR1JPVVAgQ09MIFRCT0RZIFRIRUFEIFRGT09UIFRSIFREIFRIIFNFTEVDVCBEQVRBTElTVCBPUFRHUk9VUCBPUFRJT04gT1VUUFVUIFBST0dSRVNTIE1FVEVSIEZJRUxEU0VUIExFR0VORCBERVRBSUxTIFNVTU1BUlkgTUVOVSBESUFMT0cgU0xPVCBDQU5WQVMgRk9OVCBDRU5URVIgQUNST05ZTSBCQVNFRk9OVCBCSUcgRElSIEhHUk9VUCBTVFJJS0UgVFQiLnNwbGl0KCIgIikuY29uY2F0KFsiQlVUVE9OIiwiSU5QVVQiXSkscFkucHJvdG90eXBlKSxBKS5QPWZ1bmN0aW9uKEYsTSl7cmV0dXJuKE09dGhpcy5McSx0eXBlb2YgRj09PSJzdHJpbmciKT9NLmdldEVsZW1lbnRCeUlkKEYpOkZ9LEEuZ2V0RWxlbWVudHNCeVRhZ05hbWU9ZnVuY3Rpb24oRixNKXtyZXR1cm4oTXx8dGhpcy5McSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKEYpKX0sQSkuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihGLE0sVCl7KFQ9U3RyaW5nKEYpLE09dGhpcy5McSxNKS5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiJiYoVD1ULnRvTG93ZXJDYXNlKCkpO3doaWxlKDA9PSFbdW5kZWZpbmVkXSl7cmV0dXJuIE0uY3JlYXRlRWxlbWVudChUKTtpZih7fSlicmVha319LEEpLmNyZWF0ZVRleHROb2RlPWZ1bmN0aW9uKEYpe3JldHVybiB0aGlzLkxxLmNyZWF0ZVRleHROb2RlKFN0cmluZyhGKSl9LEEuYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oRixNKXtGLmFwcGVuZENoaWxkKE0pfSxBKS5hcHBlbmQ9ZnVuY3Rpb24oRixNKXt2XyhGLm5vZGVUeXBlPT05P0Y6Ri5vd25lckRvY3VtZW50fHxGLmRvY3VtZW50LCJudW1iZXIiLCIiLGFyZ3VtZW50cyxGLDAsInN0cmluZyIpfSxBKS5jYW5IYXZlQ2hpbGRyZW49ZnVuY3Rpb24oRixNKXt7TT00OTt3aGlsZShNIT01OCl7aWYoTT09ODkpcmV0dXJuIGZhbHNlO2lmKE09PTQ5KU09Ri5ub2RlVHlwZSE9MT84OToxODtlbHNlIGlmKE09PTE4KXtzd2l0Y2goRi50YWdOYW1lKXtjYXNlICJBUFBMRVQiOmNhc2UgIkFSRUEiOmNhc2UgIkJBU0UiOmNhc2UgIkJSIjpjYXNlICJDT0wiOmNhc2UgIkNPTU1BTkQiOmNhc2UgIkVNQkVEIjpjYXNlICJGUkFNRSI6Y2FzZSAiSFIiOmNhc2UgIklNRyI6Y2FzZSAiSU5QVVQiOmNhc2UgIklGUkFNRSI6Y2FzZSAiSVNJTkRFWCI6Y2FzZSAiS0VZR0VOIjpjYXNlICJMSU5LIjpjYXNlICJOT0ZSQU1FUyI6Y2FzZSAiTk9TQ1JJUFQiOmNhc2UgIk1FVEEiOmNhc2UgIk9CSkVDVCI6Y2FzZSAiUEFSQU0iOmNhc2UgIlNDUklQVCI6Y2FzZSAiU09VUkNFIjpjYXNlICJTVFlMRSI6Y2FzZSAiVFJBQ0siOmNhc2UgIldCUiI6cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfX19fSxBKS5yZW1vdmVOb2RlPWRZLEEuY29udGFpbnM9ZnVuY3Rpb24oRixNLFQpe3tUPTk7d2hpbGUoVCE9NjIpaWYoVD09NjcpVD1GLmNvbnRhaW5zJiZNLm5vZGVUeXBlPT0xPzQ2OjU7ZWxzZXtpZihUPT0xMSlyZXR1cm4gRj09TXx8ISEoRi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihNKSYxNik7aWYoVD09NzEpVD02ODtlbHNlIGlmKFQ9PTI4KVQ9Njg7ZWxzZXtpZihUPT0yNSlyZXR1cm4gTT09RjtpZihUPT00NilyZXR1cm4gRj09TXx8Ri5jb250YWlucyhNKTtpZihUPT03NSlyZXR1cm4gZmFsc2U7VD09OT9UPUYmJk0\/Njc6NzU6VD09NzY\/KE09TS5wYXJlbnROb2RlLFQ9MjgpOlQ9PTU\/VD10eXBlb2YgRi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiE9InVuZGVmaW5lZCI\/MTE6NzE6VD09NjgmJihUPU0mJkYhPU0\/NzY6MjUpfX19fSwyOSksU3UpLFN1LnByb3RvdHlwZS5VQz0wLFN1LnByb3RvdHlwZSkuQXg9IiIsQTIpLFI0KSxBMikucHJvdG90eXBlLEEpLnhFPVN1LmMkKCksQS5QPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVH0sQSkuZ2V0UGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaTN9LEEuTlo9ZnVuY3Rpb24oKXt0aGlzLlRpPSEoanUoNTMsdGhpcywxMSxmdW5jdGlvbihGKXtGLlRpJiZGLk5aKCl9KSx0aGlzLnppJiZjOCgxMywwLHRydWUsdGhpcy56aSksMSl9LEEpLm89ZnVuY3Rpb24oRil7Zm9yKEY9NTE7RiE9Njg7KUY9PTEwP0Y9dGhpcy56aT83Njo0OTpGPT03Nj8odGhpcy56aS5kaXNwb3NlKCksZGVsZXRlIHRoaXMuemksRj00OSk6Rj09NTE\/KHRoaXMuVGkmJnRoaXMuTlooKSxGPTEwKTpGPT00OSYmKGp1KDUzLHRoaXMsMTIsZnVuY3Rpb24oTSl7TS5kaXNwb3NlKCl9KSwhdGhpcy5DdiYmdGhpcy5UJiZkWSh0aGlzLlQpLHRoaXMuVD10aGlzLmkzPXRoaXMuZnE9dGhpcy5kUD1udWxsLEEyLkQuby5jYWxsKHRoaXMpLEY9NjgpfSxBKS5QJD1mdW5jdGlvbihGLE0pe2ZvcihNPTkyO00hPTE4OylpZihNPT05MilNPXRoaXMuaTMmJnRoaXMuaTMhPUY\/NTg6OTA7ZWxzZSBpZihNPT05MClBMi5ELlAkLmNhbGwodGhpcyxGKSxNPTE4O2Vsc2UgaWYoTT09NTgpdGhyb3cgRXJyb3IoIk1ldGhvZCBub3Qgc3VwcG9ydGVkIik7fSxBKS5yZW1vdmVDaGlsZD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTix0LHEsYyxQKXtmb3IoUD01NDtQIT00NzspaWYoUD09OClGPXQsUD00NjtlbHNlIGlmKFA9PTUyKUYuTlooKSxGLlQmJmRZKEYuVCksUD0xMDtlbHNlIGlmKFA9PTYyKVYuaTM9bnVsbCxBMi5ELlAkLmNhbGwoVixudWxsKSxQPTgzO2Vsc2UgaWYoUD09NTQpUD1GPzY4OjgzO2Vsc2UgaWYoUD09NjgpUD10eXBlb2YgRj09PSJzdHJpbmciPzkyOjE1O2Vsc2UgaWYoUD09NjYpUD1WPT1udWxsPzg2OjYyO2Vsc2UgaWYoUD09OTMpYz10aGlzLmZxLHcgaW4gYyYmZGVsZXRlIGNbd10sWGIoOCw1OSwwLHRoaXMuZFAsRiksUD0yOTtlbHNlIGlmKFA9PTgzKVA9Rj83MTo4MTtlbHNlIGlmKFA9PTI5KVA9TT81MjoxMDtlbHNlIGlmKFA9PTE1KVA9KEc9Ri5KeCk\/NTA6NTtlbHNlIGlmKFA9PTEwKVY9RixQPTY2O2Vsc2UgaWYoUD09NSlUPUYueEUscT1GLE49VC5BeCsiOiIrKFQuVUMrKykudG9TdHJpbmcoMzYpLEc9cS5KeD1OLFA9NTA7ZWxzZSBpZihQPT0yNyl4PXRoaXMuZnEsdD0oeCE9PW51bGwmJncgaW4geD94W3ddOnZvaWQgMCl8fG51bGwsUD04O2Vsc2UgaWYoUD09Nzkpdz1LLFA9NjU7ZWxzZXtpZihQPT04MSl0aHJvdyBFcnJvcigiQ2hpbGQgaXMgbm90IGluIHBhcmVudCBjb21wb25lbnQiKTtpZihQPT01MClLPUcsUD03OTtlbHNlIGlmKFA9PTQ2KVA9dyYmRj85Mzo4MztlbHNlIGlmKFA9PTY1KVA9dGhpcy5mcSYmdz8yNzo2NztlbHNle2lmKFA9PTcxKXJldHVybiBGO2lmKFA9PTkyKUs9RixQPTc5O2Vsc2V7aWYoUD09ODYpdGhyb3cgRXJyb3IoIlVuYWJsZSB0byBzZXQgcGFyZW50IGNvbXBvbmVudCIpO1A9PTY3JiYodD1udWxsLFA9OCl9fX19O3ZhciB4QSxHbj17YnV0dG9uOiJwcmVzc2VkIixjaGVja2JveDoiY2hlY2tlZCIsbWVudWl0ZW06InNlbGVjdGVkIixtZW51aXRlbWNoZWNrYm94OiJjaGVja2VkIixtZW51aXRlbXJhZGlvOihEbigxNiwyOCxuNSksQT1uNS5wcm90b3R5cGUsImNoZWNrZWQiKSxyYWRpbzoiY2hlY2tlZCIsdGFiOiJzZWxlY3RlZCIsdHJlZWl0ZW06InNlbGVjdGVkIn07aWYoQS5LcT0oQS5lYT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTil7Zm9yKE49KHc9MTMsNDMpOzspdHJ5e2lmKHc9PTc0KWJyZWFrO2Vsc2Ugdz09Mz93PUYuSSYzMj8xMDo2NDp3PT01MD93PUshPU0\/MTk6NzQ6dz09NTk\/dz1NPzc3OjgyOnc9PTM5PyhOPTQzLHc9Myk6dz09MzM\/KE49NDMsdz0zOSk6dz09Njg\/dz0hTSYmRi5JJjMyPzY2OjY0Onc9PTEwPyhGLlZyJjQmJkYuSCQmNCYmRi5zZXRBY3RpdmUoZmFsc2UpLEYuVnImMzImJkYuSCQmMzImJk1YKDgsMTYsRixmYWxzZSwzMikmJkYuQSgzMixmYWxzZSksdz02NCk6dz09MTk\/KHg9VCx3PTU5KTp3PT02Mj8oRz1ULnRhYkluZGV4LEs9dHlwZW9mIEc9PT0ibnVtYmVyIiYmRz49MCYmRzwzMjc2OCx3PTUwKTp3PT02Nj8oTj0xNCxULmJsdXIoKSx3PTM5KTp3PT03Nz8oeC50YWJJbmRleD0wLHc9NzQpOnc9PTgyPyh4LnRhYkluZGV4PS0xLHgucmVtb3ZlQXR0cmlidXRlKCJ0YWJJbmRleCIpLHc9NzQpOnc9PTY0P3c9KEs9VC5oYXNBdHRyaWJ1dGUoInRhYmluZGV4IikpPzYyOjUwOnc9PTEzJiYodz1GLkgkJjMyJiYoVD1GLmtOKCkpPzY4Ojc0KX1jYXRjaCh0KXtpZihOPT00Myl0aHJvdyB0O049PTE0JiYoVj10LHc9MzMpfX0sQS5XJD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcpeyhLPShWPSh4QXx8KHhBPXsxOiJkaXNhYmxlZCIsODoic2VsZWN0ZWQiLDE2OiJjaGVja2VkIiw2NDoiZXhwYW5kZWQifSkseEFbTV0pLEYuZ2V0QXR0cmlidXRlKCJyb2xlIikpfHxudWxsKT8odz1HbltLXXx8VixHPVY9PSJjaGVja2VkInx8Vj09InNlbGVjdGVkIj93OlYpOkc9ViwoeD1HKSYmVEEoZmFsc2UsRiwiZmFsc2UiLDIzLCIgIixULHgpfSxBLmtOPWZ1bmN0aW9uKEYpe3JldHVybiBGLlAoKX0sZnVuY3Rpb24oRixNLFQsSyl7KEs9Ri5QP0YuUCgpOkYpJiYoVD9xODpvRCkoSyxbTV0pfSksdHJ1ZSlBLkE9ZnVuY3Rpb24oRixNLFQsSyx4LEcsVil7e1Y9Nzc7d2hpbGUoViE9NjgpVj09NTk\/Vj10aGlzLnBxPzExOjY2OlY9PTExPygoSz10aGlzLnBxW01dKSYmdGhpcy5LcShGLEssVCksdGhpcy5XJCh4LE0sVCksVj02OCk6Vj09NjY\/KEc9dGhpcy56UygpLEcucmVwbGFjZSgvXFx4YTB8XFxzL2csIiAiKSx0aGlzLnBxPXsxOkcrIi1kaXNhYmxlZCIsMjpHKyItaG92ZXIiLDQ6RysiLWFjdGl2ZSIsODpHKyItc2VsZWN0ZWQiLDE2OkcrIi1jaGVja2VkIiwzMjpHKyItZm9jdXNlZCIsNjQ6RysiLW9wZW4ifSxWPTExKTpWPT03Nz8oeD1GLlAoKSxWPTc2KTpWPT03NiYmKFY9eD81OTo2OCl9fTt2YXIgYjA9KERuKDE2LDI2LChzRygyLDgsKEEuelM9ZnVuY3Rpb24oKXtyZXR1cm4iZ29vZy1jb250cm9sIn0sejApLG41KSx6MCkpLHt9KTsoKCgoejAucHJvdG90eXBlLnpTPWZ1bmN0aW9uKCl7cmV0dXJuImdvb2ctYnV0dG9uIn0sejAucHJvdG90eXBlKS5XJD1mdW5jdGlvbihGLE0sVCl7c3dpdGNoKE0pe2Nhc2UgODpjYXNlIDE2OlRBKGZhbHNlLEYsImZhbHNlIiwyMiwiICIsVCwicHJlc3NlZCIpO2JyZWFrO2RlZmF1bHQ6Y2FzZSA2NDpjYXNlIDE6ejAuRC5XJC5jYWxsKHRoaXMsRixNLFQpfX0sc0coMiw2LFQwLEEyKSxBPVQwLnByb3RvdHlwZSxBKS5JPTAsQS5OWj1mdW5jdGlvbigpeyhUMC5ELk5aLmNhbGwodGhpcyksdGhpcy52JCYmdGhpcy52JC5kZXRhY2goKSx0aGlzKS5pc1Zpc2libGUoKSYmdGhpcy5pc0VuYWJsZWQoKSYmdGhpcy5XLmVhKHRoaXMsZmFsc2UpfSxBKS55Zz10cnVlLEEpLkgkPTM5O3doaWxlKCJaIilpZihBLm89ZnVuY3Rpb24oRil7e0Y9NTc7d2hpbGUoRiE9NzEpRj09NDA\/KHRoaXMudiQuZGlzcG9zZSgpLGRlbGV0ZSB0aGlzLnYkLEY9MzYpOkY9PTgzP0Y9dGhpcy52JD80MDozNjpGPT01Nz8oVDAuRC5vLmNhbGwodGhpcyksRj04Myk6Rj09MzYmJihkZWxldGUgdGhpcy5XLHRoaXMuTz1udWxsLEY9NzEpfX0sdHJ1ZSlicmVhaztBLmdldFN0YXRlPShBLk89KEEuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4hISh0aGlzLkkmNCl9LEEuc2V0QWN0aXZlPWZ1bmN0aW9uKEYpe3doaWxlKCFbdW5kZWZpbmVkXT09MClpZihNWCgxNiwxNix0aGlzLEYsNCkmJnRoaXMuQSg0LEYpLHt9KWJyZWFrfSxudWxsKSxBLmtOPShBLlpsPTAsQS5LcT1mdW5jdGlvbihGLE0sVCl7e1Q9NjU7d2hpbGUoVCE9NzMpVD09ODU\/KHRoaXMuTz9KKDU2LDEsdGhpcy5PLEYpPj0wfHx0aGlzLk8ucHVzaChGKTp0aGlzLk89W0ZdLHRoaXMuVy5LcSh0aGlzLEYsdHJ1ZSksVD03Myk6VD09NDA\/KHRoaXMuVy5LcSh0aGlzLEYsZmFsc2UpLFQ9NzMpOlQ9PTU1P1Q9Rj84NTo3MzpUPT05Nj9UPUYmJnRoaXMuTyYmWGIoOCw2MSwwLHRoaXMuTyxGKT81Mzo3MzpUPT03OT8odGhpcy5PPW51bGwsVD00MCk6VD09NTM\/VD10aGlzLk8ubGVuZ3RoPT0wPzc5OjQwOlQ9PTY1JiYoVD1NPzU1Ojk2KX19LChBLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiEodGhpcy5JJjEpfSxBKS5pc1Zpc2libGU9KEEuQT1mdW5jdGlvbihGLE0sVCxLLHgsRyxWKXtmb3IoVj03MztWIT03OylWPT0zMj9WPUc\/ODo0ODpWPT0xMz9WPXgmJnR5cGVvZiB4LmlzRW5hYmxlZD09ImZ1bmN0aW9uIiYmIXguaXNFbmFibGVkKCl8fCFNWCg0MCwxNix0aGlzLCFHLDEpPzc6MzI6Vj09MTc\/KHRoaXMuVy5BKHRoaXMsRixNKSx0aGlzLkk9TT8oSz10aGlzLkksLX5LKyhLXkYpKyh+S3xGKSk6dGhpcy5JJn5GLFY9Nyk6Vj09NDQ\/KEc9IU0seD10aGlzLmdldFBhcmVudCgpLFY9MTMpOlY9PTQ4Pyh0aGlzLnNldEFjdGl2ZShmYWxzZSksTVgoNDgsMTYsdGhpcyxmYWxzZSwyKSYmdGhpcy5BKDIsZmFsc2UpLFY9OCk6Vj09OD8odGhpcy5pc1Zpc2libGUoKSYmdGhpcy5XLmVhKHRoaXMsRyksdGhpcy5BKDEsIUcsdHJ1ZSksVj03KTpWPT01Nj9WPXRoaXMuSCQmRiYmTSE9ISEodGhpcy5JJkYpPzE3Ojc6Vj09NzMmJihWPVR8fEYhPTE\/NTY6NDQpfSxmdW5jdGlvbigpe3JldHVybiB0aGlzLnlnfSksZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5XLmtOKHRoaXMpfSksQS5Wcj0yNTUsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5JfSk7d2hpbGUodHlwZW9mIFQwIT09ImZ1bmN0aW9uIil7dGhyb3cgRXJyb3IoIkludmFsaWQgY29tcG9uZW50IGNsYXNzICIrVDApO2lmKCEhW10pYnJlYWt9c3dpdGNoKCEodHlwZW9mIG41IT09ImZ1bmN0aW9uIikpe2Nhc2UgMD09IVtdOiFbIiJdPT0wO2JyZWFrO2Nhc2UgZmFsc2U6dGhyb3cgRXJyb3IoIkludmFsaWQgcmVuZGVyZXIgY2xhc3MgIituNSk7YnJlYWt9dmFyIFZQPU9HKDQwLFQwLDgpOygoc0coMiwoKERuKDE2LDI3LChzRygyLChiMFtWUF09bjUsZSg1NixmdW5jdGlvbigpe3JldHVybiBuZXcgVDAobnVsbCl9LCJnb29nLWNvbnRyb2wiKSw3KSxLNSx6MCksSzUpKSxLNS5wcm90b3R5cGUuZWE9ZnVuY3Rpb24oKXt9LEs1KS5wcm90b3R5cGUuQT1mdW5jdGlvbihGLE0sVCxLLHgpe3t4PTMzO3doaWxlKHghPTI3KXg9PTMzPyhLNS5ELkEuY2FsbCh0aGlzLEYsTSxUKSxLPUYuUCgpLHg9NzQpOng9PTE\/KEsuZGlzYWJsZWQ9VCx4PTI3KTp4PT03NCYmKHg9SyYmTT09MT8xOjI3KX19LEs1LnByb3RvdHlwZS5XJD1mdW5jdGlvbigpe30sMTApLElELFQwKSxJRC5wcm90b3R5cGUpLm89ZnVuY3Rpb24oKXtkZWxldGUgKGRlbGV0ZSAoSUQuRC5vLmNhbGwodGhpcyksdGhpcykud2ssdGhpcykuVmd9LGUpKDU3LGZ1bmN0aW9uKCl7aWYoIVtdPT0oZmFsc2UhPTA9PW51bGwpKXJldHVybiBuZXcgSUQobnVsbCl9LCJnb29nLWJ1dHRvbiIpO3ZhciBRbCxGcz1FLnJlcXVlc3RJZGxlQ2FsbGJhY2s\/ZnVuY3Rpb24oRil7cmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpe0YoKX0se3RpbWVvdXQ6NH0pfTpFLnNldEltbWVkaWF0ZT9mdW5jdGlvbihGKXtzZXRJbW1lZGlhdGUoRil9OmZ1bmN0aW9uKEYpe3NldFRpbWVvdXQoRiwwKX0sd1k9e3Bhc3NpdmU6dHJ1ZSxjYXB0dXJlOnRydWV9LGpMPVN0cmluZy5mcm9tQ2hhckNvZGUoMTA1LDExMCwxMTYsMTAxLDEwMyw2NywxMDQsMTAxLDk5LDEwNyw2NiwxMjEsMTEyLDk3LDExNSwxMTUpLFluPShiLnByb3RvdHlwZS5FQz12b2lkIDAsYi5wcm90b3R5cGUubWY9ZmFsc2UsYi5wcm90b3R5cGUuWE49InRvU3RyaW5nIix7fSksTk09W10sQl89KGIucHJvdG90eXBlLk1YPXZvaWQgMCxbXSksekE9W10sdUM9W10saUM9W10sdEQ9W10sUF89W10sTU09W10sY189KCgoWHMsZnVuY3Rpb24oKXt9KSgkbiksUWQsZnVuY3Rpb24oKXt9KShFeSksTTgsaEQsdm9pZCAwKSx4bj0oKCgoKEE9Yi5wcm90b3R5cGUsKGIucHJvdG90eXBlLlU9ImNyZWF0ZSIsQSkuTVo9ZnVuY3Rpb24oRixNLFQsSyx4LEcpe3JldHVybiBsLmNhbGwodGhpcyxGLE0sMTEsVCxLLHgsRyl9LEEpLlJUPWZ1bmN0aW9uKCl7cmV0dXJuIEVHLmNhbGwodGhpcyw2NSw0OCl9LEEpLmtFPWZ1bmN0aW9uKEYsTSxULEsseCxHKXtyZXR1cm4gblkuY2FsbCh0aGlzLEcsTSxULHgsSyw5LEYpfSxBKS5lWD1mdW5jdGlvbihGLE0sVCxLLHgsRyxWLHcsTil7cmV0dXJuIHUuY2FsbCh0aGlzLE0sNTcsRixULEsseCxHLFYsdyxOKX0sQSkuUGI9MCxBLmRrPWZ1bmN0aW9uKCl7cmV0dXJuIHhZLmNhbGwodGhpcywxNil9LFluKS5jb25zdHJ1Y3RvcjtBPSgoQS5YVj1mdW5jdGlvbihGLE0sVCxLLHgsRyl7cmV0dXJuIFhiLmNhbGwodGhpcyw4LDE2LEYsTSxULEsseCxHKX0sQSkuSj0od2luZG93LnBlcmZvcm1hbmNlfHx7fSkubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHRoaXMucVgrd2luZG93LnBlcmZvcm1hbmNlLm5vdygpfTpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sYi5wcm90b3R5cGUpLEEuUj1mdW5jdGlvbihGLE0pe3JldHVybiBGPXt9LGNfPShNPXt9LGZ1bmN0aW9uKCl7cmV0dXJuIE09PUY\/NDQ6MzN9KSxmdW5jdGlvbihULEsseCxHLFYsdyxOLHQscSxjLFAseSx6LEQsSCxZLGQsQixwLFUsVyxWbCxoLEtZLFEsTlgscixMLEZiLGEsakgsbV8sUixIXyxnVixnLHRILFpuLFA4LGNMLG0sbEMsYTQpe2c9NDYsbT05MixQOD11bmRlZmluZWQ7e3RIPWZhbHNlO3doaWxlKE5hTiE9PU5hTil0cnl7aWYobT09MjYpYnJlYWs7ZWxzZSBpZihtPT0zNiltPXc9PXREPzI1OjE7ZWxzZSBpZihtPT03MClkLmxlbmd0aD0wLG09NzY7ZWxzZSBpZihtPT05NyltPTgyO2Vsc2UgaWYobT09OTgpbT1XPzEzOjY3O2Vsc2UgaWYobT09NDUpZz02NyxVeSh0aGlzLDE3LFpuLDApLFA4PTI2LG09NzY7ZWxzZSBpZihtPT0wKW09dz09aUM\/NDQ6NTM7ZWxzZSBpZihtPT03KW09S1k+MjU1PzQ6MTg7ZWxzZSBpZihtPT0yNylQOCE9PXVuZGVmaW5lZD8obT1QOCxQOD11bmRlZmluZWQpOm09MjY7ZWxzZSBpZihtPT0zOSl0aGlzLkQ2PUcsdGhpcy5DPXRoaXMuRDYubGVuZ3RoPDwzLG4oMjAyLHRoaXMsWzAsMCwwXSksbT02MztlbHNlIGlmKG09PTE5KWc9MTQseT1hdG9iKFIpLEc9W10sdD1WPTAsbT04NjtlbHNlIGlmKG09PTEyKXI9WS5uZXh0KCksbT05NjtlbHNlIGlmKG09PTk2KW09ci5kb25lPzcwOjM0O2Vsc2UgaWYobT09NTgpZz02Nyx0aGlzLk49eCxtPTY7ZWxzZSBpZihtPT05MilQPU0sTT1GLG09MzE7ZWxzZSBpZihtPT02Nil6PVcsUyh0aGlzLDIyNykubGVuZ3RoPWEuc2hpZnQoKSxPKHRoaXMsNDU0KVswXT1hLnNoaWZ0KCksWih0aGlzLDI0NSkubGVuZ3RoPWEuc2hpZnQoKSxPKHRoaXMsNTA4KS5sZW5ndGg9YS5zaGlmdCgpLE8odGhpcywzMTcpLmxlbmd0aD1hLnNoaWZ0KCksUyh0aGlzLDQ2MCkubGVuZ3RoPWEuc2hpZnQoKSxPKHRoaXMsMjY0KS5sZW5ndGg9YS5zaGlmdCgpLFModGhpcywyMzgpLmxlbmd0aD1hLnNoaWZ0KCksYTQ9eixQOD04LG09NzY7ZWxzZSBpZihtPT04NSlqSD1RW05dW3RoaXMuWE5dKDE2KSxqSC5sZW5ndGg9PTEmJihqSD0iMCIrakgpLFcrPWpILG09NjQ7ZWxzZSBpZihtPT0xKW09dz09TU0\/NDY6ODE7ZWxzZSBpZihtPT00KUdbVisrXT0tKEtZfDApLTIqfihLWSYyNTUpKy0yKyhLWSYtMjU2KSxLWT4+PTgsbT0xODtlbHNlIGlmKG09PTYzKWc9NjcsV18oNyx0aGlzLDIwNDgsODAwMSksbT03NjtlbHNlIGlmKG09PTQ2KWFEKDExNSxUWzFdLDcsVFsyXSx0aGlzKSxtPTc2O2Vsc2UgaWYobT09ODIpbT1OPFEubGVuZ3RoPzg1OjY2O2Vsc2V7aWYobT09OClyZXR1cm4gYTQ7aWYobT09MjUpYT1UWzJdLEQ9QygoZ1Y9Wih0aGlzLDIyNykubGVuZ3RoLChnViYyKS1+KGdWfDIpKyhnViYtMykrKH5nVnwyKSksMikseD10aGlzLk4sdGhpcy5OPXRoaXMsbT0yOTtlbHNlIGlmKG09PTgzKWE0PWFEKDExNSxUWzFdLDcsODAwMSx0aGlzKSxQOD03NCxtPTc2O2Vsc2UgaWYobT09NTkpSkQodGhpcyxDKEgubGVuZ3RoLDIpLmNvbmNhdChIKSwyMjcsMTY2KSxtPTU4O2Vsc2UgaWYobT09NiltPVA4IT09dW5kZWZpbmVkPzc2OjQxO2Vsc2UgaWYobT09NDEpZz02NyxRPSRuKDIpLmNvbmNhdChaKHRoaXMsMjI3KSksUVsxXT1RWzBdXjYwLFFbM109KEhfPVFbMV0sTlg9RFswXSwoSF98MCkrKE5YfDApKzIqfihIXyZOWCktIC0yKSxRWzRdPShjPVFbMV0scT1EWzFdLChjfDApLShxfDApLTIqKH5jXnEpKzIqKH5jfHEpKSxXPXRoaXMuZnYoUSksbT05ODtlbHNlIGlmKG09PTgxKW09dz09Tk0\/ODM6NzM7ZWxzZSBpZihtPT02OClUWzFdLnB1c2goTyh0aGlzLDIyNykubGVuZ3RoLFModGhpcyw0NTQpWzBdLFoodGhpcywyNDUpLmxlbmd0aCxTKHRoaXMsNTA4KS5sZW5ndGgsWih0aGlzLDMxNykubGVuZ3RoLFoodGhpcyw0NjApLmxlbmd0aCxaKHRoaXMsMjY0KS5sZW5ndGgsTyh0aGlzLDIzOCkubGVuZ3RoKSxmKDExNSx0aGlzLFRbMl0pLHRoaXMuQlszNzZdJiZhRCgxMTUsWih0aGlzLDM3NiksNyw4MDAxLHRoaXMpLG09NzY7ZWxzZSBpZihtPT02NClOKyssbT04MjtlbHNlIGlmKG09PTYxKW09SC5sZW5ndGg+MUU2PzkxOjU5O2Vsc2UgaWYobT09NTcpdCsrLG09MTY7ZWxzZSBpZihtPT03NilnPTQ2LE09UCxtPTI3O2Vsc2UgaWYobT09MTgpR1tWKytdPUtZLG09NTc7ZWxzZSBpZihtPT0zMSlnPTY3LHc9VFswXSxtPTA7ZWxzZSBpZihtPT01MyltPXc9PVBfPzY4OjM2O2Vsc2UgaWYobT09MjkpZz0xMCxGYj1aKHRoaXMsMTgwKSxGYi5sZW5ndGg+MCYmSkQodGhpcyxDKEZiLmxlbmd0aCwyKS5jb25jYXQoRmIpLDIyNyw0OCksSkQodGhpcyxDKHRoaXMuRysxPj4xLDEpLDIyNyw4NyksSkQodGhpcyxDKHRoaXNbdERdLmxlbmd0aCwxKSwyMjcpLFU9dGhpcy5ZTj9TKHRoaXMsNTA4KTpPKHRoaXMsNDYwKSxVLmxlbmd0aD4wJiZldSh0aGlzLEMoVS5sZW5ndGgsMikuY29uY2F0KFUpLDI2NCw2NCksVmw9Tyh0aGlzLDI2NCksVmwubGVuZ3RoPjQmJkpEKHRoaXMsQyhWbC5sZW5ndGgsMikuY29uY2F0KFZsKSwyMjcsNjUpLEs9MCxLLT0oTD1TKHRoaXMsMjI3KS5sZW5ndGgsKEx8NSktKEwmNSktIC0xMisyKihMfC02KSksSD1PKHRoaXMsMjQ1KSxLKz0ocD1PKHRoaXMsMjkzKSwtfihwfDIwNDcpLSh+cCYyMDQ3KSsofnB8MjA0NykpLEgubGVuZ3RoPjQmJihLLT0oSC5sZW5ndGh8MCkrMyksSz4wJiZKRCh0aGlzLEMoSywyKS5jb25jYXQoJG4oSykpLDIyNyw1MyksbT01MTtlbHNlIGlmKG09PTkpS1k9eS5jaGFyQ29kZUF0KHQpLG09NztlbHNlIGlmKG09PTM3KWc9NjksaCgpLG09MTI7ZWxzZSBpZihtPT00NClSPVRbMV0sbT0xOTtlbHNlIGlmKG09PTEzKVc9IioiK1csbT02NjtlbHNlIGlmKG09PTUxKW09SC5sZW5ndGg+ND82MTo1ODtlbHNlIGlmKG09PTE0KWc9NjcsbT0xMjtlbHNlIGlmKG09PTczKW09dz09Ql8\/OTM6NzY7ZWxzZSBpZihtPT04NiltPTE2O2Vsc2UgaWYobT09NjApbT05NjtlbHNlIGlmKG09PTkzKXtpZihtXz0oZD1TKHRoaXMsMTcpLHR5cGVvZiBTeW1ib2wpIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZkW1N5bWJvbC5pdGVyYXRvcl0pQj1tXy5jYWxsKGQpO2Vsc2UgaWYodHlwZW9mIGQubGVuZ3RoPT0ibnVtYmVyIilCPXtuZXh0OmM4KDE2LDAsZCl9O2Vsc2UgdGhyb3cgRXJyb3IoU3RyaW5nKGQpKyIgaXMgbm90IGFuIGl0ZXJhYmxlIG9yIEFycmF5TGlrZSIpO209KFk9QixyPVkubmV4dCgpLDYwKX1lbHNlIGlmKG09PTM0KWg9ci52YWx1ZSxtPTM3O2Vsc2UgaWYobT09OTEpSD1ILnNsaWNlKDAsMUU2KSxldSh0aGlzLFtdLDIyNywxOTcpLGV1KHRoaXMsW10sMjI3LDM2KSxtPTU5O2Vsc2UgaWYobT09MTYpbT10PHkubGVuZ3RoPzk6Mzk7ZWxzZSBpZihtPT02NylOPTAsVz0iIixtPTk3O2Vsc2V7aWYobT09NzQpcmV0dXJuIGE0O2lmKG09PTc3KXRocm93IGxDO319fWNhdGNoKGZZKXtpZihnPT0obEM9ZlksNDYpKXRocm93IGZZO2c9PTE0Pyhabj1mWSxtPTQ1KTpnPT02OT8oY0w9ZlksbT0xNCk6Zz09Njc\/KFA4PTc3LG09NzYpOmc9PTEwJiYoUDg9NzcsbT01OCl9fX19KCk7dmFyIEw1LEM1PShBLmZ2PWZ1bmN0aW9uKEYsTSxULEsseCl7cmV0dXJuIGgyLmNhbGwodGhpcyw4MCw5LEYsTSxULEsseCl9LEEuU1g9MCxiLnByb3RvdHlwZVt1Q109WzAsMCwxLDEsMCwxLDFdLEEucms9KChBLkVLPWZ1bmN0aW9uKCl7cmV0dXJuIEVHLmNhbGwodGhpcyw2NSwxMCl9LEEpLm9UPWZ1bmN0aW9uKCl7cmV0dXJuIGM4LmNhbGwodGhpcywyOSl9LDApLC8uLyksUEw9aUMucG9wLmJpbmQoYi5wcm90b3R5cGVbUF9dKTt3aGlsZSgiZyIpaWYoQzVbYi5wcm90b3R5cGUuWE5dPVBMLHRydWUpYnJlYWs7dmFyIGJDPShMNT1HMCg5LDI4LGIucHJvdG90eXBlLlUse2dldDpQTH0pLGIucHJvdG90eXBlLlRTPXZvaWQgMCxmdW5jdGlvbihGLE0pe3JldHVybihNPUZCKDgzLDk4LDg4LDkzLCJlcnJvciIsImtzIixudWxsKSkmJkYuZXZhbChNLmNyZWF0ZVNjcmlwdCgiMSIpKT09PTE\/ZnVuY3Rpb24oVCl7cmV0dXJuIE0uY3JlYXRlU2NyaXB0KFQpfTpmdW5jdGlvbihUKXtyZXR1cm4iIitUfX0pKEUpOyhRbD1FLmtuaXRzYWlsfHwoRS5rbml0c2FpbD17fSksUWwubT40MCl8fChRbC5tPTQxLFFsLmtzPWY1LFFsLmE9VzgpLFFsLnpicF89ZnVuY3Rpb24oRixNLFQsSyx4LEcsVix3KXtyZXR1cm5bZnVuY3Rpb24oTil7cmV0dXJuIFhiKDgsMTIsZmFsc2UsdyxOKX0sKHc9bmV3IGIoTSx4LEcsSyxGLFYpLGZ1bmN0aW9uKE4pe3cuRUsoTil9KV19O30pLmNhbGwodGhpcyk7J10uam9pbignXG4nKSkpO30pLmNhbGwodGhpcyk7PC9zY3JpcHQ+PHNjcmlwdCBub25jZT0iTUV1MUpaWU9UTFZiVUx0ZUVvR1JrdyI+KGZ1bmN0aW9uKCl7dmFyIHI9JzEnO3ZhciBjZT0zMDt2YXIgc2N0bT1mYWxzZTt2YXIgcD0nemJwQllTdHFJeHRNem1rZkdZYUUxSDN6RUVSQWxmakk1bVU2T0JmUlo2aS9ndUttSHFxd0NjSTdqZWszcFN1Y3ltTGkwem1JUktVQTl6K1RIMDVZSVFEUWgrVjNqai9xTFk3VTFYa2kwMjZDMndFVWdzUkZUT3crcm9RWm0yUWJsT0hSblQ1eU40SWNKemZYMFZLVGw4bTFOaldKTFRZdXdkSS81bDZKN28zTEkrcjdLOWR1RG92T0dkNHVDVWZ1d1VpcnZFaHpaOERBSHpYV0JId1FCSkdiQkhwRFN1eWxXcnVqT1k1U1NGR2tPVGQxdGNUMFFIZUV5dGErT0UxV2Q4L2FWWGp6dEhoTUZndWhyQi9EbUQrSEt0YWcwMW5xRm52RmtoQTVqTXhudHpwUnBLVm1BeTIzZzNvL0trRUNNYVhRbzg1cWhOZ1VyWkR3akhzOWQ1MzN5VnJoMDdycWFQQW9YOXV5WFp1aDdyY0llbVl6aGpmYVl4N2h3VkdXbnVtdE1hTVFQd2lxK1dzUkxFbnRTVENFRk94ZUlpWmtadDZtUUFTMUVzdExSdDFqaGZzNXR3amxPR1dhNGE2T2NLUW13TUNMM21HLzY1MUdTSmRFSlNmVThJdGVkQXdoSjV4dGJHMVRqMmoyZUlPZXo2dC9oYjhzblhHL2VQVlc1cVBTc0J0Z0VDeHA1cS9mQitCU3o5cExCQy9Qd1JmMUwydTFORVNXb0ZXMHprYnZiTEVrMzR1bStzRit1eXZQY2lENVhuZzhTbDF6WDZmakVyeVNGNHFnakE0THc2TTdibUVHNjVYamFNRm1QQjAzUS9FSTVPRTYyRldyOU5oQUdJUWpYeHNma29KeGcwTnJ2aUgweXZPQThIWHB0K2VacmtjMDdQTkRFZGVsWFN2QWU5Z2ZYK2w2UWdXNUpRRWZ4Q0NPTlU2M3JBdEM0TU82dGRVL1RCcTVCQ1M5OFpldkQ0TlRVTW1iVkNaZWsxeW9pUUZYMlJQV0ptcXFCRHM1MVI5M3lKczJBZCtWaHFTbDBCTkFKdkdaTTZlVGFxRWtFaVp0UklGRVEyTkwwa2RKNENNSmRNNFJnakhoSUx1T0MrUTBpWXJKVXBEQUhPakJXQ2pSOC9Vdy8reXVmRzk0ek9kNkpPaWd1Zkw5N1lJeU5nVGxZMW43ZmhUd0lkVzRLV0M2c3JYVytKeU1MVGtIaFpkaXBBMVo5ZmlROUR0ak0rZVdvR3dhZVlSZTB6MU9TZDdTZ1Y3TWE4dlJiS1I1YitMSytlVDFuZzFFYllNVFZpNUZvR0toQkRtWUQ1YnBXcFArVFc3bG5BcFhtYko1MjNBUWhIb2N0bVo5MWlEZnp1Yzg5blB2WnEvcVdqMCtzVXpaZFgra0x5bFI3Ly9qanplaDVyK1AyelFmK0hQQ2hqWW5tUmFyVzE0aWxyMUxmZmRDQWIxYmg1QzBWV0Q3QXNRSk5xVmdwMS9pVFIwdVoyR3V0dEZTNEF0anJKYWIyUkNJQ3o2aWwzZURGSTZCZkZRQjl1UXFtVWxodldwc25PT2swbG9Bb0lXZXBkbG9vcm5mMXFxUXRldmpZcW82TU1FelFCL1A5WnBRMjRXV0dnbHNjZkkwdldqNTV4MjFaeEp0QllFQlZydkFJSUZMeGNQcGFnRW0xdXMyL2xad2lKMWtwbTQwaEk4bEcrZS9WL0xHM2FIQitCNWdNTHdnMWtraTdVOHlSaDAvWFp2NVlYcnZJOVZORVZ2UzFIZU5Hc3BDYkhvb3dIdHV3amRyVmVtUHQrWEVRbTNOK0p1QUtoZ25TcHhoWE5hSmtQWWtDTTZOMm9zWjBKOTJvbFJaSFk3eWNJZEtYTk0zN3h3UFIwb1IrNTlhN1dhRlNSMENHR0tQNUU5emZFNnBxakFkV2p0RzdCMGlKRU9hYS9qY1pOUUhlTWpUYjdtRTJRakxOMG1kcHNzQWZMRklFSlpTL1B3RC91RE50ZlI4K3pCUFo2MXVScm56aDVSVEtHLzRwUWpZOHhYU3VYNGlvZHU1T3RZanBTRE5oMDI3NkQ4dlBPMmdaYnhlQ1hZVjg5a1IwME4xVEJ2SGR3ak16b1IyaENyWlMyaWxZbG11Qk15enJ5TTNLV0h3dENpaHVTdzlrVCt5ZFh4UjFFeWxvOFRqbXFBUThESnhkL3Z5QXJiampXdGgxTCt6Qmk1NzZvcnlWTHdMSXZFQlNHbmtUSS9PQnVKV1AwVVEvUGdsRFR3MndHSjV6K0hPcStIS1dmblU1dEJobkxzKy9DUEhUa3BMR2ZSaFEydmk5TC9FeDVpV01aYUtvMFBXaDVvK1J1MklkNkZpQ1A5bXJMajUrU1ZvV2htdEoyUklRSzc5eUhpR09XUEx6VlJPV0NMakoyeFZHY3F3N0cybEJOQkVsTHZ0VkFCVVl1ZHY0UWh0UFlDbHhkMURiZ05pNk81Qmo4M2gwZGEyZTdGZUJrUUUrTEJvNWJGSXBpYlpxcUh2L2EvQVo1NXpBQzRpZ2ZhZWRBTDJ3UEtMN0FJNER1OGJqQStzTUkvNWtiaU9qblhsT1hISTY2WnVjbE1HM2tuZGJlTUJ4dkQvUzF4dHhjWkc3UlRtMzlJbE1WdTFLTEtLdnQyM29HQmhiUWpMQjZydWFjcnV3Umw3Tm03Q2UyNWJ0S0RPRm1JbjlFWk9RaUZVcEI5cXF1eS9haHpCZXRPdUpITFI2VlVQQUxKeTM5NkRaV3Z6REhQSmRKTUtZWlRYNzlRdUhPYWN0V3AxRFlHRGhmUWpwcXdWQWpiM21HbUVONXdYTjEycnhiZEFFTnUxUlN1bVQ2ZEIra21XS3ZRNTVZTWU2cDVDZHdFbUQ2R0ZUZ1VPdDFWNGZJWGhYMkFGWVl4MGhsZDV2NHVaRVZuRUpqRnhRNGxCVndHbGt5R1RDMTYxbjE3YlBZSDBaL3FYUHFPWi9tVktoRDUwcyttM3BUWVZSQU1rTUxIT2s1WUo5dmhCcW5lRDBzbHQ0S1MyTk5YK25zSjE4UHJrSytPZFA1V05IM3lUQ0E0cVBwZC9CZVozL3UrSW9xTi82MkZqa3NUOFF0UFVKNGs2VmFBTHRNVU1IWDJ4SjNQaTlGM1MyVk1icE5PdzdRK1E5aU9lT1hubE9mK3ZEVG0vV2gyVXYyRDBGdnVLUHJ4QzZkVHQ2WVh6cFhBZSt3VzhuMVRySGJnaVg4MVVoa0ZLd01uUjRTM1g2eTVjUzdHTkFDZWFpK0s4ekN3U3BIZHRYY2RyZkg0OVhNQ3dGaDBGMVJ5blZHN00vRW4rZ3Nwdjd4dm5ZUFZzSlhoVVcyTklBdDJ0QWVaMisvZVhWR3BRZDR4ZW5ZY1dvNGREd29UWVJCaTloalZvZVRxUG9XWEdTL1B2bEIvNGNOWER0UjFwSUZXTE9hT25rYlJ4N1MrZWVIVnpwK3Ryb1RwakQ2eG9vekVvbWlyM01EbnFENXdSZW5kY2NLdXhUTUV3eDl6Y0oxbDBVZkVjVXVqTHc0TDhUVlN1dEc4a1ZHZHBzK3lSTWxwNXMvTGdXWFBTMlo1NENHbkx6ejFFeWZxODNiaXc5S0ZGN0JGVk45ODN0MTBpRzh1WjlyYXIydnZtaHJJSHFBajUvSlNYcFdPWE1uenFqZlVmbjJDbVpBZzltQVZHTjZkOGN1TGdnb2FJSFNFbzhvRk01RVFLUitsSG92YVhzYURBZDV2SEszTmNrTjJ5ZVFJL2lYenNKWnUvclI4N2VBVXdsT2xpU2s0bDdCbURsaUFyam5kbGtsV1hpL055aWZEREpoK0ZsUnFLY1E3OUdYYy9taWZLbkROd2NXa3UxTzVUM0M0YkdmUk9tNlozdCs1VVlNRGpuQ2REMWI0eVQ1T1hSZ2lIb05vR3I3WG1FM3lxVU9XeUpNRGxodlJjOG9SS050NDFqZHFUSE5vQi9aUGJJRWh6dU1QSDA1OU5pZXJ4UDJJTkl0YVhCMUxlYXJjUHZucGE3Q0NkNE12WThwMVBRQkFxTGpDbE15cGpCZENZc2F2bXl1VHRRWXp0R09JOUY0bW1mVlNMWWo4OVIzTTcrQm85MWwvSUlpS0ZwcmZjZ3ljK0dCcnJTMXcrVFhuMDhTOFBDZE9ReDg2TFhtcVpqbnBwL1VibTNwcURJclRWVVllUUo1MEdRa0hoN3Q3WCs3emFYVWpPUDNaZnhHSm1VQm9acFdGWWpvL1QzRkVhNno0TnI0QU1HcGNHREpsYTNMYStnRmF6TVVib3RRY2pJVnhoTW5TY3B1SG5NMm83bXNaV3BCaXJXOXZub1h1UFFmSVMzMGN0WEdkUlh2ODVVeFRwQ1ZXSEpCeTlDUDlUaUM4Ykx5Ry8zdTMrZmRUVCt1emc1blI1WFdBNk1seElrcU9qbVpUSFFFNlZJNjhwMHN2U3BMSjJZUkNnUzAvL3FJWmVXSTNXclpjWDVFdXVOYUtaOWNlYlRPL1dNTk9JTXBKWGR0QWlnYzVSeWw2UFZEN3BhTnJhaC9CdVpRaldmMnVldzhRdW1MQUp5b1A1UzFIK1RZN0xkbjE3ZUtDRkpvU0dYcVUvTURkTkVMZVdUTkVwYUtoWDhCV2ZXMHlJY1dRZDBHYzZaK2NBSWxDOVY3TGVzWWZyY3MvV3Z2bE9XOU1hWW1xL3lvK2hKZVZNa1lqWVltdUNQRkd3WmVleCtOcEdneklMRnFKOU1vSkJ2dUVQd0M0Ni8yRURSczljNTBhWFB0SStMYzVoQXE3Rkx5UEx3VDdDdy9tVGJQTG43TzNNdUwvVmdKYTZ0d3dCR3lKSjF1UTRuTzUxTFNxeFl0blpTYjJGYUJxTk9OdERONFVuRTdqM0VTbEpmdTBzb0lvcjNFby9PU3A3VDVsWHUyRm1VTE1DMWdyc2F1ZkkyRXRmQ0hoQjErWVUzUWM0OWcyRFkrcFkycDJKZFJaNndzazIyNHlLSzduNW9aOGc4UU9NWGFpMDBHWlRWdjJ5SzRYejR1LzN4OU1FQW8vQm5nZmt4WnhGM1pVQndvSHdnaU0rN1U4a2hVeVdXM2MzZkR1QURsNmpMN3JiN0U1Z0xqZExtTWE4bGluNG95ZlNUTWRWU1VtR1QvNjdITytCeG0xZEwwNUs5aDI3ZGh5K0Y3QXdQdEJUaXlNL2dPbTdvbjZ5NE1CZERUZzNtQ0lWSjY2eXF1dGYzTlAyNEhhNGFGSUtVY0crd3h2Nk5WanBEY2NrRmkrb1lkOTlicWFJR2x5SWE1cW5qSUsyTW1nZ2k4bEJMZFBPWHprV2FUdzkzbVEyMU5YZGVkRFBGV0FHd2dIUkpoc2t0L0Q1Q2NVM1BYZTY1QmpKWlp5MnZLSTUxeGFyQU4rR0M4TzBBMW1UQXBraTlBRG1adE9XNjh2aXA0T3VEYWJOd2lhZkkxY05mTEF0dFZITEZGdzgwc09DSCtCQlZTTGVQbmJYZzh0T3ZIQTc1aUErR1JPeFBMN0Y4bDh2N1duOVlXVk9zMmMxME04NFRYeTRXdFE1UnF1bW5PQWFyRERscmk3SFZFdEQ4OXJpM0NnYmdwTmN4Y0V0eERUdTAzQkpPRVFoTFQ5MHF1d1FWNVZRSFY5cmhVOXBEMHhoRlFyeTVseW5wYXZ3UGlHWVk5eU0zNEx1VFU3czJZK1dQYzNLWUJYMjArYmZCVlF2bDlrNUxOb1Y1Ynd0eTF0T2tNN3dCNVpoY2NZd0JrcHk3TWwrcHo1OTBTOVRhZ2NjMENyM3E2ODEyNlZtUVoyelNGaCtGZHN5ei85SlVQeVVaMFI1bHU2WVhSVWcycm1kT2tEdlpycHlXaEZTc2xUY0drSlp0dCs1SlMvUnJUbHgyZllwUENPZXlIUFR1S1BHVXJpUDNNajIrQmdJbEVrRlVBQUFidTFEYnNiNDduZXlTR2xIeDd6YVJtRjRkVUFXWjBjcnNHT3hxdW4vaFU5ZlZSaWRjdS9IdS92RDZPVUNKaTMvVGM5dlZJdTRKMTJHNEFPQU5tSGJ1SmIvQk9IZ2xSZ2FRWHQya2tXQUh5d0FtOVREK0xFN3lhUWFLcnhGZUtjN2dRN3JBck9JYXBVODFIaFg4ZndHZGorOGtUdTJmcXZtOEdlYWVHMGtRaGQvd29vYlVoczFWSXVpWnZPTVc4cnArcmNQTmg1MHNQUzFmVmIrNGp4Nnp6L2FyKytxRFlQc1ZDK2FWbXpjQ0ZxcExoOEtVTmpHN1ZqMVZTNFBjYmd0MzdTN2pRNFN2NU9zbFVZamtXMXJIbmNrUmtSOHBiaG5BMkVyNXFNeExGakJEQy9xQVNsQ2xQZU1mTGxiem5rRDZvWTA3V2RLTk5hcnVwckdYRWFxZjNFOXhZUllrRWlRdnpZYjBXUXRTNDcwV1gxeFVvNUxua01GY25GZUYyRFlSTm5aVVMwbnRvU1pnMitiREIxb29WWTRmdWttNG55Um9qKzdzTndpQ24zeFJnV1hyWWhWYzVwSGtpZXBwaG5RbjUraHlkMDFhWUxXOEZ0NTRhaHdBMU4rMUxBci9xUjFGdVliOExyeHZRRTkyT3dXY0NsQnZTRnd6bTR5c0QvTC9YdWxVbmJvcHQ4M0k2dkQzcnhXS1lZOHl4QmF0Mm1uYWVUUHhQK1VWNFRqOERwVzFiR2t3b0hTVlB5VVpPRkNKZkVMSFQwK2FsS2tSanhXNHl5QnJQeFNjZ1F0Tld5R01vTVJRQWROc3FxdDZURjhxcmJqeUtwOWZVeDBOS1VWMWJIUVZkZjBXV1plL3d0TUxIVVVLTVR1OXRMWGhFVVE2SU9zQ3BjUVc3UXZFZjdZeEF1cW5XNDdwL3JYeGlidGNtQ0pSZm5oTzA2N2tyYXJJU1daT0NaRFN1d2MyYlpRTTY1dHpoeVhTVXp1Ry9KWERmMmFzYitYcTBRdUdZeTMvbXV5L1BSTXNlWUJxcjFSY0cwNURYYVU3OU9yMU9UaFZCWXZUTTl6NndTZWpJSkFrWjV2RUtaTkVXYkZobVlDMEJaczJDQW9pOFp3V1BoLzBaSVZ5TmMyM0dEL2xGL0NxWjlFeHN0WllBRzQ0OTl3RUtYS0djWlpwSEpZWktsYUVHcXh6dmRCQ215Tmg4ZG5MTUFmUXJjcXQzbWlLam5kUUMyeWxHZWM0ZUt1SUx6WUFMVkorWlJ1MnFGdjFKUm5OTGNsR0JqWkxnaEV3WHRFaUMrMDJoQ243NHNTcE1qZFI2R0twaW8zTFArcG5kbkVMTFhjUGszVHM2aFZ2bkJlREFGd3QvQW5HOWRNL2tqSE5uNTl5Q2VJZ0Z2VGRVOG83UmxqTTh5Y0tJK1lPekNCRy81OWxKUHcreGxtbXVoSXhBVktueTRSVWg0ajl3d2ErczZYbS8xb3RPSmwyMUhFOVVxLzVXczZxSzluUlgrWGJKQlloSXVZVnhjUkl6dFZCdUp0a05NVEpobGJwTHJjQVJGWkg5Q2l0Y21HemxEbCs0RG9CdXlMOUJielA4Z1ZHb28rV3FNRnMzeU5wNkFvYWtSNC9WZ1djRldscWU5QVlDMEtGaWwrbTVNajQrNUdaWGEvSE9qeHJtZzlsWnNEZTNzUEpYbnIwbE5TWVdacm1IODBKZUh6YWppdzVtb2I3Sk4ydmRjZUVvVjlLU2k1SW9jMDd0MFIzN1U0L3pHL0E2OCtIMHVKR3JROFBxVnExREpNWkVTRk9qQnd2bWRoSGFXT1FzU3F2ejJ6RXdITXVUKzhCRFJsSGEycjNZUjdjSTI4Q0VlR1UxUUl3RGw0TXpIUlFlaUtBZndoUjhkMjBNYUluS2Z5bTE5TXlmQmw0bHNKaUdvRVhvWWlWb3IwNHJMVW1xb295aHNLWS9NV0RWMTRORHdwei9acEdnK25TS1lTdjY5Y2ZXMFpxNDM4Ti9xOW1QWFlFakQ3bWlXWlVWaUEwR3JLNysxTjdybjM0ZVZlTDZheVRVdmo3S2xNYlRObENJVEdmdjhqOHVMMXlWdVFzVjBqUnNhc2RnNVBVWWw5WUtuL2NyTGpQb1VrdjQ2MWRCNytVNmVCSXV2QkR3K2VNbUFNMEpPYTR6Q2ZPaFpsU1E4YmVwTlMyQS9iNnFBVHAxMkxpdVFwd0podWtFQk5LdEdObUladVhTZ2xGV1RyQUVzejgvOHh4MkRjNU1xS2x5REl4Ly9BeHU4K05PZ3VMWjRxN1l2VFB4bVJXMDljWVBUUTl0bklzOHluSkZtUGRoS2RCeWx6ZnJiU2N2OGtQU1NSSC9DbFErelFlWkx0bE4rU0JETDVjbkxpcEVCNjhWWExyVE44L3VvTmIrazY4MEVXWmdnLzBaNTg2Y1ZyNW11OGFyOTlBbjkxZVRwRzhUQ2lzcjIyaHVlUjFUcWR3WHNqVHJVUk5SRlVpUUlLb0Q4N1dLK1hzWlo0MExKcEJaeGszR04rUUc1WWJLUFFvOTJVL1k4Zks3M3pTSnFZTTczVXdoei92WWpQb2duV1gvUmhDZXFBVEVpQ1h1QUFja3lvZmpIcFhCMWJJN2RMNVQzT2ZPSmkvQUR3Y25yS242MGM0K3dDL2UxYmYvd2twTU1QY21qalMwODcyV2UrRFpnM3grK3NZelJqM3JPcU9BUDk5QU5PZFdkSHlhU2ZjUUJSTXQxK3BCdWpxcGVCaS9sdWJTeEs2a2tqcGg2aDFVSWdrZnhGWjU0Um9EOFlWaDVIajFiRFBTdEs2NGRlSjR2eFBzRTltTlR2ZmJaR0hXOU81RTJKRng2SXNzaHpTcit1cGZnWnZyR1NhdkpRdHYyTmtldjRob1NrV1RrcnE5bnNGNktyZk5vSUJvdERVM2lQMHpYUERVRmxtV1pSTDJvallqalNEWTYxa0wzM2FzZ0lZTll6dkZWRDh3QzNPbkRaUUgxSXZSVEhBemZQdm0yc1RDK0R1RUoxTGxjWlJ5Zm9UZnJHK0pncGowd05JUVU3aGZZUUlGYWZnVDN1UVdDcWx3cytXeEFpUmFpbmdBdWY2Y0VJdUdBcVV6UjVuc1lhWWxFYWtpMG8vVzdsVXJLekZlejF2WmhQR2dUQjhRZXpUMHhqdllFYU9OOTkwNUo2VjhMMGhJVU1PM3F0MGNKaVE0TVZsYmF5b3YzQ3BhSmRid2tsenRleFI3bU1veUZhVG1EQkg5UEhwck9vT2hYQWdYWWxDVTl0VHhjNzlmcCttemFlZzZKQksrRTVzQUZnVGhacVZ5Ny84SXpQWmVVNENRMkFBaE84SXhuSjV5VEI4NmtISWlyQjVmV1Nzd1VFWkV1QlFJZU56dnpobDlwcFkxZG9DcXd0eWVMdzk2Y1RCY3BGVng1KzRKalNDUE5jdkxtVTFCdXZtSkNqcXlSZ0NvbzZpR0JTWkFGQlFSZWUyZzFRS0lHMzIvVzZxUmtiV3M5TWQ4MWNXcUZYRk1vZkJWK0ozR0l2ejMvd1NDUWtRSThuMzBRNE56ZmV1WGRBWXNDZWE2My9UY3c1anYyMjlSL29uWEVmYnZoanlab0lORkFjRk5uUjM1aVdvcEZ3S0FCU3hWc3oxbXRrTmJuaDUzRk9LYlJoRDgzRXJGbDRwRjJ4M3JQb2JtV2dZT3ZCQ3A3cm9kbEN0VDhoa2xxUVNEL0dlUWhFa0RZNmxQYTljZHVDMXUvQ2MwN3YrMjl6QldpMjRBQ1ZjaFVlZ3pRWHVUdEVwdWltY3BPeFl2YmVSaWJPdkI3ZGhXdnB3YlNrRUtYNGZrS0x4dEpYaXlkWDVxcWNxcnFOdHJ1UVZaN00raHhQbER1cDhxZ1JDR0tUNXRaREtLcEVMYmphOXdoczNOVHFMRUtsYkJvVG1NY0RJeWVSOVR3Mk05OGgwd1lRTy9GbWpYQSthQlQ4VEROYXZRcHlZc3VoWGh1b3dTTStCVSthc21pd3ZsNEFqQUJBUzZ5WmVpaVVpNkoxZ0VZRmV0OXBmM0t2LzFsQjZvL3drdmJXRnl1TGR1NGFELzhJMUVBd1F5ZjhmV01ENGdMMzJFdHFWWHMwNllKSkRJTmFsWnpBa2czWUQ0b1kwOVpvVytsck04MDNESXdOS3FBLzBONVJqSDdwZzJuTXQ4VUZFWEZQR2VSY00vYkE2QmQ4QWJSQW44OFZqbWV3cXZSQjVWSmtNWG9ZRG4vRit0bk83bUZUS2hpNUtaVXJTbzMwQkVNa1p1eC9QVE9mL2FGZFFzWWx6d3U3QkhLWG0yNkFESzUycGViMHdkTjUxZy9PWkZQckYzVVMzVmlLVXM2dUExTWN5bkNoRU8rOHpjVmZLUkc0RTJkUVpZZ1RjaFI2MnFNckNSTHora2JOcXZPMzhYdmU1Z1RwczU2RDhNa0VKYU5lcnZVSkp2Qi9pdEZlOGtYYWJyQlJNWm5manNsUlBsandSbnd1bHpHMHVZL0tCMHA3MGM5UElKMmNQeTZJeEdYeEhwZG9RdmJRTmpoZmZEbUJEZ05va0RWNGFqUUJWVStqRmxtQ05yeHdLVkNEaVppVTNvZm1WQmN4Zm83Tk5UVlBHajJPbzV6VCtURjAySXJabGFKckVYMGxJWTUrci9nckJYcEJ0cFFZWVB1V1oyUUx3bzdRSW8zQTNzbHA3bnpsRTJ1aGxNNkt3dFVKTFloaFQxTHVtWHIzOFlLUDNiU0lFSi93bEpTekJRZlNnVDRiblJpQ1lQamFPeHhqRWxRUFA2M1lLNFlLOGdqMHRpT0IraVVlTGg5bEkyQ0hyc29tZGo4ZEhJOWk2dVk2cjBZLzdvS3VRRy9sdWVXR2I1R05TZ1FUakNpenEwbVgvdmZPdzRnUjdpcGI3Vjc1anU3Wit5aTIralBhK25WbzB6MFFPb0t3TStzVXlDc0lXbDJyRUllc3hIejN0SDZtQzloeUhKeGhPRWtrZXR0WDl0U0duQld0MXBkb050TWJmTHNGQVkvWUlZS2UzZVNCN3NaNXdOUTNDUlppU0hKQjFETHNUcGgvTVZwcWFuNzk4djMxWGt5NWFsTkpacFIzcWhGMmNtTjlpN1kybW52MXlOL2dtc2lVS3F1Q0RTcG8yRSs1MUFGWE1JN3RoMXlKekZwQU1EcnYwakFVZkVNTmRKTS9lQ1BYWUV4a0tUWGppZzlHT0s0eERQVHZTNFRVNmtrUW1CTWRsbTI2bnJwREoyZnFUYVVOLzNlcFpjNXNpR0pxWXZxOWVzYm5iMlE0azduSHpzMjhRdXBpcXhJRFZXbFNUTVJ2djhWaW53NkY3TE9OVFk4OEJNeFk5L2w2M3VXRUdISnJFL1pqYXJRK0JUWnZ1SFE4ZXBoZXo0a1FJVHg4dzFtV3BHeitSUm5pQjVDNXNhQ242RDdnankyMGEyOFRvTDJXbG9sYUNXcUdka2ZTNFI3Q3JYajhsdGdRcC9GSTJld3A2SnJGMEhEa01tU0FNOStsSkt2L0VOVDZGeGFhZ0JnUWdsN3lrbzRiZkx6SCtmT2gyWjVldHB1WFlmWVB5d0IyMnhuM1VzVE5sRVBXRGpOVVJCa0xPaGplNVpDd2hRdExKMlZkQUN4eXh0cUNac0lqUjYxazVnRDh4ZHF2ckZiY0VSbkY3amxSaXdUL1R2TFRZMnlyUlZYUFhwUUppVHcwdEowZzVpVUZBa0k5RHk1K1Uxa1h2K21mQU1oUlFjQU9xVVBTOFhPa2ZjZld2TDN1ekFINHgwM0xSdTBGRm5DblBqUEMyZDBWaUJrL1QwYStwY1V6WFp4RExtRTJWdXI1dnJBM3k4cm5yV29zQXRjYTBPNXI5YXhYVTJZQ2IzaWM0Y2k0WDdUOGFEcTU5R1pRUjIrODhmYUZ5UFYzSDhrU0hWTW5sNUJDWWtZdlJJZWRxZkd2cXN3Ny9NYVN2Rnp2RXErcEVSckdObjQwUUpTekU1UmgvNDFJaGlnRDY0K1ZxcFIxQ0s3NWUvWEE0amxJMFd3R1o3UXorTjhqU1pUR2tJaGZNdzVGZkNUTWZtWlowWEY5WldITmRGMXE4MzVsZEY5L1VvWXVKVzgyaUJlK1ZUdnh6NGdTd3Q1bnF2WmZBOUVTRkY5Vlh6VFBKNDlWSUpSTFlTeFVJSk9WMVNQRHliemtjUTQ4bDNENEtsclVmSHcwL0Uxenk2S0F2ai9vSzdUQkRNK1haZzZJNHRpWHdwbzNTZTRiS3dDbjFaMDhNT00wUkdqMmlUY2lEZ0g5SXBnSGxRQWJXa3kwcWcwYTFQZy9xbUJ6ZW4xNURucWVOeU5ZK2RiRWZmaTQvWTl2QXB2ZnlqTUtiMEVySmlmMGM3QlgyRDdhYUhnWjJqVmVmaTUxNjFmdjNvWmt0elUvUkxhWjF6U3N6SEhTRjFHMS9rQlByanNVdnFCMEFKLzVtU2UwdHVTbnpSK3FialBMeGJrcWVKZ1d4MVgwQXIxU1NwS2UvcEU1dWdlTmZvV3NSSUFMUk9rZWpvZVhhdDI4NWZHZUpBRk5oR0xRazZseGtvM3M1cmc2YUIwQTBvSFZOY1NpcWZFVmhYSmtEMDZyU08zN2VNd2ptQi9SdDUyRVVnOFZROVRxTkJ5QURtbU1aeDJ5aXJiSjVQRmlrNjBkUGh2dVVWVWU5MXR4RzZGMzFjeHFuKzVwN3BUWU4zWldkMFJCMTZIL3JhdC9Ga0EwWTg3UDdvc0NTUDUvYkpOWWlaN1dKcDA0UHd4OEZIcXlWbUg5UUpaZXprc1dnRjJNSXdhSHdNa2s4VDdLK1d5VGRLeDkrcmhxVEN0aWk4ZnVNcGlERkNHVDhyd2c4L1V2SDZTTUxWTCtCMmVnUUsyM0hNckdQak12VVRKQjdidTZVVWZnREVsUDMxbzJ3cVljRnR0S1FxU1lBTjdmVVpLci9GM1FpYjMvaVB4UEgzejlBS2g0SmlVb2tzQmxDK0FFN05ncEdHZ1lXZWJ5WksrcjdaTVNGa3dUWGgxWm9JY08yeHZPbVNjWC9wMmVwd1pQTjFBa1hEdWFrZDJ3R0c1T1dPK0diQ2tNK29yaGxNRTNwV2YwSkx4RGJUeUVPWFBOUWk0QjZBZi9XVDRXdWZkWWFqeU9rNXVZU0VCakY0VjlzTDN4UXU3czhyWEw3WEVOL2VIZ3N6VDRtTlJyTGV3dWd1RzJPeEtKOVBFMC94UXNwMnBpcTg0RE95QVpGdDRkSUMwb3FhUUVRMXhsT1RNWkpqSks2dXJMaEhKME04VXFCdkE4VkFXMU1CRFV0SmE2RzlMRHRVT2c5b01ZNGhYZFlLdG5lNEZVUGpERDRmT3gxQ21icXJtb1NpRXRpRFRpaWxPaGkxSFFDTUNZQWdtd0lydngvQ0FFSDdyM0c0bmtvWHJ1amwzcXc1blVNRStmdmlyUG1IT3l5UDZYZzk4UlNud3Z6d0pseVVYL3RNWjFiS29oeW4rZVh5c2FxNTQ3azNGclI5b1hOQ3VUY1J1d1JCaEMvaGwrbDdDTTluN2NpZGs3aEhtTkRjTjRhUG1waGhQN1VET251SnlSR25kWnYzellwSGY3alF5UEVJb3ArZ3VwQUZ3bEJyRmNpWEtORy9sVjBtQkduaWJvNlhML0ROZzFLSndvczRzcDI1Rm9zVHlFdWhLbk9ndVlDWnd4TEhYTncydHZ6eUM3VWlueU96T0x5T2l1aFNab0d6T05RTzJlQUVUNVFEZlk0R2VhMVg1YWRDZHUyd3VFTGhKVzUzeit0U3dVVUk1aFliTytFZHIzQm5xVXBpYTJOWFZRYVk2WGN2VU9Wc0JjUGhKM21nS0ZvaVNOd3AvelRVY3J3bVVDM3c2dkpYL2R6M0FqRFFRaXc3eFRFdUljQ21RWktmODd5bys3bFBEZzVzdmNndjduWGNNcEt5NW40OFYvVnpMaytGeEtCaDhXdElxZFNOd2FGemtsR3dKT3VLNWVRYWJsNFRHZmR1MXRIMmxMUVFnL05ucFZ4NmliZVVqM3UxUlZ6MFFCenVzSlVwaStaQUhNSjQ5Um85QmRkc29ZQkVRMmo1R2MxVElCMFJKM2VqWU45OXZnSUg0cVpEc2VqaUVRVldkSEl1Y20rdTZMaVA4dEF3M3ZhOGtWU3RiaU1VMGpzbTVxTmlWTVIvZHIvVkdJWURQMStCdllPNytzaHc1aGhaZUZvTXFrWW95eStwSHhVOUQxVXlkN0lydXpadE04d1FoTkwyeTBlMG91QmkrOEQ2VFg5VVI3a0hMUE1QSXkzbERQSGE1dUxXd3AybXVRbHpERmlYMlo2dFVjSjY5bjBncG9qNWRtbXJyVFJla2J4WGZDbzhaZlNPaUkrZ2xzQUp1aFpCbm9OK1d0RzcycG1LS0NpZUJLTGU0YmVuaGlOOEk3ZUoyVXJaMHE0VXpvalNXQ0pSVFhiTWNwcHF0dlJIbitTVHd4Y0N1eHByVEt1NGsrWTA5YzhBZklLWDFkdm43RWh3bVVQcDl6WEdhZmxKUXRYN1VKQVNCL1luNmdXZXM1d2FaZXdoanFUOURqb1FpaXZvKzVpbnlKVldBRzFkcWp5MVJBR1k4TWdDMTRNNUtBK3V4VlFkYmNtQUdKZUVWdFM0NHhoSEFCS055UndqSmlKdEwrdXIwL1hsWUpmSWgreDJSYnBMNmFpQ1daSkVqZkpxUnpQRmJ3YjJ2WEdJUm5ReUMyUkRZS3lnY1Rid0c4dDNZYUhySksyNGJxV1dVUU1OWXFxc3FHbXJ4MHJFejFQSUt3WGR3bDRKRXJZdk0rcEJLMjJKWm1pWmI5ajcxMlAzVDBJS1UwRFZ6VzJmcGVlaXhMR0ozNGVDcG9jYzljcXovckh6bTZmaXVRY3hjUGpvZnlRblJYaXFRQnVYUUZpSUNUQlh0WklzQ2hwa0MzcG5FSjZtNm1NOTJLZlRncXRWZjhwTytaR3JxK3Brd25hV1VMOEpDcUdhY2NRdk9uOW9mWi9PaC9XL0RjOU1aaTM1Ym9kNjZjZkh5N09GMmwyQkZPTDYzR0ozMlhHTFM4ZGx0SS8rRm93cWhyQWFDcmd3RzAzQXZmWmVEMlk1SlQyOFhQS1JFSUR4M2tmcitJS1JBU0k2cWVzcHpkY2JCNTg0dkhwMHp2djMwZkdpQ1RtR2ZMbElDdHVYdjQ1QzFjK2FIYWtkcVliVVpyMGNlYWlrMllwM3MrNmtaRExJemxRTkVPN1E0eSt5UnhKOWtCQk1vRk9pS2ZQeENXVWIwSW94UVZxUVhpVlhsMDUyMGpKZDVUQUJUdFdTMWxPMzVualloN0o1N0RlKzI0bmtTL2NWeEpUUFYyem4yL0Jnd3VZSnJLLzh3Sk9xMzZ1Z0V4ZjR0KzBDQ3FQeXQ0enRrcXR1UVl3S29GT2NHK1VCV2Nnbk1MbDhhZXQzMjlWWmpkNzhkeFI4dVIzUCtyMTl4OWh4NTlYRTNjSTVTcjNybnluLzZGbzZEUnFaZC85dlNybXFwdlJnallZWVRQSmkzT1dETmJlMGNuQ2JaamFBclhFYUZpVlZnVTRtcys1dVZmMEVWZjRHZmtyZ3RURmFmekNsMzkyMVNzMVFVZ2Fyd3FqcmRJeldLRlpqQnZBemcxcENwcmUvTXVoTUlOV24zaW5QUVNyZGJUQlFseTBDdUpBN2Y4SklJRS9kMCtQSU9zQmdIOUF5QXlSQjErczVaOUFOdVBlR1hDa1JtMkt1WTVhaTA1Y0grQkZGbjBsa1Foa3FKbGVzbEVkRkdibklyM1lvUmJ5OGFuZ0VoRkpGZHpTdXV2QUM4bUh2RlNaOU9jOFBqWTRCYy9udlAvQjNVVC9obXdBRTk4ODZ3T2Y0UkhKYlJlNll4czVmcG8rTGhybW9PcGlKWnFyTWRsOVRIcko4alRseFA0aXUvQ3ZPd3FpZjIvbytFOGk5MkJjSVYyRk5Zb2FUVmNlNnZrZUs0dDV5WWhNbHM0Z1Q2MjdZNWNBWDBWci9mdWF3eVlFS2R2bXBVTzBtSU5DZG8vREorektKLzBURnRGbjlRMko2OTBWRnIyeTB0Mk1QL1ZQMW1xOHVteTMxUzJYNkVIWWpOdDZ6T3hpRHNNeGlQNDA4OWN5YUFkNTU4SzdkaU5YenlndW1yMjlBOTkzMUtsMzhFWUVmWTNocGNXd01BUitqMUlRN1Y3SkZmU3dEZnIwMjU1THFEWVJwQWdYYjlJakdCeVl3b2RNc2c0RGl0Y1NNdFVwdW9oNGFGc08wSzNZdU8vcVpMb2VVeVo4SWdiaUFxRjJEMWYycDZlNGdiL3NtM2t0dUZoYVpFRm9sSkh5L25jWGhlQmNsbHpsV1hGakhKTTlkOU03cU1scmhVaEUrek9qTy9VY3FBM290YkR0U2E3eis5VTJjYVZBUmdHM20zUDQ1c1haOEpoK0lmQWQzYzZhbEQrNGxtY2x5eVQ5ZEk1MEQyVVlmYWhESTRJS2ZlTnQvZVd6QXRFUFlXbUx3R0hNaU13ajNKVEpRSWlreERXc0Q5UndVYzkvcTdYdzhzdk44MlFlUnhsNnBHZ05aQkp0Mys1c3Bob2dLLzFFSjJzSWxrUEVwL1NXWE9sUkVTMlBNVy9RL1hQRlVJYWxJdHdLaU95SWM4L3lWWFhSZVI3cHhVa3Q2VVpuTDc1UkU4eVE5Q1RmZUcwdzQ4dHh2SjdJenZLSU9HN0FRVkdWU3lVRlZaR2ltekQ4YktoUzZIZ0grMVkwK0NLQSsxQStJY29PL0VLRnAvU2FkK00xZ1JmOFB2YVJrK0tPbGZDTDRnRE5JWkJTYTcwU0NkOG51TXZBb01GTVlINzBKRWxPeXNPVTlvdWhzUUpjZ2REbG5zckRCQUFPRDVWbzJOcmRqNER0czRhQXVHR05uZG9yVDR4TUpBNGo1WXFqSkVmVElZOGxNb0ZtMUZhd2w0MkI5cHFYaWhQTnhnYTdjVU9CdXp4K2hjbDFJWGJKeHJYMktDWjJSZVBZKzd1QVRjbEJNek5qVkIwd1gyTS9tdkcyb0ptVnRNbEN6d1FiN2NjamlGUWVLQldncmhGc2diMUp2djRpU3ZFenMySW5sdU4vRis1cWl1WXpEd0dQUHNBaDE1OERueGgvNG5YNVBDeXBlaXJpWlhYa0lnUmsyRDVza3J3Y1Y0VGpVZnorRTZ6UVk5WUJIU2VYRVZ3NE8xd1dEOFJqMXdrT0Vqa0RhSnBGQWRpMVdtMTByV2c3cVJSc2lnKzZJL2JUUFUxUzVrZE1kTWRYV2R3SFA2bG8wYTZqNElMczhBdHNYVVRTVU0vU3VldS9sRldqOTc2QjhMSlpzVXVVSk5BeUVVclErK1IyZE1ld25jdkpaK3hXNFJzdUtHa1crOFlDRko0UXRhclhINytudStrMjlOTXdWdmMxWktIdGxaTmJSQ3BXVEg4STFrQUxZb3FCTVE1c1EwM3BMeWg2UlBIWHNTNlZoN2dPUytHd3JadGN6Ukt2VGFrNEZPVm5TOE9FbXQ3dG1KTkxHd0xFb2lYeW04R2h0UnZUYkVsSm03LzhOeFQ5UGh4ZVU1Wk9oL0FTUXQrMGI5UmFJR21jSHZ6L3ZCR0VjNzlITHRDcHRBNStvc2FMWklmUU9SUW91ZzFRMkZkZitFQk1hRlZaS0hQVkMxYnp6UEtaSjJuU2dNT1hUY2pEeGw4TFhpbUlZN0NaaFF3V3YrU3RCZHRHbWZOaTczaVluUElKYmR1a0MvZzM5QXQxeEV3ZnYwVHlibEMxRmFLc3pPdEIvbHlVOUltZEVQTjhhU0p1VlZQVDFYZWZpdHViOXhqM3lsYUphVXptb0NYTHpkS0pBcGNQanpCSTN4U3RyakloNjM0L3NrSXY4T3RkdDlDNXN6TnlPVlpLS2J5SkxDMFZLVnk3S3g5bmMrM0dGNlJVVnN4bitGdk5SbGFHVlJPQTJpQ09yVjVDME4rRGRManBNRnYzNHJCdEwwYVZwblA0cXhlZkpYdEkvNmdxY3BGT0dORWdZdVZVT1RzYnVSWkRjZXBBRFoyMVhQNlBIL04rTStOY2FlMG5vNzUwbGREaUlpb0oxSUl0dldrYzBoR1NhdkxVS0pyQnF1OW1aazdVUDdwbkJ1bkpjMEFCcVpxRk1SWnRuVnZZdlJENEpHcHFWNUpBcDVld0pkaUZpYjVWUHUwdnVOai80SThZVjYyQTRITU1kQVVXaTA2eW1IdjhyZi9lSGY1MmhYdTV0S1BpMS9FQkEvcklzZjVGL2t4RmtzZlBPcEdtTjVnenlHRkFLTmx6c1Q0WU1PV2lEb3RlL0FJZkxnR2RPWE5id01ybjY0SWk5ckFwSW1rT0xXSEN5S0lxYng0Yms0QjNadFkwS0M1RTd2M2dxeXlpaUZoRmdLM0Rvd0tmdklVcGRkb0N1bVc4WEV1VlpPa0dwZEJWSzIvb1lwcHFHUTJtR001NjZ2YWUyVU1oaHlQdmxIQzdINzJScklSdU0xQ0h0L3FKSERLWDVBQjh3T0tDT2d6MnhZTXZIZWEwUnA4TnhhUUxFekF4L04yOVlScUJ3eXJIY0xxem90bWRmbUN2K3pvbHhSa2JPQllEOUpLQW9MVnBsSVlySFBHTnloMExRcmdDNXJKcVVvQTdoUHBTL045UmIvR0tlQUlVOUYwVnVnNzNsb3JsM1pxa2lNMnU2ZU1FZjVKNmpvN2hreWZlaTRKUGJGUXRXOU5ZTDhxdnJSWDdpSG1mVVlaUXlESnp6MVIwcDcxZS81dVQ1T3F0cUNnbiszcGFQK1pXK216YUVBV1c2YXhHU2RpdjZoL0dNYmdCcS9OQXhuUEdHcVpkaWhNZStEU3UvZXJLZXJETXpyV0hJeEJyb2VIZnRMVjJ6V2dQb1FrSDZUZUM2REUrM3NkemZXTUI1bEJaelFWQ0gzZmg4dmFtU3JZejY2NktTamVXemFCRGh3cTJNd1ovSTVmTEFTQkgxdkdjRGJLaForWUN3aWNjWkVQVzI5eWRVTG8wMHdublhCbHBoSURuNzE0WFhRLzdMbUdNdXg5QnRMblowMGoraXMycXFTMW1ZQ05ZMUpaMUtRWFhvL2xDQkdpTUlhZHNyWHF4L2NhNTUvU3BNVTBRdHZCeW9IYWh1dnlwbG84QlBscHRKMUptRXhMNkU1UGZ3ZlEzaU1pRE0vL2xKcG1La294VlE3OGtteVQ4TStnQ0x6Rzk1U1lhOHBWdFhVVTBPUXdMVVhWc2g0dXBUdUtLbjBTdksvbVhMSnZ2cUhBeHYxZ0lVVGlBc21jbVdSWTExdzBMYmdRWm1hYmtIZVBDanFaSHM5em5Rd1VUVENLa2VnOWNLRVVsZU5nZXNEY2lGYllTYkxXR2s0aFpza0I5QVBxeWdpV1JVcHJzSU9UQm5IaVdDY2dRcmhBUUJMK0h0RVRUMm9ZTFVST2dCWTR0Y2lsOWZLTUhOMHhkMTR2WEJkaWlKMjRLOHVLeXBKSVR3aExzVUthQUxqVW1veUJ3R1k2OGt0Yk9TMCt3dHlSR2p2OXV1SDhnR2l2TkRTVmxEQTd1aC85a21RNWQzZFBPcFlUaksreTlNQlNGV0hTYUxlQU40emVCdDJTU0E4d0REcFBQSkFxbnB3eDB1YldJT0RnWmVDZCtpNnJ5MmtZZnlFNjdzaGgyZ1l1ckJIM2RSaE5wNFkrUHNLdHhncWo1em9qSmt5cmxCa1d4UjBvbGdDR0V4TkV1QVorV3F4TTczS0E2ckE2N0ZMWVJEWGI0V3VnZWlqYzkzVys0c1JhY3JRTlB6T3hSWFlSbWljVGNmQVFkTVVjeU9wWGlpVCtrZUc1dC9FOSt1Ry85UnA1TldZVTRJQWdBXHgzZFx4M2QnO3ZhciBnPSdrbml0c2FpbCc7dmFyIGVpZD0nYlhsUWFLdklKcGlzNC1FUF9fdU1lQSc7dmFyIHNzX2NnaT1mYWxzZTt2YXIgc3A9Jyc7dmFyIGhhc2hlZF9xdWVyeT0nJzt2YXIgY2JzPScnO3ZhciB1c3N2PScnOyhmdW5jdGlvbigpe3ZhciBxPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fSx1PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGQpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWQudmFsdWU7cmV0dXJuIGF9LHc9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBkPWFbYl07aWYoZCYmZC5NYXRoPT1NYXRoKXJldHVybiBkfXRocm93IEVycm9yKCJhIik7fSx4PXcodGhpcykseT1mdW5jdGlvbihhLGIpe2lmKGIpYTp7dmFyIGQ9eDthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGw9MDtsPGEubGVuZ3RoLTE7bCsrKXt2YXIgZj1hW2xdO2lmKCEoZiBpbiBkKSlicmVhayBhO2Q9ZFtmXX1hPWFbYS5sZW5ndGgtMV07bD1kW2FdO2I9YihsKTtiIT1sJiZiIT1udWxsJiZ1KGQsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX19LHo9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIFN5bWJvbCE9InVuZGVmaW5lZCImJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO2lmKGIpcmV0dXJuIGIuY2FsbChhKTtpZih0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OnEoYSl9O3Rocm93IEVycm9yKCJiYCIrU3RyaW5nKGEpKTt9O3koIlByb21pc2UiLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXt0aGlzLmk9bnVsbH1mdW5jdGlvbiBkKGMpe3JldHVybiBjIGluc3RhbmNlb2YgZj9jOm5ldyBmKGZ1bmN0aW9uKGUpe2UoYyl9KX1pZihhKXJldHVybiBhO2IucHJvdG90eXBlLmo9ZnVuY3Rpb24oYyl7aWYodGhpcy5pPT1udWxsKXt0aGlzLmk9W107dmFyIGU9dGhpczt0aGlzLmwoZnVuY3Rpb24oKXtlLnYoKX0pfXRoaXMuaS5wdXNoKGMpfTt2YXIgbD14LnNldFRpbWVvdXQ7Yi5wcm90b3R5cGUubD1mdW5jdGlvbihjKXtsKGMsMCl9O2IucHJvdG90eXBlLnY9ZnVuY3Rpb24oKXtmb3IoO3RoaXMuaSYmdGhpcy5pLmxlbmd0aDspe3ZhciBjPXRoaXMuaTt0aGlzLmk9W107Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDsrK2Upe3ZhciBoPWNbZV07Y1tlXT1udWxsO3RyeXtoKCl9Y2F0Y2goayl7dGhpcy5BKGspfX19dGhpcy5pPW51bGx9O2IucHJvdG90eXBlLkE9ZnVuY3Rpb24oYyl7dGhpcy5sKGZ1bmN0aW9uKCl7dGhyb3cgYzt9KX07dmFyIGY9ZnVuY3Rpb24oYyl7dGhpcy5qPTA7dGhpcy5sPXZvaWQgMDt0aGlzLmk9W107dGhpcy5EPSExO3ZhciBlPXRoaXMuQSgpO3RyeXtjKGUucmVzb2x2ZSxlLnJlamVjdCl9Y2F0Y2goaCl7ZS5yZWplY3QoaCl9fTtmLnByb3RvdHlwZS5BPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYyhrKXtyZXR1cm4gZnVuY3Rpb24obSl7aHx8KGg9ITAsay5jYWxsKGUsbSkpfX12YXIgZT10aGlzLGg9ITE7cmV0dXJue3Jlc29sdmU6Yyh0aGlzLkopLHJlamVjdDpjKHRoaXMudil9fTtmLnByb3RvdHlwZS5KPWZ1bmN0aW9uKGMpe2lmKGM9PT10aGlzKXRoaXMudihuZXcgVHlwZUVycm9yKCJBIFByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpO2Vsc2UgaWYoYyBpbnN0YW5jZW9mIGYpdGhpcy5MKGMpO2Vsc2V7YTpzd2l0Y2godHlwZW9mIGMpe2Nhc2UgIm9iamVjdCI6dmFyIGU9YyE9bnVsbDticmVhayBhO2Nhc2UgImZ1bmN0aW9uIjplPSEwO2JyZWFrIGE7ZGVmYXVsdDplPSExfWU\/dGhpcy5JKGMpOnRoaXMuQyhjKX19O2YucHJvdG90eXBlLkk9ZnVuY3Rpb24oYyl7dmFyIGU9dm9pZCAwO3RyeXtlPWMudGhlbn1jYXRjaChoKXt0aGlzLnYoaCk7cmV0dXJufXR5cGVvZiBlPT0iZnVuY3Rpb24iP3RoaXMuTShlLGMpOnRoaXMuQyhjKX07Zi5wcm90b3R5cGUudj1mdW5jdGlvbihjKXt0aGlzLkYoMixjKX07Zi5wcm90b3R5cGUuQz1mdW5jdGlvbihjKXt0aGlzLkYoMSxjKX07Zi5wcm90b3R5cGUuRj1mdW5jdGlvbihjLGUpe2lmKHRoaXMuaiE9MCl0aHJvdyBFcnJvcigiY2AiK2MrImAiK2UrImAiK3RoaXMuaik7dGhpcy5qPWM7dGhpcy5sPWU7dGhpcy5qPT09MiYmdGhpcy5LKCk7dGhpcy5HKCl9O2YucHJvdG90eXBlLks9ZnVuY3Rpb24oKXt2YXIgYz10aGlzO2woZnVuY3Rpb24oKXtpZihjLkgoKSl7dmFyIGU9eC5jb25zb2xlO3R5cGVvZiBlIT09InVuZGVmaW5lZCImJmUuZXJyb3IoYy5sKX19LDEpfTtmLnByb3RvdHlwZS5IPWZ1bmN0aW9uKCl7aWYodGhpcy5EKXJldHVybiExO3ZhciBjPXguQ3VzdG9tRXZlbnQsZT14LkV2ZW50LGg9eC5kaXNwYXRjaEV2ZW50O2lmKHR5cGVvZiBoPT09InVuZGVmaW5lZCIpcmV0dXJuITA7dHlwZW9mIGM9PT0iZnVuY3Rpb24iP2M9bmV3IGMoInVuaGFuZGxlZHJlamVjdGlvbiIse2NhbmNlbGFibGU6ITB9KTp0eXBlb2YgZT09PSJmdW5jdGlvbiI\/Yz1uZXcgZSgidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOihjPXguZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkN1c3RvbUV2ZW50IiksYy5pbml0Q3VzdG9tRXZlbnQoInVuaGFuZGxlZHJlamVjdGlvbiIsITEsITAsYykpO2MucHJvbWlzZT10aGlzO2MucmVhc29uPXRoaXMubDtyZXR1cm4gaChjKX07Zi5wcm90b3R5cGUuRz1mdW5jdGlvbigpe2lmKHRoaXMuaSE9bnVsbCl7Zm9yKHZhciBjPTA7Yzx0aGlzLmkubGVuZ3RoOysrYyl2LmoodGhpcy5pW2NdKTt0aGlzLmk9bnVsbH19O3ZhciB2PW5ldyBiO2YucHJvdG90eXBlLkw9ZnVuY3Rpb24oYyl7dmFyIGU9dGhpcy5BKCk7Yy5CKGUucmVzb2x2ZSxlLnJlamVjdCl9O2YucHJvdG90eXBlLk09ZnVuY3Rpb24oYyxlKXt2YXIgaD10aGlzLkEoKTt0cnl7Yy5jYWxsKGUsaC5yZXNvbHZlLGgucmVqZWN0KX1jYXRjaChrKXtoLnJlamVjdChrKX19O2YucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYyxlKXtmdW5jdGlvbiBoKG4sdCl7cmV0dXJuIHR5cGVvZiBuPT0iZnVuY3Rpb24iP2Z1bmN0aW9uKEIpe3RyeXtrKG4oQikpfWNhdGNoKEMpe20oQyl9fTp0fXZhciBrLG0sRD1uZXcgZihmdW5jdGlvbihuLHQpe2s9bjttPXR9KTt0aGlzLkIoaChjLGspLGgoZSxtKSk7cmV0dXJuIER9O2YucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLnRoZW4odm9pZCAwLGMpfTtmLnByb3RvdHlwZS5CPWZ1bmN0aW9uKGMsZSl7ZnVuY3Rpb24gaCgpe3N3aXRjaChrLmope2Nhc2UgMTpjKGsubCk7YnJlYWs7Y2FzZSAyOmUoay5sKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJkYCIray5qKTt9fXZhciBrPQp0aGlzO3RoaXMuaT09bnVsbD92LmooaCk6dGhpcy5pLnB1c2goaCk7dGhpcy5EPSEwfTtmLnJlc29sdmU9ZDtmLnJlamVjdD1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IGYoZnVuY3Rpb24oZSxoKXtoKGMpfSl9O2YucmFjZT1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IGYoZnVuY3Rpb24oZSxoKXtmb3IodmFyIGs9eihjKSxtPWsubmV4dCgpOyFtLmRvbmU7bT1rLm5leHQoKSlkKG0udmFsdWUpLkIoZSxoKX0pfTtmLmFsbD1mdW5jdGlvbihjKXt2YXIgZT16KGMpLGg9ZS5uZXh0KCk7cmV0dXJuIGguZG9uZT9kKFtdKTpuZXcgZihmdW5jdGlvbihrLG0pe2Z1bmN0aW9uIEQoQil7cmV0dXJuIGZ1bmN0aW9uKEMpe25bQl09Qzt0LS07dD09MCYmayhuKX19dmFyIG49W10sdD0wO2RvIG4ucHVzaCh2b2lkIDApLHQrKyxkKGgudmFsdWUpLkIoRChuLmxlbmd0aC0xKSxtKSxoPWUubmV4dCgpO3doaWxlKCFoLmRvbmUpfSl9O3JldHVybiBmfSk7CnZhciBBPXRoaXN8fHNlbGY7ZnVuY3Rpb24gRSgpe3JldHVybiB3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5uYXZpZ2F0aW9uJiZ3aW5kb3cucGVyZm9ybWFuY2UubmF2aWdhdGlvbi50eXBlfTt2YXIgRj13aW5kb3cubG9jYXRpb247ZnVuY3Rpb24gRyhhKXtyZXR1cm4oYT1GLnNlYXJjaC5tYXRjaChuZXcgUmVnRXhwKCJbPyZdIithKyI9KFxcZCspIikpKT9OdW1iZXIoYVsxXSk6LTF9ZnVuY3Rpb24gSCgpe3ZhciBhPWdvb2dsZS50aW1lcnMubG9hZDtnb29nbGUuYy5ndHM\/Z29vZ2xlLmMuZ3RzKGZ1bmN0aW9uKCl7SShhKX0pOkkoYSl9CmZ1bmN0aW9uIEkoYSl7dmFyIGI9YS5lLGQ9Z29vZ2xlLnN0dnNjO2QmJihiLnNzcj0xKTtpZihkP2QuaXNCRjpFKCk9PT0yKWIuYmI9MTtFKCk9PT0xJiYoYi5yPTEpO2E6e2lmKHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUmJihkPXdpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIiksZC5sZW5ndGghPT0wKSl7ZD1kWzBdO2JyZWFrIGF9ZD12b2lkIDB9aWYoZCl7dmFyIGw9ZC50eXBlO2wmJihiLm50PWwpO2w9ZC5kZWxpdmVyeVR5cGU7bCE9bnVsbCYmKGIuZHQ9bCk7ZD1kLnRyYW5zZmVyU2l6ZTtkIT1udWxsJiYoYi50cz1kKX0oZD13aW5kb3cubmF2aWdhdGlvbikmJihkPWQuYWN0aXZhdGlvbikmJihkPWQubmF2aWdhdGlvblR5cGUpJiYoYi5hbnQ9ZCk7Yj1hLm07aWYoIWJ8fCFiLnBycyl7ZD13aW5kb3cuX2NzYz09PSJhZ3NhIiYmd2luZG93Ll9jc2hpZDtsPUUoKXx8ZD8wOkcoInFzdWJ0cyIpO2w+MCYmKGI9RygiZmJ0cyIpLGI+MCYmKGEudC5zdGFydD1NYXRoLm1heChsLGIpKSk7dmFyIGY9YS50LHY9Zi5zdGFydDtiPXt9O2Eud3NydCE9PXZvaWQgMCYmKGIud3NydD1hLndzcnQpO2lmKHYpZm9yKHZhciBjIGluIGYpaWYoYyE9PSJzdGFydCIpe3ZhciBlPWZbY107YltjXT1jPT09InNnbCI\/ZTpNYXRoLm1heChlLXYsMCl9bD4wJiYoYi5nc2FzcnQ9YS50LnN0YXJ0LWwsYz1HKCJxc2QiKSxjPjAmJmdvb2dsZS5jLmUoImxvYWQiLCJxc2QiLFN0cmluZyhjKSksKGM9YS5mYnRzKSYmKGIuZ3Nhc3J0Mj1NYXRoLm1heChsLGMpLWwpKTtFKCl8fGR8fCFhLnFzdWJ0c3x8KGM9YS5mYnRzKSYmKGIuZ3Nhc3J0Mz1NYXRoLm1heChhLnFzdWJ0cyxjKS1hLnFzdWJ0cyk7Yz1hLmU7YT0iL2dlbl8yMDQ\/cz0iK2dvb2dsZS5zbisiJnQ9c2cmYXR5cD1jc2kmZWk9Iitnb29nbGUua0VJKyImcnQ9IjtkPSIiO2ZvcihrIGluIGIpYSs9IiIrZCtrKyIuIitiW2tdLGQ9IiwiO2Zvcih2YXIgaCBpbiBjKWErPQoiJiIraCsiPSIrY1toXTt2YXIgaz0iIjtBLl9jc2hpZCYmKGsrPSImY3NoaWQ9IitBLl9jc2hpZCk7KGg9d2luZG93Lmdvb2dsZSYmd2luZG93Lmdvb2dsZS5rT1BJfHxudWxsKSYmKGsrPSImb3BpPSIraCk7az1hKz1rO3R5cGVvZiBuYXZpZ2F0b3Iuc2VuZEJlYWNvbj09PSJmdW5jdGlvbiI\/bmF2aWdhdG9yLnNlbmRCZWFjb24oaywiIik6Z29vZ2xlLmxvZygiIiwiIixrKX19O3ZhciBKPWZ1bmN0aW9uKCl7dmFyIGE9bG9jYXRpb24uaHJlZjt0aGlzLmk9dGhpcy5qPSIiO3ZhciBiPWEuaW5kZXhPZigiIyIpO2I+MCYmKHRoaXMuaj1hLnN1YnN0cmluZyhiKSxhPWEuc3Vic3RyaW5nKDAsYikpO2I9YS5pbmRleE9mKCI\/Iik7Yj4wJiYodGhpcy5pPSImIithLnN1YnN0cmluZyhiKzEpLGE9YS5zdWJzdHJpbmcoMCxiKSk7dGhpcy5sPWF9LEw9ZnVuY3Rpb24oYSxiLGQpe0soYSxiKTthLmk9YS5pKyImIitiKyI9IitkfSxLPWZ1bmN0aW9uKGEsYil7YS5pPWEuaS5yZXBsYWNlKG5ldyBSZWdFeHAoIiYiK2IrIj0oW14mXSspIiwiZyIpLCIiKX07Si5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIit0aGlzLmwrKHRoaXMuaT8iPyIrdGhpcy5pLnN1YnN0cmluZygxKToiIikrdGhpcy5qfTsKdmFyIE09ZnVuY3Rpb24oYSl7dGhpcy5pPWF9O00ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaX07dmFyIE49ZnVuY3Rpb24oYSl7dGhpcy5OPWF9O2Z1bmN0aW9uIE8oYSl7cmV0dXJuIG5ldyBOKGZ1bmN0aW9uKGIpe3JldHVybiBiLnN1YnN0cigwLGEubGVuZ3RoKzEpLnRvTG93ZXJDYXNlKCk9PT1hKyI6In0pfXZhciBQPVtPKCJkYXRhIiksTygiaHR0cCIpLE8oImh0dHBzIiksTygibWFpbHRvIiksTygiZnRwIiksbmV3IE4oZnVuY3Rpb24oYSl7cmV0dXJuL15bXjpdKihbLz8jXXwkKS8udGVzdChhKX0pXSxRPS9eXHMqKD8hamF2YXNjcmlwdDopKD86W1x3Ky4tXSs6fFteOi8\/I10qKD86Wy8\/I118JCkpL2k7ZnVuY3Rpb24gUigpe3ZhciBhPUFbZ107aWYoYSl7YT16KCgwLGEuYSkocCxmdW5jdGlvbigpe30sITEpKS5uZXh0KCkudmFsdWU7dmFyIGI9W2FhKCldO3JldHVybiBhKGIpfVMoRXJyb3IoImYiKSl9ZnVuY3Rpb24gYWEoKXt2YXIgYT1sb2NhdGlvbi5ocmVmLGI9aGFzaGVkX3F1ZXJ5LGQ9e307YiYmKGQucWg9YiwoYT0oYT1hLm1hdGNoKC9bPyZdc3RhcnQ9KFxkKykvZykpP2FbYS5sZW5ndGgtMV0ubWF0Y2goL1xkKy8pWzBdOiIiKSYmKGQuc3Q9YSkpO3JldHVybiBkfQpmdW5jdGlvbiBUKCl7dmFyIGE7YTp7aWYod2luZG93LnN0JiYoYT13aW5kb3cuc3QobG9jYXRpb24uaHJlZikpKWJyZWFrIGE7YT1wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UudGltaW5nJiZwZXJmb3JtYW5jZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0P3BlcmZvcm1hbmNlLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnQ6dm9pZCAwfWlmKGEpdHJ5e3ZhciBiOygoYj13aW5kb3cpPT1udWxsPzA6Yi5zZXNzaW9uU3RvcmFnZSkmJndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGVpZCxTdHJpbmcoYSkpfWNhdGNoKGQpe319ZnVuY3Rpb24gVSgpe3ZhciBhPWVpZCxiPW5ldyBKO0soYiwic2dfc3MiKTtMKGIsInNlaSIsYSk7cmV0dXJuIGIudG9TdHJpbmcoKX1mdW5jdGlvbiBWKGEpe3ZhciBiPWVpZCxkPW5ldyBKO0woZCwic2dfc3MiLGVuY29kZVVSSUNvbXBvbmVudChhKSk7TChkLCJzZWkiLGIpO1coZC50b1N0cmluZygpKX0KZnVuY3Rpb24gYmEoYSl7aWYod2luZG93LnBycyl7WCgicHNydCIpO3NjdG0mJkgoKTt2YXIgYj1VKCk7d2luZG93LnBycyhiLGEpLmNhdGNoKGZ1bmN0aW9uKCl7VihhKX0pfWVsc2UgVihhKX1mdW5jdGlvbiBXKGEpe1goInBzcnQiKTtzY3RtJiZIKCk7d2luZG93LnBycz93aW5kb3cucHJzKGEpLmNhdGNoKGZ1bmN0aW9uKCl7WShhKX0pOlkoYSl9CmZ1bmN0aW9uIFkoYSl7aWYod2luZG93LnByKXdpbmRvdy5wcihhKTtlbHNle2E6e3ZhciBiPWI9PT12b2lkIDA\/UDpiO2lmKGEgaW5zdGFuY2VvZiBNKWI9YTtlbHNle2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7KytkKXt2YXIgbD1iW2RdO2lmKGwgaW5zdGFuY2VvZiBOJiZsLk4oYSkpe2I9bmV3IE0oYSk7YnJlYWsgYX19Yj12b2lkIDB9fWE9bG9jYXRpb247aWYoYiBpbnN0YW5jZW9mIE0paWYoYiBpbnN0YW5jZW9mIE0pYj1iLmk7ZWxzZSB0aHJvdyBFcnJvcigiZSIpO2Vsc2UgYj1RLnRlc3QoYik\/Yjp2b2lkIDA7YiE9PXZvaWQgMCYmYS5yZXBsYWNlKGIpfX1mdW5jdGlvbiBTKGEpe25hdmlnYXRvci5zZW5kQmVhY29uKCIvZ2VuXzIwND9jYWQ9c2dfYl9lJmU9IithLCIiKX1mdW5jdGlvbiBYKGEpe3NjdG0mJmdvb2dsZS50aWNrKCJsb2FkIixhKX07bmF2aWdhdG9yfHwoQS5uYXZpZ2F0b3I9e30pO3R5cGVvZiBuYXZpZ2F0b3Iuc2VuZEJlYWNvbiE9PSJmdW5jdGlvbiImJihuYXZpZ2F0b3Iuc2VuZEJlYWNvbj1mdW5jdGlvbihhKXsobmV3IEltYWdlKS5zcmM9YX0pO3dpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKGEsYixkLGwsZil7bmF2aWdhdG9yLnNlbmRCZWFjb24oIi9nZW5fMjA0P2Vtc2c9IisoZiBpbnN0YW5jZW9mIEVycm9yP2YubWVzc2FnZTphKSsiJnNyY3BnPXNncyZqc3I9MSZqc2VsPTMiKX07WCgic3N0Iik7dmFyIFo7d2luZG93LnNncyYmdXNzdj8oWCgic3NzdCIpLFo9d2luZG93LnNncyhzcCkudGhlbihmdW5jdGlvbihhKXtYKCJzc2V0Iik7ciYmKFQoKSxiYShhKSk7cmV0dXJuITB9LGZ1bmN0aW9uKCl7cmV0dXJuITF9KSk6Wj1Qcm9taXNlLnJlc29sdmUoITEpO1oudGhlbihmdW5jdGlvbihhKXtpZighYSYmKFgoImJzc3QiKSxhPVIoKSxYKCJic2V0IiksYSkpe3ZhciBiPWNiczthPWhhc2hlZF9xdWVyeT8iQi4xLiIrYisiLiIrYTphO2I9bmV3IERhdGU7Yi5zZXRTZWNvbmRzKGIuZ2V0U2Vjb25kcygpKyhOdW1iZXIoY2UpfHwzMDApKTt2YXIgZD0iU0dfU1M9IithLGw9ZG9jdW1lbnQuY29va2llLmxlbmd0aCtkLmxlbmd0aDtyJiYobDw0MDkzJiYhc3NfY2dpJiYoZG9jdW1lbnQuY29va2llPWQrKCI7IGV4cGlyZXM9IitiLnRvVVRDU3RyaW5nKCkpKSxUKCksc3NfY2dpfHxkb2N1bWVudC5jb29raWUuaW5kZXhPZigiU0dfU1M9Iik8MD9WKGEpOlcoVSgpKSl9fSkuY2F0Y2goZnVuY3Rpb24oYSl7UyhhKX0pO30pLmNhbGwodGhpcyk7fSkoKTs8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJNRXUxSlpZT1RMVmJVTHRlRW9HUmt3Ij4oZnVuY3Rpb24oKXt2YXIgY3NzSWQ9J3l2bHJ1ZSc7dmFyIGV2ZW50X2lkPSdiWGxRYUt2SUpwaXM0LUVQX191TWVBJztmdW5jdGlvbiBzdygpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNzc0lkKS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywnJyk7bmF2aWdhdG9yLnNlbmRCZWFjb24oYC9nZW5fMjA0P2NhZD1zZ190cmJsJmVpPSR7ZXZlbnRfaWR9YCwnJyk7fQpzZXRUaW1lb3V0KHN3LDIwMDApO30pKCk7PC9zY3JpcHQ+IDxkaXYgaWQ9Inl2bHJ1ZSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+SWYgeW91J3JlIGhhdmluZyB0cm91YmxlIGFjY2Vzc2luZyBHb29nbGUgU2VhcmNoLCBwbGVhc2UmbmJzcDs8YSBocmVmPSIvc2VhcmNoP3E9Y292ZXJwYWdlJmFtcDtudW09MTAwJmFtcDtzY2FfZXN2PTc0MDk0YTc5NmY3ZGExM2EmYW1wO3B3cz0wJmFtcDtobD1lbiZhbXA7bmVhcj1Vbml0ZWQrS2luZ2RvbSZhbXA7Z2w9VUsmYW1wO2dscD0xJmFtcDtnYnY9MSZhbXA7ZW1zZz1TR19SRUwmYW1wO3NlaT1iWGxRYUt2SUpwaXM0LUVQX191TWVBIj5jbGljayBoZXJlPC9hPiwgb3Igc2VuZCZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL3dlYnNlYXJjaCI+ZmVlZGJhY2s8L2E+LjwvZGl2PjwvYm9keT48L2h0bWw+"}