
import numpy as np

from transformers import Pipeline





def 						SCREAMING_SNAKE_CASE__     (   __lowerCAmelCase				):
    snake_case__    =					np.max(__lowerCAmelCase     ,		axis=-1     ,		keepdims=__lowerCAmelCase				)
    snake_case__    =					np.exp(outputs - maxes				)
    return shifted_exp / shifted_exp.sum(axis=-1     ,		keepdims=__lowerCAmelCase				)





class        _SCREAMING_SNAKE_CASE	(   __UpperCamelCase			):
      def A_      (      self		,						**lowerCamelCase			):
          snake_case__    =					{}
          if "second_text" in kwargs:
              snake_case__    =					kwargs["second_text"]
          return preprocess_kwargs, {}, {}
      def A_      (      self		,						lowerCamelCase		,						lowerCamelCase=None			):
          return self.tokenizer(lowerCamelCase		,						text_pair=lowerCamelCase		,						return_tensors=self.framework			)
      def A_      (      self		,						lowerCamelCase			):
          return self.model(**lowerCamelCase			)



      def A_      (      self		,						lowerCamelCase			):
          snake_case__    =					model_outputs.logits[0].numpy()
          snake_case__    =					softmax(lowerCamelCase			)

          snake_case__    =					np.argmax(lowerCamelCase			)
          snake_case__    =					self.model.config.idalabel[best_class]
          snake_case__    =					probabilities[best_class].item()
          snake_case__    =					logits.tolist()
          return {"label": label, "score": score, "logits": logits}





import math

__magic_name__  							=	10
__magic_name__  							=	7
__magic_name__  							=	BALLS_PER_COLOUR * NUM_COLOURS





def 						SCREAMING_SNAKE_CASE__     (   __lowerCAmelCase = 20				):
    snake_case__    =					math.comb(__lowerCAmelCase     ,		__lowerCAmelCase				)
    snake_case__    =					math.comb(NUM_BALLS - BALLS_PER_COLOUR     ,		__lowerCAmelCase				)

    snake_case__    =					NUM_COLOURS * (1 - missing_colour / total)

    return F"""{result:.9f}"""


if __name__ == "__main__":
     print(solution(20))



