




def    SCREAMING_SNAKE_CASE      (			__UpperCamelCase     :		int			,	__UpperCamelCase     :		int )    ->				str:






    if a < 0 or b < 0:
        raise ValueError('''the value of both inputs must be positive''' )

    UpperCAmelCase_									=	str(bin(lowerCAmelCase_ ) )[2:]  # remove the leading "0b"
    UpperCAmelCase_									=	str(bin(lowerCAmelCase_ ) )[2:]  # remove the leading "0b"

    UpperCAmelCase_									=	max(len(lowerCAmelCase_ )			,	len(lowerCAmelCase_ ) )

    return "0b" + "".join(
        str(int(char_a == '''1''' and char_b == '''1''' ) )
        for char_a, char_b in zip(a_binary.zfill(lowerCAmelCase_ )			,	b_binary.zfill(lowerCAmelCase_ ) ) )


if __name__ == "__main__":
 import doctest

 doctest.testmod()









def       _lowerCAmelCase    (				lowerCAmelCase_				:List[str]		,    lowerCAmelCase_				:int				)->Optional[int]:
   '''simple docstring'''






   snake_case_            =       0
   while b > 0:
      if b & 1:
         res += a

      a += a
      b >>= 1

   return res



def       _lowerCAmelCase    (				lowerCAmelCase_				:int		,    lowerCAmelCase_				:List[str]		,    lowerCAmelCase_				:Dict				)->Dict:
   '''simple docstring'''






   snake_case_            =       0
   while b > 0:
      if b & 1:
         snake_case_            =       ((res % c) + (a % c)) % c

      a += a
      b >>= 1

   return res




