<?xml version="1.0" encoding="UTF-8"?>
<Worksheet>
<Version major="11" minor="0"/>
<Label-Scheme value="2" prefix=""/>
<View-Properties presentation="false"><Hide name="Group Range"/><Hide name="Section Range"/><Hide name="Table Borders"/></View-Properties>
<MapleNet-Properties warnlevel="3" longdelim="true" plotoptions="" echo="1" errorcursor="false" elisiontermsthreshold="10000" elisiontermsbefore="100" errorbreak="1" prettyprint="3" prompt="&gt; " latexwidth="9.0" useclientjvm="true" ansi="false" screenheight="25" labelwidth="20" plotdevice="inline" typesetting="standard" displayprecision="-1" indentamount="4" elisiondigitsthreshold="10000" quiet="false" plotoutput="terminal" rtablesize="10" preplot="" showassumed="1" plotdriver="openviz" elisiontermsafter="100" labelling="true" postplot="" screenwidth="79" elisiondigitsbefore="100" elisiondigitsafter="100" verboseproc="1" imaginaryunit="I" ShowLabels="true"/>
<Styles><Font name="Normal256" background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Heading 4" background="[255,255,255]" bold="false" executable="false" family="Serif" foreground="[0,0,0]" italic="true" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 5" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="_cstyle261" background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 1" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Text Output" background="[255,255,255]" bold="false" executable="false" family="Monospaced" foreground="[0,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Bullet Item" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Equation Label" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Author" background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Text" background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Diagnostic" background="[255,255,255]" bold="false" executable="false" family="Monospaced" foreground="[40,120,40]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="_cstyle260" background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="_cstyle258" background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Heading 2" background="[255,255,255]" bold="true" executable="false" family="Serif" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="16" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Page Number" background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 3" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="_cstyle259" background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Maple Plot" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Normal" background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Maple Input" background="[0,0,0]" bold="true" executable="true" family="Monospaced" foreground="[255,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Annotation Title" background="[255,255,255]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="18" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="2D Output" background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,255]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="2D Inert Output" background="[255,255,255]" bold="false" executable="true" family="Times New Roman" foreground="[144,144,144]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Dictionary Hyperlink" background="[255,255,255]" bold="false" executable="false" family="Serif" foreground="[147,0,15]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="true" placeholder="false"/>
<Font name="Dash Item" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Heading 3" background="[255,255,255]" bold="true" executable="false" family="Serif" foreground="[0,0,0]" italic="true" opaque="false" readonly="false" size="14" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 4" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Maple Output" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="List Item" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="2D Input" background="[255,255,255]" bold="false" executable="true" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Line Printed Output" background="[0,0,0]" bold="false" executable="false" family="Monospaced" foreground="[0,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Maple Input Placeholder" background="[255,255,255]" bold="true" executable="true" family="Monospaced" foreground="[200,0,200]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="true"/>
<Font name="2D Math" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Error" background="[255,255,255]" bold="false" executable="false" family="Monospaced" foreground="[255,0,255]" italic="false" opaque="false" readonly="true" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Warning" background="[0,0,0]" bold="false" executable="false" family="Monospaced" foreground="[0,0,255]" italic="false" opaque="false" readonly="true" size="10" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Heading 1" background="[0,0,0]" bold="true" executable="false" family="Serif" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="18" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Annotation Text" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Title" background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="18" subscript="false" superscript="false" underline="true" placeholder="false"/>
<Font name="_cstyle256" background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Ordered List 2" background="[255,255,255]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="false" placeholder="false"/>
<Font name="Hyperlink" background="[255,255,255]" bold="false" executable="false" family="Serif" foreground="[0,128,128]" italic="false" opaque="false" readonly="false" size="12" subscript="false" superscript="false" underline="true" placeholder="false"/>
<Layout name="Normal256" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Ordered List 5" alignment="left" bullet="ROMAN" firstindent="0" leftmargin="144" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix=""/>
<Layout name="Heading 4" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Text Output" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="newline" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Ordered List 1" alignment="left" bullet="numeric" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix=""/>
<Layout name="Annotation Title" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="12" spacebelow="12" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Bullet Item" alignment="left" bullet="dot" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Author" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="8" spacebelow="8" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Dash Item" alignment="left" bullet="dash" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Heading 3" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Diagnostic" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="any" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Ordered List 4" alignment="left" bullet="ALPHABETIC" firstindent="0" leftmargin="108" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix=""/>
<Layout name="Maple Output" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.5" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Line Printed Output" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="any" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="List Item" alignment="left" bullet="indent" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Heading 2" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="8" spacebelow="2" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Ordered List 3" alignment="left" bullet="roman" firstindent="0" leftmargin="72" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix=""/>
<Layout name="Error" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Maple Plot" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Warning" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Heading 1" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="8" spacebelow="4" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Title" alignment="centred" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="12" spacebelow="12" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Layout name="Ordered List 2" alignment="left" bullet="alphabetic" firstindent="0" leftmargin="36" rightmargin="0" linespacing="0.0" spaceabove="3" spacebelow="3" linebreak="space" pagebreak-before="false" initial="-1" bulletsuffix=""/>
<Layout name="Normal" alignment="left" bullet="none" firstindent="0" leftmargin="0" rightmargin="0" linespacing="0.0" spaceabove="0" spacebelow="0" linebreak="space" pagebreak-before="false" initial="0" bulletsuffix=""/>
<Pencil-style name="Pencil 3" pen-color="[0,0,0]" pen-height="3.0" pen-width="3.0" pen-opacity="1.0"/>
<Pencil-style name="Pencil 1" pen-color="[0,0,0]" pen-height="1.0" pen-width="1.0" pen-opacity="1.0"/>
<Pencil-style name="Pencil 5" pen-color="[255,0,0]" pen-height="5.0" pen-width="5.0" pen-opacity="1.0"/>
<Pencil-style name="Pencil 2" pen-color="[0,0,255]" pen-height="1.0" pen-width="1.0" pen-opacity="1.0"/>
<Pencil-style name="Pencil 4" pen-color="[0,0,255]" pen-height="3.0" pen-width="3.0" pen-opacity="1.0"/>
<Highlighter-style name="Highlighter 2" pen-color="[255,204,0]" pen-height="14.0" pen-width="14.0" pen-opacity="0.8"/>
<Highlighter-style name="Highlighter 4" pen-color="[0,255,255]" pen-height="32.0" pen-width="32.0" pen-opacity="0.8"/>
<Highlighter-style name="Highlighter 3" pen-color="[51,255,0]" pen-height="24.0" pen-width="24.0" pen-opacity="0.8"/>
<Highlighter-style name="Highlighter 1" pen-color="[255,153,255]" pen-height="12.0" pen-width="8.0" pen-opacity="0.8"/>
<Highlighter-style name="Highlighter 5" pen-color="[255,255,0]" pen-height="48.0" pen-width="48.0" pen-opacity="0.8"/>
</Styles>
<Page-Numbers enabled="false" first-number="1" first-numbered-page="1" horizontal-location="right" style="Page Number" vertical-location="bottom"/>
<Task-table>
    <Task-category name="&lt;default&gt;">
    </Task-category>
</Task-table>
<Annotation-table>
    <Annotation-category name="&lt;default&gt;">
    </Annotation-category>
