





import torch
from torch import nn
from transformers import CLIPPreTrainedModel, CLIPVisionModel

from ...models.attention import BasicTransformerBlock
from ...utils import logging


snake_case								=							logging.get_logger(__name__)  # pylint: disable=invalid-name





class 					A_					(   UpperCAmelCase						):







       """simple docstring"""





       def __init__(     self						:						Union[str, Any]    ,__A						:						Union[str, Any]    ,__A						:						Optional[Any]=768	)    ->       Optional[int]:
         super().__init__(__A	)
         _lowercase						    =			proj_size

         _lowercase						    =			CLIPVisionModel(__A	)
         _lowercase						    =			PaintByExampleMapper(__A	)
         _lowercase						    =			nn.LayerNorm(config.hidden_size	)
         _lowercase						    =			nn.Linear(config.hidden_size    ,self.proj_size	)

         # uncondition for scaling
         _lowercase						    =			nn.Parameter(torch.randn((1, 1, self.proj_size)	)	)







       def  __UpperCAmelCase			(     self						:						str    ,__A						:						Optional[int]    ,__A						:						Optional[int]=False	)    ->       Union[str, Any]:
         _lowercase						    =			self.model(pixel_values=__A	)
         _lowercase						    =			clip_output.pooler_output
         _lowercase						    =			self.mapper(latent_states[:, None]	)
         _lowercase						    =			self.final_layer_norm(__A	)
         _lowercase						    =			self.proj_out(__A	)
         if return_uncond_vector:
           return latent_states, self.uncond_vector

         return latent_states





class 					A_					(   nn.Module						):







       """simple docstring"""





       def __init__(     self						:						Optional[int]    ,__A						:						Dict	)    ->       str:
         super().__init__()
         _lowercase						    =			(config.num_hidden_layers + 1) // 5
         _lowercase						    =			config.hidden_size
         _lowercase						    =			1
         _lowercase						    =			nn.ModuleList(
             [
                 BasicTransformerBlock(__A    ,__A    ,__A    ,activation_fn='gelu'    ,attention_bias=__A	)
                 for _ in range(__A	)
             ]	)







       def  __UpperCAmelCase			(     self						:						Tuple    ,__A						:						Optional[Any]	)    ->       Dict:
         for block in self.blocks:
           _lowercase						    =			block(__A	)

         return hidden_states







import sys

SCREAMING_SNAKE_CASE__   :      Optional[Any]				=		(
    """73167176531330624919225119674426574742355349194934"""
    """96983520312774506326239578318016984801869478851843"""
    """85861560789112949495459501737958331952853208805511"""
    """12540698747158523863050715693290963295227443043557"""
    """66896648950445244523161731856403098711121722383113"""
    """62229893423380308135336276614282806444486645238749"""
    """30358907296290491560440772390713810515859307960866"""
    """70172427121883998797908792274921901699720888093776"""
    """65727333001053367881220235421809751254540594752243"""
    """52584907711670556013604839586446706324415722155397"""
    """53697817977846174064955149290862569321978468622482"""
    """83972241375657056057490261407972968652414535100474"""
    """82166370484403199890008895243450658541227588666881"""
    """16427171479924442928230863465674813919123162824586"""
    """17866458359124566529476545682848912883142607690042"""
    """24219022671055626321111109370544217506941658960408"""
    """07198403850962455444362981230987879927244284909188"""
    """84580156166097919133875499200524063689912560717606"""
    """05886116467109405077541002256983155200055935729725"""
    """71636269561882670428252483600823257530420752963450"""
)

def   __lowercase       (			snake_case = N			):







				"""simple docstring"""






				__magic_name__		:Optional[int]   =   -sys.maxsize - 1
				for i in range(len(snake_case			) - 1_2			):
								__magic_name__		:List[Any]   =   1
								for j in range(1_3			):
												product *= int(n[i + j]			)
								if product > largest_product:
												__magic_name__		:str   =   product
				return largest_product


if __name__ == "__main__":
					print(f"{solution() = }")






