






a 			=							{
    '0000': '0',
    '0001': '1',
    '0010': '2',
    '0011': '3',
    '0100': '4',
    '0101': '5',
    '0110': '6',
    '0111': '7',
    '1000': '8',
    '1001': '9',
    '1010': 'a',
    '1011': 'b',
    '1100': 'c',
    '1101': 'd',
    '1110': 'e',
    '1111': 'f',
}
def    a__    (	A       ):
   lowercase__    :						Union[str, Any]       =			str(A       ).strip()

   # Exceptions
   if not binary_str:
      raise ValueError("""Empty string was passed to the function"""       )
   lowercase__    :						int       =			binary_str[0] == """-"""
   lowercase__    :						int       =			binary_str[1:] if is_negative else binary_str
   if not all(char in """01""" for char in binary_str       ):
      raise ValueError("""Non-binary value was passed to the function"""       )

   lowercase__    :						List[str]       =			(
       """0""" * (4 * (divmod(len(A       )		,					4       )[0] + 1) - len(A       )) + binary_str
   )

   lowercase__    :						Any       =			[]
   for x in range(0		,					len(A       )		,					4       ):
      hexadecimal.append(BITS_TO_HEX[binary_str[x : x + 4]]       )
   lowercase__    :						int       =			"""0x""" + """""".join(A       )

   return "-" + hexadecimal_str if is_negative else hexadecimal_str


if __name__ == "__main__":
 from doctest import testmod

 testmod()










def    a__    (	A       ):
   return int(A       ) if x - int(A       ) >= 0 else int(A       ) - 1


if __name__ == "__main__":
 import doctest

 doctest.testmod()