</Annotation-table>
<Task>
</Task>
<Group labelreference="L21" drawlabel="true">
<Input>
<Text-field style="Text" layout="Normal" alignment="centred"><Image height="78" width="800" zoomable="false">TUZOV3RLVWI8b2I8Uj1NRExDZE5WWlpKOnROPlQ6XFxXbURxaUNCYE5cXEBOZFxcUWdxeHhgSkZtb2Rwc3FhVE91VG9leFBwV0xcXE5mSFNKXFxSQjxLPVxcaz51TVVdTT5JTGBJdmE8TkJZSlZAUEhAbmJga0ldVUE9WUZtbV1cXEtyaHNBQXk+dFZWPXRTPFZSYUpZYHFrXFxrYllsP21xU2BSO0hKazx5SnVqWjxOXjxsSE1Rd3hYUVF4aHl3eXV3eXF4c3huSGl1ZEV3aFBTeXlZWXlUY1FzZ1hYSWlRZWlReXl1c3lPYVRUbz1uPkxKO0BSWjxMQlxcSjxEalptTUpobGA8TEJcXDo9PkxSOl1KPDpMWls+XjxGajo7QEJDQks7Qz5LSjtKQkZaSz5bPk46SjxuYlFgYDtAYlo6PU5idVVGZVNJQW9TUFRTZUx0UFhkPVlhQWt0aXVCYVNaeXh3WFltTFdjcU11PW9fZFl3TFI6XTo+Pk5qdElgeEZhZ3Bncnl0WVh0cWlkdWdfX3hxVW9wR1Z0cVlkSWBlW1B5RGh1ZFZtQ1FvRGdwTElgb09cXDxOXko+Wz5OOkJtYWNnVXJ1W3Q+YXJeT0ladWV3Z1Roc0hhaURrWXlnd2dib3l4cVlMcVY6VXg7S3hrdXlgeXZWeUVXd2lhb2dYRVNeWXZmZ0hpd0NWeWRlQUZJUUNbO0Y8Oktqc11OWHR1cz1XbXh5eVlYeEFUY2hUdXl3RV1yXUlsWXFxRHV0SHVRdEVrZHRsZUx3ZVRNeG1QQW1RdkZ5cnZ2eWBdUEl0Zz9ePl5iWlo8WmJHXjpvXkB5bmBIY2VIeFl4b0g/b2Vud3I/YmdoYVxcQWJ5eXhNdl5kUHdkWHFYXm5peW13d3RDUW9peG5VZ2lbWWlJYHRKeFt2cXhgWGJwWXdycXhKTlpcXD48Qko7Qz5DRFpVWGNnRj1TQmRTZUVRZElpUms/dF9PQ3NhWVxcV3lxd2NGP2RQWXZWd0l2O1R3W2lzVUNXVVlaSWdhRWM+P2JePXY9d3k9c1Rzc0VSR1U7X2ZqO2RodVhbc0U8PVI+OlxcSms8WWp5VGlUbF15eHdxbUlsSj1sdkp1SmZJcT5lTXR4d0pQTWR5d0VgcVlhTlRcXFM8XVNaUU1NWEx4WXlJdFl0cGxGYXBwdUxCREpLOkJLO3ldWWZQRWdHeUdoQ3hDc0JqYXllV2lCX2RaWXhqcVZRX2N2R1g/QVY6P0dqd2lBR1N2S2Q6R3NBaVVZQ0ltV1Y8WXdEQ0JLO1s+OktlOjtEOjtleUN3YDtUdmlFXlNCeGVFamNndFF5PXNjTW9iXmFyT1lnTlF3d3FkTEN5SmlTY090WlF3bXV0ZHd4WU9ZRnFXQW1JVHFjOl9zUE9TZF1Ydk1UT09zXz9WW1NYV01ndT9UWnNiVm9TP2dnaD1nUUFibTtnbGlVV0VjTWF3SGd4WGlValdDb2FYZFlXSHdVZWFybU11OmtIXkd5Vlt3QVVYdWdVVT1DdFNFRUdXWFFDPktqQEVwUVF0dzx3bXFyPXB4S1V3SE1VR11uPWhNRFl0ZGVhSlFpOmBydnl4eVFxYEhnaWFlckZyZUledWdqOkBnOlFqQUZuZnhhWWlvZEhtVmF1XFw/d2ZOak1ZYGhJa0lobURPYnBfd1RmZD8+bGJQYmk/blg/b21RdDtJajpneXNmY2BQZVBXYE9QZ1pmY3VIWj1OXTxRWzpIamdvY05wY2ZYZF1edl1Yb0VpXkVJcUZnYHRodWRIXU9vb04/Z1Z3Y3VWYlVmZ05ZdVc/Y2Zhc2A+ZGd3YVlOcFNhY1VveGFfdVZoYFlpckZodWtvdUReWjxGYm1GanFPX0JAc2FudXNfYXNWbVlPeEl4W05pYnhObV9hZ0h4eHdZbklweVZneW5JbEE/d3l5XFxnWGVhcGxoZmVkXlo+YWdeXndwaGxgUGNkZ3VfdndFXnlwUGhfUV9vZ3dveGldcGZid2BoWHhCPltIRmw7cXdbeXF3YXhbZ3hvWF1pX3hpeHV4V3lnUWdcXGB3WFBlc1ZgdVZjeWdzbnZwWHFoQVBdWUhtYldzdGd3VlZdUWdsbGd3Y1htZj5ubk9mV1B3P1ZsSVhfeVF4TVF3c3h2cGByYHhyUnBaSEhhcEFdb3FwcXhtaFBpdVFpT0F1PmFsZGlfUGdkS0leXFxOakhZcmpBc2JmcT1BYFFpcFN5dVBPWnVfdVZoZWZXeFA/Xko+W1RnWnJJanZ5bUlfbV1wb3l5bEdHcGA+ZWZIeDpIdVBXcFxcYGVLSVpAeGB2Z2RXV3hfeW9MeXlJPnVpd2VvT3Vjd25DRlpjSGdiSG1TT3RKXnlacXVpeXR2cVo7cF9VaHNkUGtxQGBwT11qWFxcVHdgVXBrU0ljWT9fOj9jO0BebWh4X3hcXE9xTFdHanVHbW1Cb0lGZXdDUVV2TVd0S09lZG9YZ1dUXT9zTk1TQ1d0bENTO3l1dW13eFdVV19pcGVndHV1X3NFSlVETVV0bmVVQj1TYUViP294Z1l1cG9CYFlyO3lneVtjbldWZ0FWeVd1QmFlV2llYWlnOj1GSltoRDt0PFdSVUtCXFxFckhTd3Q7WHdpaHVteGRveVxcdWhkaXdnaVdkWWhTX1lWd1lgeWVKX2c7Z2NJSXJ3a2RvZ1NVYWhHQ0I7R0lMS1Zkc0lwQXddbXRZeWV2TXhDTVVGSVZ0O2h1T3Vac1Y9XVdtUWJ1S2dnTXRZZWZEY3dyeVdSQWg7ZUlyQWJFYXdrO2l5cXZ0d3NNR1dLdUZQSWdLXVRtZ3hRSUNnPWlfWFVOeXZ5QHg/RE5bZE1CXFxzQVxca29VWHhcXFlwUW1lXVRfUFVjVXlzVFFlPVdReExNYXFPPjtVZ1tNSWlXZTpnREpbSFBbeHdPVG9pdmJfTVBZTmxEd3ZlUnFkV1RhbnhJd3BZWU55THl0eHlcXHRzdXZ3eVBEWVhedXRoZHBhUXRbRE5abE5qWFBReXRRaU1qdFU7cW9qdE9OQHBZVVFuQXhxPG9TSHVsdVJMPExlUWpYSG11cGxDYVZ0dG9IZXRsXXZpaW1SdW5gbXBBbHJpeUp5PHlbVFFbcFlcXHlRYl1TbUF5QDxQcElwXUV4O3h4eXhVR2VzSFFLO0R3bnB5SWF0SElYPkRNUmhPUVBRZGB3RWhXWFFLPkxKO1VuOkRZUkhPT0h3Wk1yVm1QQXVOWHhLaUF1O3Vxd2BRW3V0WFRSXUxsTlxcTXB5TFJZcXFUbkBwakBEc2ldTElRcHNsbFlhWW1pT2Rhcl1xa1B1TFY9WDt4T210eG9hcWBwTldhcj5hSlM9TU9Uaz9pckM9UlJJTmxJeEFxdm54TVJJbXVcXHdqWHJ2RUpHVHE9QVY8WHBXTHdBTExBXVNWSUpsZG9ITVFzaU9kaU9pRXldZGtSaGw8dVhddEx2YHdTUXVsRXJGVWo/QVhOSU9VSG1nQW90ZFBMeWtwVFR1XFx3dDx1PjxUUmhxVkRYPklMXnVrc0l3SWVZRHlxSEh4SEhYeXF2TWxTRl1WUFROYnVXWjx3PGhrUmBPPkxYSEF5RmFUZUhsbW1wTXV1P01KO0BubTx4P3h3d0xWd3BLQWhXcmFTdll5bXRPdHluPlh3Okl5VHRuWWR5VElZU1VMc2F1SFR4c3lWVlRZSkRsRnR4d01tX3hYZHRvbUFLYlRQb2RQX3Bqd1RYVj1sSEBQPEhWVEhWP0VKSWlQQ1FzbUF5YXlYXWxRY0RVazxVWnRRTG1LXlVKTEV4anFuQWl0dW11d21WYnFqd3l3cXBxXFxwWXJ1dUk8cz5cXHlEWE9oQFRBaU1xXXVcXGFOWjx0ZF1MbEVNWVlTWVBNd0FyT11wcklwTVxcTnB1altwUTxVTkFpakxUVnVdV2ZhdmtVdm1UUV9VWEJgblt5U11ReDxAWDtIalJkbFFsd2dRVGtxeE1ZSndkUT5RbWFlUGFEVF55UUpZVEZgTmk9V3lsTGxVbE54cmZ4TUZVUG5FTlNkVz1Iaz9YeWdld0Zld2lheVhFWGBJVkdYUE1kUXlQU19RUlNNeURodWNYdz55czp4VUpcXHRKYHVhZXhOaWs7SXRCQFE8PEx0eW9eSUxZPW1fQFZRUW5LQWs/ZWxEZXJkPGpQZG12ZVNnbUpReXdaWGpITFRZPHFuUXQ6WHBpcWpZXFxXWkR2aWBVY2BuZFlRbnhTW1hPUUx1aUVTVWlqQWlYUm1VcHBxO0FtQ3lYX1VUb0hOSWh1dFV5ckRTd0x0Rml4alBYP2lsQ3h2PW1zXFxIUVpMbFhtbVV4S3RVVVxcUVVPWU4+TFl1SFh1cXNLTGpUcVhvaHBXXXR2aE9lVXhpbFdIUXZYUVlYaVJHQW1xWHh3dFY/TEo7YXlcXExzU1R5TWxLO0RSYlFVVT11VD1RY1V2Wjxyc0FKSFl4alRzQ3h2PUBKW2VVPkR2OllZU2lVcVlvWFlRdHhqPGFsXWlZP3h1WVVwRkV0UzxOTVV0TU1vblRVXFxkSz1Mak5AclFJcUxtdVlwcV1JUUpxVmpwaj5cXE49XFxuPGxRW1RTdFF5dk1WPUVsb2RwR2xTVnVNWWBYPUxqakhVZlxcVmdcXHFZRXh2eW5YUFlEZVF5UXZpWU5lQVlnaXRZWFRxcHVteU9FTFFQTHU9VUpcXGFYPm1RUXhOZ3RKXWFqXXlrYWhNXz1XPD11ZlR3Q3hyWWRUYWxtak1qTUF5X1VvOmhyW0BUc3VsSGxWV015cT1sVnBPaXV0eGB2ZjxsXVh2bVxccEpIbl1hc3ZRdmxRcnc9VWpJTlpNTmlIeGNQTGdxeFVReFxcWFluQHA8WVg8SVNgPHB1THM8dVI7WU1iZW5kPXFjXFxKcHVyS3FXb2RWY3BzP2hPSFFZPGBqZ2BRYGl5cm1OQXBRQEB4OkRxPWxWOj1zUXV1az1ydz15d1hPTWVLPlBTcEhsRFFYX210cXhVVlhPWW1OUFdaO3lqVXFtPkZmaWhhYD9eTmFsZUZwb1diWFZuTVhsO1hnQkBgP1BpZGlpVF9oPk5eTnhaPFBcXHh3Yj5RbnhxdVxcZ3U8Z2tHV15ObnRAP19xTnVPVnZmaV9ld3RMRndKaV1NWW5CcWBxaV1JaGx2eHg8Tm9QeGZXcGFlQGV1aV9maGVgXl1sZm9VSFtLQWFCUXF3Z2p2X3N2YHhzR2p4SHRhQXJuYVp0aWZgXnBZX3NsP3dtT19Hd11hRndZb19VdmthX3NvT1tBZnd3YG5NYHNjTl1dSXVzYGFyb2tdX2NlaXdbWGxOQHBiUV5NWHRtcGl0PmFeWHh3b2ZzSWdYWWdvQ25Xdzp1ZUVdR25xaUF5d3RFRWNbcm9FR11RZWlJV153aFhJSUV5c0JNYmJHWVVfdldfZGBtc2xBSWNtclZnREJMUUE8TGB5TGw8bkE8UzpdbWNdWFhBVVhdV19pdm9lTVtRWWtwTGZQdVlpTmg8UT1dcnZ1UEBIV3ZNcmhYdnhpY3hPbXhYd2xmaFI+XFxTVmdaR3NMaHJDP2Jyd2ZITlpRcHd5SWheSWR5P2J1WHFCVmREeXRZcGhUZlxcPFFdaHhcXGZWd0duXFxuP286QWJOY11baVpFRnZNV21ZdF5HVltxQztvYl9haW15R05VUj1jWWRdVmZdVUdreHFpQnRrdVB3RHY9VGo/Y0Fldj9nUk5xaDpRYm9zcnBnYm0/Z1BvZmFjdF1TZXBDdG1xaElzQ01lWWs/aGVZYlJnQkQ7Q1J1aVZheT49ZmZsS2dRdVl5dWllb1VUS3lscHBFdnRBckY8S0lxbTtAVltJbTxEcUZxcVxccFV2bXlzZFBkYXhRTHNxXFxRVlxcVF9McnFISlFJVHhdS2RpTGV0S0ZdVGFsTUU8T2lcXGpIXFxwd1xcdD1Ac1l1V2E9S3JFVG9VSkp5SmJYdT14S3dcXHZZVVFkQXddRXdYcFVBPUp3aHdweFloSHNRbG5KVXlmeWlMTmd0WWlPV3Q+Tm1GRnk/YGpJV2BYaWNLeXJzPmp0eG11b3NzXnBtWW1FaVxcZE95WE5aYHljeE94eUdnSD93b0F0dWlzRnBxPnBgQUFtcz93O3ltcnl0Uld0PGB5RnFoc2Z3bll0PEZpa05pdWhtbnhwWXFdQj5dO1loWk5vWV9zeG5Nb0ZkUXddXXRdW2d5RUZaT3Z0R3VoO3dZaWRla1RKaWl3ZVJPVVI8PVlIXWJHSUdeSWJHRWRdc2N2S3RZV0Q/dXdfW3hMWUNJWXlLZWZkbXY9WWRJTXRSd2Z2a1RnT2Zra3JIb2JJYVd4aWZ5WUVEeUM8SWN0ZWNjVVZZO2JJPUREaUNsWXZRR3hRc1M+d3NVeWh2SURTV1NHd1NQRWdGR1dhYXd4dUJmX1hDV2Jtc1dxS1dtcURdZWZPVXhwS2dJVXZgYXdISXRrc3ZXWXVpW0Y+PUZiQVZWeWlzSUlvRXVjdVdGX1NNXXdIS1daRVZkY3haeWdYbVg/Z3dnVXJebWc+Y0M8R0dCeVdzRXZxaUh4PUVqPUNBaXh1c1l4YUdXeXhAaUQ9X1Y8a0I6VUdbZXVeR2JJd2Jgc3hdcXlZZ3loXXJxQ2c8bUlhXFxZeUFzSll3XVhuXWBweER4dXRMYEB1Rl1NPEFqYWFRd2F0TXBxZkxxUXFxdVl5X2VwS1RNd2lNSUlqVUBuV210d2lSanFLX114bnlPTE1KPFFXeW1MbklKYmVRSkFTSmFYZnBYUFxcdHVdcWVBcEl4cWZRcEVhVHNtcFZEbUlUbW1ATll4c3lteXRkWD1YeHlldVN5bHFFbWtld0ZZcEhRVGFhbXVtVTpAUT51dm9pcE5FWUdJbEVQT0dcXG1iTE5AaG1BeVV3cXZxREptXW1NbVNzZHJzSXBOPEw6RU5OcWtzVGtyXFxUYm1wbXROclxccGVcXFN1PXZFPW5ReEo8eUs+QG1DSHhDZFhPXXJ3QW9JbFhfeW9WdXFYSU5ZZHF4QHQ+ZE9McXJHWE1jdFlVaVlRdVV3ZXB5eVlueHI7eEp4cFR3cU5gcFN0cUtiXFxUR3hYWElYVT1XeEFKeFVSWEFMSllyPmh1ZlhOXkh3SWFSVT1ud0l2UmhWUEltZVlzW0BYO01SQFR5bWVTc0RQbkxXQUl1V2lPa21VRmxramlwYGVzVEBSV0h4PERQaWl2eDxyaDx0T3hZc3BRbnBNYnlwRXVRckVvZTxYZW1ZXmxPY2FzP0x1P0xyZEFzaEhQZUFVPE1Rd3RPTnhKPHhvWHlycEhROnBZa3BzO3RTSmVKQz1xXXFzdUxMb0lwZ21RS3BOW1hPWXVUeXFZSklTQURWcT1uYW1zVkxLZ11SVEFOYW1TVlVNbXROanFNOlVpa3BqQFFcXG1vYEdhaXJ2dGN3YnZYWzpfYW9RcFxcYHlaVmlweGhPZlpsPm9GcV5oVm54dmdrcV9FV2Fhd3Ntb3ZmTnNiV2lRZmxhT19HdnNVcWZxSXd1d194YG5jWGhQQz5TQz1nVV1ZdkNfSFo7WWlhWXNxdXlVRkxRRGBtZ29VdUFvc1pLRjpfaHJbQ0p1U0F5Vmg9ZWBtVEljZ3k/Y0JHU1JXdHJvaVBzWV9VcklhZ2BhVkJZeVxcaWhBVWdxbUVxUWk6cVJRa3U/eWhWUVhFT2l4cXJpTXlRQVZgY1h2SUhBV3R1XXc8aVhRQ2RAXVJ5dWhcXEFCO11peUF2SUlWXFxlcmxpSWJpRXNxaE11dWBRc3BVVE1Nd013ZXZhRHdXRXlUb2VheUhYeVhpWHBJdXhgS0VoWFtJdEdVTT1sTFE8clFoTVNxbENES3BMdVpfZj1paXFJcVVGbGl3aXVXc3RZaTt5dVBhZ2VoeW54bmxOdldeaVBha3ZJckt5YkFOdG1YbnRHdWw/bVBvc1xcT1pdV2VKaWhaR2Q+UXJDaGU/Z3VoUXFTSGk7YHM+aGI8SXRZWGxDSGtkZmo7XmtXYXNXWG5bYXY9YVxcWkZoUkBdcG9cXEFpcUpxbz5Bdm1JeT53eF15eElJYT1uXFxkd2JCXl5OcXdPYWhLTmhycXFyPnhoYWlSQFxcXVdnZVlhaGFxTWBaWW5vVV9cXHBwZ1dRYzxwZE5nbUt5cHF3VUl2UXdmc01FSj9Yaj9ybj1zZXFDQ2t3cj1USmlCZ2d1V0d4SG9pPVdKbklTTmVRallNVlR1QXFuVmVXQ3RzT1xcaz1VdEttWXJ1dkJddlI9cm9ZTWk9cUtQeERUTllsVnlAVlFUTV1tU1lYSm5YeF1JS2RAd3Fgbnddc21JT2h4UUxweGl5U1Z4a1htUGx5T2ptdmBBdVJBVVxcSVE7cHBXcG1WdFNOeXFjPUtjXFxwREVUaXlMSnBsblR4UGxYQ0lTYXlVZ2FxZ2BwZm11cFRxSXVxcWl1dVBtdHRWP0xaP0hadk9eZl9qPEhqR2dcXEw+bVdOeDtGdnleX2dub1l4eE9ZaVdpZXlXc2BgWnh3cEt4WnJ5bVpnY0JWdDpAYDxBc0F2dndHcnlRcVVnaWlXdGlYaj5odmV2ZUt3XXlQeGlIa3JeZW1weW1Od1B5Z3lleFNYc3liTllGSWd5TE9yX3FEbmdoU1NlXFx1dHlpdW9Rd25ZaEl5eFdHc2lJaWVxSG9ZZHVxaUl1eHdddkx5SWFLZGtxZUV3SUZFd1phWFhXWEJxQ0JdQllLWGZ3V2JZeG87V0o/eFhlUlhfU0w9Ujw/eHldZDtzd01pd1RveD5DV1VFYz9zdDo/YnY9UlprdFFrVWJlSWo/WGxXdEdvd0FLQlVxSFJ3Vj9HeTs/ZUVDSFl5Yld3aG15c3lzZXh3eXJ5cnlrQ2pAVU5EcD1ka1dtVUY8VVU9TURhUHNlb3dkdk51akNxSz9sc2ZEc1VNdmFZbUlJc0BgclJ5VkxQUkhReUhATGxVdWd4UEFsTF9dbEFsdkdUU0FwSk9ZcElxeWE9Tkh5UUI9S1V4WGpdcGs8bWhBeHdBV1U9bVRBbFBNcjtBdWJBb3RxeXd4eHRRcj5MdFtkUUZ5T25lb05QWFhISzphS0F1c0VcXHZLdXdBQVQ7WVVdbFVSYG1yeVFGVWpuRU5ARHlXPVlbaUpOeXU6XFxTP114V0FUXmhVeGBZc2RsR0RpZ1dgR0diVVh4P3FjPV5jcT5uU0heW3h3cHhpSF5hTWZ4O3FrO2FjY2ZpYmF0ZGh0SXleWFh2TV9ocXZ2c095cnZwS3hjZFlpYWBxdFdpbVd5WnBxcXB1dFdnWnBfcl50bWFxcXdxVWBqZ0FgdUdkUD5na25qanZaWmFcXEk+d3NHcDpXc0lpYlVOZlFganF2WkZ5dlxcX3NbX2FHZ3NOUFp3X1s8XnRGcGFwSFxcY1ZweWdnb0VGaXRNd1N0Q3NRO2hLcUhSV2VqU0Vsc3ZOWUlIQUk9ZXhJW0NSVXhzcXhxbWk9TXVOc3ZnW2RybUlab0VLTXJwb2V5S3c7O3JuRUNgYVRSXWVmVXhwaWdpZVllQ0lsV3VgaUdYaVNoXURlX1NkR0lFTUVUX1V2cVI9VUhhaVdMb0lnZXJWZ0RCTHU9PExWeU1YZXFsTFlNbHRzdUxoVU1YQE5HeWpIPFdXPFFJZFF5XFxSdE1wU1BPO3RUWVhxcHBqPj12WDxjPGFgWj5pWUlyZllzYEFuaG9heVl3SV5haFltXUd2V2lrPUZaW2h3cnFzZ3ZwZEhueHFhRFdoUkluQVB5eFdqPVdiPW95YEB1WXlpZ3FaRHdbeWFreXh5dXhfQE5eTkdeV253PVFpd295P3dscnluVlhiTW9pc3lieU53TF5weWh5VU9xSE5wbWluaXZpYz5uQ0hqP1BydW51c29sdHF4cXBxW3lsY1F1ZXFvXVZ0VT9nUkBmSFFbblBkbUl0UF5aPmhaXFxfX0pPYVo+dUpJclg/a25gZlJ5cl1HcDtAeFlHYHBveGpAal9Pb21uZG12XnB2Z1pHakJWW1lZbVlheGBmcGhndXRIYTthcktOdUtJanJvX2Zxbk1hdj9GWll3dVNgcXVxc1VJX2leW15uaEJPY2xYZGRXdWdgZkxQcnVAdU1Wdl1HWmxwYmBWXFxIQGxzVmRoUHRIRnl4WXlneWI8SFxccD90c2BhSm5vWm94OmBhWllyXFxYcFQ/W2teXkI+aW9Jd2hJd11YYmU/ZjxecklJXllZXUE/bFtBa3c+cD14ZltRaj9oXUBIdXFGZG9PdE1BamZPYnJedD9AXVZOc0FGdkVocF4/cE9geVxceWx4QG94bnlreGt1eXM+aWFiVm14YW1qdnJTb2BJTmpdSXlOeDxJcnlpWFt1QnNRclk7Zlg/ZVJxaHhrYkBBRztfR1FVUmBHVEhfZ2hHQjs/VFJ3cz9bQmlneGV5eURJRlBneVhJZj9lVGRVWUJrWGZtcjxfaHJvVGhjVGQ9U1lveVZLRT1tdTtlUnZrQ1I/VmVpdzxpV0JHaD5tU2RJRmNlVzp1RTw/Uj9leGs7WHJZRUhPWHRBeWJBdXhrQ2V5VU5nc19rRFtpeDpPZ3RXZ3V3cllJd0FXVnRvVXBtZU09d3VHVWlnd0pxSXRVdVxcbVd2PXk9eUVgb2g/RWU9cXY9a3dNPVhwc3M+Y2hLQ1Y8bHdFXFx1PVF1QD1RclluaWFXbXFYQFlQQWVrVHhwcm1PRHlsYG1zQEhXdGR4a1xcTG90V2tZbVh5bllNeWxJUGRZVlF4WWZwd3hkUnlkcFxcbXNEXFxaZ1laTUBlUkBqWnF5aXlzZmFvS2Fpdm94V3deTV9aY1Z4dF55bU5yQj5zdFhsUFdlRz9xWm9zU2ZuO0ZqUHByPmh3c0F5eGFzUGllZGljSEZaW1dbWV5xWUZtdj9gWFloW1lpTmF2XmFlWHhhdnh5QXBhY0BqYFleZl5haD5jQm5pQU9ldj92eXlaTEFuQU9cXD4+dnV5bkF2YjtJZ2VpcWQ+XUdGaFNxZUVJc25oZ3hoXXZ5XFxOYVpFcFtPXnNvR3lYVnlWSWJeQV89QHBQSHVWZ3NIT2FQVl1mcXhTcVxcaFZ1SF5gbFlaWz9ST1JKQVI9U1ReU0JhRWh0U3RVSUReRWI8dURES1JtUXJcXEdXXmlCR1lieFdjQl9pVmVXO2VIUFVpS1tVVllIS1t2Xl9TeVdWUVdUaXNDUFNWSndDaHNTeD90R2V2PT9iXFx3d0pLaHNzQ0RJZnVzQ01nVXFXaHJXeFpZRkFRVUE9eTtxQ3FTQl5tYkNBRnBNdG1JeTxneEZZY1pxc3l3REhbSFVzRW9RQ3JFeU93VD1LUktbd2ZJaXY/R1FrRmdraT09Rj55V3RBWTpvdEF1SG9LaDtTaWI/RF49Ung7RHhXRHNJckBjWUBJWUBbaEFNSVpZeT0/Z3Vrdj5tZ0FVQkxzVHltUz1PaGVZVkJhRmRBU21ZZlljeWI7VFlrdVd3Ulk/ZllBdHA7d0llVT9TeVV5dXhxSEpxc2BDeT1tSV5bV1FdVUFnVm5nSEBRRGxRYkA7clhvdFtrdD9PUl5NdXlBWXZJWHlfd3ZhV25ZVE51RU1BeWdRc0xtWVF3WWxZVG9jWUZpeGpHRGNrR1U7Qlxcb0RPbUhyYUZjSVl3U3hleVY8c2lNQ1ddR1hMd3hVcURfYWJwR1JBc2hna1lJU2VJW1hXWXVXeXZ2UWZAQUdnbUZyS2J1Q0RRYUd5XXVyVXhgYWlfcWlhUUg8a2hzVXNbR1lNb3NTXXZfVUVxT3lSSWNlWVRWeWdxSUdYaXhvcXhjY0JDPVNqc1ZTVUddO0RCS0lRVUNsP3Q6PUhHP1hHO1NAUVlwd1JSSVlZW1lXV2JhPXVmW0VaU0dcXDt1QHNpRUNZPXVCVHlDd2lZaFVCblNyQnVyVU9JcnV5T2FCXUFzU1libT1lO0FTUEtCRUtTOj1oaj9yYGdVWT1VW1tiS1dEcmtESHVTQndJdEFlWj9WQD9zZjtFQlNoQE9zV3FoPWNTPGVVQGlVOllYVElmeT1VWmlXPFVERFlEU3dkcTtDPUNZc2NWblN4PHdnRFNDUF9pVT1FWXFFW0lXVkFVTWlVb0NkQT9GdkdWYUVlRVlCbW1Cbld3a3dyZ0dnU2lTSXNEOldob1NpcElXcFV3Zz14XT15QWF0VT9jT1d0YHlDdkF5eEFCa09WTUtFV2FnRHdpPWFEPXVEbEd2WlVDTUdkU0FDTVtDYFV5dEl1O1tVSTtEQnF0R0d4cnFZSVN3VWtEckFVbWFmdUlTW2lyPllWPFd3TFd4Qk1WWm1ncmNXPXV0ZW9YbG1iV1VERnlDQmN3VnFFdnlkQ2tjZ2dDb3l2VFF0bEFpXFxzeWFjc0tLVWlZVnBDZ0tZeVJXeWB1d3dzZFBheGtXU1xcV3NbaXlVR0NYZ0hLc1RwY1lBP0dkXWVtVXVcXHdFUnFlUGFobWdTbHNFdmF5PE15dVFmb1V3Ym13b2FYdV1yQUlXUWtXVV9XPEtGVWNIUFFkSElVSER0dmhzUHF4Y2hXWHFQTnluY3R2Zk1scE1MQlxcSmdZSnB0VURNWFdodmNcXHlgeFlaPHc9YXZjZHNtRFhwdGpHPEt1aU1hWUpcXE1KSXFrdG1RdTxZPXl1XXlPeFF2XVxcTE9Rc3BIVWxoWV5dcnE9UUFIeU5xeWV0S0ZgWWhcXE9YPWxIPHJ3PXBKSHRDdGtVQVdrWU1jSFNISW9lRUtTWVVqTHhLbVhJTG9UbE1TQEtqUFJSaXBPaFg7UVNVPXlHQVh2aHZsPVBgUXBHVXM6cVBHaVJnbFdpcE9SYGpzeWxuVFBpbHRiYXJbTFU9TFRPRVVdRW5AQExEcW5zbG5qZWo9XVdmTVJMTHQ9YWtDdU5wTHltRXRhRHFgbE9cXElYc2VUYnVKdnRMWlV2UmBvYEVxRmF5SnBqVVFNcVF2SjxyZnhPWmlWZ2hZYXF5UFxcV2VwVFlQVFdha3BgcmhsUXBFbG95bERJckF0TWZ5a0NsTFphV2BUa0ZQZ3dpWj1WYD1neUpnXlVGWkRea3l3YjpzU2FVbEdJaFdJbHNWbGdId11FUHFJaGloRmVTWVNSbXNUY19WPVVzUGt0WW9IWW9HcVViO2llQXFWRltYUmlDaWl5VGdJY0ViWllSd0FpZ2Vzc1dyaUFKPF1YTD1WaHBLSGxLc3BRY2xSQkBWUFFLa1lwS3VNbnl2PHVzVVVYUWRPeG11YHh3TVV1clVXUVhsX2lKPERydlFKPExRPF13aD15TklZbnFvdmlybXlvTElvY0FYdHFTPTxXVE1yZlxcTVxcYFBaRFRzaVI7THBUSUpxeHU9bUtZQVF2eUteRXY+WXZIcG5vUE1sdE9GSW9icFlVUWpIdXU9SFBhWVheWXhzTVV1PFJmPWpnWHVwSHRAaWtYTFZxXFxTPUxMWmRVZEVWcGxXUFxcazpAeGhlcFhsWVE8ckhMTVBUVVBcXHdnTVJPRG1QPFE8VU9VeVZBZXc6TFJKVXBnQUp0eE5zdWxldUw+cUxeaWxedVJrRFdUZFVqYFJmPFdRPVJjUW9jdEtsUWpnbFBpQUtsQExFUXI9dFFFaHNtPE5mRXdIeHl0SFVWVVI+VVBbXUxYZFVycHZXeFNVcVdgdGtBZHV4RUxxcVhzVExLdXV3eXBDZG1FTFJuWFI+THBuQFJ3XXh4eGpKYVNebHFMQXlIaVJtUHNRVW1pbXBjaFlGSFFZYWt0UW1VaExgXUpsXFxqXlxcVnlRTXFcXHRobXJdRE5kPHh2XWxtSFVhdVNqcHZRcVI+ZHVhXXNwaHV2aFJ3WVVXeW5zQE9NcVA7QFJKSXg6PVFWVVQ6eHZqRHFgaVg+RXI8WXFSVG0+dUx3VXh4cWpGbXA8cXVXaXhiPVJyYHNgPFhgREs6dFFIXFxSeFBqSUROQlFqRV1SVk1QPFRMZDx5bD1yYUBUUXFyTVhRPG1OQFVMZ0hVZUBOSW1xeWRvQFxcbkpoVV5dSj5sWEhBeHlBWVRRdnlJVENxVGVddE1NeXM9TkpcXHJadVl3PXZkaFQ7WGxcXGhXRWhMPmRwU1Rzc0hOaFFqUmhvVz1Md2hqbEhxc0VvQGhQWjxKdnVVbl13cXh4WG10bEFydklKZnFNXlhqP1hMQmxQdGFqbXVLT1xcT3VIV3ZETkVMbU48eVM8bWtMblVFT1ZRVHNhbUBMdFl4clRwTlVJa09BTVlUcF9IdVRIeDp5dF1kal5lV1FZWXhgalNwUj5YWXF1blFpd1lVdEY9S2thcj1BblVId1NYcUZJVnc9bE5da0hUVz1Bb25gb1tFU015ck9QU2NkWFl0bmN4SmFoVk08TnJZTWpYeHBsbW9wWXd5eV5MVDpJbGpgdXNRVG9pSnlJeXh0Vzx5UGNdd1pJWVVRd3hkc0RJTVpMSjt1cjt0anFJUnJ1UzxtTkpkSmU9WV5tbkBgWT5obWVJTGNcXHlgaXdcXHlXd0xNSlhVeFxcWVBQeV1ZblBFb3llWVxcPHl4aVVrPFFhTWtEdEprWXJIQFFMYHNHSXBAVVJFTEpMQWpJXFxtQklOeUxOPFBvTHF1SUhwYEF4QERSa3BtYm1NXFxISltNbDxEcXVUbWlxVVZdSj54Sz9VdF1MUUtJeVk8UHlNcGZsWWZoWVo9cng9eTpNUWpUb1ZAdWhFUUdMbVN4VExheVxcUXRqWHhmTVQ7aG5KTHBsVVBzRFZcXE1qV2FKPm13RFBRPUBWeFh1a0xTOkxwQFVtRD1WPFRsXlxcTmhVT2R5VUlESztZUztod2ZJbEFIdXFJU0hhVWpJa2plbXVgc0dwcFtdVVRBUU1YUlVZUV1IVV51a01xdmxtbz1gUHZ5T25Bc2tdTXBVTWdhc1tlVktkbWlQUktQcmBVV0JkeXZgV1RhWHJhcWdlWFlQSz5MaldZTWhdTGZ4TGU9c0RsS3hZU0VwVnRBajpVdGtcXHFddVJHSE9SPGtDSVFFeVVtdFJwcHhZeWxQUU0+XU8+PXZXPGxLXFxtR0xyZU1RRklwWll0O0xUPFxca0ltUz5tSmhESjtFdm9US1RgbDtpUVBIVUxkTmpJSkNhT1xcdE1KQHBqWXFaZWp0cXdnXUxKcEtbWXNudXJdSXluSGpoZVJ4RXFCdVJrcXZOeGpvVFNKPFZqbXA7cFlgPEo9RHQ7YXhqbW1FRHRISFR1dG1TYUphTW9SRVNpTXI9aXRiYHVPUVNVYWtdcFRFRFZjbVhTWHRuSE5TeXdBXXhJXXRtVXdjWFh3TE1KTEtcXERUaEBsc2hMRnFvam1xQUhRaEdnW2FpYG9yP3ZcXFY/YnFBbWF3c25QXFx1WHJ2aGdvd21EXlo8cHM9Vm1jRnc6cGA9Tm1LVlxccj5uaV5fSUBwQl9kcD5iXU90RnddSk5pcHFtRU9cXGF4cnRIcl5fWmlhZ0hWcVVZdHlgcnFJdzpJYjtAeENGdEl3YnFGeERxeGdxeTtQampJXztfYGdQbWI/bkNeaTpvbmBXc2R4aGtAXFxKblt5WHlNeWJYRm9TP3dNUFpjR3B1b2RISGFtT25LQmVtaEp3dEJNZWBdZEF3RlZLRl9IW3docVM/cTxIc0NeamteXXBpcEpod1JmXmZgZGZ2bkR5anNGZUFOdF5PaENZc1dhXkF3ZE5oYGheWm1fbD13Z3BWbWNIeG9POmtnck9GS1l4W09kX2FZPFF5XFxjY1o9ZWBnQ11hd1FVdGhxZHFTVGJtdE1RVms7Yjp3Y21fSGptWUlJVWFhaVV5VE1Xd21dYm9PRnJvY0pPaGZBZ1hRV0xLaHVfc1VxVHFJZzo9RmJhU1JveVg7RllTVXBndEBHY0dPdEBbZjtrZU9ZdXVNZXdlSWhvYllfYkh3WFJJQmM7Y0BvaTtfRGBZSEJFZnBlSTxLaG51Y3c7d0JjQnJxYjpVQzxTU1lrWEp1aFBZclN1ZlJVVTxnWDpDVklZV0JnVEZvQj5vdE1PeGZRYm5ZeTxBVzpdRVtfQz5bRlpBR011Qlp1eEZXWHM7R2Z1Z1FwV108UkFMcGpwdGJcXHN2cHZVVUpcXHhteUBKakBORWhNTlVUQkh2TWh1Z01qaFVuQk1UaFVQREltSU1QdGB3PVl0bmR3O2lxX1xcU3RATVtBUUZ5WVtQVGNlbXRJUENIc0xUeUI9dVZMWT1RdUpEbmNoV3h5UVs9ckV4V3BgUFdseXZBbHhFU1RxanBNVk9Fa2ZZdm5UcV9hVkxwUlRxc2JFSnFkb0BcXFJhRE5SeE9SeFBpSFVwYGtOXXZyVGpcXElzYXRtXmhrTGRVZUBqdFxcWV5ZUlFQb1VwV3RGbFBAb215ZkxXXFxQV3NSX3deSGlVYXd4Zmt0d1tOcW5nQF87QGJqWGl1PmFkZ246PlpWRmpDX2I7X2RaZmtAXnZkWHFYXmNXeHlxb11UYWdvb2lBYGdUZm47RmlncW1vUHE8QHBKXnFhcF1zUGp4UXZeXmhyWWF5eHhcXFljZG9bXFxedkdAaXJJXjxAYlZAaTxJW2RheW12eT5AY0JpeHFyXldISW94T2Fzcj9FUkFoXlVUZl1meWN5RndYSnl4TEdTOk1WbjtGSkFmRmVzUHdEXndjYWllOj9UXnFFYVlIbGtpZTtoakVma0lyPnNodWNjRD90Wl95UWFCRkVGUmt5Q3VpSG1ZU3FnZmVVdVtXW3Via19IbXNnXkd5P21lPUt2ZltyVmN4ZENDc0Fiak1jP3NlQztERWtIclN3PnVXcVlXaVdpaG1HbEFlUW9pbHNjVF9mVj1zbVFmcE11Z21WOmVVc2FZOj1EbUdDSXFodmNVVVt4VlVUZFFXbWlTS1lyPXNScVdSaFt0W3dESE1pYHdDTndHclNFSG9JPl1JR3NpTUtJU1FpQ01yUz1VeV9Sb3dIQUVjZUdnbW1GV29ySWtpZktTRV9CT19IeVNVU2F4bl93UmlTUWlleE9YPXF1UD9zPl9jSUVJeV93bFdzQkl4WXV4d0dic29EbmtGY1VSanFkPXFIc1tpTVN0R3l4X1V1SFl1bEVpW2FJXVF5bltXdmdobFV0Oj1GSltHZkN1Om9kO0N2b2VTWml1RnNyaFV0Y2VpWD9XUkVWSFN3UlVUPWFIWjt1dnNiQ110T3l2aGdDVnlXdW1JdnlJUl9XWjtSQjtDP2tIU0N2ST1jb2NWcnV2Qk95W2lZeTtGbVlHSjtjRXd1cXFJRFVDbUtnSXVVa2VGd3d3W01jb0V3X3N3TXVFcl94TE1JQnNkR21iWWNZbnl2XlNDXXl4XXljc1tlbkt4Zk1nP1diVGV4b09mTm1odVFpYlFlUFd1aGVpU290bFt2SVdUU1lZdj9XXVVpV0NCW2NPYVBWYj15OlVWVnBYVFBVc1BWP11uWklrP3VTWUlYXWhNXT1tW0VZcHB2cG5oQnBdPmhlRFd1PG5mQEhsXmhaS0lxQFZpb3FmYGlcXGFeZ2NpeEVQXFx2QVxcb1FfQ0dpVllsP1hgZHFqVW5xZHlsQ3ZeTlZyY3d1dmZoWHBzTUBfUV91TXlrZUFhd1lxS1BhY0VjQVJTQ0ZySXc7a0JgYWJSc3hGb2R0TXJHT3ZfSVRib3ZWS2lLUWVDZ1ZVU2lrbUZFXXc9YWJRS2NIO0l2U3dbQWdBS1JcXEliVWd3bWNITWVGdT9Ud0FWQU1JU1lJPD1TcEdXbzt3bldYRVVJU1F1altHZ3NlPUt2TENnVmVTWXNFc112S0dmd11ja1VkcHdjTUF5YT9YVFVIRmdnTVlWSFlDdl9TbUlmQld4d1tJZz9DQmNJVElUcUloWkFTcU1ZQld3XnlzaVxcUlBFeGZdcXVMdWxtdWBRVVl5bnBIcFNhc0dVSjtAUmp0cWpoUnZQWV1RaztBcmlBTjpsUEc8c1Jhck5EVz08dm5tV0BFYlBAa1JgXjxGaXZveFd3Xk1ZcUVCPnFUSGFpYW1Td0V5U3NXYHdpcXlXeG1HbltiaklVZW1VaXlVPWdSRktmWEV4UztGdDtSeGtJdWVLTkFqYEhNO2VNaU15QVltT3lweWh4R2R4SXVwWVlueFRweFFNRER2RUFWeXhrSWFVeElOb0V2dFhrPGxZXFw8eFllclREcmNNclZod0lFUV9hTHR4TT48S1lsVVFBblN1allYVkhlcEtESlNkTVdkVGlcXHFyUVZiSW87SVY8TExWUFduXVNISHFxWW1IcXZCdXBnPVlhUFVMWVVuYWpMYW9kQFE8WVV4VHd0PHBIYWxlUFdkTVdkPFhYPEt4cVF1aFZFRFl4eVR1UVlOcW9rSVNMYW1iQXJjSHdBZU13XW9kcGx1XVRbWFlIcVlKXFx3TWFybGl2RWl0ZUBPPVVMbVFNalF3bUx3Rl1NbXRxUW1waUF4UmV5SlBtU3BtcHBRTVh0SlRQcWxLVlxcdmxhVERlUnQ8bEB5T0lBc2JkalJYdEdxUkp5V2J0bnNNd3ZMeGlsTEVQb3l4dEd0UkRIS0hwWHBEanRATkltTkVEU0xpck9JT1FoTV5UcXA9b3lhc21cXFRAXXFrbXBuPVByTWtvTHdARFZFYXhRQFI+PW5YcXVYTExQcVVTcVFWVVZlRWtsXFx3bk13WUVYdFluSj1PcllxXFx5T3NUVlRhTV1YVXFwV091T3dAeHZkVUlNTWNBV151cnBVd295dXd0eGZka0ltTUFscVpldktUdFF1WHRoeE5peVtAeGxBUnc9d15HbTt2bmdedXRWd15ZXUtHcEp4Z2BQdUFPdVlOdXNBeFRZeWN5blhgeHFPd2t3W04/cWJZXFxVWWtCZnc8V3hoP2ZaPmB4cGpxX3ducG5PWXVKeHZjTnRUUXVVRmQ7T2NIb3FSSWo7WXBHcWFgSWh0YHJjeWBXVnFgbl5jZnFTeXJ2bnBgXm1ZaWdJWXZ0X3hwd3ZvSHBwXl1UcGhTWGBwcHB1ZmZScXh1eVxcQj9gQFl4Wk95QHB4VHBuc0ZkbklbbGFsTXF5XVZxYD53XkFpd15laU5zPnBxO1loPXF2PXBhSEhibG5iQHdyZT9bPUFwUW9eTmhcXGl5XXlxeVdocGlZc3R3dmdPbG4+XkBnblNJbUpJaUVQaGFxeFZPd3FJbGd4Y2dXeHBIbHhmXWR5d192ckpPbkFwc3ZoW1VYcFV3ZXRHZGdRW1N3Z2ZYZ1Rxb1dPY1o+XFxGeV9aXm15X3hSaG5kSW9jSFpvX2JrX2Rfd2h4QG9wdGVNeHl1eWNJaHhpSHZXZHV5WEdTREM9cnlJeXR5V3h5ZXVHYmtPaEVpU0lHWXlRc1pJcm5ZRVNtc2JFeVxceXdEcWdLZWhDSWRNX1c6TUViRUdYd3VydWVkc0VyXWVZbWRHVWVYXVR1W2VxdUNEQWNsT3dJeXlfeUdYP3hpTHh4SFlhUW1VcGpeSW1hdVBzSXlmVFVUeEtmTU88UW47dHY6QHJkdWpxZGprcXk9UVk8UFh5VHBzeWxQUVA8UU9CRFdKdVN3ZUs6aHJKdHV1aHZxdHFQVVVGWHlaaHU6eUpyRXJLSFJqSUtFeXlFcFNYPFlpVG5WPU9NXFxWUXlyWVRZZmRUWVBSeHlyY2B3PVRKPWRzYTxOSmxqWjxWW2luSURuQWFMPmhYdXR4VnBwZWxWQG1xW0B3PGxzWT1LRHBuXWROPkhqU1FrTUVseEBuakxyYXB1UFxccVdcXFV3bGt2REtbWU1xTG9taE1AcWxDaXZPdVdZZXdoaE10bEtFTFFEQXNhQFZdRXJAUXZHaEpFdU9BbFNRdW1kZGxXTFhLPVR3UG9rYHFIbVFjYU5xTHA6dVdZZHdcXG1MZ1RtbWB2alxcVGhQVFhlVXNRak14U2dxb2JBdDp1TV9ZanBYc1BVcztETk5kdjtZcFtBUFdZbWk8eXVYanJwVEJJTWFQS2lwVWd1TXJsa0pobGdRT3JpeDt1dVBMWHdkUGBhVmJUT0JETmFYd3BdSkphWVBxVWFsU1FsVGFsb3FcXHR3XW47SXNHYUo+VFF2aXFeUXZFaHVwSFJ3aHFrPHJvVVJTaFhsZWp1P3FwV2JnP3VPWG5raXRdR2traWtlQWM9WGhNPm06QGZ2Vnc8Vl9NeGJUdnZIWXBGeXVcXHZeTWh2U1hzcFFlSE9ydHdwYEFvRl9qVEl3TUl3U0hdZHZgSHdfb1ZyS1dgWz5zdWZnUll1UVlvQF5rYmBlVV9dXFxpaTxYYFtJbkdOdnhGYnV3W25xWlVZXWleXFxOSVprb3FFR3FMZ3NyQG5rbnZCPmlzX3hhcGBpWGxuSGZWT2VOSVpdYW5VZ1xcTmFoPnddYVl4O3deaHFvVmFvZGlfXllndEFdd0lqdlFxVlBhQXNCaVg/eWRHaVNVaXdOR1Rjd2ZvU1VUXXNpd1hXZ1lwY2VGU2VNcVNacUdcXEFmRVFWa1tYeG1iR3lCRmdUdnd0SnVSdGNnVkNZT2N1cW1iZ19TSHVGZG93XFx1aFBxYnBlc2NzaD9NZXNVY25xaHBVUlRrZ2lTR2hLcmFpV0tPd0x5dE1HZVFvST9heUJ5WHFBeV1pQ21xSGhtc1xcZ0d2ZVdSQXRMT0VNW2lsd1Z0a2hJcXV1dWZMUWVDW0I8b3I7cXQ+WVdGWXdAaUh3eXllXVdzYWJWVUhpSVh3WUVkdWNqO3VdaWhpPVRlbXhuXXZHWVJRaWJgaUVvYXlUT0hZX1hSXVh3R2RwQWldUXRxd2RxeUQ7b1JMcXVNX2d5a0NoPWd5Q3R4P3VST2I8T0JpQVZVd2lEPUVcXGVYZjt0dj1idl1HWVlXaUtVRltTbElEP1N4P3lJa2N3aFF5d0tpY1VWWlFJPmtnQ0lVUWFIRXN4Ynl4a11lcm1VYnVjckt2Qj9ydz9WPz9EYkFWaElWdWNzS3NpPT9IWkdkVlV5clFoVE9la2VCaztkUWNlPmNkdnNWcE1GdkNDbVFlUm9lW0NyPWFzRVNjVndXSEVkaltmZWdzUT1iUTtTPklXQEV5SnFURjtDRz1ZcGFjXTtzXFxhVzxHdVNJRW9rSW9jU0tjQ1hreWN5Uz1jdjtVZTw9SDo/UmR3d3RPaV5LZ1xcaWhFYUdPaUNjZVc7S0JGQWV3aXZKU0VqXWZVY2VWX3hcXDtSP3VDa0tIV0VYRFlTSz9GbjtYc3lSQXlGV1FYc3NFdnVIb2dCXjtzVkNYXkNDSkVTRkFWWk10W21jRXFWQ0NGW01nSElja0lDVEl3P3lWYUF3Uk91a1dXTk92dVVmWFlpYGtmTmljcVt1UjtTSUtSV014XFx3VltnR3NdU2RpWUl5QnJtU0tITkRdeFt4d09kTHJcXHVNVFF0QUw6VW5cXGFZSUFXYEFSdGF5RVR3WW1XPUFxQllWZlVZRHBZO3l4anBRWERNVXRua1hrSWxyR3B5VT1uSVhzX3RRaVR1bXhWTD15P1xcVGRsVz5kUV5pcGRldFZhbVpNWEl0UW9MbU1NVVVRVj08Sl54dVZ4dlZxTm1ITGA9VGJYTkdpc1JQUGNpWTppWF5QUFRUeFBUeFhsdmpdVHB0V1hRdndBTFE8dV1gVGRkanlYd1dwcElQT11Mc01gbklFdEhlc2RZdEx4cEtcXFRtcE9SbXZmVFdPYGpOPUs+TGpzaHNdYE1TYFc7VXU7ZGtEbHlcXFlUSUlXYVFKdVV5PFhNOlhOOlhPZmF1c1hQa3hzY11vPnFyZnBuUzxqdHlNZG14YWhLdTxWYmVQWlxccWNRUnlwcVpBUkJUVlt5TEVsUVBsWVc9VmJReHB1TGdNSkJsWXlYdkhZUWNFckBATDtMcjpoSmxVeGBpczt0akw9S3E9dGxcXHZ2ZFdIXVVYVUxIUVJHVGxAPHVVSW54bFZYPUw+RE5ybFR2dE1PUFRCPXdSXVVhQVg8SVZLXVVSPU0/RW1qPVRHcGtpUVFJaXdMZVRUaVNZQG1SQGpOXFxTPGVPVnBtPGR2a3FMYWVRdFBMcFVOW01NQERuPmRYO21NWmxWWXV5QHlQZE1SXFxUbmZgTHY8cktcXE9SPXZkQFV2WU1KeExUYUpZPEs/bXB0RHdvcU5nRFVodFNnaUpvUE49bHhIYFZoTHZCRHdKbHR3RWpXSU4+UVlXQU9sXWptPHlrWGpEYHFcXGFqYWFuYnhyYHB1YEhKO0FtQHFXZ3RZanlZdj1MWVlNSF1zQnBuXnhwb1xcbUdBdFA8b0lUdUt5THRQWD49dG9ZVExFdHE9TXE9V2Fdaz9dWWppTWRMV3d1bFNUdj9wckltUFY9c21ITG1AUGxkVmdZc1NRVF5VWV14VUp1TV5IcG9JUGBZTkBxT3g8TWlEWHddbV5gU0M9a05USmRYVld0WHd1eHVgUFBBV0hFWWdVa2xld1ZUbWJobWFxc3JEcnVVbk5lc1JVbkdAeHZYUldEcEs9SmxJU3dJVEdETmlxcnZFcEs8WVh4cEJVa2xIblZAWWFkWWVxblVgb1tgc2t0TnNtdWBRWHNUV3VFeFZoUlRJS2lVTF1cXGxiRFltcUx3SVZVeHBSQVc8ZXlabVg/eFNdaFlUSG9QeVFRWHJueE08RGpaRXhaYWw9dWxNeXZJeVN0XFxzeXFxXnhwYmRLTWFWOlhPdmB4bFlzWFlxcFBMRV1SXFxlU2pAVmFUS2BVbE48WTtZdVBEUVc9b210WGNxVFdcXHl0TExcXD1XQXl0QkBMPVlLQmRPcl1MSzxvTjx4PURKSkx2ZmVzVXhrSWR0SEFSYj1yaEhOQUV1PHFPYHBPQj1wU2lKUGxTUkBqW0ltP0BMYVxcU0hZS2BZSjpoT2lcXHdaVVJaXXdnbG5GSFVnRVVuSXF4QUxARXBSdU9ZeVZ5TFV2SFVCYXJtSG5TSFZ1dVFwaExOWXVBWHNdYE07eXJuRFZ1cHhkeXNLVVk8YWo7dXFRdVlAbHlJZG89XFx3R3RLeGV5W11wRU11X0VXWFxcbnVQd2R4cWx5eUlAV0lEU05ZWWJ5dGtIcGtMUXlFUlFsbUtkeTtoV1dESkJcXHVgSU5lPUtYPWpXTXRcXFhsQXhxXV1LbFRXa2RtPGl4THVYS3BKd2VOX3FXc3hPSmxSPmh0b2RqcF1sb2RzW0BYam15PFBrUExKZEF0OnVZR3V1PWFuQ3V3UVxcUjtBdFV5clZUa3JpS11pamxBa0NkVkRESnREa3dsblhxakM9dkxUbWZ4dEFZVGtoWWZtdFtcXG9JWG5uWFB0cXFEPXdSPVJ4bVNUcU9JSW9KYW1NTXlWdEtVVFl4YVFJSXF4TFdgYXk/YVk6PXdWZVl4XFx3eVB4Ok1OZHBwV01ZTkhvRVFSWnVOYGVVR1VqeGF5Xlh4UExVQWxtcUB0bk1tS1RZS3B2RFhPaGBLTkhMaVl2XmR5VWBYWHFQVHludEF1RlhtcXZoREZhc05xSj9eSj5bYFldSkhyWT9oclZaZk5HYXdSYWJhP2ZCRUZQP0hnc2M8Z2I/aVJZSWVAV1RaR3d5SUhRP3VHU1JDWWNGR1M+PWhNW0lvY0k/VWl0T3k8b0JbQUJFW2hna2Rra1hOR2hlc0RfW0NcXEV0P215V21leUdCRlVFVENzRUtSQ1tCVVtkWU93WUtoPXdiP3NEPEtEYUdHU115SF14P0VFV1dJYEFDeUFVaklSXFxhWGFdWXdLUjxvQ1Y7VUFfSVI9dHRbdkpXUjxrWV5bWXJPZUhbeWhtST1DeV1ReXR5aXhhRWdRZFBbRWxlVGxNa2ZZS3d0T0pocU9FTG9NdmtEVGZcXFhjSE9BPU89QFZARE5WdXNpTG9nSGxQXFx2cmB2X0lsQmBTOlVtQFFSRlxccGBtS2Nsa2xUTz5AblJsVkxJbF5ha0lgUF5Zdld0d3ZUa25MSj1wUjp1Sm5YXFxDWXJrdnl3eGlweWY7cGlDVmdZbnc9P1teZ3lId2VzUW1EVltrcHJvUWNbUGRdXnU/aHR1PnRASFxcY2dobFByd19rcHBjVXlyalluS09lWXZeWz5tQ09zYGBtcEdic29IV3ZOQ1NeQ1N1T3dtUWNvY1RCb0JPPVRfZXBTVHdrVXg7XFxKXmxtanFzd3h5SjxWOlR4PFxcblpITW1xTF1JTnhtc2RAdHFFTHl4b1RkbXFIV3RhdFZUbWtVWFBhdXZIcHdYUz9MSjtAUkpRTXJQaz50dmlQbW1ETnFQc0pVeEs9TWZcXEpNcHVoQXBoWU87PHJwSE1FYGtpbXE8TExcXEltVUVuTEx5PFlyPmBybkRtWmVrRGhzVkVKSEF2Uj14Zj1yPGFLO01KdWRYSmxOdGFQR2hqZ3RPVjxMTXRsUXR3cnl4ZU13d1xcd1ppclNgcD5lbltpUllYbldEckZoV3dReXlQS1JwUT5obEFMakVcXFNxQFRYXFx0Q3R1S1RQdFxcd1hddUF4dVtwbT5EbWRITWo8TkRdVkxZdnBpSj5Ea2pwUENgb2lIVFFdUjxNcm9cXE1gWGpsdUpCSFdCZXVKcEw+RUw8bFBJaExYdE9LcFhaUXVSVFRbTHJQZFVBSG1SSGxJVExMZHlNdU9KdUtuaHVveVV3SHRnWGs9bVFaYXRGVG1yVVQ6eXJvPFFSUVJFdWpKUHNLZVlJeHVKeWp3cFVuRW9oYFlFbFg+aGtwXFxTPD15SnlyYnlvbmhZRkhYS3l0TVltRGBNU3h3SEBwc3RqcEhqTXhROkROd0xvV0VxVj13aVxcc21NTnFdTWNUc01ReWBEbUlcXFJOYGxXQEtkcW5UYFVBPGxWXFx5QHBRR1RXbWBObXFsO0x0WGRUQE1PQU1STVxccXR1dmdNbXhkS0Z4UGldc09gVGBkTHNBS1VhVUo8Sz5MSjtVeF9ZSmZoVW1NdWdVeXVwUE1la3NVVF1cXGpTXW1TZGtndU5SYVA9UWo6eEt1PFZQPG5vPVZBVVdiPVdKZUx1UFJwZXB2bEo/RG5RbFN2YGxBWHhXdHNaaVVnbFVGPUxUcFRRcUpaQXhqbEtbWXk+WXZJUGxwYEp4PUxqZFJcXE12O2FqO2hXS0hPPEV0XkFZR21VcXR1dlVQd3RLcEB2QmRYRHFxZjx0eEBsOk12Z0xrUl1sUz1OW0VOQlhSb1F3dXRYZmhWU01Rbjx3YUhKS1RqSXVqY1xcTT1hTkFIanA8Vkxxam5AT2Fwd1FVamxBeEhVT0FIUV9ReGppcTpcXE1AQFJCRHVTZE1xSWpqQHc6PVlGXXRPQHNcXFFvT21ZXkhNbnhMSHlROnFvdmxtSz14SVxcUUZMS3BRWXNkc2VhVWltSnZBVnJcXHlobHc7PVlzbEtJUFNnYXZvWW14WGtGRGp3VG1lUUtGXFxZSGRKZGVXZVVTUnVVTVxcV2Q8cWFBdExgUm1vcnlxY2lecGRHclVJUG9DZGtSOmtUbV1mTXN4Oj9TP0t3XFxFcmhHeGt1aUdFdHg7dWtvdnh3cnJtYl11V2l3Rk5LVFl5eEdpclBzY1ZTYltjd0xhZG5PdUg7QzxTRFpnZ1RDd11xZk9ZUlVzWWpZWTpZSVxcW1dIRVhVUVI6eWhHWVhRPVhZZ3hlcXJLTWVuSXk6eXNfQWRCUXl2P3ZCTUZQeXhaV3R4TVl5V3J5PXNWd2hydXlKXWh2c1dmSWVtcUQ+QUM+bWJvQ1drVVBRWFh4cHZnZVF3TVdVWHBFcUpnSVZaZFdUeUtbPE48RGo6R3E6SVxcOz5bUGZac0BbZVleVVBmU2FzanB2R0BqOj50PEBmW19vU2libW5zWj5bb2Zna2FaU25lRkhdbkBkXFx3bEpJXFxoP1xcW1dzXmZbZmhpO1FmVGh0VmBzV1d4Q2BnOld4S3ZiOm9ed2h1O29lVlhaPG9wTXhdPlZ4VGhtUXdzc1hcXGtoeG93dmBva3N5c2tud3NmY0dXeVpma0tudExgXWR5cmFOXnVpck4+YlNXZzt2YnY/YT5xWm52Y1hxc2F2dD1OWk52cmh5a0RZXFw8Zl5GUXI8cWhGR3lGZ2xKUWFTb2hLaWdJaXBQaXNydmE8eWdVUGRTUHVAYWdlX3duV3c8aV0+PlxcQkZhRl9rR0lgY1dbRU5dR29bYFZkc3ZvbUZlY25oUVZkd1ZbVD9cXFVJaUhOYWJwb0ZfeHN3dHJeZkZObWdRbGB0Yl9odEF1aG1WWXNIXW9FcE9oa011cjtUcm12SnN5aEdFYXNDUkdjbGV1PHFlRWl4YXl1a1lVVj11YUFpeHV2dVlyYGlHaU1WOj9HP2lzU21FSVFpOnd1aGNZRHNyeGl3XWt4c1NXRWNiVktFZ3dTQjtjOj1GYj1CQjt5PXNoPF9IeE10Q0ViamF5OlVHbHFXb0NCO0loSVtoSD1JbFNJXnFTREN4aEVGWmNTa0lCW1dEdmVDTEFWbW1SQV1JeHFlO0lCZV10TWNZazt0bVlDXll3Q0tUZjtCZXFJXFxbaGJPVVxcY1NrUXY9V1laW0dtXVhlb0lBPXNgQWhnb0ZBU2NseXJaaUU6PUNUO1VuQ3N4Z0U8W1ZRPVRdSVZEa3RiYWNfV2JLeWJuX1JgR0hsWXJcXF9VblF0PD1IS2lTcTtYaGFieT9XbWlZVHdXR1tCTU1JUUFybWlYW1lZPUtSZXNobUtmU2VkRHFJO1dmO2VUR0tJX3ViS0NCQE10dEN5SWl4bFlSdVFSdWVyX1lCa0tiOkdkSUdIY0t0VXFyVlNWYEd1TltCeUFHR3ViR3dlQWdSZ0lYP3NIcWFlUm9WdHliTkFkRXNHXFxvZGdnWTpddnd5VmE/RT1vZmprUktRaUBLeXZxSXBzdmFvSUFFZHA/SVJvdzpLZkBNeXJDc1ZNY1VTQ2tFV0dJSU9zdHBPeXJNRz5hc0FjaXhpc2J5WHltaXVVRW5rdnZnUnlBWDp3Y15XWHBLWFhxc211ZWxBdV15aVJ3WXBHSWVVZWVPUnhbQjxDUmU/Yj1TRFtlYkpRQ0w/aFtVckBLdHZXWFh5dXl3eFhwczxEVWI9cWxMSnhoanVZd29gdENkUWZMTlBwTVNRT2RAeHRETWtITEtQUz9Va3BVTF1ZUjtMcExoc2BZbD9NeUNIeFNBUlg9WFhgb1JwbkxkdERlVVdgbkVUeG9RS15wc2xxTVdAc0xtUHZ0b3FYUVVcXHFRUWxoXFx0bmxvP0FqSk12aG1wYFlMcUhOeXV2cGBvUT10QlBURkx3eWhqS0hXVURPSVB3WVVVc2RXcz13c2FOZ3VtXmR3T2BQd010cHVLWVhRU1FxdEFRQ0VZXXBZRVBPUWh3cWBSbU1vSHFQSVVsQHFwS1RMVHFWUGhTRHBSWGlTZ3BtcUhXQHlUd1R4T11tSGlKPERqSGRVZUBMYEhWOnFLeGxTcHFwS1BLdnFMYUVMTnBQWUFPZ0xreD1YW0hZQmFXVHhWQUVXTU1sbkhTbT15OmVXblxcb1B4UjtRdj89TkRAa1JAUD9QUVc9bm1ITEtkdld4cEtBd1xcbHZgeG9AcXZPPFBrUG9AWUs+RVNFQUxfPGpeSExkcUxMSHhwUE5nVW9FUUxBPVFMYHVRdG5PWW9xcHNbXXJeaG1xZVFMYXlYcGxOaHBcXGBVY01zTlF3az1NcXFLQ1BeVUhlQHFiRWldUG9uYG94Y190VmhrXFx2XVxcaHlKPltQbltSSXNBeGNSXlpzX20/aHJ4XmdycWtibmk6aXVxb3VocF9Ud3BIYGpwX107PnJZSXZVb1pnPlpMUXZUPmpKd3ZCTnM9PndRaWNbeV1zQXJZZms9X29dXmFydl1JQXJeUFpxWXZxXm5vdm9tSV1kX2VAVl1ab3BZbmxpcHlmYz9bQng9V3Q7cVZ4T0xZTnJQTGVlUUp4T3h5TVB1UWh1VGBMT3RZcFN5bUt0czo9dXBtWXBNdHBEV2NxVk9VUFFMdWJoampMa0JgUmdcXE90QFZRZFI+TU9fQVE7eW5UYWx0TWxHUFhvbFVCUVdQUU5RQXNIZFhdTGpEcXd0QFNRWVNuTHdXVHBXYHVwbHB0XW5rRFNlYXRrbXRjXUppTGs6ZU9OZVVUaHlWYVBtcVRudE08RFJ1UUo8PVBGcWxabHU8PXlfeXc6SFlyPE54VVZbYU1ZeVR1dVZFRHZUXFxKYj1KYUlOa3lYd0FuX1VMcmlLPGFxSF1WamlVeW1RTVhqX21Sc0BKPnhPQXBWOlxcTjpcXHI7UW9HPVg+PFleWUtncHI9dFF4eFFaXFxybURxOkROaklLRXFyR2BYYExsU3hPQm1KeHlzcUFuRj1OS0RWXllKSVl2YT1yZnB5QXh4d0FyeW1weHVNbGF0b1BPQ011XlhOQjxTTExMTHBsQkB3RXRTTExOTGx2OlxcbT5gUD5Md0tsWFxcRHFEYVA/PmtUX2NVR192UFtjQGNJVm1qVlxccW5oTUBtUm5gVHdrQHdyQ09sYWdeZ3ZjTGFoR1FdVWlzZHl3P0BeRGh4UGhhR0dldUZoWHhgXXhjTUBcXElGdHg/Wz5WW0VeYk1eakBYWktJeXJBXk8/W1hRYXM/ZjxIallBX0dYeHVeWmNvdEpAakJgZ3FhY0xAbUpBeHFBX1xcWWZ1cW89TnJzVmdGXng9QGdjcV1JQGhaUWlSSVpXQWFKbmBGYWREaGB5bm5TZ2RMYGldQVpZX1xcaFhcXHZnXFxNUHlEYF5jV2xISF5aRmNDP2NWUWZLbmZoaFxcX09tP0l0ST9yVmd4Um95WldqP2BsYUFeOklsbndsPU9lRmFxYkFwZmBpal5xYF91PHBscEdmZ3hmW25lYmldcXFkTD5qc3FiTEZeQHdjTWZiQE9lU3FfV0B1YGl3UG92SE9nPXFkaE9lbk95dmljZEh4Sk54Wz5cXGZeYVJXc2toZkVxXFxMSHA6T2BqaWlvcF5qWXdeUFpjP3h1cGlpcWV1cXdpWW1JRmJScWZtWW5veG5WUHVKR3VSYVpFbl5CV3VNPnlWP206SXFwb2BnZmpob2NAYGlvT1xcbEBtS1FcXGFJakB3ZW5BZUo/eV1vX05wcD9RXFxJWXY/P109VlxcZkZ5dlh4aV5uSWZtVFhlZk5laUlbdUFgO1B2dkB5PUlpW05zRV9sQFlqRUlhWVdbdXB5dmhqcmFoVEBwTGZ4Y290Umd1V0h0YldtQ051ZW95cU95dmhjbHBdQ0Z5Sj5bVHlaRWdhXFxJWm1GXlBRajpvdVxcP2JFT3JUeVteSHJxZ2U9T3I+X3JWaXBxZmNyUHc7P11zPmZBZmdid2JcXHVCO2U+RWJGQUg6PWRqdUNCP2N4bWlOY2g9d2RpR3VAQ1c6c3ZwXXVpVVlwVUldZ1ZIPXdDVWZcXGFGUz1ZRmlVYEFIdVVZPm9WXllSQWN5O0N3V3d2Okt0Sm9CcF9pOm1JPHFzZT1TbD9kYWNEUFFkVHdmQ0t0b1d3dm1kXW9leFtTTXVjQG1yQlVoVVlXeE9zV2FzbHdHTmFFZXdodllpbVlJW2dUbXlUQnViOj10WD9VZ0lJdFVIWk1jXldkQVtZWWt0dm1JUklIVHVCdWNTQUdGRElWdUtDZkFTSFNYZGNlRj9yWVVGSDtHTVNDeXFWc0VSPF1zdD1meF13Pm9XcEdSVmVlSm1TYnViQl9yY0VmdGVzYT13X01IR1FzUEtFR0VJQj9IY0tFX1NGS1VjalVJVFlYcVdiWl11ZkVyP21YdmdCPG94Pk10c29pdXdzW0VGWEtCOz9mWDtSdT1CeU1DTW12X0VyeW1pPUF4YGdSTj1FWHFleGlGR0V0SmNyO3dDXFxbVlljV1ZvYkhXYkJjdW9LV1hXcmpUcWpcXHRVRFNlTE88eHN2VW1TXFxwTVFKaVxcaltIeV1lcFdNclhUSz5MUFFpanI9Sz5MamBBSjxMeUxASzxIbF5VUHhcXGtCXWpXWVNJYVdMRFBCVFlwVXFYcG5YaXRoZUpETVhqdFVMQFNUVWtTYFhCTFVlPG5OWVlYVVNhaHBHaG9IRVZnPXVoeFZLQUtTXWxzVU9KPEs+ZGs6RG5sZUpFQGo6QG1FdGNURmxyTmBsQHQ+WG5PWVtiV3FDRmVFSGRaP3VXVndWcWNBVmNoXmJ5QG1tUW9XUHdSUWtzdl88cHE6Pz5jaGJ1VEdLYko7ZHNNRFpLZFh3R2w/RT9PVEtbRT5LYj9pSGlfVkhZQz5LQjs/UkI7U1VDREtDREZbQjxDajo9Tko8Sz5kTUY9UlppcElYcnZBWHRQVnVIS3Jpd2R1WGg8TEJcXEo8WlJfXzp2ZDp2ZkJPa1JHW3h3bXd4eFBXXnVucHFoZl9neD1ZWlFWdG1oWjxGajpDPk5qcEdaclByWnFdRVFcXGF4a09BakZmW0dGb1dYZk1uaVZGdjxvYVlxYFRBXFxNQFxcQl5aPDpOalBZWlR3a1NIdVNPYUVhWlZGbnFYYWlnY2FvbTtObEJAajp2WmZZcHFQXVdmd093X3dgeWxQdXBYZ1FgcHJAYlo+PEQ6W0dsPXJmUUNUd2M7b3VcXHdZQHNFcz9TXk1mR19nTFNJW3d4b3l4ZVdiSEtJQmVURGl2Okd3S2FZWXdoWztEQls6Pl5id10+PnNBZnlHYVpIZlppWG06YGZXbj5XZ19NVm5bd3VpQ0xLRE9HaTo9Rko8Oz5mcXlaQnlqaGh5QnFiYkdiTEZcXEo+dWhnbEVxX1NBYnhobERYYzw/eEpGeHdAXFxCXjo8PlRrVWBZSjxTS0VQYWh5akh5eV1OYDxOeG12SG1uT2RUa2FQWkRRQWBZTmVUVXhNRUlOSjxLPkw6PFxcblBcXFhGeFp4b0o/ZW5Wc0Feam9AXk5Ibk14aV9QYUFfYj5OWjtcXEJqWkVMbT1MPUBZPkhXeUxUSzxMd1ROV0BrQlxcSjxEajo7P0ZIP1lOaVI6TXJsa0JbQ0RCW0I8RDpScktVPD1SVEd4WkU6QjtAVmtJUlJYajo9TkpaO0w8TE5KSjtKQkY6SzpKPERSV0F5eUFKc3RKYHVSSF9gaUFaOj5aOkZjP29jPm9vPD9mPDM8XCJce1x9</Image></Text-field>
</Input>
</Group>
<Group labelreference="L3">
<Input>
<Text-field style="Title" family="Arial" size="22" layout="Title"><Font family="Arial" size="22">A Maple Package Implementing the 
Consensus Method of finding Prime Implicants</Font></Text-field>
<Text-field style="Title" family="Arial" size="22" layout="Title"><Font family="Arial" size="22">of boolean expressions</Font></Text-field>
<Text-field style="Author" layout="Author">Jay Pedersen
University of Nebraska at Omaha Student
E-mail: <Hyperlink linktarget="mailto:jayped007@gmail.com" hyperlink="true"><Font style="Author" underline="true" foreground="[0,128,128]">jayped007@gmail.com</Font></Hyperlink>
Version 3, 2007-05-19, use combinat:-choose
Version 2, 2007-05-17, use Maple package
Version 1, 2002-07-07<Font bold="true">

