




'''simple docstring'''



from math import ceil, sqrt




def   lowercase__(			__UpperCamelCase:					int = 1_00_00_00    ):

      """simple docstring"""






      SCREAMING_SNAKE_CASE   :      Union[str, Any]    					=						0

      for outer_width in range(3      ,(limit // 4) + 2    ):
            if outer_width**2 > limit:
                  SCREAMING_SNAKE_CASE   :      Tuple    					=						max(ceil(sqrt(outer_width**2 - limit    )    )      ,1    )
            else:
                  SCREAMING_SNAKE_CASE   :      Union[str, Any]    					=						1
            if (outer_width - hole_width_lower_bound) % 2:
                  hole_width_lower_bound += 1

            answer += (outer_width - hole_width_lower_bound - 2) // 2 + 1

      return answer


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









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


UpperCamelCase_												=	logging.get_logger(__name__)

UpperCamelCase_												=	{
    'naver-clova-ix/donut-base': 'https://huggingface.co/naver-clova-ix/donut-base/resolve/main/config.json',
    # See all Donut models at https://huggingface.co/models?filter=donut-swin
}

class     snake_case_		(   a							):






 '''simple docstring'''





 __UpperCamelCase       =      'donut-swin'

 __UpperCamelCase       =      {
     'num_attention_heads': 'num_heads',
     'num_hidden_layers': 'num_layers',
 }

 def __init__(  self,		A_=224,		A_=4,		A_=3,		A_=96,		A_=[2, 2, 6, 2],		A_=[3, 6, 12, 24],		A_=7,		A_=4.0,		A_=True,		A_=0.0,		A_=0.0,		A_=0.1,		A_="gelu",		A_=False,		A_=0.02,		A_=1E-5,		**A_,		)	->       List[str]:
    super().__init__(**A_		)

    UpperCAmelCase__						=image_size
    UpperCAmelCase__						=patch_size
    UpperCAmelCase__						=num_channels
    UpperCAmelCase__						=embed_dim
    UpperCAmelCase__						=depths
    UpperCAmelCase__						=len(A_		)
    UpperCAmelCase__						=num_heads
    UpperCAmelCase__						=window_size
    UpperCAmelCase__						=mlp_ratio
    UpperCAmelCase__						=qkv_bias
    UpperCAmelCase__						=hidden_dropout_prob
    UpperCAmelCase__						=attention_probs_dropout_prob
    UpperCAmelCase__						=drop_path_rate
    UpperCAmelCase__						=hidden_act
    UpperCAmelCase__						=use_absolute_embeddings
    UpperCAmelCase__						=layer_norm_eps
    UpperCAmelCase__						=initializer_range
    # we set the hidden_size attribute in order to make Swin work with VisionEncoderDecoderModel
    # this indicates the channel dimension after the last stage of the model
    UpperCAmelCase__						=int(embed_dim * 2 ** (len(A_		) - 1)		)



