def      _a					(   lowercase__	:      str			):







     '''simple docstring'''


     SCREAMING_SNAKE_CASE__					:					Optional[Any]      =		[0] * len(lowercase__			)

     for i in range(1  ,	len(lowercase__			)			):
          # use last results for better performance - dynamic programming
          SCREAMING_SNAKE_CASE__					:					Dict      =		prefix_result[i - 1]
          while j > 0 and input_string[i] != input_string[j]:
               SCREAMING_SNAKE_CASE__					:					Union[str, Any]      =		prefix_result[j - 1]

          if input_string[i] == input_string[j]:
               j += 1
          SCREAMING_SNAKE_CASE__					:					str      =		j

     return prefix_result







def      _a					(   lowercase__	:      str			):







     '''simple docstring'''


     return max(prefix_function(lowercase__			)			)


if __name__ == "__main__":
      import doctest

      doctest.testmod()




"""simple docstring"""


from ...configuration_utils import PretrainedConfig
from ...utils import logging


UpperCAmelCase__			=    logging.get_logger(__name__)


class 							a					(		lowerCAmelCase_ ):
    _snake_case  :	List[Any]  				=				'timm_backbone'


    def __init__(       self						:	List[Any] ,					__lowerCAmelCase						:	str=None ,					__lowerCAmelCase						:	Optional[int]=3 ,					__lowerCAmelCase						:	Any=True ,					__lowerCAmelCase						:	Optional[int]=True ,					__lowerCAmelCase						:	Optional[Any]=None ,					**__lowerCAmelCase						:	Optional[Any] ,					):
      super().__init__(**__lowerCAmelCase       )
      _UpperCAmelCase    			=   backbone
      _UpperCAmelCase    			=   num_channels
      _UpperCAmelCase    			=   features_only
      _UpperCAmelCase    			=   use_pretrained_backbone
      _UpperCAmelCase    			=   True
      _UpperCAmelCase    			=   out_indices if out_indices is not None else (-1,)