Project: Use the consensus method to find the prime implicants of
               boolean expressions in sum of products form (eg: XY + X'Y + XY').</Font></Text-field>
</Input>
</Group>
<Group labelreference="L4">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">restart;
with (StringTools):
with(combinat,choose):</Text-field>
</Input>
<Output>
<Text-field style="Warning" layout="Warning">Warning, the assigned name Group now has a global binding
</Text-field>
</Output>
</Group>
<Section collapsed="false" MultipleChoiceAnswerIndex="-1" MultipleChoiceRandomizeChoices="false" TrueFalseAnswerIndex="-1" EssayAnswerRows="5" EssayAnswerColumns="60"><Title>
<Text-field style="Heading 1" layout="Heading 1"><Font family="Arial">References</Font></Text-field></Title>
<Text-field style="Normal256" layout="Normal256"> The consensus method for determining prime implicants, as implemented by this program,</Text-field>
<Text-field style="Normal256" layout="Normal256"> is defined in:</Text-field>
<Text-field style="Normal256" layout="Normal256"></Text-field>
<Text-field style="Normal256" layout="Normal256">     Schaum's Outlines</Text-field>
<Text-field style="Normal256" layout="Normal256">     Essential Computer Mathematics <Font style="_cstyle256">by Seymour Lipschutz Phd, Professor of Math, Temple University</Font></Text-field>
<Text-field style="Normal256" layout="Normal256"><Font style="_cstyle256">     (c) 1987, ISBN 0-07-037990-4
     Chapter 8 - Simplification of Logic Circuits, problems 8.3 : 8.6, pages 201-202.</Font></Text-field>
