TDEC 160: Final Maple Exam Jeremy Johnson Name: Section: Instructions: There are three questions, each worth 4 points, for a total of 12 points (partial credit will be given). The quiz must be completed in 50 minutes and submitted to webct. Please put your name and section in the worksheet above. The quiz must be done independently using Maple. You can use all of the available help resources in Maple, but nothing else. If you have any questions, you may ask for clarification. Questions have multiple parts and you should attempt all parts. Make sure you read the instructions carefully. If you have forgotten how to use a command, use Maple's help facility.
<Text-field style="Heading 1" layout="Heading 1">Question 1 [4 points] (Differentiation and Tangent Lines - diff, evalf, and plot)</Text-field> In this question you will investigate the functions 2^x and 3^x. In particular, you will compute the slope of these functions (use diff) at the point x=0 (also use evalf to compute numeric values of the slopes). The you will plot, in, in two separte plots, the function 2^x and the line tangent to 2^x at the point x=0, and the function 3^x and the line tangent to 3^x at the point x=0. Finally use the command display to combin the two plots. with(plots); Warning, the name changecoords has been redefined NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2YXItSSNtaUdGJTY5USxJbnRlcmFjdGl2ZUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR0ZTLyUlYm9sZEdGOC8lJ2l0YWxpY0dGNS8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdGVi8lK2JhY2tncm91bmRHRlkvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjUvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdGUC8lKm1hdGhjb2xvckdGVi8lL21hdGhiYWNrZ3JvdW5kR0ZZLyUrZm9udGZhbWlseUdGXG8vJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YoLyUpbWF0aHNpemVHRlMtRi02M1EiLEYoL0YxUSZpbmZpeEYoL0Y0RjgvRjdGNS9GOlEkMGVtRigvRj1RM3Zlcnl0aGlja21hdGhzcGFjZUYoL0Y/RjhGQEZCRkVGSEZKRkxGTkZRRlRGVy1GZ242OVEoYW5pbWF0ZUYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USphbmltYXRlM2RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEtYW5pbWF0ZWN1cnZlRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRJmFycm93RihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRLWNoYW5nZWNvb3Jkc0YoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USxjb21wbGV4cGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5US5jb21wbGV4cGxvdDNkRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKmNvbmZvcm1hbEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USxjb25mb3JtYWwzZEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USxjb250b3VycGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5US5jb250b3VycGxvdDNkRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKmNvb3JkcGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USxjb29yZHBsb3QzZEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5US1jeWxpbmRlcnBsb3RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEsZGVuc2l0eXBsb3RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEoZGlzcGxheUYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USpkaXNwbGF5M2RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEqZmllbGRwbG90RihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRLGZpZWxkcGxvdDNkRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKWdyYWRwbG90RihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRK2dyYWRwbG90M2RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEsZ3JhcGhwbG90M2RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEtaW1wbGljaXRwbG90RihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRL2ltcGxpY2l0cGxvdDNkRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKGluZXF1YWxGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEsaW50ZXJhY3RpdmVGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEyaW50ZXJhY3RpdmVwYXJhbXNGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEtbGlzdGNvbnRwbG90RihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRL2xpc3Rjb250cGxvdDNkRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRMGxpc3RkZW5zaXR5cGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USlsaXN0cGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5UStsaXN0cGxvdDNkRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRK2xvZ2xvZ3Bsb3RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEobG9ncGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USttYXRyaXhwbG90RihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKW11bHRpcGxlRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKG9kZXBsb3RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEncGFyZXRvRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRLHBsb3Rjb21wYXJlRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKnBvaW50cGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USxwb2ludHBsb3QzZEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USpwb2xhcnBsb3RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEscG9seWdvbnBsb3RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEucG9seWdvbnBsb3QzZEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5UTRwb2x5aGVkcmFfc3VwcG9ydGVkRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRLnBvbHloZWRyYXBsb3RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVEncmVwbG90RihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKnJvb3Rsb2N1c0YoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USxzZW1pbG9ncGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5UStzZXRvcHRpb25zRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRLXNldG9wdGlvbnMzZEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5UStzcGFjZWN1cnZlRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRMXNwYXJzZW1hdHJpeHBsb3RGKEZqbkZdb0Zfb0Zhb0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZmcUZocS1GZ242OVErc3BoZXJlcGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USlzdXJmZGF0YUYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USl0ZXh0cGxvdEYoRmpuRl1vRl9vRmFvRmNvRmVvRmdvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmZxRmhxLUZnbjY5USt0ZXh0cGxvdDNkRihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnFGaHEtRmduNjlRKXR1YmVwbG90RihGam5GXW9GX29GYW9GY29GZW9GZ29GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZnEtRi02M1EiXUYoL0YxUShwb3N0Zml4RihGM0Y2RjkvRj1RMnZlcnl0aGlubWF0aHNwYWNlRihGPkZARkJGRUZIRkpGTEZORlFGVEZXNyM3Z25JLEludGVyYWN0aXZlR0YoSShhbmltYXRlR0YoSSphbmltYXRlM2RHRihJLWFuaW1hdGVjdXJ2ZUdGKEkmYXJyb3dHRihJLWNoYW5nZWNvb3Jkc0dGKkksY29tcGxleHBsb3RHRihJLmNvbXBsZXhwbG90M2RHRihJKmNvbmZvcm1hbEdGKEksY29uZm9ybWFsM2RHRihJLGNvbnRvdXJwbG90R0YoSS5jb250b3VycGxvdDNkR0YoSSpjb29yZHBsb3RHRihJLGNvb3JkcGxvdDNkR0YoSS1jeWxpbmRlcnBsb3RHRihJLGRlbnNpdHlwbG90R0YoSShkaXNwbGF5R0YoSSpkaXNwbGF5M2RHRihJKmZpZWxkcGxvdEdGKEksZmllbGRwbG90M2RHRihJKWdyYWRwbG90R0YoSStncmFkcGxvdDNkR0YoSSxncmFwaHBsb3QzZEdGKEktaW1wbGljaXRwbG90R0YoSS9pbXBsaWNpdHBsb3QzZEdGKEkoaW5lcXVhbEdGKEksaW50ZXJhY3RpdmVHRihJMmludGVyYWN0aXZlcGFyYW1zR0YoSS1saXN0Y29udHBsb3RHRihJL2xpc3Rjb250cGxvdDNkR0YoSTBsaXN0ZGVuc2l0eXBsb3RHRihJKWxpc3RwbG90R0YoSStsaXN0cGxvdDNkR0YoSStsb2dsb2dwbG90R0YoSShsb2dwbG90R0YoSSttYXRyaXhwbG90R0YoSSltdWx0aXBsZUdGKEkob2RlcGxvdEdGKEkncGFyZXRvR0YoSSxwbG90Y29tcGFyZUdGKEkqcG9pbnRwbG90R0YoSSxwb2ludHBsb3QzZEdGKEkqcG9sYXJwbG90R0YoSSxwb2x5Z29ucGxvdEdGKEkucG9seWdvbnBsb3QzZEdGKEk0cG9seWhlZHJhX3N1cHBvcnRlZEdGKEkucG9seWhlZHJhcGxvdEdGKEkncmVwbG90R0YoSSpyb290bG9jdXNHRihJLHNlbWlsb2dwbG90R0YoSStzZXRvcHRpb25zR0YoSS1zZXRvcHRpb25zM2RHRihJK3NwYWNlY3VydmVHRihJMXNwYXJzZW1hdHJpeHBsb3RHRihJK3NwaGVyZXBsb3RHRihJKXN1cmZkYXRhR0YoSSl0ZXh0cGxvdEdGKEkrdGV4dHBsb3QzZEdGKEkpdHViZXBsb3RHRig=
<Text-field style="Heading 1" layout="Heading 1">Question 2 [4 points] (The Definition of the Derivative - limit, seq, evalf, and solve)</Text-field> In this question you will investigate the derivative of the function a^x. 1) Use the limit command to determinate the derivative of 2^x by definition (i.e. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSVUZXh0RicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQ=). Check the answer returned by limit using diff. 2) Use the formula obtained in (1) to compute the value of the derivative at x=0. Use evalf to get a numeric approximation. 3) Numerically compute the value of the derivative of 2^x at x=0 using the definition of the derivative. Compute a sequence of values using LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYuLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQtSSVtc3VwR0YkNiUtSSNtbkdGJDY5USMxMEYnRi9GMkY1L0Y5RjdGO0Y9Rj9GQUZERkdGSUZLRk1GT0ZRRlNGVUZYRlpGZm4vRmluUSdub3JtYWxGJ0Zbby1GYW82OVEiMEYnRi9GMkY1RmRvRjtGPUY/RkFGREZHRklGS0ZNRk9GUUZTRlVGWEZaRmZuRmVvRltvLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJy1JI21vR0YkNjNRIixGJy8lJWZvcm1HUSZpbmZpeEYnLyUmZmVuY2VHRjcvJSpzZXBhcmF0b3JHRjovJSdsc3BhY2VHUSQwZW1GJy8lJ3JzcGFjZUdRM3Zlcnl0aGlja21hdGhzcGFjZUYnLyUpc3RyZXRjaHlHRjcvJSpzeW1tZXRyaWNHRjcvJShtYXhzaXplR1EpaW5maW5pdHlGJy8lKG1pbnNpemVHUSIxRicvJShsYXJnZW9wR0Y3LyUubW92YWJsZWxpbWl0c0dGNy8lJ2FjY2VudEdGNy8lMGZvbnRfc3R5bGVfbmFtZUdGVy8lJXNpemVHRjQvJStmb3JlZ3JvdW5kR0ZDLyUrYmFja2dyb3VuZEdGRi1GXm82JUZgby1GIzYkLUZecDYzUSgmbWludXM7RidGYXBGZHBGZnBGaHBGW3FGXnFGYHFGYnFGZXFGaHFGanFGXHJGXnJGYHJGYnJGZHItRmFvNjlGZ3FGL0YyRjVGZG9GO0Y9Rj9GQUZERkdGSUZLRk1GT0ZRRlNGVUZYRlpGZm5GZW9GW29Gam9GXXAtRl5wNjNRIy4uRidGYXBGZHAvRmdwRjdGaHAvRlxxRmpwRl5xRmBxRmJxRmVxRmhxRmpxRlxyRl5yRmByRmJyRmRyLUZecDYzUSIuRidGYXBGZHBGYnNGaHBGY3NGXnFGYHFGYnFGZXFGaHFGanFGXHJGXnJGYHJGYnJGZHJGXXAtRl5vNiVGYG8tRiM2JC1GXnA2M0Zcc0ZhcEZkcEZic0ZocEZjc0ZecUZgcUZicUZlcUZocUZqcUZcckZeckZgckZickZkckZgb0Zqb0Zkcy1GXnA2M1ExJkludmlzaWJsZVRpbWVzO0YnRmFwRmRwRmJzL0ZpcFEvdGhpY2ttYXRoc3BhY2VGJy9GXHFGYXRGXnFGYHFGYnFGZXFGaHFGanFGXHJGXnJGYHJGYnJGZHJGXXQ=How do these values compare to the result from (2)? 4) Use diff to find the derivative of LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQtSSVtc3VwR0YkNiUtRiw2OVEiYUYnRi9GMkY1RjhGO0Y9Rj9GQUZERkdGSUZLRk1GT0ZRRlNGVUZYRlpGZm5GaG5GW28tRiw2OVEieEYnRi9GMkY1RjhGO0Y9Rj9GQUZERkdGSUZLRk1GT0ZRRlNGVUZYRlpGZm5GaG5GW28vJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRis= . 5) Use solve to find the value of LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2OVEiYUYnLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRicvJSVzaXplR1EjMTJGJy8lJWJvbGRHUSZmYWxzZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUqdW5kZXJsaW5lR0Y3LyUqc3Vic2NyaXB0R0Y3LyUsc3VwZXJzY3JpcHRHRjcvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJy8lJ29wYXF1ZUdGNy8lK2V4ZWN1dGFibGVHRjcvJSlyZWFkb25seUdGNy8lKWNvbXBvc2VkR0Y3LyUqY29udmVydGVkR0Y3LyUraW1zZWxlY3RlZEdGNy8lLHBsYWNlaG9sZGVyR0Y3LyUwZm9udF9zdHlsZV9uYW1lR1EoMkR+TWF0aEYnLyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0LUkjbW9HRiQ2M1ExJkludmlzaWJsZVRpbWVzO0YnLyUlZm9ybUdRJmluZml4RicvJSZmZW5jZUdGNy8lKnNlcGFyYXRvckdGNy8lJ2xzcGFjZUdRL3RoaWNrbWF0aHNwYWNlRicvJSdyc3BhY2VHRmpvLyUpc3RyZXRjaHlHRjcvJSpzeW1tZXRyaWNHRjcvJShtYXhzaXplR1EpaW5maW5pdHlGJy8lKG1pbnNpemVHUSIxRicvJShsYXJnZW9wR0Y3LyUubW92YWJsZWxpbWl0c0dGNy8lJ2FjY2VudEdGNy8lMGZvbnRfc3R5bGVfbmFtZUdGVy8lJXNpemVHRjQvJStmb3JlZ3JvdW5kR0ZDLyUrYmFja2dyb3VuZEdGRg==such that LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSgyRH5NYXRoRicvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQtRiM2K0YrLUkmbWZyYWNHRiQ2Ki1JI21vR0YkNjNRMCZEaWZmZXJlbnRpYWxEO0YnLyUlZm9ybUdRJ3ByZWZpeEYnLyUmZmVuY2VHRjcvJSpzZXBhcmF0b3JHRjcvJSdsc3BhY2VHUSQwZW1GJy8lJ3JzcGFjZUdGX3AvJSlzdHJldGNoeUdGNy8lKnN5bW1ldHJpY0dGNy8lKG1heHNpemVHUSlpbmZpbml0eUYnLyUobWluc2l6ZUdRIjFGJy8lKGxhcmdlb3BHRjcvJS5tb3ZhYmxlbGltaXRzR0Y3LyUnYWNjZW50R0Y3LyUwZm9udF9zdHlsZV9uYW1lR0ZXLyUlc2l6ZUdGNC8lK2ZvcmVncm91bmRHRkMvJStiYWNrZ3JvdW5kR0ZGLUYjNihGK0Ziby1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EnMC4wfmV4RicvJSZ3aWR0aEdRJzAuMn5lbUYnLyUmZGVwdGhHRmFyLyUqbGluZWJyZWFrR1ElYXV0b0YnRistRiw2OVEieEYnRi9GMkY1RjhGO0Y9Rj8vRkJRLFsyMDAsMCwyMDBdRidGREZHRklGS0ZNRk9GUS9GVEY6RlUvRllGXnNGWkZmbkZobkZbb0YrLyUubGluZXRoaWNrbmVzc0dRIjFGJy8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGJy8lKW51bWFsaWduR0Zmcy8lKWJldmVsbGVkR0Y3RmZxRmhxLUZjbzYzUTAmQXBwbHlGdW5jdGlvbjtGJy9GZ29RJmluZml4RidGaW9GW3BGXXBGYHBGYnBGZHBGZnBGaXBGXHFGXnFGYHFGYnFGZHFGZnFGaHEtRl1yNiZGX3IvRmNyUScwLjR+ZW1GJ0ZlckZnckYrLUklbXN1cEdGJDYlLUYsNjlRImFGJ0YvRjJGNUY4RjtGPUY/RkFGREZHRklGS0ZNRk9GUUZTRlVGWEZaRmZuRmhuRltvLUYsNjlGXHNGL0YyRjVGOEY7Rj1GP0ZBRkRGR0ZJRktGTUZPRlFGU0ZVRlhGWkZmbkZobkZbby8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRictRmNvNjNRIj1GJ0ZedEZpb0ZbcC9GXnBRL3RoaWNrbWF0aHNwYWNlRicvRmFwRmN1RmJwRmRwRmZwRmlwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmR0LUZjbzYzUSIuRidGXnRGaW9GW3BGXXBGYHBGYnBGZHBGZnBGaXBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGKw==
<Text-field style="Heading 1" layout="Heading 1">Question 3 [4 points] (Recursion and Trees) </Text-field> In this question you will write a recursive Maple function to compute the number of nodes in a binary expression tree. Trees will be represented as they were in Lab 5 and the code to build and manipulate trees is provided in the subsection "Expression Tree Code". First evaluate the expression tree code so that the provided routines are available in your Maple session. Second evaluate the expression that constructs the tree T and print it using the provided PrintTree function and evaluate it using the provided EvalTree function. Differentiate the tree T, with the provided DiffTree function, and check, using diff and EvalTree that the computed derivative is correct. Next write a recursive Maple function called NumberNodes, which computes the number of nodes in an expression tree. See below for a few hints on how to do and check this. Use your function to compute the number of nodes in the tree T (it should be 9) and the number of nodes in the tree returned by DiffTree with T as an input.
<Text-field style="Heading 2" layout="Heading 2">Expression Tree Code</Text-field> MakeTree := proc(val,left,right) return [val,left,right]; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USlNYWtlVHJlZUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNigtRl9vNjNRJXByb2NGKC9GY29RIUYoRmVvRmdvL0Zqb1EkMGVtRigvRl1wRl5yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiUtRl9vNjNRIihGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZpci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYnLUYtNjlRJHZhbEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSIsRihGYm9GZW8vRmhvRjtGXXIvRl1wUTN2ZXJ5dGhpY2ttYXRoc3BhY2VGKEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GLTY5USVsZWZ0RihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GYXMtRi02OVEmcmlnaHRGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1GX282M1EiKUYoL0Zjb1EocG9zdGZpeEYoRmdyRmdvRmhyL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZbc0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1JJ21zcGFjZUdGJTYmLyUnaGVpZ2h0R1EnMC4wfmV4RigvJSZ3aWR0aEdRJzAuM35lbUYoLyUmZGVwdGhHRml0LyUqbGluZWJyZWFrR1ExZmlyc3Rwcm9jbmV3bGluZUYoLUYkNiQtRl9vNjNRJ3JldHVybkYoRltyRmVvRmdvRl1yL0ZdcFEwbWVkaXVtbWF0aHNwYWNlRihGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GX282M1EiW0YoRmVyRmdyRmdvRmhyRmpyRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRlxzLUZfbzYzUSJdRihGYHRGZ3JGZ29GaHJGYnRGW3NGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRmV0NiZGZ3QvRlt1UScwLjB+ZW1GKEZddS9GYHVRNmRlY3JlYXNlaW5kZW50bmV3bGluZUYoLUZfbzYzUSllbmR+cHJvY0YoRltyRmVvRmdvL0Zqb0ZodUZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkkpTWFrZVRyZWVHRihmKjYlSSR2YWxHRihJJWxlZnRHRihJJnJpZ2h0R0YoRihGKEYoTzclRmV3RmZ3Rmd3RihGKEYoNyNGY3c= NullTree := proc() return []; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USlOdWxsVHJlZUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNigtRl9vNjNRJXByb2NGKC9GY29RIUYoRmVvRmdvL0Zqb1EkMGVtRigvRl1wRl5yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiUtRl9vNjNRIihGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZpci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUYtNjlGXHJGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRl9vNjNRIilGKC9GY29RKHBvc3RmaXhGKEZnckZnb0Zoci9GXXBRMnZlcnl0aGlubWF0aHNwYWNlRihGW3NGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtSSdtc3BhY2VHRiU2Ji8lJ2hlaWdodEdRJzAuMH5leEYoLyUmd2lkdGhHUScwLjN+ZW1GKC8lJmRlcHRoR0ZcdC8lKmxpbmVicmVha0dRMWZpcnN0cHJvY25ld2xpbmVGKC1GJDYkLUZfbzYzUSdyZXR1cm5GKEZbckZlb0Znb0Zdci9GXXBRMG1lZGl1bW1hdGhzcGFjZUYoRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiUtRl9vNjNRIltGKEZlckZnckZnb0ZockZqckZbc0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcUZccy1GX282M1EiXUYoRmNzRmdyRmdvRmhyRmVzRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUZoczYmRmpzL0ZedFEnMC4wfmVtRihGYHQvRmN0UTZkZWNyZWFzZWluZGVudG5ld2xpbmVGKC1GX282M1EpZW5kfnByb2NGKEZbckZlb0Znby9Gam9GW3VGX3JGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JKU51bGxUcmVlR0YoZipGKEYoRihGKE83IkYoRihGKDcjRmZ2 IsNullTree := proc(T) return T = NullTree(); end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5UStJc051bGxUcmVlRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2KC1GX282M1ElcHJvY0YoL0Zjb1EhRihGZW9GZ28vRmpvUSQwZW1GKC9GXXBGXnJGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GX282M1EiKEYoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRmlyL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtRi02OVEiVEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSIpRigvRmNvUShwb3N0Zml4RihGZ3JGZ29GaHIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUknbXNwYWNlR0YlNiYvJSdoZWlnaHRHUScwLjB+ZXhGKC8lJndpZHRoR1EnMC4zfmVtRigvJSZkZXB0aEdGXXQvJSpsaW5lYnJlYWtHUTFmaXJzdHByb2NuZXdsaW5lRigtRiQ2JC1GX282M1EncmV0dXJuRihGW3JGZW9GZ29GXXIvRl1wUTBtZWRpdW1tYXRoc3BhY2VGKEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlRl5zLUZfbzYzUSI9RihGYm9GZW9GZ29GaW9GXHBGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GLTY5USlOdWxsVHJlZUYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUTAmQXBwbHlGdW5jdGlvbjtGKEZib0Zlb0Znb0ZdckZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlRmJyLUYkNiMtRi02OUZcckYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Zhcy1GaXM2JkZbdC9GX3RRJzAuMH5lbUYoRmF0L0ZkdFE2ZGVjcmVhc2VpbmRlbnRuZXdsaW5lRigtRl9vNjNRKWVuZH5wcm9jRihGW3JGZW9GZ28vRmpvRlx1Rl9yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SStJc051bGxUcmVlR0YoZio2I0kiVEdGKEYoRihGKE8vRmR3LUkpTnVsbFRyZWVHRihGKEYoRihGKDcjRmJ3 MakeLeaf := proc(val) return [val,NullTree(),NullTree()]; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USlNYWtlTGVhZkYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNigtRl9vNjNRJXByb2NGKC9GY29RIUYoRmVvRmdvL0Zqb1EkMGVtRigvRl1wRl5yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiUtRl9vNjNRIihGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZpci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUYtNjlRJHZhbEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSIpRigvRmNvUShwb3N0Zml4RihGZ3JGZ29GaHIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUknbXNwYWNlR0YlNiYvJSdoZWlnaHRHUScwLjB+ZXhGKC8lJndpZHRoR1EnMC4zfmVtRigvJSZkZXB0aEdGXXQvJSpsaW5lYnJlYWtHUTFmaXJzdHByb2NuZXdsaW5lRigtRiQ2JC1GX282M1EncmV0dXJuRihGW3JGZW9GZ29GXXIvRl1wUTBtZWRpdW1tYXRoc3BhY2VGKEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlLUZfbzYzUSJbRihGZXJGZ3JGZ29GaHJGanJGW3NGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2J0Zecy1GX282M1EiLEYoRmJvRmVvL0Zob0Y7Rl1yL0ZdcFEzdmVyeXRoaWNrbWF0aHNwYWNlRihGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GLTY5USlOdWxsVHJlZUYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUTAmQXBwbHlGdW5jdGlvbjtGKEZib0Zlb0Znb0ZdckZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlRmJyLUYkNiMtRi02OUZcckYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Zhc0ZkdUZqdS1GX282M1EiXUYoRmRzRmdyRmdvRmhyRmZzRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUZpczYmRlt0L0ZfdFEnMC4wfmVtRihGYXQvRmR0UTZkZWNyZWFzZWluZGVudG5ld2xpbmVGKC1GX282M1EpZW5kfnByb2NGKEZbckZlb0Znby9Gam9GXHVGX3JGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JKU1ha2VMZWFmR0YoZio2I0kkdmFsR0YoRihGKEYoTzclRl94LUkpTnVsbFRyZWVHRihGKEZieEYoRihGKDcjRl14 GetLeft := proc(T) return T[2]; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5UShHZXRMZWZ0RigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2KC1GX282M1ElcHJvY0YoL0Zjb1EhRihGZW9GZ28vRmpvUSQwZW1GKC9GXXBGXnJGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GX282M1EiKEYoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRmlyL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtRi02OVEiVEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSIpRigvRmNvUShwb3N0Zml4RihGZ3JGZ29GaHIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUknbXNwYWNlR0YlNiYvJSdoZWlnaHRHUScwLjB+ZXhGKC8lJndpZHRoR1EnMC4zfmVtRigvJSZkZXB0aEdGXXQvJSpsaW5lYnJlYWtHUTFmaXJzdHByb2NuZXdsaW5lRigtRiQ2JC1GX282M1EncmV0dXJuRihGW3JGZW9GZ29GXXIvRl1wUTBtZWRpdW1tYXRoc3BhY2VGKEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYmRl5zLUZfbzYzUSJbRihGZXJGZ3JGZ29GaHJGanJGW3NGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2Iy1JI21uR0YlNjlRIjJGKEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvLUZfbzYzUSJdRihGZHNGZ3JGZ29GaHJGZnNGW3NGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRmlzNiZGW3QvRl90UScwLjB+ZW1GKEZhdC9GZHRRNmRlY3JlYXNlaW5kZW50bmV3bGluZUYoLUZfbzYzUSllbmR+cHJvY0YoRltyRmVvRmdvL0Zqb0ZcdUZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkkoR2V0TGVmdEdGKGYqNiNJIlRHRihGKEYoRihPJkZidzYjIiIjRihGKEYoNyNGYHc= GetRight := proc(T) return T[3]; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USlHZXRSaWdodEYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNigtRl9vNjNRJXByb2NGKC9GY29RIUYoRmVvRmdvL0Zqb1EkMGVtRigvRl1wRl5yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiUtRl9vNjNRIihGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZpci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUYtNjlRIlRGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1GX282M1EiKUYoL0Zjb1EocG9zdGZpeEYoRmdyRmdvRmhyL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZbc0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1JJ21zcGFjZUdGJTYmLyUnaGVpZ2h0R1EnMC4wfmV4RigvJSZ3aWR0aEdRJzAuM35lbUYoLyUmZGVwdGhHRl10LyUqbGluZWJyZWFrR1ExZmlyc3Rwcm9jbmV3bGluZUYoLUYkNiQtRl9vNjNRJ3JldHVybkYoRltyRmVvRmdvRl1yL0ZdcFEwbWVkaXVtbWF0aHNwYWNlRihGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JkZecy1GX282M1EiW0YoRmVyRmdyRmdvRmhyRmpyRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSNtbkdGJTY5USIzRihGMEYzRjYvRjpGOEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ24vRmpuUSdub3JtYWxGKEZcby1GX282M1EiXUYoRmRzRmdyRmdvRmhyRmZzRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUZpczYmRlt0L0ZfdFEnMC4wfmVtRihGYXQvRmR0UTZkZWNyZWFzZWluZGVudG5ld2xpbmVGKC1GX282M1EpZW5kfnByb2NGKEZbckZlb0Znby9Gam9GXHVGX3JGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JKUdldFJpZ2h0R0YoZio2I0kiVEdGKEYoRihGKE8mRmJ3NiMiIiRGKEYoRig3I0Zgdw== GetVal := proc(T) return T[1]; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USdHZXRWYWxGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKlswLDAsMjU1XUYoLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GKC8lJ29wYXF1ZUdGOC8lK2V4ZWN1dGFibGVHRjgvJSlyZWFkb25seUdGOy8lKWNvbXBvc2VkR0Y4LyUqY29udmVydGVkR0Y4LyUraW1zZWxlY3RlZEdGOC8lLHBsYWNlaG9sZGVyR0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSptYXRoY29sb3JHRkQvJS9tYXRoYmFja2dyb3VuZEdGRy8lK2ZvbnRmYW1pbHlHRjIvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YoLyUpbWF0aHNpemVHRjUtSSNtb0dGJTYzUSM6PUYoLyUlZm9ybUdRJmluZml4RigvJSZmZW5jZUdGOC8lKnNlcGFyYXRvckdGOC8lJ2xzcGFjZUdRL3RoaWNrbWF0aHNwYWNlRigvJSdyc3BhY2VHRltwLyUpc3RyZXRjaHlHRjgvJSpzeW1tZXRyaWNHRjgvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHUSIxRigvJShsYXJnZW9wR0Y4LyUubW92YWJsZWxpbWl0c0dGOC8lJ2FjY2VudEdGOC8lMGZvbnRfc3R5bGVfbmFtZUdGWC8lJXNpemVHRjUvJStmb3JlZ3JvdW5kR0ZELyUrYmFja2dyb3VuZEdGRy1GJDYoLUZfbzYzUSVwcm9jRigvRmNvUSFGKEZlb0Znby9Gam9RJDBlbUYoL0ZdcEZeckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlLUZfbzYzUSIoRigvRmNvUSdwcmVmaXhGKC9GZm9GO0Znby9Gam9RLnRoaW5tYXRoc3BhY2VGKC9GXXBGaXIvRl9wRjtGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2Iy1GLTY5USJURihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRl9vNjNRIilGKC9GY29RKHBvc3RmaXhGKEZnckZnb0Zoci9GXXBRMnZlcnl0aGlubWF0aHNwYWNlRihGW3NGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtSSdtc3BhY2VHRiU2Ji8lJ2hlaWdodEdRJzAuMH5leEYoLyUmd2lkdGhHUScwLjN+ZW1GKC8lJmRlcHRoR0ZddC8lKmxpbmVicmVha0dRMWZpcnN0cHJvY25ld2xpbmVGKC1GJDYkLUZfbzYzUSdyZXR1cm5GKEZbckZlb0Znb0Zdci9GXXBRMG1lZGl1bW1hdGhzcGFjZUYoRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiZGXnMtRl9vNjNRIltGKEZlckZnckZnb0ZockZqckZbc0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUkjbW5HRiU2OUZncEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvLUZfbzYzUSJdRihGZHNGZ3JGZ29GaHJGZnNGW3NGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRmlzNiZGW3QvRl90UScwLjB+ZW1GKEZhdC9GZHRRNmRlY3JlYXNlaW5kZW50bmV3bGluZUYoLUZfbzYzUSllbmR+cHJvY0YoRltyRmVvRmdvL0Zqb0ZcdUZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkknR2V0VmFsR0YoZio2I0kiVEdGKEYoRihGKE8mRmF3NiMiIiJGKEYoRig3I0Zfdw== The following function prints a tree in a human readable form. To simplify the code, the tree is printed sideways, i.e. rotated 90 degrees counter clockwise. # A function to print a binary tree. # The root of the tree is printed to the left and the tree should be rotated to be viewed. PrintTree := proc(T) PrintTreeAux(T,""); end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USpQcmludFRyZWVGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKlswLDAsMjU1XUYoLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GKC8lJ29wYXF1ZUdGOC8lK2V4ZWN1dGFibGVHRjgvJSlyZWFkb25seUdGOy8lKWNvbXBvc2VkR0Y4LyUqY29udmVydGVkR0Y4LyUraW1zZWxlY3RlZEdGOC8lLHBsYWNlaG9sZGVyR0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSptYXRoY29sb3JHRkQvJS9tYXRoYmFja2dyb3VuZEdGRy8lK2ZvbnRmYW1pbHlHRjIvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YoLyUpbWF0aHNpemVHRjUtSSNtb0dGJTYzUSM6PUYoLyUlZm9ybUdRJmluZml4RigvJSZmZW5jZUdGOC8lKnNlcGFyYXRvckdGOC8lJ2xzcGFjZUdRL3RoaWNrbWF0aHNwYWNlRigvJSdyc3BhY2VHRltwLyUpc3RyZXRjaHlHRjgvJSpzeW1tZXRyaWNHRjgvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHUSIxRigvJShsYXJnZW9wR0Y4LyUubW92YWJsZWxpbWl0c0dGOC8lJ2FjY2VudEdGOC8lMGZvbnRfc3R5bGVfbmFtZUdGWC8lJXNpemVHRjUvJStmb3JlZ3JvdW5kR0ZELyUrYmFja2dyb3VuZEdGRy1GJDYoLUZfbzYzUSVwcm9jRigvRmNvUSFGKEZlb0Znby9Gam9RJDBlbUYoL0ZdcEZeckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlLUZfbzYzUSIoRigvRmNvUSdwcmVmaXhGKC9GZm9GO0Znby9Gam9RLnRoaW5tYXRoc3BhY2VGKC9GXXBGaXIvRl9wRjtGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2Iy1GLTY5USJURihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRl9vNjNRIilGKC9GY29RKHBvc3RmaXhGKEZnckZnb0Zoci9GXXBRMnZlcnl0aGlubWF0aHNwYWNlRihGW3NGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtSSdtc3BhY2VHRiU2Ji8lJ2hlaWdodEdRJzAuMH5leEYoLyUmd2lkdGhHUScwLjN+ZW1GKC8lJmRlcHRoR0ZddC8lKmxpbmVicmVha0dRMWZpcnN0cHJvY25ld2xpbmVGKC1GJDYlLUYtNjlRLVByaW50VHJlZUF1eEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUTAmQXBwbHlGdW5jdGlvbjtGKEZib0Zlb0Znb0ZdckZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlRmJyLUYkNiVGXnMtRl9vNjNRIixGKEZib0Zlby9GaG9GO0Zdci9GXXBRM3Zlcnl0aGlja21hdGhzcGFjZUYoRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUkjbXNHRiU2I0ZcckZhcy1GaXM2JkZbdC9GX3RRJzAuMH5lbUYoRmF0L0ZkdFE2ZGVjcmVhc2VpbmRlbnRuZXdsaW5lRigtRl9vNjNRKWVuZH5wcm9jRihGW3JGZW9GZ28vRmpvUTBtZWRpdW1tYXRoc3BhY2VGKEZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkkqUHJpbnRUcmVlR0YoZio2I0kiVEdGKEYoRihGKC1JLVByaW50VHJlZUF1eEdGKDYkRmB3RlxyRihGKEYoNyNGXnc= PrintTreeAux := proc(T,str) local leadingblanks; leadingblanks := " "; if IsNullTree(T) then return; else PrintTreeAux(GetRight(T),cat(leadingblanks,str)); # Print right child with additional indentation printf("%s %a\n",str,GetVal(T)); PrintTreeAux(GetLeft(T),cat(leadingblanks,str)); end if; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5US1QcmludFRyZWVBdXhGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKlswLDAsMjU1XUYoLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GKC8lJ29wYXF1ZUdGOC8lK2V4ZWN1dGFibGVHRjgvJSlyZWFkb25seUdGOy8lKWNvbXBvc2VkR0Y4LyUqY29udmVydGVkR0Y4LyUraW1zZWxlY3RlZEdGOC8lLHBsYWNlaG9sZGVyR0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSptYXRoY29sb3JHRkQvJS9tYXRoYmFja2dyb3VuZEdGRy8lK2ZvbnRmYW1pbHlHRjIvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YoLyUpbWF0aHNpemVHRjUtSSNtb0dGJTYzUSM6PUYoLyUlZm9ybUdRJmluZml4RigvJSZmZW5jZUdGOC8lKnNlcGFyYXRvckdGOC8lJ2xzcGFjZUdRL3RoaWNrbWF0aHNwYWNlRigvJSdyc3BhY2VHRltwLyUpc3RyZXRjaHlHRjgvJSpzeW1tZXRyaWNHRjgvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHUSIxRigvJShsYXJnZW9wR0Y4LyUubW92YWJsZWxpbWl0c0dGOC8lJ2FjY2VudEdGOC8lMGZvbnRfc3R5bGVfbmFtZUdGWC8lJXNpemVHRjUvJStmb3JlZ3JvdW5kR0ZELyUrYmFja2dyb3VuZEdGRy1GJDYpLUZfbzYzUSVwcm9jRigvRmNvUSFGKEZlb0Znby9Gam9RJDBlbUYoL0ZdcEZeckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlLUZfbzYzUSIoRigvRmNvUSdwcmVmaXhGKC9GZm9GO0Znby9Gam9RLnRoaW5tYXRoc3BhY2VGKC9GXXBGaXIvRl9wRjtGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GLTY5USJURihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRl9vNjNRIixGKEZib0Zlby9GaG9GO0Zdci9GXXBRM3Zlcnl0aGlja21hdGhzcGFjZUYoRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYtNjlRJHN0ckYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSIpRigvRmNvUShwb3N0Zml4RihGZ3JGZ29GaHIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUknbXNwYWNlR0YlNiYvJSdoZWlnaHRHUScwLjB+ZXhGKC8lJndpZHRoR1EnMC4zfmVtRigvJSZkZXB0aEdGZnQvJSpsaW5lYnJlYWtHUTFmaXJzdHByb2NuZXdsaW5lRigtRiQ2Ji1GX282M1EmbG9jYWxGKEZbckZlb0Znb0Zdci9GXXBRMG1lZGl1bW1hdGhzcGFjZUYoRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtRi02OVEubGVhZGluZ2JsYW5rc0YoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSI7RihGYm9GZW9GZHNGXXJGXHBGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHFGYXQtRiQ2JC1GJDYlLUYkNiVGaHVGXm8tSSNtc0dGJTYjUSR+fn5GKEZbdkZhdC1GJDYlLUYkNigtRl9vNjNRI2lmRihGW3JGZW9GZ29GXXJGZHVGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GLTY5UStJc051bGxUcmVlRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRl9vNjNRMCZBcHBseUZ1bmN0aW9uO0YoRmJvRmVvRmdvRl1yRl9yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiVGYnItRiQ2I0Zec0Zqcy1GX282M1EldGhlbkYoRltyRmVvRmdvL0Zqb0ZldUZkdUZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GYnQ2JkZkdEZndEZqdC9GXXVRNmluY3JlYXNlaW5kZW50bmV3bGluZUYoLUYkNiQtRl9vNjNRJ3JldHVybkYoRltyRmVvRmdvRl1yRmR1Rl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtRi02OUZcckYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1GYnQ2JkZkdC9GaHRRJzAuMH5lbUYoRmp0L0ZddVE2ZGVjcmVhc2VpbmRlbnRuZXdsaW5lRigtRiQ2Ji1GX282M1ElZWxzZUYoRltyRmVvRmdvRl54RmR1Rl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRl94LUYkNiUtRiQ2JS1GJDYlRixGZHctRiQ2JUZici1GJDYlLUYkNiUtRi02OVEpR2V0UmlnaHRGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Zkd0Znd0Zhcy1GJDYlLUYtNjlRJGNhdEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmR3LUYkNiVGYnItRiQ2JUZodUZhc0Znc0Zqc0Zqc0ZbdkZhdC1GJDYlLUYkNiUtRi02OVEncHJpbnRmRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZHctRiQ2JUZici1GJDYnLUZldjYjUSclc34lYXwrRihGYXNGZ3NGYXMtRiQ2JS1GLTY5USdHZXRWYWxGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Zkd0Znd0Zqc0ZbdkZhdC1GJDYlRixGZHctRiQ2JUZici1GJDYlLUYkNiUtRi02OVEoR2V0TGVmdEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmR3Rmd3RmFzRmZ6RmpzRlx5LUZfbzYzUSdlbmR+aWZGKEZbckZlb0Znb0ZeeEZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcUZceS1GX282M1EpZW5kfnByb2NGKEZbckZlb0Znb0ZeeEZfckZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkktUHJpbnRUcmVlQXV4R0YoZio2JEkiVEdGKEkkc3RyR0YoNiNJLmxlYWRpbmdibGFua3NHRihGKEYoQyQ+RmBebEZndkAlLUkrSXNOdWxsVHJlZUdGKDYjRl1ebE9GKEMlLUZqXWw2JC1JKUdldFJpZ2h0R0YoRmZebC1JJGNhdEclKnByb3RlY3RlZEc2JEZgXmxGXl5sLUkncHJpbnRmR0YoNiVGXFxsRl5ebC1JJ0dldFZhbEdGKEZmXmwtRmpdbDYkLUkoR2V0TGVmdEdGKEZmXmxGXV9sRihGKEYoNyNGW15s EvalTree := proc(T) local val,left,right; if IsNullTree(T) then return; end; val := GetVal(T); left := GetLeft(T); right := GetRight(T); if (val = `+`) then return `+`(EvalTree(left),EvalTree(right)); elif (val = `-`) then return `-`(EvalTree(left),EvalTree(right)); elif (val = `*`) then return `*`(EvalTree(left),EvalTree(right)); elif (val = `/`) then return `/`(EvalTree(left),EvalTree(right)); elif (val = `^`) then return `^`(EvalTree(left),EvalTree(right)); elif type(val,name) then return val; elif type(val,constant) then return val; else error "illegal expression tree"; end if; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USlFdmFsVHJlZUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiktRl9vNjNRJXByb2NGKC9GY29RIUYoRmVvRmdvL0Zqb1EkMGVtRigvRl1wRl5yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiUtRl9vNjNRIihGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZpci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUYtNjlRIlRGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1GX282M1EiKUYoL0Zjb1EocG9zdGZpeEYoRmdyRmdvRmhyL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZbc0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1JJ21zcGFjZUdGJTYmLyUnaGVpZ2h0R1EnMC4wfmV4RigvJSZ3aWR0aEdRJzAuM35lbUYoLyUmZGVwdGhHRl10LyUqbGluZWJyZWFrR1ExZmlyc3Rwcm9jbmV3bGluZUYoLUYkNiYtRl9vNjNRJmxvY2FsRihGW3JGZW9GZ29GXXIvRl1wUTBtZWRpdW1tYXRoc3BhY2VGKEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYnLUYtNjlRJHZhbEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSIsRihGYm9GZW8vRmhvRjtGXXIvRl1wUTN2ZXJ5dGhpY2ttYXRoc3BhY2VGKEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GLTY5USVsZWZ0RihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GYnUtRi02OVEmcmlnaHRGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1GX282M1EiO0YoRmJvRmVvRmV1Rl1yRlxwRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmhzLUYkNictRiQ2JS1GJDYkLUYkNigtRl9vNjNRI2lmRihGW3JGZW9GZ29GXXJGW3VGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1GLTY5UStJc051bGxUcmVlRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRl9vNjNRMCZBcHBseUZ1bmN0aW9uO0YoRmJvRmVvRmdvRl1yRl9yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmByLUZfbzYzUSV0aGVuRihGW3JGZW9GZ28vRmpvRlx1Rlt1Rl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUZpczYmRlt0Rl50RmF0L0ZkdFE2aW5jcmVhc2VpbmRlbnRuZXdsaW5lRigtRiQ2JC1GX282M1EncmV0dXJuRihGW3JGZW9GZ29GXXJGW3VGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2Iy1GLTY5RlxyRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZpczYmRlt0L0ZfdFEnMC4wfmVtRihGYXQvRmR0UTZkZWNyZWFzZWluZGVudG5ld2xpbmVGKC1GX282M1EnZW5kfmlmRihGW3JGZW9GZ29GZ3dGX3JGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHFGXnZGaHMtRiQ2JS1GJDYlRl91Rl5vLUYkNiUtRi02OVEnR2V0VmFsRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GYXdGYHJGXnZGaHMtRiQ2JS1GJDYlRmh1Rl5vLUYkNiUtRi02OVEoR2V0TGVmdEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmF3RmByRl52RmhzLUYkNiUtRiQ2JUZbdkZeby1GJDYlLUYtNjlRKUdldFJpZ2h0RihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GYXdGYHJGXnZGaHMtRiQ2Ky1GJDYoRml2LUYkNiVGX3UtRl9vNjNRIj1GKEZib0Zlb0Znb0Zpb0ZccEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GLTY5USIrRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZHdGaHctRiQ2JEZeeC1GJDYlRmJbbEZhdy1GJDYlRmJyLUYkNiUtRiQ2JUYsRmF3LUYkNiVGYnItRiQ2I0ZodUZhc0ZidS1GJDYlRixGYXctRiQ2JUZici1GJDYjRlt2RmFzRmFzRmV4LUYkNigtRl9vNjNRJWVsaWZGKEZbckZlb0Znb0Znd0ZbdUZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlRl91Rl9bbC1GLTY5USItRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZHdGaHctRiQ2JEZeeC1GJDYlRmBdbEZhd0ZpW2xGZXgtRiQ2KEZbXWwtRiQ2JUZfdUZfW2wtRi02OVEiKkYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmR3Rmh3LUYkNiRGXngtRiQ2JUZbXmxGYXdGaVtsRmV4LUYkNihGW11sLUYkNiVGX3VGX1tsLUYtNjlRIi9GKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Zkd0Zody1GJDYkRl54LUYkNiVGZl5sRmF3RmlbbEZleC1GJDYoRltdbC1GJDYlRl91Rl9bbC1GLTY5USJeRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZHdGaHctRiQ2JEZeeC1GJDYlRmFfbEZhd0ZpW2xGZXgtRiQ2KEZbXWwtRiQ2JS1GLTY5USV0eXBlRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GYXctRiQ2JUZici1GJDYlRl91RmJ1LUYtNjlRJW5hbWVGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Zhc0Zkd0Zody1GJDYkRl54Rl91RmV4LUYkNihGW11sLUYkNiVGXGBsRmF3LUYkNiVGYnItRiQ2JUZfdUZidS1GLTY5USljb25zdGFudEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmFzRmR3Rmh3RmZgbEZleC1GJDYmLUZfbzYzUSVlbHNlRihGW3JGZW9GZ29GZ3dGW3VGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHFGaHctRiQ2JC1GX282M1EmZXJyb3JGKEZbckZlb0Znb0ZdckZbdUZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1JI21zR0YlNiNROGlsbGVnYWx+ZXhwcmVzc2lvbn50cmVlRihGZXhGW3lGZXgtRl9vNjNRKWVuZH5wcm9jRihGW3JGZW9GZ29GZ3dGX3JGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JKUV2YWxUcmVlR0YoZio2I0kiVEdGKDYlSSR2YWxHRihJJWxlZnRHRihJJnJpZ2h0R0YoRihGKEMnQCQtSStJc051bGxUcmVlR0YoRl1jbE9GKD5GYGNsLUknR2V0VmFsR0YoRl1jbD5GYWNsLUkoR2V0TGVmdEdGKEZdY2w+RmJjbC1JKUdldFJpZ2h0R0YoRl1jbEAxL0ZgY2xJIitHJSpwcm90ZWN0ZWRHTy1GY2RsNiQtRltjbDYjRmFjbC1GW2NsNiNGYmNsL0ZgY2xJIi1HRihPLUZdZWxGZ2RsL0ZgY2xJIipHRmRkbE8tRmFlbEZnZGwvRmBjbEkiL0dGKE8tRmVlbEZnZGwvRmBjbEkiXkdGZGRsTy1GaWVsRmdkbC1JJXR5cGVHRmRkbDYkRmBjbEklbmFtZUdGZGRsT0ZgY2wtRl1mbDYkRmBjbEkpY29uc3RhbnRHRmRkbEZgZmxZRmBibEYoRihGKDcjRlxjbA== DiffTree := proc(T,x) local val,left,right,n; if IsNullTree(T) then return; end; val := GetVal(T); left := GetLeft(T); right := GetRight(T); if type(val,constant) then return MakeLeaf(0); elif (val = `+`) then # Sum of derivatives return MakeTree(`+`,DiffTree(left,x),DiffTree(right,x)); elif (val = `-`) then # Difference of derivatives return MakeTree(`-`,DiffTree(left,x),DiffTree(right,x)); elif (val = `*`) then # Product Rule return MakeTree(`+`,MakeTree(`*`,left,DiffTree(right,x)),MakeTree(`*`,DiffTree(left,x),right)); elif (val = `/`) then # Quotient Rule return MakeTree(`/`, MakeTree(`-`, MakeTree(`*`,DiffTree(left,x),right), MakeTree(`*`,left,DiffTree(right,x))), MakeTree(`*`,right,right) ); elif (val = `^`) then # Chain Rule left^right -> right*left^(right-1)*diff(left,x) n := EvalTree(right); return MakeTree(`*`,MakeLeaf(n), MakeTree(`*`,MakeTree(`^`,left,MakeLeaf(n-1)),DiffTree(left,x))); elif type(val,name) then # must put this case at the end as `*`, etc. are names. if (val = x) then return MakeLeaf(1); else return MakeLeaf(0); end if; else error "illegal expression tree"; end if; end; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USlEaWZmVHJlZUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiktRl9vNjNRJXByb2NGKC9GY29RIUYoRmVvRmdvL0Zqb1EkMGVtRigvRl1wRl5yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiUtRl9vNjNRIihGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZpci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlLUYtNjlRIlRGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1GX282M1EiLEYoRmJvRmVvL0Zob0Y7Rl1yL0ZdcFEzdmVyeXRoaWNrbWF0aHNwYWNlRihGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRi02OVEieEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSIpRigvRmNvUShwb3N0Zml4RihGZ3JGZ29GaHIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRltzRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUknbXNwYWNlR0YlNiYvJSdoZWlnaHRHUScwLjB+ZXhGKC8lJndpZHRoR1EnMC4zfmVtRigvJSZkZXB0aEdGZnQvJSpsaW5lYnJlYWtHUTFmaXJzdHByb2NuZXdsaW5lRigtRiQ2Ji1GX282M1EmbG9jYWxGKEZbckZlb0Znb0Zdci9GXXBRMG1lZGl1bW1hdGhzcGFjZUYoRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiktRi02OVEkdmFsRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GYXMtRi02OVElbGVmdEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmFzLUYtNjlRJnJpZ2h0RihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GYXMtRi02OVEibkYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSI7RihGYm9GZW9GZHNGXXJGXHBGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHFGYXQtRiQ2Jy1GJDYlLUYkNiQtRiQ2KC1GX282M1EjaWZGKEZbckZlb0Znb0ZdckZkdUZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlLUYtNjlRK0lzTnVsbFRyZWVGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1GX282M1EwJkFwcGx5RnVuY3Rpb247RihGYm9GZW9GZ29GXXJGX3JGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JUZici1GJDYjRl5zRmpzLUZfbzYzUSV0aGVuRihGW3JGZW9GZ28vRmpvRmV1RmR1Rl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUZidDYmRmR0Rmd0Rmp0L0ZddVE2aW5jcmVhc2VpbmRlbnRuZXdsaW5lRigtRiQ2JC1GX282M1EncmV0dXJuRihGW3JGZW9GZ29GXXJGZHVGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2Iy1GLTY5RlxyRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZidDYmRmR0L0ZodFEnMC4wfmVtRihGanQvRl11UTZkZWNyZWFzZWluZGVudG5ld2xpbmVGKC1GX282M1EnZW5kfmlmRihGW3JGZW9GZ29GYXhGX3JGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZHZGYXQtRiQ2JS1GJDYlRmh1Rl5vLUYkNiUtRi02OVEnR2V0VmFsRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZ3dGandGZHZGYXQtRiQ2JS1GJDYlRlt2Rl5vLUYkNiUtRi02OVEoR2V0TGVmdEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmd3Rmp3RmR2RmF0LUYkNiUtRiQ2JUZedkZeby1GJDYlLUYtNjlRKUdldFJpZ2h0RihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZ3dGandGZHZGYXQtRiQ2Ky1GJDYoRl93LUYkNiUtRi02OVEldHlwZUYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmd3LUYkNiVGYnItRiQ2JUZodUZhcy1GLTY5USljb25zdGFudEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmpzRl54RmJ4LUYkNiRGaHgtRiQ2JS1GLTY5USlNYWtlTGVhZkYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmd3LUYkNiVGYnItRiQ2Iy1JI21uR0YlNjlRIjBGKEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvRmpzRl95LUYkNigtRl9vNjNRJWVsaWZGKEZbckZlb0Znb0ZheEZkdUZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYlRmh1LUZfbzYzUSI9RihGYm9GZW9GZ29GaW9GXHBGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRi02OVEiK0YoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRl54RmJ4LUYkNiRGaHgtRiQ2JS1GLTY5USlNYWtlVHJlZUYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRmd3LUYkNiVGYnItRiQ2J0ZfXmxGYXMtRiQ2JUYsRmd3LUYkNiVGYnItRiQ2JUZbdkZhc0Znc0Zqc0Zhcy1GJDYlRixGZ3ctRiQ2JUZici1GJDYlRl52RmFzRmdzRmpzRmpzRl95LUYkNihGZ11sLUYkNiVGaHVGXF5sLUYtNjlRIi1GKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0ZeeEZieC1GJDYkRmh4LUYkNiVGZl5sRmd3LUYkNiVGYnItRiQ2J0ZdYGxGYXNGXV9sRmFzRmNfbEZqc0ZfeS1GJDYoRmddbC1GJDYlRmh1RlxebC1GLTY5USIqRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GXnhGYngtRiQ2JEZoeC1GJDYlRmZebEZndy1GJDYlRmJyLUYkNidGX15sRmFzLUYkNiVGZl5sRmd3LUYkNiVGYnItRiQ2J0ZcYWxGYXNGW3ZGYXNGY19sRmpzRmFzLUYkNiVGZl5sRmd3LUYkNiVGYnItRiQ2J0ZcYWxGYXNGXV9sRmFzRl52RmpzRmpzRl95LUYkNihGZ11sLUYkNiVGaHVGXF5sLUYtNjlRIi9GKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0ZeeEZieC1GJDYkRmh4LUYkNiVGZl5sRmd3LUYkNiVGYnItRiQ2J0ZnYmxGYXMtRiQ2JUZmXmxGZ3ctRiQ2JUZici1GJDYnRl1gbEZhc0ZdYmxGYXNGZ2FsRmpzRmFzLUYkNiVGZl5sRmd3LUYkNiVGYnItRiQ2J0ZcYWxGYXNGXnZGYXNGXnZGanNGanNGX3ktRiQ2KEZnXWwtRiQ2JUZodUZcXmwtRi02OVEiXkYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRl54RmJ4LUYkNiQtRiQ2JS1GJDYlRmF2Rl5vLUYkNiUtRi02OVEpRXZhbFRyZWVGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Zndy1GJDYlRmJyLUYkNiNGXnZGanNGZHZGYXQtRiQ2JEZoeC1GJDYlRmZebEZndy1GJDYlRmJyLUYkNidGXGFsRmFzLUYkNiVGZ1xsRmd3LUYkNiVGYnItRiQ2I0ZhdkZqc0Zhcy1GJDYlRmZebEZndy1GJDYlRmJyLUYkNidGXGFsRmFzLUYkNiVGZl5sRmd3LUYkNiVGYnItRiQ2J0ZiZGxGYXNGW3ZGYXMtRiQ2JUZnXGxGZ3ctRiQ2JUZici1GJDYjLUYkNiVGYXYtRl9vNjNRKn4mbWludXM7fkYoRltyRmVvRmdvRl1yRl9yRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUZfXWw2OUZncEYwRjNGNkZiXWxGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmNdbEZcb0Zqc0Zqc0Zhc0ZdX2xGanNGanNGX3ktRiQ2KEZnXWwtRiQ2JUZpW2xGZ3ctRiQ2JUZici1GJDYlRmh1RmFzLUYtNjlRJW5hbWVGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Zqc0ZeeEZieC1GJDYlLUYkNihGX3ctRiQ2JUZodUZcXmxGZ3NGXnhGYngtRiQ2JEZoeC1GJDYlRmdcbEZndy1GJDYlRmJyLUYkNiNGaWdsRmpzRl95LUYkNiYtRl9vNjNRJWVsc2VGKEZbckZlb0Znb0ZheEZkdUZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcUZieEZjXGxGX3lGZXlGX3ktRiQ2JkZmaWxGYngtRiQ2JC1GX282M1EmZXJyb3JGKEZbckZlb0Znb0ZdckZkdUZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1JI21zR0YlNiNROGlsbGVnYWx+ZXhwcmVzc2lvbn50cmVlRihGX3lGZXlGX3ktRl9vNjNRKWVuZH5wcm9jRihGW3JGZW9GZ29GYXhGX3JGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JKURpZmZUcmVlR0YoZio2JEkiVEdGKEkieEdGKDYmSSR2YWxHRihJJWxlZnRHRihJJnJpZ2h0R0YoSSJuR0YoRihGKEMnQCQtSStJc051bGxUcmVlR0YoNiNGYVttT0YoPkZkW20tSSdHZXRWYWxHRihGXFxtPkZlW20tSShHZXRMZWZ0R0YoRlxcbT5GZlttLUkpR2V0UmlnaHRHRihGXFxtQDEtSSV0eXBlRyUqcHJvdGVjdGVkRzYkRmRbbUkpY29uc3RhbnRHRmpcbU8tSSlNYWtlTGVhZkdGKDYjIiIhL0ZkW21JIitHRmpcbU8tSSlNYWtlVHJlZUdGKDYlRmNdbS1GXlttNiRGZVttRmJbbS1GXlttNiRGZlttRmJbbS9GZFttSSItRzYkRmpcbUYqTy1GZl1tNiVGXV5tRmhdbUZqXW0vRmRbbUkiKkdGalxtTy1GZl1tNiVGY11tLUZmXW02JUZjXm1GZVttRmpdbS1GZl1tNiVGY15tRmhdbUZmW20vRmRbbUkiL0dGXl5tTy1GZl1tNiVGXF9tLUZmXW02JUZdXm1GaV5tRmdebS1GZl1tNiVGY15tRmZbbUZmW20vRmRbbUkiXkdGalxtQyQ+RmdbbS1JKUV2YWxUcmVlR0YoNiNGZlttTy1GZl1tNiVGY15tLUZfXW02I0ZnW20tRmZdbTYlRmNebS1GZl1tNiVGZV9tRmVbbS1GX11tNiMsJkZnW20iIiJGZ2BtISIiRmhdbS1GaVxtNiRGZFttSSVuYW1lR0ZqXG1AJS9GZFttRmJbbU8tRl9dbTYjRmdgbUZdXW1ZRmNqbEYoRihGKDcjRl9bbQ==
T := MakeTree(`+`,MakeTree(`*`,MakeLeaf(3),MakeLeaf(x)),MakeTree(`^`,MakeTree(`+`,MakeLeaf(2),MakeLeaf(x)),MakeLeaf(10))); NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USJURigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNictRi02OVEiK0YoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSIsRihGYm9GZW8vRmhvRjsvRmpvUSQwZW1GKC9GXXBRM3Zlcnl0aGlja21hdGhzcGFjZUYoRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiVGaHEtRiQ2Jy1GLTY5USIqRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZ3ItRiQ2JUZocS1GJDYnLUkjbW5HRiU2OVEiM0YoRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG9GZ3ItRiQ2JUZocS1GJDYjLUYtNjlRIUYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmdyRmF0Rmh0RmdyLUYkNiVGaHEtRiQ2Jy1GLTY5USJ4RihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZ3JGYXRGZ3JGYXRGaHRGaHRGZ3ItRiQ2JUZocS1GJDYnLUYtNjlRIl5GKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcb0Znci1GJDYlRmhxLUYkNidGZHJGZ3ItRiQ2JUZocS1GJDYnLUZbdDY5USIyRihGMEYzRjZGXnRGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRl90RlxvRmdyRmF0RmdyRmF0Rmh0RmdyRl91Rmh0RmdyLUYkNiVGaHEtRiQ2Jy1GW3Q2OVEjMTBGKEYwRjNGNkZedEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GX3RGXG9GZ3JGYXRGZ3JGYXRGaHRGaHRGaHQ3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JIlRHRig3JUkiK0clKnByb3RlY3RlZEc3JUkiKkdGaXc3JSIiJDciRl54NyVJInhHRihGXnhGXng3JUkiXkdGaXc3JUZodzclIiIjRl54Rl54Rl94NyUiIzVGXnhGXng3I0Zndw== Recursive function to compute the number of non-Null nodes in a tree. Recall that a tree is either empty (Null) or is a triple with a value and left and right children which are trees. You should use the tree functions, e.g. IsNullTree, GetLeft, GetRight, etc. in the provided expression tree code. Answering the following questions will show you how to write the function NumberNodes. 1) In the base case (Null Tree) how many non-Null nodes are there? 2) Suppose n1 is the number of nodes in the left child and n2 is the number of nodes in the right child (these values are obtained by recursive calls). How many nodes in the tree. Print the tree T again count the number of nodes to verify it is 9. Print the left child of T. How many nodes in the left child? Print the right child of T. How many nodes in the right child? Now you should be able to write the recursive function NumberNodes. Test it first on a NullTree and then test it on T, the left child of T, and the right child of T.