/**
  * @param string $sFileString
  *
  * @return array
  */
 private function fileStringToCollection($sFileString)
 {
     $aResult = array();
     if (!empty($sFileString) && false !== \strpos($sFileString, 'RAINLOOP:SIEVE')) {
         $aMatch = array();
         if (\preg_match_all('/BEGIN:FILTER(.+?)BEGIN:HEADER(.+?)END:HEADER/s', $sFileString, $aMatch) && isset($aMatch[2]) && \is_array($aMatch[2])) {
             foreach ($aMatch[2] as $sEncodedLine) {
                 if (!empty($sEncodedLine)) {
                     $sDecodedLine = \base64_decode(\preg_replace('/[\\s]+/', '', $sEncodedLine));
                     if (!empty($sDecodedLine)) {
                         $oItem = new \RainLoop\Providers\Filters\Classes\Filter();
                         if ($oItem && $oItem->unserializeFromJson($sDecodedLine)) {
                             $aResult[] = $oItem;
                         }
                     }
                 }
             }
         }
     }
     return $aResult;
 }