</Section>
<Section collapsed="false" MultipleChoiceAnswerIndex="-1" MultipleChoiceRandomizeChoices="false" TrueFalseAnswerIndex="-1" EssayAnswerRows="5" EssayAnswerColumns="60"><Title>
<Text-field style="Heading 1" layout="Heading 1"><Font family="Arial">Input Format (boolean expressions)</Font></Text-field></Title>
<Text-field style="Text" layout="Normal">Input to the consensus routine is a character-string containing a boolean expression;</Text-field>
<Text-field style="Text" layout="Normal">whose prime-implicants are to be determined.</Text-field>
<Text-field style="Text" layout="Normal"></Text-field>
<Text-field style="Text" layout="Normal">The format of this string is to specify boolean variables as one-letter names;</Text-field>
<Text-field style="Text" layout="Normal">optionally followed by a single-quote to specify &quot;negated&quot;.

Variables are concatenated to specify AND conditions; eg: &quot;XY'Z&quot; means &quot;X AND NOT-Y AND Z&quot;.

The &quot;+&quot; operator can be used to &quot;OR&quot; expressions together; eg: &quot;XY + Z'&quot;</Text-field>
<Text-field style="Text" layout="Normal">is read &quot;(X AND Y) OR (not Z)&quot;.

Lowercase letters are converted to uppercase.  Eg: xy means &quot;X AND Y&quot;.

