
    9c                     z    d dl Z d dlZd dlZd dlmZ  G d dej                  j                  j                        Z	y)    N)	BlockFilec                        e Zd ZdZdgZdZd Zy)ZlibValidPluginz)
    Validates zlib compressed data.
    	Signaturei   c                 *   |j                   r@|j                  j                         j                  d      r| j                  j
                  j                  r.|j                  | j                  j
                  j                  z  }nd}|j                  |z
  }| j                  j
                  j                  |j                   j                        }|j                  |       |j                  | j                        |d  }|j                          	 t        j                  t         j"                  j$                  j'                  |             y y y # t        j(                  $ r0}t+        |      j                  d      sd|_        Y d }~y Y d }~y d }~ww xY w)Nzlibr   zError -5F)filedescriptionlower
startswithmoduleconfig	swap_sizeoffset	open_filepathseekreadMAX_DATA_SIZEcloser   
decompressbinwalkcorecompat	str2byteserrorstrvalid)selfresultadjustr   fddataes          ;/usr/lib/python3/dist-packages/binwalk/plugins/zlibvalid.pyscanzZlibValidPlugin.scan   s$   ;;6--335@@H {{!!++););)E)EE]]V+F ##--fkk.>.>?BGGFO774--.vw7DHHJ) 3 3 = =d CD- I;. :: )1v((4#(FLL 5)s   <E F"!FFN)__name__
__module____qualname____doc__MODULESr   r&        r%   r   r      s     mGM)r-   r   )
r   binwalk.core.compatr   binwalk.core.pluginbinwalk.core.commonr   r   pluginPluginr   r,   r-   r%   <module>r3      s-       )%)gll))00 %)r-   