SOLVE ONLY USING PYTHON PLEASE You create a program that will ask the user for a Boolean value for each of five variables - A, B, C, D; and E. Your program will also ask the user to choose an boolean expression and then your program will solve that expression with the values provided (stating the final output in the command prompt as either true or false). Use the following symbols as input for the boolean expression for AND, \"|\" for OR. So the input for the Boolean expression would look like A & B | C | D & E. It is important to note that you must also be able to group the expressions together as such (A & B) | (C & D) & E. And then there is the most infamous one you must consider: ((A & B) | C) & (D & E). You must consider as many possible expression as possible and error check for correct input. Your program must ask the user for the a, b, c,D and E variables (Boolean values) your program must ask the user which expression to calculate 5 Marks your program must have a two functions that returns a boolean value one for evaluating an AND expression one for evaluating an OR expression. the program must decompile the expression and use the appropriate functions developed the program must print out the decomposed statements as they are being evaluated The program must return the proper evaluation at the end For example user input Solution def AND(A,B): return A and B; def OR(A,B): return A or B; def NOT(A): return not A ; def getValue(operand,A,B,C,D,E): if(operand==\'A\'): return A; elif(operand==\'B\'): return B; elif(operand==\'C\'): return C; elif(operand==\'D\'): return D; elif(operand==\'E\'): return E; print(\'Enter 5 boolean values:\'); A=input(\'A:\'); B=input(\'B:\'); C=input(\'C:\'); D=input(\'D:\'); E=input(\'E:\'); L1=[]; L2=[]; exp=input(\'Enter an boolean expression:\'); print(\'Output\'); L1=exp.split(\'|\'); size=len(L1); for i in range(1,size): if(len(L1[i])>0): s=L1[i]; val1=getValue(s[1],A,B,C,D,E); val2=getValue(s[3],A,B,C,D,E); L1[i]=AND(val1,val2); print(L1[i]); print(\' \'); size=len(L1); i=1; while(size>1): while(i<=len(L1)): if(i+1<=len(L1)): val1=getValue(L1[i],A,B,C,D,E); val2=getValue(L1[i+1],A,B,C,D,E); print(OR(val1,val2)); L2.append(OR(val1,val2)); print(\' \'); else: L2.append(L1[i]); print(L1[i]); print(\' \'); L1=L2; L2=[]; size=len(L1); print(L1[i]); .