Whitespace is ignored (spaces and tabs).</Text-field>
</Section>
<Section collapsed="false" MultipleChoiceAnswerIndex="-1" MultipleChoiceRandomizeChoices="false" TrueFalseAnswerIndex="-1" EssayAnswerRows="5" EssayAnswerColumns="60"><Title>
<Text-field style="Heading 1" layout="Heading 1"><Font family="Arial">Algorithm Code (Module)</Font></Text-field></Title>
<Group labelreference="L5">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">Consensus_Method := module()

  option package;

  # interface routines
  export consensus;

  # local support routines:
  local consensus_printf,compressAndUpcase, makeInternalForm,
        externalTerm, externalExpression, negateVbl, hasVbl, sameTerm,
        consensusPossible, takeConsensus, termContained,
        consensusStep1, consensusStep2, consensusList;

  global verboseMode;

  # Note: The Internal Forma<Font bold="false">t</Font> of a boolean expression is a set.
  #   1. Each term results in a set inside of the expression set.
  #   2. A variable is stored as its uppercase name.
  #   3. A negated variable is stored as its lowercase name.
  #
  # Eg: &quot;XY + X'Z&quot; is stored as {{&quot;X&quot;,&quot;Y&quot;},{&quot;x&quot;,&quot;Z&quot;}};

  # Routine:  consensus
  # Abstract: Determine prime implicants for specified boolean expression
  # Input:    boolstr - boolean expression in string form (see &quot;Input Format&quot; section)
  # Returns:  string - prime implicants of specified boolean expression

  consensus := proc (boolstr::string)
    local e;

    # convert input string form of expression to internal form
    e := makeInternalForm(boolstr);

    if (type(e,string)) then # error
<Font encoding="UTF-8">      printf(&quot;%s\134n&quot;,e);
</Font>      return;
    end if;

    # verboseMode iff 2nd arg passed, and set true
    verboseMode := evalb(nargs = 2 and type(args[2],boolean) and args[2]);

    # perform consensus algorithm on internal-format expression
    consensusList(e);

  end proc: # consensus

  # Routine: consensus_printf
  # Abstract: printf, but only if in verbose mode
  # Note:     uses args, nargs - to process argument list

  consensus_printf := proc()
    global verboseMode;
    local i;

    if (verboseMode) then
      printf(seq(args[i],i=1..nargs));
    end if;

  end proc: # consensus_printf

  # Routine: consensusList
  # Abstract: Given expression (list), return simplified form
  #           after applying consensus method to it.
  #           Displays simplified expression in external-form.
  #           Eg: {{&quot;X&quot;}, {&quot;X&quot;,&quot;Y&quot;}} -&gt; X

  consensusList := proc(expr::set)
    local e, saved_e, all_done, loops;

    e := expr;
<Font encoding="UTF-8">    consensus_printf(&quot;Initial: %s\134n&quot;,externalExpression(e));
</Font>
    all_done := false;
    loops := 0;
    while (not all_done) do;

      # Step 1.  Look for elements contained in other elements.
      #          Eg: AB + ABCDEF --&gt; AB, AB is implicant of ABCDEF
      e := consensusStep1(e);

      saved_e := e;  # save state, so we can see if step 2 makes any change

      # Step 2. Looking for removable elements
      e := consensusStep2(e);

      # If nothing added in step 2, we are done
      if evalb(e=saved_e) then
        all_done := true;
        break;
      end if;

      # Guard against infinite loop
      loops := loops + 1;
      if (loops &gt; 1500) then
<Font encoding="UTF-8">        printf(&quot;*** Max loops in concensusList reached, terminating ***\134n&quot;);
</Font>        break;
      end if;

    end do; # while not all_done

    # Display result
<Font encoding="UTF-8">    printf(&quot;Prime implicants: %s\134n&quot;,externalExpression(e));
</Font>
  end proc: # consensusList

  # Routine:  compressAndUpcase
  # Abstract: Remove whitespace from string, convert to uppercase
  # Returns:  converted string

  compressAndUpcase := proc (s_in::string)
    local c,i,n,s,s1;

    s := &quot;&quot;;
    s1 := UpperCase(s_in);
    n := length(s1);
    for i to n do;
      # remove blanks, tabs and newlines
      c := s1[i];
<Font encoding="UTF-8">      if not (member(c,{&quot; &quot;,&quot;\134t&quot;,&quot;\134n&quot;})) then
</Font>        s := cat(s, c); 
      end if;
    end do;

    return s;
  end proc: # compressAndUpcase

  # Routine: makeInternalForm
  # Abstract: Given a sum of products boolean expression string
  #           eg: &quot;XY+Y'Y&quot;, convert to internal list form with
  #           single-character variables; lowercase if negated.
  #           (eg: &quot;XY + X'Y&quot; -&gt; {{&quot;X&quot;,&quot;Y&quot;},{&quot;x&quot;,&quot;Y&quot;}}
  # Returns: internal form boolean expression (set)

  makeInternalForm := proc (s_in::string)
    local c,e,i,n,s,s1,term,termCount;

    # remove spaces and tabs, convert to uppercase
    s1 := compressAndUpcase(s_in);

    # check for empty expression
    if (length(s1)=0) then
      return &quot;*** Empty Expression ***&quot;;
    end if;

    s := &quot;&quot;;
    n := length(s1);
    e := {}; # output expression
    term := {}; # next term
    termCount := 0;
    for i to n do;
      c := s1[i];
      if (not member(c, {&quot;+&quot;, &quot;'&quot;, $&quot;A&quot;..&quot;Z&quot;})) then 
        return cat(&quot;*** Invalid Character: &lt;&quot;, c, &quot;&gt; ***&quot;);
      end if;
      if (member(c, {$&quot;A&quot;..&quot;Z&quot;})) then
        # lookahead for negation indicator
        if (i &lt; n) then
          if (s1[i+1] = &quot;'&quot;) then # negated =&gt; lowercase
            i := i + 1;
            c := LowerCase(c);
          end if;
        end if;
        term := term union {c};
      elif (c = &quot;'&quot;) then
        # Only valid after variable (see above)
        return &quot;*** Invalid negation operation ***&quot;;
      elif (c = &quot;+&quot;) then
        # Add term
        if (nops(term) = 0) then
          return &quot;*** Missing boolean term before + operator ***&quot;;
        end if;
        termCount := termCount + 1;
        e := e union {term};
        term := {};
      end if;
    end do;

    # append trailing term
    if nops(term) &gt; 0 then
      termCount := termCount + 1;
      e := e union {term};
    end if;

    return e;
  end proc: # makeInternalForm

  # Routine: externalTerm
  # Abstract: Given a term in internal format
  #           return an external-format string.
  #           For example: {&quot;A&quot;,&quot;b&quot;,&quot;C&quot;} -&gt; AB'C

  externalTerm := proc(elem::set)
    local c, i, n, s;

    s := &quot;&quot;;
    n := nops(elem);
    for i to n do;
      c := elem[i];
      s := `if`(not (member(c, {$&quot;a&quot;..&quot;z&quot;})), cat(s,c), cat(s,UpperCase(c),&quot;'&quot;));
    end;

    return s;
  end proc: # externalTerm

  # Routine:  externalExpression
  # Abstract: Given an expression, convert to external format
  # Example:  {{&quot;A&quot;,&quot;b&quot;},{&quot;C&quot;,&quot;D&quot;}} --&gt; AB' + CD

  externalExpression := proc(expr::set)
    local i,s;

    s := &quot;&quot;;
    for i to nops(expr) do;
      s := `if`(i = 1, externalTerm(expr[i]), cat(s,&quot; + &quot;,externalTerm(expr[i])));
    end do;

    return s;
  end proc: # externalExpression

  # Routine: negateVbl
  # Abstract: Given a variable in internal format, return
  #           a variable in internal format that is its
  #           negation.  For example: v -&gt; V, V -&gt; v

  negateVbl := proc (v::string)
    ASSERT(length(v)=1);
    return `if`(member(v,{$&quot;a&quot;..&quot;z&quot;}),UpperCase(v),LowerCase(v));
  end proc: # negateVbl

  # Routine:  hasVbl
  # Abstract: Determine if variable contained in term.
  # Returns:  boolean result

  hasVbl := proc (t::set, v::string)
    ASSERT(length(v)=1);
    return `subset`({v},t);
  end proc: # hasVbl

  # Routine:  sameTerm
  # Abstract: Determine if 2 terms are equal.  Eg: XY and YX are equal
  # Returns:  boolean result

  sameTerm := proc (t1::set, t2::set)
    return evalb(t1=t2); # could do: `subset`(t1,t2) and `subset`(t2,t1)
  end proc: # sameTerm

  # Routine:  consensusPossible
  # Abstract: Determine if consensus of 2 given terms is possible.
  #           This is true if a single variable is in negated form
  #           in comparison of t1's variables and t2's variables.
  #           Eg1: &quot;ABC&quot; and &quot;ABc&quot; -&gt; true.
  #           Eg2: &quot;ABC&quot; and &quot;aBc&quot; -&gt; false (2 vbl flips)
  #           Eg3: &quot;X&quot; and &quot;x&quot;     -&gt; false (no consensus of X and X')
  # Note:     Concensus also possible if one term completely contained
  #           within another.  This is handled in consensusStep1
  # Returns:  boolean result

  consensusPossible := proc (t1::set, t2::set)
    local i, n, flips;

    if nops(t1)=1 and nops(t2)=1 then
        return false; # no concensus of X,X', etc
    end if;

    flips := 0;
    n := nops(t1);
    for i to n do;
      if (hasVbl(t2,negateVbl(t1[i]))) then
        flips := flips + 1;
      end if;
    end;

    return evalb(flips = 1);
  end proc: # consensusPossible

  # Routine:  takeConsensus
  # Abstract: Given 2 terms which should be consensus-able;
  #           return the consensus.  Eg: &quot;ABC&quot; and &quot;ABc&quot; -&gt; &quot;AB&quot;
  # Returns:  consensus of 2 terms

  takeConsensus := proc(t1::set, t2::set)
    local flips, c, cnot, e, i, n, negatedVbl;

    # Process flipped variables, must be exactly 1
    flips := 0;
    e := {};
    n := nops(t1);
    for i to n do;
      c := t1[i];
      cnot := negateVbl(c);
      if (hasVbl(t2,cnot)) then
        flips      := flips + 1;
        negatedVbl := cnot;
      else
        e := e union {c};
      end if;
    end do;
    ASSERT(flips=1,&quot;Bad call to takeConsensus, flips not 1&quot;);

    # add any vbls from t2 that are not in t1
    n := nops(t2);
    for i to n do;
      c := t2[i];
      if (c &lt;&gt; negatedVbl) then
        e := e union {c};
      end if;
    end;

    return e;
  end proc: # takeConsensus

  # Routine:  termContained
  # Abstract: Determine if one term contained in another.
  #           Eg: AB and ABC --&gt; true
  #               ABC and ABD --&gt; false
  #               AB and AB --&gt; false
  # Returns:  boolean result

  termContained := proc(t1::set, t2::set)
    return (`subset`(t1,t2) or `subset`(t2,t1)) and evalb(t1&lt;&gt;t2);
  end proc: # termContained

  # Routine: consensusStep1
  # Abstract: Remove superfluous terms which are supersets of
  #           other terms in the expression.
  #           Eg: AB and ABCDE --&gt; AB
  # Returns:  Reduced expression (set)

  consensusStep1 := proc(expr::set)
    local e, i, j, k, n, t, dropset, newset, allpairs, pair;

    e := expr;
<Font encoding="UTF-8">    # consensus_printf(&quot;Step1 start: %s\134n&quot;, externalExpression(e));
</Font>
    dropset   := {};
    n := nops(e);
    allpairs := combinat:-choose(n,2): # all combos of 2 indexes into e
    for pair in allpairs do;
      i := pair[1]; j := pair[2];
      if termContained(e[i],e[j]) then
        # Contained term!
        if (nops(e[i]) &lt; nops(e[j])) then # e[i] contained in e[j] =&gt; drop e[j]
          t := j;  k := i; # drop e[j]
        else # e[j] contained in e[i] =&gt; drop e[i]
          t := i;  k := j; # drop e[i]
        end if;
        if (not member(t, dropset)) then
          dropset := dropset union {t};
<Font encoding="UTF-8">          consensus_printf(&quot;Simplify: combine terms %s + %s --&gt; %s\134n&quot;,
</Font>                           externalTerm(e[i]),externalTerm(e[j]),externalTerm(e[k]));
        end if;
      end if; # termContained
    end do; # for pair in allpairs

    if (nops(dropset) &gt; 0) then
      newset := {};
      for i to n do;
        if (not member(i, dropset)) then
          newset := newset union {e[i]};
        end if;
      end do;
      e := newset;
<Font encoding="UTF-8">      consensus_printf(&quot;Result: %s\134n&quot;, externalExpression(e));
</Font>    end if;

<Font encoding="UTF-8">    # consensus_printf(&quot;Step1 end: %s\134n&quot;, externalExpression(e));
</Font>
    return e;
  end proc: # consensusStep1

  # Routine: consensusStep2
  # Abstract: Given expression (list), perform consensus on
  #           terms which have a single variable changed.
  #           Eg: XY, XY'Z -&gt; XZ
  # Returns: expression with consensus terms added (set)

  consensusStep2 := proc(expr::set)
    local e, t, loops, moreToCheck, allpairs, pair, added;

    e := expr;
<Font encoding="UTF-8">    # consensus_printf(&quot;Step2 start: %s\134n&quot;, externalExpression(e));
</Font>    moreToCheck := true;
    loops := 0; added := 0;
    while moreToCheck do;
      moreToCheck := false; # assume no more consensus terms

      allpairs := combinat:-choose(e,2): # all combos of 2 terms of e
      for pair in allpairs do;

        if (consensusPossible(pair[1],pair[2])) then
          # May take consensus of terms, useful if consensus is not already a term in e
          t := takeConsensus(pair[1],pair[2]);
          if not `subset`({t},e) then
            moreToCheck := true;
<Font encoding="UTF-8">            consensus_printf(&quot;Adding consensus term of %s and %s --&gt; %s\134n&quot;,
</Font>                             externalTerm(pair[1]),externalTerm(pair[2]),externalTerm(t));
            e := e union {t}; # add consensus term - modifies e, breaks indexes into e
            added := added + 1;
            break;  # added term -- break from while i loop
          end if; # not subset
        end if; # consenusPossible

      end do; # for nextpair

      # Guard against infinite loop
      loops := loops + 1;
      if (loops &gt;= 1500) then
<Font encoding="UTF-8">          printf(&quot;*** Max loops in concensusStep2, terminating ***\134n&quot;); return(e);
</Font>      end if;

    end do; # while moreToCheck

    if (added &gt; 0) then
<Font encoding="UTF-8">      consensus_printf(&quot;Result: %s\134n&quot;,externalExpression(e));
</Font>    end if;

<Font encoding="UTF-8">    # consensus_printf(&quot;Step2 end: %s\134n&quot;, externalExpression(e));
</Font>
    return e;
  end proc: # consensusStep2

end module: # Consensus_Method

with(Consensus_Method);
</Text-field>
</Input>
<Output>
<Text-field style="2D Output" layout="Maple Output"><Equation executable="false" style="2D Output">NiM3I0kqY29uc2Vuc3VzRzYi</Equation></Text-field>
</Output>
</Group>
</Section>
<Section collapsed="false" MultipleChoiceAnswerIndex="-1" MultipleChoiceRandomizeChoices="false" TrueFalseAnswerIndex="-1" EssayAnswerRows="5" EssayAnswerColumns="60"><Title>
<Text-field style="Heading 1" layout="Heading 1"><Font family="Arial">Example Usage</Font></Text-field></Title>
<Group labelreference="L6">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot; XY + X'Y + Z&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: Z + Y
</Text-field>
</Output>
</Group>
<Group labelreference="L7">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;XY + Y'T + X'YZ' + XY'ZT' + X'YZ&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: T + ZX + Y
</Text-field>
</Output>
</Group>
<Group labelreference="L8">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;A'B' + AB + A'B' + AB'&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: A + B'
</Text-field>
</Output>
</Group>
<Group labelreference="L9">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal"># Show verbose mode, where 2nd argument specified as true
consensus(&quot;AB + AB'&quot;,true);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Initial: AB + AB'
Adding consensus term of AB and AB' --&gt; A
Result: A + AB + AB'
Simplify: combine terms A + AB --&gt; A
Simplify: combine terms A + AB' --&gt; A
Result: A
Prime implicants: A
</Text-field>
</Output>
</Group>
<Group labelreference="L10">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;X' + X'Y' + Y'Z' + X'Y'Z' + X'A'B'C' + X'D'E'F'G' + Y'&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: X' + Y'
</Text-field>
</Output>
</Group>
<Group labelreference="L11">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;X + XY&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: X
</Text-field>
</Output>
</Group>
<Group labelreference="L12">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;xy' + xyz' + x'yz'&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: Z'Y + Z'X + XY'
</Text-field>
</Output>
</Group>
<Group labelreference="L13">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;xy + y't +x'yz' + xy'zt'&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: Z'Y + Y'T + Z'T + XT + ZX + XY
</Text-field>
</Output>
</Group>
<Group labelreference="L14">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;xyz + x'z' + xyz' + x'y'z + x'yz'&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: Z'Y + Z'X' + X'Y' + XY
</Text-field>
</Output>
</Group>
<Group labelreference="L15">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;xy' + xyz' + x'yz'&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: Z'Y + Z'X + XY'
</Text-field>
</Output>
</Group>
<Group labelreference="L16">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;xy + y't + x'yz' + xy'zt'&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: Z'Y + Y'T + Z'T + XT + ZX + XY
</Text-field>
</Output>
</Group>
<Group labelreference="L17">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;x + x'&quot;,true);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Initial: X' + X
Prime implicants: X' + X
</Text-field>
</Output>
</Group>
<Group labelreference="L18">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;a'b'c'd' + a'cd + abc' + abd' + bcd&quot;,false);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">Prime implicants: A'CD + AB + A'B'C'D' + BCD
</Text-field>
</Output>
</Group>
<Group labelreference="L19">
<Input>
<Text-field prompt="&gt; " style="Maple Input" layout="Normal">consensus(&quot;a + + b&quot;);</Text-field>
</Input>
<Output>
<Text-field style="Line Printed Output" layout="Normal">*** Missing boolean term before + operator ***
</Text-field>
</Output>
</Group>
</Section>
<Section collapsed="false" MultipleChoiceAnswerIndex="-1" MultipleChoiceRandomizeChoices="false" TrueFalseAnswerIndex="-1" EssayAnswerRows="5" EssayAnswerColumns="60"><Title>
<Text-field style="Heading 1" layout="Heading 1"><Font family="Arial">Prime Implicants vs Minimal Sum</Font></Text-field></Title>
<Text-field style="Normal" layout="Normal"><Font style="_cstyle258">	Prime implicants are not necessarily the minimal boolean expression.</Font>
</Text-field>
<Text-field style="Normal" layout="Normal">	<Font bold="true">A s</Font><Font style="_cstyle259">econd algorithm must be applied to the prime-implicants to obtain</Font></Text-field>
<Text-field style="Normal" layout="Normal"><Font style="_cstyle259">	the minimal form.  Some prime implicants may prove to </Font><Font style="_cstyle260">be superfluous</Font></Text-field>
<Text-field style="Normal" layout="Normal"><Font style="_cstyle260">	and would be removed in minimal form.</Font></Text-field>
<Text-field style="Normal" layout="Normal"></Text-field>
<Text-field style="Normal" layout="Normal"><Font style="_cstyle261">	That step requires multiplying the prime implicant terms by the conjugate</Font></Text-field>
<Text-field style="Normal256" layout="Normal256">	of each variable in the expression which is not involved in the term.</Text-field>
<Text-field style="Normal256" layout="Normal256"></Text-field>
<Text-field style="Normal256" layout="Normal256">	For example, if the expression is for XYZ and a prime implicant is X</Text-field>
<Text-field style="Normal256" layout="Normal256">	then the following would be calculated:</Text-field>
<Text-field style="Normal256" layout="Normal256"></Text-field>
<Text-field style="Normal256" layout="Normal256">                   X(Y+Y')(Z+Z') --&gt; XYZ + XYZ' +  XY'Z + XY'Z'

	This would need to be performed on each prime implicant; and the results</Text-field>
<Text-field style="Normal256" layout="Normal256">	are then compared.  If each and every term generated by this multiplication</Text-field>
<Text-field style="Normal256" layout="Normal256">	is found in the multiplied terms from other prime-implicants, then this</Text-field>
<Text-field style="Normal256" layout="Normal256">	prime implicant is superfluous and is removed from the minimal sum form.</Text-field>
</Section>
<Group labelreference="L22">
<Input>
<Text-field style="Text" layout="Normal"></Text-field>
<Text-field style="Text" layout="Normal"><Font italic="true">Legal Notice: The copyright for this application is owned by the author(s). Neither Maplesoft nor the author are responsible for any errors contained within and are not liable for any damages resulting from the use of this material. This application is intended for non-commercial, non-profit use only. Contact the author for permission if you wish to use this application in for-profit activities.
</Font></Text-field>
</Input>
</Group>
<Group labelreference="L23">
<Input>
<Text-field selection-placeholder="false" executable="false" family="Times New Roman" opaque="false" foreground="[0,0,0]" superscript="false" placeholder="false" readonly="false" subscript="false" bold="false" italic="false" underline="false" background="[255,255,255]" size="12" linebreak="space" spaceabove="0" rightmargin="0" bullet="none" firstindent="0" bulletsuffix="" linespacing="0.0" pagebreak-before="false" leftmargin="0" alignment="centred" initial="0" spacebelow="0"><Image height="33" width="800" zoomable="false">TUZOV3RLVWI8b2I8Uj1NRExDZE5WWlpKOkBMPkg6VEtHeE1rSjo8T2BMb1xcbFF4bFFXZE1XcHNIcVNobVdoWW9lWE9QbVRQbVZgbXZxeXhxPVhqPXhYcXVYYXhuYVhjRVdjPVVSPVV3ZVl3RUxLRExxdFBxPFI6PXJeYXZedVJBdXJaQG5adFZhdVZiPVdiTVl0TXl2YXl2WXl1WVl4bVl4cXl4cVl5dVl5RVlzRVlwbVhweXl5eXlwcXhwPUo6Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjpkeTxUeXBDPnFVTENUSmNEWG9YdXNUPGF1cGtjZldNWEBKQ2VVYGROdVRtV3h5eXlwcHVQQ0RTU3VMQ2x1Pjx4VHBRbWxzYl1NaWhVT2BxVGVYU1FPO0BKeFZdd09sOkBzeUZ2PHdcXHRAdHNOblFuXFxWP3c8d1xcP0ZxSmlqWHluWlZ2bnlIRXJtaUJfX3RXaXRbTXl4WVJJSVh2V2d0U1M9O2dRTXdBSUNdSVlyR1hSb2djW0VwcVl0c3huPUJWU1VHdUVBW1d4S3JXYVNIc3NvWUJQa3luS2N0cWdteVVLQVlRWVV3X3JzPXdib1lUV1hJP0lRS3lvW1hAd3lkcXl0WVJHQXlgaXhzW1NseVhhU3lxdXk6bWVsPWRYcXlkSWZ2Z1JJZVNVa1VtVUJHd3VaaXRTO2VRP1M+QWRNYXNua3lTR2JEU3VpbWJTYWJqeXROQXlNdVhsYVRXYUNwO3k/YXQ7X3R4YVR3YXRoP2NqPUdiZ1lWR0NBW2VBa2heaWh5YUlHb1ZkR3h5V2VRYXRhbVZIWXg6U0VJZXd5YWNtY1NCQXZnT3l5c3NFeUJWV0N3UUZ0WVd4WWRNZ2NZX3leVXk/Z2NlW1dYUUNEY3dHdXdITXc/cXd4W2dhY3NjR3J3T3R1S0ZYS3NjW0ZaSUJPcUlySUlda3VJQ2ZSb3NNX3lUU0VXV2NLUXNfcUdIZUlpYVdCc3ZhQVhXb0ZzWVR5dUlZU2RXQ2V0W2ZacE9ZdHZbXFxYU012Tj1YaGx1eGVsXXlsdlVuO1BZc3F2a21tQ3hTRVFQc01PZVVwUUVLTmB5VkFxY3FSUXBZeEhyW3hVXFxBdGdQVmV4bUhIUVlEWHB0TDtleV9cXFhIeHlUcExRPXFKaEprbHFBPXdQeHFPdHBQbXdRPWtXZFNTWWp4aFF0PWxpPFg9UHJcXEhveE1LeHBwZFVQR3hsYDxSYWRXc0VNVWhuTWluYXF2eVxcdF1wSndcXFB0dHQ6bHdfaHk7UHh1RWxXcGZ5cGlReWc8SWJnSHFRP3dSd3ZGZ2NRbm10SV1sWFpvYXV2d1xcXVZpXFw/eXVJakdxeUFfXWpeY2lhXFxedmFZZm1YWXZWX2ZveWRfd1phP3lJUGZOWHBPaW1iSW53aWllUXlaQFtqZltwX2BzP1xcTkBxYXdbPGFfPXFwZEl1XT5nbkhwVWlcXF5hW0FHY1NfeV1wbkhnX29JaT1Ya01gYkteeVVXakZoaENwaWY/bGxoZWxoa0txaz1xZ0NxcUlva0phZFpAXUlPc3BIamdRZ1V2Xk1wXltha1hOb2t4Y0ZheE1YPkVmeD1HSnlZXT11S1dYdWVmY1lDVl9ETztYXW9lRHdJXVVyaElYaEtkdFlndj1zWU14eU1oRUFiZEtkRkVEO01CaW1VWWd2TnNmQnVEZ3F3XnNSWm9pZXlpWUVmRUFzWU9jVTt1Zl9DXjtnPkVJVW1XeV14WltIP1VUaXdoYXliPEVXVUFobWdoVWVlXU9ETHlma1lkT1FETk1zbGVnXW1IR2t5blVyclVoamdidnN0cklDc09pVT91cFVodE1FX2NWVWV5d1dyU2VTdkl3SHFzRVV2d2FTYG12X2tDRWdERUVWT295ZlNGWUdYaFt4ZTt3ZnN5YT9IYmN1X1NpSFVmclN0cXNnSUNVS21SO0lFR0dpRVV4U1Nld2tCUmNpYz9mW0dIc11XQkNlRlNYTWVjQHF3UVlpT0NGaTtiZF9lcGdoQ2NyU0liclVGZktYcE9FPkNkR1VWSF9zcz1HYUVGXFxNaF91REpjWGVXR1NrSUE9VGBbdWhPaUtPeTtJZG9fc0JRZ1BHYmlNeFpJeFs9Uk5RSENVd2xJaFZBcz5NeHY9dDtJZWtlY1tpVG9lQl1ZU1ZzSV1VR2tNZ0M9eE1fY3ZdckNrR2xPeUU9d1ZzeW1vUlBFUkdVV29Lcz4/ZE5HY3FPdkw9RGNnVVVpZD1TZEJZdGFjQmN5VDtzQz8/c1hzQkZFSVBLZHdVaWJVVXVvd3RDeExFUnhHVVBPYz1lZVdXREpfdEJJRmpbUk1XWG9hSW5pRkRZeXZJZkZZSDtFaWZhV0FBZGtRZ1N1SW9ZSFM/c1xcYVlua1ljQ1JYQXk7PXVyU3NVRUdYb3Zta2RVP2JJa3V2SWhmO2hIS1Jtc0lxa0drQ0lFR1NRaVV5P3JbY2h5XURXP1VKd2VvX0hJO0lbaVJQdVlDY2VdeUlRR1NSPVNGY1lASUhOYWJFeWhUO0hcXGdDW2lpRXViWElZWz9GaGtmQWFSeWNjUTtEPE1CTGtzVUd2TV1GT1NXWmFGbm1VVk9CXU1oYGd1XWV3OkNTWFtWVVtkXmlXQ0lUTWtpbmdWbWNZO0V1SWtGWmdldGFTbGtlRF9TbFVkP1NVW1doYF9JSGt1TmFJQkVZQEtoUVtJYlNmbF9DcGdWXUlCZ2NmOkNyT1dXbGlWUFNETXVFa3dCWVFiZ0t4R2lXZmNkZ19jQ29YRHlGb0FGPENZZF9mWlNVS09YbVVFcm12cFdnYVFJZVdHeU1pdU9maGVGWVtVV2dkR3dlWztYQFloPG93c2tUd1VnallkdkVoblRQYExKYXRVbXlvXXhsa1VwZ1BTSG1TT2lTWHRNP0hzSGhXZ2xudT15cE1vc21QV1F0WG1sTERSXmVyYXBwQVBxQFR3dVxcbWY8eXRNb190TlFEbXd1VUJhbFtUS01dVVpcXFZzVVBnXFxPaFhVXWl3PmxUPlR0b2xZVWVNXFxgcTppTkZRa01ldUI8WV55cVtUcXdMeHlZa15tUERoVVRFTFtteGRZVHJVd0hZcHBgUl10c3lobTxcXHJkaE5cXF1WR2VqRXlUQkxsWGhVaWRTa2xWY0lta3VKQVxcT0ZBSnhYVEpcXG9ScFVyXFxxbkVVZjxQT2FvY2lvWHhZVVRSeGhtS0hub1V1QmF2dnh0XUBvcmR5cUlsYHR5Y0V5Zz1TdDxWO0xZYERvREVsQ2hXWWRrcElrU01vcGhuaHFrZU1XPFFYXmRvZ0VtTTxreEFZTT1tcFBLbVRUTW1YZVFMbnVLP0hNZUlVYGBUcU1TZGVOcW14SGVMSz1PVXB4XkBraVlwYHhYVmRvVUBMPVBwckFQSXVSW1FwQFlsdlBXd1FUb01wR2BqT1h5Rmh4QUVUaWVSQURLZ2lvVlBPeVhVbFhUOkl3YzxOZ2VNTnVwXFxYV3JkUUZQUXZsUD1Ub3Nlbz5xWGJpV09cXHlFPVBVaVBBQVNnTHR4WExHPVNUQVNBeGo9QFdpeHdYYFhPQXRIbG9JZW9IaUx2eXVvdU10THRUeUpzQXhCWHJAVHFXWE9zRUtvcHVBRVU8dXlPXFxMVHlQQVhtPXRPVVFuZWFORF1LT1l5THlYYnR4dWhtY1lyWE1raFxceWxMb19lcWB0U2VBT0hdbHFVd2lQbmtQd2xIUGdIcmVoWV5wS2hQd0dQSjs8TzxgcVU9dE14VVVFUFdAUmRJVGZZamphb3dUcU1RalhISlNcXE08RXZhcHBUQG1XTUpAaU9WaHlMUUtxXVQ9RXljPVVocU5hXVBKXFxYXFxMdVtEc1FAT1tYUnc8UmJgUGB0U3VlamNlWVhAVU49ckZleHVIbURta11YUkxhWUVsUm1JUF1QZWNoYHJ4bWE/YXJhYUN4dldRW1xcYVpgeWlGQWo/Z3ZWVmReQG1HeVtoaGp4UXZqSXdNVndQR3lYV19FcGpETm5zeV5FaHZFX2Q6UG5rT2FEQV5DbnhFQW9DaF9ld2M7cGJbSVtad2NVP2twR3d4dmNWVlxcT1dhWUdaV3FiR0dealZrQVFdbVhja2Z3VFZmb3ZaVm5aTHdmb0llUz5lQEh0Y3ZzZ1BuPFlxRE94Y3FiZE5tUHh0cXdoc2ZhZz5teU9lZGhxQ0ZrTldxc3B5XUBfVlFySUl1XW5jTEliPl94ZFFeW3l3XmBeWXFiU3hleWdhPk9rVkBmcFZmZU5obXhlU3duXj9fR09rbGZgUXFnS195Sz95akBweHZ3Ykh0SWB5WWFpP0h2Sl53dlF2WW5nQVZvPVhod2NSZUJJTWZsS1RVX2JgcXJGUUM8VUdSV1k9a1ZXQWl2XVg8Q1N5TXljeXdlb0U+P3R0a3NWZ0JUbXRHSVh2S0RUO0RgYXRwYUdRRVZBPWVmb0hAXVRnc3dzQ2ZXR0ViQ0NMSVl0U3dHO3RSYUM/XWhpW1Rmd1NQVWNTUVlaQ3Vsb0VbS1RuT1NUdURQcWZwUVVfWXhbP1VaPWJgeUN1RVRVZWN0Y3JzYVdJR2hQVVZkQ1hvW0RuO0dUb2Y9QVZCY1lSR2dhYVlic3Z0PVVCdVZJT2VaS2dHbWhIUXJdXXVtc2lmeVRQV3RuZXlaS3lkbUhqb1dSQXNTUUhld0RTPUhqXUM+cWRIW1hISWdrd1RHdXZJX3NnWURnYWJTc2lMWXJiXUljW3VaVXVDZUdOXUlueXlqaVZuTXVKaWJxXUU+PXNIW3RoUURYZ1RcXHFoTndUVm1HZG9TaUtzRF1ERF1VT2tzTz1mWDtYdklkYlV3Umlpc0NFdj90RUFTP2VIW0VIaU95W21jRT9oWTtld0tDclt4O0VDcFVFYUl0Uk1VZU1JQHdGPUd1cUlkcmlYbUFpSG91Ql1VRWt2Ym9EYF1iRGV1XlVIT3N4d0tTb2dWRV9HTlFiQkFkdU1ZUTtZX11YYnFCZVtGRllHRj10WGd4cnlZcEFGRG9pZElSSGdVZj91WEdnXVdndUdpZ11VUlFycDt1PU1IWUlYeGNJYW1zcUVsPHVSPFBNd3R3Tk1xTllNQj9cXGFJaXF2Ym94aGtud0RPdl1ecjphXFxbV2hFeHNuX2NkUW9ATmddb3JMUG5DcHRFP3dKcWk6YWRgP2dqWFxcQm9sOkBkSmlzW3ZlbF5wSz5dVHBjSUhob1Nab1hKT2h3W1dnc2VzdUJmRWddPXV1VVk9cVhaV1ZZTVNaRUNIV0hxZVg8U3VeRXV2WVg7QUZRUUNdXUZsXVNOcUlPPUlMUXdoSXdab2VxRW9PcVZZQFRUcHJXQU5xWXN1eE5BQFdqbHB1YVh5dG1YTVJrZHBJXUtcXExUQD1QZFxcU3hISlNYTmh1bEZZUW10d0poV0k8UXN1UlVwd21cXHJRREx5dU1nTXY+QHBTQHBmdFJpVW5pVFY6dVJSaWw8bFJZPHdsdFNWaUxoSEtEQHZWaVNgRE9mYVR2QXN5TXVLbVFVaHZxbFF1TFdAcWxyYFJkZFJLSW1eUVlBYVh4ZFBcXFR1VmxrdE1ZbXlQQWB4Uml2UlVvTHhLbUFOYWxMYHFWYGVURElPO01ZXFxIb1FpWW5Na0hMTnFoeWxVSlxcdFNedUtKSU1LQVlbcXVmTXJ4QVhmeEp5WHhlYFJQcXhPaW9ybEpXXVhFSFh3XFxsSnFyPVh3TjxUPmBuRlBrbEh2XkxUZF1rdml1Oll3bGhXa1R5RHBMU1VWVXFRQ0F1VFRsaVBvcHVvVEhOU1F5UnRzPklxS1lLaFROUU1zZUFqb2FsclF2YklzbE1wPVxcb2pMVU1EdURReW1hb2lRdWxtUE1FTHdocHVwbG5JdnlwUGBYbENETT5MWUBgcmRxdG95bkBNTEZUVVVQb1xcVVdSXFxXTWV0T0FvRWV3TElVY3RSd0B0XUVSR0BYdHFLdUhRV3FqV0xxWmBMVFVPVHVzbUhQY1lrP0ROPXVUXFxhWFNlTE51S3J0dGZAa0l1blVUWENNdFl5UlVRcGxYd2BYdj1pWHBwdUxtUlVxd1RNbVtdcXhoTEVsdD5sTmlAcVE9UV9sUkw8TmdlcmhoWHdBcnlBTD1pd11JeFlUVXloajtwb3FYUG1VZ0hHXFxnYW5mV2ZGPmhyQXd0d3lbWXM8VnVHWGhTR3hlUGpNXmV4blxcdmFiSE5qVGZmRll3RE5yZUBxb2hlSFdtb1dgXVBcXGdmcV1Ja3h4XFw/dmtubmNcXGdpdXBvdkloTWFaT0lraklkVnF0dj9lZm5oZWBpPU9peFZ1ZVZvcHhqSk91TllgW1dcXGpYXFxTTmtlcXJRX3BVZ2hqTmlOUXRwR1xcQ0llX0lhYllzQHd3QndcXExgeE8/cmBxWmk/Y0BXc1dgXkBmam9nZXBwamtJcG5Ya0tQbmRHYWRHaWRvY0U+bT9GamZfYllmXFxcXD9wXUhpZU5xV2dnZUl1Q0FuaGlad2FlcFlua2dlRnlqdk9odV9bR1FrcGlvU05hP25kaXByVUZqY1ZcXHBRbmd3XVI/XVdGZVd4YD5pX0hAdEF3ZGJueTx4X19PYEZ5Z2dxdWpBdEpoYWlBblNBcz14d3RwXmFZbmxvbG4/ZVlRdEFebUp2d0Q/a1xcUWxdeHFNUGNgX3NqVl1ndnJlT3NJT2twUF5WeV5bVndgT1tnd21McWldTm1aQGhCQXJpUF1PPltASGRtWVp5aXJbTm48WXBlTmZvbnNvXl1kbmZJWXVYd2tFQWNVeW5eQWBdVmV5WXVsUG9nQW47P1xcSz9tdF5ncF5qWEd4Zj55c2Zac2d1PWBzZWJfYUlFU1NKY1dld3RtQ3JFQ2ZnRVJhcUVOQ2hCO2ZeSXZ4WUw9UFNdPXlLWG1HZU1ZTG1yVFNCcExfYFVBbG1YbVhsVVRYRW5eRXNTbW1meVJFWHNERXdlbHZRcWxRYVhAQHRqPHBrVFlrRFNOcXhQUWpsdXNpVEpFTFhRXFxSd2BzUGFTVVlKd1BqZGVzX1FzS2BqQElqX0R1Rm1KbVBMbWxsaDxTU1BLVjxXW2VPYWFUTkB3TGx0dj1xZEBPT0hyYzxLPmh1aFBQPUFwU1VSUF1tYklWU3VybERMcXBLdWFWbGlWPklvT3hKeEx5R1hPaHF0PVFQQlFWSXRSamRWP11QRlBQQ3l2c11ZQl1SWEFzUEx5c1FUXk11TFVPRE11ZURQPVVQcEhzRlV4OlhKYGhObEVZS3lrcVFMUUhTRXVyXmFYX1hKSF1VeXh0Z01SQ1h0anVvP0VRV01MW2FSU2lraWRvZUxzVWR1V0VNdGhZWnlRW3F3eEhUW3RPdTxWR3hxYmBxcDxPUUFXT2VZSUl3XlR2YEhyTnlQO0VLaERMaVRxY1hMcTxOWGVqc0VLc2VUO01ZQTxvc211ZkBVQHR4VU1KWWFNRnV2VmFqVWVsdl14WGBuY3VUaFR4Qlxcd3h0dkNpdUBIc1FVUTptc0p5VVZYTE9lVUFMbWRhWV1UTW91cUVFeFdgeEs9UVFMeUdBeWlIUFxceE9mXXRHPmNKd2BneHdeZl1tSWRKd2dYaXliWF1fXlxcXXhdd1hvb3ZmSmB2Z1FrbFdyaHFgc3hxVGhkX0F1WEhvdGF1eHF2VlBzPmZYUUVHX1lHeXVqR1dxYUNPeUU+V1hbd3VFd3lzTUhzQUNhd1lmc0lpcXZXaVdwV0dvR1ltcXdBZWg7X1hxR1N5W1lRVVc8a0ZhVUdtdWhxZVlFO3hkd2JEVURkV1Y8T1lqbXdjXXJMP1RwdXdGX3NuV3VtaWlhQUlueUJbYVVieXhcXHl5YGNTTG1IeHNJbndZTHdmPW9iX2t0eGdVSldUQl1UdEl2S2tERE1JQ01WWkNIPFdXRjt2WGV1T0dlXlFlTHdpa11Ia0NmclVYdV9EZ29DW09JeXVoX0l5YltlRWhxcnlRP013VGV4SXVOYnVtdjxzT2l3eV11Tz5pZT9vTlhwbkZiXWl5a3l2QHBuTT9eYlFiY09wXUBwTV93T0laXFxpXXRWcEdJdT1QZGJIZk14Y3hYYXQ/YVdQWnN3dz54YUR2djx3cVF2eWtecGlBcl9AZmRZeWZveHNhY3RXX3V2Z0JQbXF2bUtfWk1BclpXWnlBdkNQbXVZZFxcQWJacF1aTmdYd3J5WGF4dmE+d2ZZcGNaZ2VtPnV4aXVbR2lZbnV3UXU8YWlKbnM/XFxVTnBxSGdqZndocVtiYWhiQHhDR2JIVmtrX25UUGVpb2JmeWNVZmBYbmF4aWRsd2lUSGptaGVGP3N3PnFXWHhUV3lnUWJ1cFp0WXBncXBrd3dmV3ZjSFpjQXdbaXVNaXliXm1FZnloX3l5WHNJSW9zWGRKZnh2cV0+eWFSX1pWeHlcXGJTP0ViQXdzXXddd3ZjT0ZvTWh3U1VSYWd5Q1lkaVR3QUJ1QUVHV0Z1U0lHb0VrS1lJR0ZZVVlddXdgdXdYb0d1QUZWV2tHd3F5ZmJAcXJyaWZqP3NZcHU9QF9db249Z1tRQGx0UWJRTlpEZlxcRldlXFx5cXV3WzxwdV4+bHZReFxcWXc8d1xcPFZ4UlBuPXl4aU5bQ05nQl5pck9wd0duRWZ5eVdudHF3Omd3RWZaU3BpX0dcXDw/YFFueFY/d3lnbTxOWl5xeWFHcHh4aU1wa19PaHFZcld4XFx0QHQ/QHZBQVxcZXFfclFxdj51eUB0eWFgV3l5Onh2bXlzWHd5WWZbTVd4b1dtSWd2b0U6O0I6TVRLV0RLV2dKO2VaMzpcIlx7XH0=<Drawing-Root>LSUlUk9PVEc2Jy0lKUJPVU5EU19YRzYjJCIiISEiIi0lKUJPVU5EU19ZR0YnLSUtQk9VTkRTX1dJRFRIRzYjJCIlKyEpRiotJS5CT1VORFNfSEVJR0hURzYjJCIkSSRGKi0lKUNISUxEUkVORzYi</Drawing-Root></Image></Text-field>
</Input>
</Group>
</Worksheet>