text:
G2"/>
<via x="22.352" y="18.542" extent="1-16" drill="0.254"/>
<via x="21.082" y="17.018" extent="1-16" drill="0.254"/>
<via x="21.082" y="15.24" extent="1-16" drill="0.254"/>
<via x="30.734" y="16.002" extent="1-16" drill="0.254"/>
<polygon width="0.4064" layer="1" thermals="no" rank="3">
<vertex x="20.574" y="14.224"/>
<vertex x="32.004" y="14.224"/>
<vertex x="32.004" y="17.526"/>
<vertex x="23.368" y="17.526"/>
<vertex x="23.368" y="19.304"/>
<vertex x="20.574" y="19.304"/>
</polygon>
</signal>
<signal name="VIN">
<polygon width="0.254" layer="1" thermals="no">
<vertex x="40.386" y="24.13"/>
<vertex x="42.926" y="24.13"/>
<vertex x="42.926" y="19.304"/>
<vertex x="37.846" y="14.224"/>
<vertex x="37.338" y="14.224"/>
<vertex x="35.306" y="16.002"/>
<vertex x="32.004" y="16.002"/>
<vertex x="30.734" y="17.272"/>
<vertex x="28.194" y="17.272"/>
<vertex x="28.194" y="19.05"/>
<vertex x="32.512" y="19.05"/>
<vertex x="32.512" y="18.034"/>
<vertex x="37.846" y="18.034"/>
<vertex x="39.878" y="20.066"/>
<vertex x="39.878" y="23.622"/>
</polygon>
<contactref element="B1" pad="+"/>
<contactref element="S8" pad="3"/>
</signal>
<signal name="VBAT">
<contactref element="IC1" pad="4"/>
<contactref element="IC1" pad="1"/>
<contactref element="C6" pad="1"/>
<contactref element="J2" pad="7"/>
<polygon width="0.254" layer="1" thermals="no">
<vertex x="27.432" y="16.256"/>
<vertex x="27.432" y="23.368"/>
<vertex x="28.194" y="24.13"/>
<vertex x="32.512" y="24.13"/>
<vertex x="32.512" y="24.892"/>
<vertex x="30.988" y="24.892"/>
<vertex x="30.48" y="25.4"/>
<vertex x="26.416" y="25.4"/>
<vertex x="24.892" y="23.876"/>
<vertex x="24.892" y="16.256"/>
</polygon>
<wire x1="31.67" y1="24.318" x2="32.7" y2="24.318" width="0.3048" layer="1"/>
<wire x1="32.7" y1="24.318" x2="32.766" y2="24.384" width="0.3048" layer="1"/>
<via x="32.766" y="24.384" extent="1-16" drill="0.3048"/>
<wire x1="32.766" y1="24.384" x2="32.766" y2="22.352" width="0.3048" layer="16"/>
<wire x1="32.766" y1="22.352" x2="33.02" y2="22.098" width="0.3048" layer="16"/>
<via x="33.02" y="22.098" extent="1-16" drill="0.3048"/>
<wire x1="33.02" y1="22.098" x2="33.782" y2="21.336" width="0.7112" layer="16"/>
<wire x1="33.782" y1="21.336" x2="33.782" y2="19.304" width="0.7112" layer="16"/>
<wire x1="33.782" y1="19.304" x2="34.798" y2="18.288" width="0.7112" layer="16"/>
<wire x1="34.798" y1="18.288" x2="43.434" y2="18.288" width="0.7112" layer="16"/>
<wire x1="34.37" y1="22.418" x2="34.356" y2="22.418" width="0.254" layer="1"/>
<wire x1="34.356" y1="22.418" x2="33.782" y2="21.844" width="0.254" layer="1"/>
<wire x1="33.782" y1="21.844" x2="33.274" y2="21.844" width="0.254" layer="1"/>
<wire x1="33.274" y1="21.844" x2="33.02" y2="22.098" width="0.254" layer="1"/>
<via x="43.434" y="18.288" extent="1-16" drill="0.3048"/>
<wire x1="43.434" y1="18.288" x2="43.688" y2="18.288" width="0.7112" layer="1"/>
<wire x1="43.688" y1="18.288" x2="48.006" y2="13.97" width="0.7112" layer="1"/>
<wire x1="48.006" y1="13.97" x2="63.5" y2="13.97" width="0.7112" layer="1"/>
<wire x1="118.9883125" y1="67.88296875" x2="118.80703125" y2="67.88296875" width="0.4064" layer="1"/>
<wire x1="118.80703125" y1="67.88296875" x2="117.856" y2="68.834" width="0.4064" layer="1"/>
<via x="117.856" y="68.834" extent="1-16" drill="0.4572"/>
<wire x1="117.856" y1="68.834" x2="117.348" y2="68.326" width="0.4064" layer="16"/>
<wire x1="117.348" y1="68.326" x2="117.348" y2="65.786" width="0.4064" layer="16"/>
<wire x1="117.348" y1="65.786" x2="118.364" y2="64.77" width="0.4064" layer="16"/>
<wire x1="118.364" y1="64.77" x2="118.364" y2="61.976" width="0.4064" layer="16"/>
<via x="118.364" y="61.976" extent="1-16" drill="0.4572"/>
<via x="116.078" y="59.436" extent="1-16" drill="0.4572"/>
<wire x1="116.078" y1="59.436" x2="109.728" y2="59.436" width="0.762" layer="16"/>
<via x="109.728" y="59.436" extent="1-16" drill="0.4572"/>
<wire x1="109.728" y1="59.436" x2="88.392" y2="59.436" width="0.762" layer="1"/>
<wire x1="88.392" y1="59.436" x2="88.138" y2="59.69" width="0.762" layer="1"/>
<wire x1="88.138" y1="59.69" x2="87.376" y2="59.69" width="0.762" layer="1"/>
<via x="87.376" y="59.69" extent="1-16" drill="0.4572"/>
<wire x1="86.868" y1="59.182" x2="63.5" y2="59.182" width="0.762" layer="16"/>
<via x="63.5" y="59.182" extent="1-16" drill="0.4572"/>
<wire x1="63.5" y1="59.182" x2="63.5" y2="36.068" width="0.762" layer="1"/>
<via x="63.5" y="36.068" extent="1-16" drill="0.4572"/>
<wire x1="63.5" y1="36.068" x2="63.5" y2="13.97" width="0.762" layer="16"/>
<via x="63.5" y="13.97" extent="1-16" drill="0.4572"/>
<wire x1="118.364" y1="61.976" x2="118.364" y2="61.722" width="0.762" layer="1"/>
<wire x1="118.364" y1="61.722" x2="116.078" y2="59.436" width="0.762" layer="1"/>
<wire x1="86.868" y1="59.182" x2="87.376" y2="59.69" width="0.762" layer="16"/>
<contactref element="S8" pad="2"/>
</signal>
<signal name="+3V3">
<contactref element="C7" pad="1"/>
<contactref element="L1" pad="2"/>
<contactref element="R6" pad="2"/>
<contactref element="U1" pad="P17"/>
<contactref element="R8" pad="2"/>
<contactref element="J1" pad="3"/>
<contactref element="J1" pad="4"/>
<contactref element="LED13" pad="1"/>
<contactref element="LED1" pad="1"/>
<contactref element="LED5" pad="1"/>
<contactref element="LED9" pad="1"/>
<contactref element="LED14" pad="1"/>
<contactref element="LED2" pad="1"/>
<contactref element="LED6" pad="1"/>
<contactref element="LED10" pad="1"/>
<contactref element="LED3" pad="1"/>
<contactref element="LED7" pad="1"/>
<contactref element="LED11" pad="1"/>
<contactref element="LED4" pad="1"/>
<contactref element="LED8" pad="1"/>
<contactref element="LED12" pad="1"/>
<contactref element="C16" pad="1"/>
<contactref element="C17" pad="1"/>
<contactref element="C12" pad="1"/>
<contactref element="C13" pad="1"/>
<contactref element="C14" pad="1"/>
<contactref element="C15" pad="1"/>
<contactref element="C8" pad="1"/>
<contactref element="C9" pad="1"/>
<contactref element="C10" pad="1"/>
<contactref element="C11" pad="1"/>
<contactref element="SD1" pad="4"/>
<contactref element="JP1" pad="1"/>
<contactref element="J2" pad="1"/>
<contactref element="C24" pad="1"/>
<contactref element="C25" pad="1"/>
<contactref element="C26" pad="1"/>
<contactref element="C27" pad="1"/>
<contactref element="C28" pad="1"/>
<wire x1="119.40768125" y1="72.157765625" x2="120.777" y2="71.247" width="0.508" layer="1"/>
<polygon width="0.3048" layer="1" thermals="no" rank="4">
<vertex x="34.544" y="25.527"/>
<vertex x="34.544" y="28.702"/>
<vertex x="37.719" y="28.702"/>
<vertex x="37.719" y="24.384"/>
<vertex x="35.687" y="24.384"/>
</polygon>
<wire x1="34.378" y1="20.574" x2="35.56" y2="20.574" width="0.3048" layer="1"/>
<via x="35.56" y="20.574" extent="1-16" drill="0.3048"/>
<wire x1="35.56" y1="20.574" x2="38.735" y2="20.574" width="0.3048" layer="16"/>
<wire x1="38.735" y1="20.574" x2="39.116" y2="20.955" width="0.3048" layer="16"/>
<via x="39.116" y="20.955" extent="1-16" drill="0.3048"/>
<wire x1="39.116" y1="20.955" x2="39.116" y2="24.638" width="0.3048" layer="1"/>
<wire x1="39.116" y1="24.638" x2="38.608" y2="25.146" width="0.3048" layer="1"/>
<wire x1="38.608" y1="25.146" x2="36.592" y2="25.146" width="0.3048" layer="1"/>
<wire x1="36.592" y1="25.146" x2="36.576" y2="25.13" width="0.3048" layer="1"/>
<contactref element="C18" pad="1"/>
<wire x1="56.508846875" y1="21.687634375" x2="56.508846875" y2="23.269846875" width="0.3048" layer="1"/>
<wire x1="56.508846875" y1="23.269846875" x2="56.6245" y2="23.3855" width="0.3048" layer="1"/>
<wire x1="56.6245" y1="23.3855" x2="56.896" y2="23.657" width="0.3048" layer="1"/>
<wire x1="86.135234375" y1="57.3556875" x2="84.836" y2="54.483" width="0.3048" layer="1"/>
<wire x1="84.836" y1="54.483" x2="84.861428125" y2="54.72789375" width="0.3048" layer="1"/>
<wire x1="92.231234375" y1="54.8156875" x2="91.127075" y2="52.187765625" width="0.3048" layer="1"/>
<wire x1="98.581234375" y1="52.2756875" x2="97.392721875" y2="49.647640625" width="0.3048" layer="1"/>
<contactref element="C20" pad="1"/>
<wire x1="51.739375" y1="45.459525" x2="51.739375" y2="47.202375" width="0.3048" layer="1"/>
<wire x1="51.739375" y1="47.202375" x2="51.816" y2="47.279" width="0.3048" layer="1"/>
<polygon width="0.3048" layer="1" thermals="no" rank="4">
<vertex x="77.978" y="61.214"/>
<vertex x="93.472" y="55.118"/>
<vertex x="99.06" y="57.404"/>
<vertex x="102.362" y="57.404"/>
<vertex x="102.362" y="54.864"/>
<vertex x="102.616" y="51.308"/>
<vertex x="94.996" y="32.512"/>
<vertex x="68.58" y="43.434"/>
<vertex x="76.454" y="61.722"/>
</polygon>
<polygon width="0.3048" layer="1" thermals="no">
<vertex x="34.798" y="26.416"/>
<vertex x="86.36" y="26.416"/>
<vertex x="93.472" y="33.528"/>
<vertex x="88.646" y="35.56"/>
<vertex x="86.868" y="33.782"/>
<vertex x="49.53" y="33.782"/>
<vertex x="49.53" y="67.31"/>
<vertex x="43.688" y="67.31"/>
<vertex x="43.688" y="33.782"/>
<vertex x="34.798" y="33.782"/>
</polygon>
<wire x1="51.739375" y1="45.459525" x2="49.777525" y2="45.459525" width="0.508" layer="1"/>
<wire x1="49.777525" y1="45.459525" x2="49.53" y2="45.212" width="0.508" layer="1"/>
<wire x1="49.53" y1="45.212" x2="49.53" y2="33.02" width="0.508" layer="1"/>
<wire x1="49.53" y1="33.02" x2="55.88" y2="26.67" width="0.508" layer="1"/>
<wire x1="55.88" y1="26.67" x2="55.88" y2="24.13" width="0.508" layer="1"/>
<wire x1="55.88" y1="24.13" x2="56.6245" y2="23.3855" width="0.508" layer="1"/>
<wire x1="106.969" y1="68.961" x2="107.188" y2="69.18" width="0.3048" layer="1"/>
<wire x1="95.504" y1="85.598" x2="95.504" y2="55.372" width="0.508" layer="16"/>
<via x="105.156" y="67.818" extent="1-16" drill="0.3048"/>
<via x="105.156" y="66.802" extent="1-16" drill="0.3048"/>
<via x="104.394" y="67.31" extent="1-16" drill="0.3048"/>
<polygon width="0.254" layer="1" thermals="no">
<vertex x="108.458" y="69.088"/>
<vertex x="108.458" y="70.612"/>
<vertex x="107.95" y="71.12"/>
<vertex x="107.696" y="71.374"/>
<vertex x="107.442" y="71.374"/>
<vertex x="106.934" y="71.374"/>
<vertex x="104.14" y="68.58"/>
<vertex x="104.14" y="66.294"/>
<vertex x="105.664" y="66.294"/>
<vertex x="105.664" y="68.072"/>
<vertex x="106.172" y="68.58"/>
<vertex x="107.95" y="68.58"/>
</polygon>
<via x="99.568" y="56.134" extent="1-16" drill="0.3048"/>
<via x="100.584" y="56.134" extent="1-16" drill="0.3048"/>
<via x="101.6" y="56.134" extent="1-16" drill="0.3048"/>
<via x="100.076" y="55.372" extent="1-16" drill="0.3048"/>
<via x="101.092" y="55.372" extent="1-16" drill="0.3048"/>
<polygon width="0.254" layer="16" thermals="no">
<vertex x="106.172" y="68.326"/>
<vertex x="106.172" y="58.166"/>
<vertex x="102.87" y="54.864"/>
<vertex x="99.06" y="54.864"/>
<vertex x="99.06" y="57.404"/>
<vertex x="101.092" y="57.404"/>
<vertex x="101.092" y="62.992"/>
<vertex x="104.14" y="68.326"/>
</polygon>
<via x="95.504" y="55.372" extent="1-16" drill="0.3048"/>
<via x="118.364" y="72.39" extent="1-16" drill="0.3048"/>
<wire x1="119.40768125" y1="72.157765625" x2="119.175446875" y2="72.39" width="0.508" layer="1"/>
<wire x1="119.175446875" y1="72.39" x2="118.364" y2="72.39" width="0.508" layer="1"/>
<polygon width="0.254" layer="16" thermals="no" rank="3">
<vertex x="51.054" y="73.406"/>
<vertex x="51.054" y="67.564"/>
<vertex x="49.784" y="66.294"/>
<vertex x="44.45" y="66.294"/>
<vertex x="44.196" y="66.548"/>
<vertex x="44.196" y="67.31"/>
<vertex x="44.704" y="67.818"/>
<vertex x="45.72" y="67.818"/>
<vertex x="47.752" y="69.85"/>
<vertex x="47.752" y="75.438"/>
<vertex x="48.26" y="75.946"/>
<vertex x="58.674" y="75.946"/>
<vertex x="58.674" y="103.616"/>
<vertex x="67.818" y="103.616"/>
<vertex x="67.818" y="100.568"/>
<vertex x="66.802" y="100.568"/>
<vertex x="66.802" y="102.092"/>
<vertex x="60.96" y="102.092"/>
<vertex x="60.96" y="73.406"/>
</polygon>
<via x="48.514" y="75.184" extent="1-16" drill="0.3048"/>
<via x="47.244" y="73.914" extent="1-16" drill="0.3048"/>
<polygon width="0.254" layer="1" thermals="no" rank="5">
<vertex x="50.292" y="75.692"/>
<vertex x="47.244" y="75.692"/>
<vertex x="46.736" y="75.184"/>
<vertex x="46.736" y="73.66"/>
<vertex x="50.292" y="73.66"/>
</polygon>
<via x="44.958" y="66.802" extent="1-16" drill="0.3048"/>
<via x="45.974" y="66.802" extent="1-16" drill="0.3048"/>
<via x="46.99" y="66.802" extent="1-16" drill="0.3048"/>
<via x="48.006" y="66.802" extent="1-16" drill="0.3048"/>
<via x="49.022" y="66.802" extent="1-16" drill="0.3048"/>
<wire x1="67.449" y1="101.33" x2="66.949" y2="101.33" width="0.254" layer="16"/>
<wire x1="116.586" y1="73.406" x2="113.284" y2="73.406" width="0.4572" layer="16"/>
<wire x1="118.364" y1="72.39" x2="116.586" y2="73.406" width="0.4572" layer="16"/>
<wire x1="113.284" y1="73.406" x2="108.204" y2="68.326" width="0.4572" layer="16"/>
<via x="108.204" y="68.326" extent="1-16" drill="0.254"/>
<wire x1="108.204" y1="68.326" x2="107.442" y2="69.088" width="0.254" layer="1"/>
<wire x1="107.442" y1="69.088" x2="107.28" y2="69.088" width="0.254" layer="1"/>
<wire x1="107.28" y1="69.088" x2="107.188" y2="69.18" width="0.254" layer="1"/>
<wire x1="40.894" y1="87.63765" x2="41.07" y2="87.63765" width="0.4064" layer="1"/>
<wire x1="41.07" y1="87.63765" x2="41.07" y2="87.628" width="0.4064" layer="1"/>
<wire x1="48.514" y1="75.184" x2="45.212" y2="75.184" width="1.016" layer="1"/>
<wire x1="45.212" y1="75.184" x2="43.942" y2="76.454" width="1.016" layer="1"/>
<wire x1="43.942" y1="76.454" x2="43.942" y2="88.392" width="1.016" layer="1"/>
<wire x1="43.942" y1="88.392" x2="43.18" y2="89.154" width="1.016" layer="1"/>
<wire x1="43.18" y1="89.154" x2="41.656" y2="89.154" width="1.016" layer="1"/>
<wire x1="41.656" y1="89.154" x2="40.894" y2="88.392" width="1.016" layer="1"/>
<wire x1="40.894" y1="88.392" x2="40.894" y2="87.63765" width="1.016" layer="1"/>
<wire x1="40.894" y1="87.63765" x2="38.04675625" y2="87.63765" width="1.016" layer="1"/>
<wire x1="94.588" y1="89.549" x2="94.588" y2="91.378" width="0.508" layer="1"/>
<wire x1="94.588" y1="91.378" x2="94.823" y2="91.613" width="0.508" layer="1"/>
<wire x1="94.823" y1="91.613" x2="94.904" y2="91.694" width="0.508" layer="1"/>
<wire x1="95.504" y1="85.598" x2="94.742" y2="86.36" width="0.508" layer="16"/>
<wire x1="94.742" y1="86.36" x2="94.742" y2="91.44" width="0.508" layer="16"/>
<wire x1="94.742" y1="91.44" x2="94.488" y2="91.694" width="0.508" layer="16"/>
<wire x1="94.488" y1="91.694" x2="93.726" y2="91.694" width="0.508" layer="16"/>
<via x="93.726" y="91.694" extent="1-16" drill="0.3048"/>
<wire x1="93.726" y1="91.694" x2="94.742" y2="91.694" width="0.508" layer="1"/>
<wire x1="94.742" y1="91.694" x2="94.823" y2="91.613" width="0.508" layer="1"/>
</signal>
<signal name="SW">
<contactref element="IC1" pad="3"/>
<contactref element="L1" pad="1"/>
<polygon width="0.3048" layer="1" thermals="no" rank="2">
<vertex x="33.528" y="24.13"/>
<vertex x="35.306" y="24.13"/>
<vertex x="35.306" y="24.384"/>
<vertex x="34.798" y="24.892"/>
<vertex x="34.544" y="24.892"/>
<vertex x="33.528" y="25.908"/>
<vertex x="33.528" y="28.702"/>
<vertex x="30.988" y="28.702"/>
<vertex x="30.988" y="25.4"/>
<vertex x="31.496" y="24.892"/>
<vertex x="33.274" y="24.892"/>
<vertex x="33.528" y="24.638"/>
</polygon>
</signal>
<signal name="FB">
<contactref element="R6" pad="1"/>
<contactref element="R7" pad="2"/>
<contactref element="IC1" pad="5"/>
<wire x1="33.44" y1="19.05" x2="33.401" y2="19.05" width="0.3048" layer="1"/>
<wire x1="33.401" y1="19.05" x2="32.766" y2="19.685" width="0.3048" layer="1"/>
<wire x1="32.766" y1="19.685" x2="32.766" y2="20.486" width="0.3048" layer="1"/>
<wire x1="32.766" y1="20.486" x2="32.678" y2="20.574" width="0.3048" layer="1"/>
<wire x1="32.678" y1="20.574" x2="32.639" y2="20.574" width="0.3048" layer="1"/>
<wire x1="32.639" y1="20.574" x2="31.75" y2="21.463" width="0.3048" layer="1"/>
<wire x1="31.75" y1="21.463" x2="31.75" y2="22.338" width="0.3048" layer="1"/>
<wire x1="31.75" y1="22.338" x2="31.67" y2="22.418" width="0.3048" layer="1"/>
</signal>
<signal name="N$13">
<contactref element="R8" pad="1"/>
<contactref element="J1" pad="1"/>
<wire x1="50.38" y1="73.914" x2="50.634" y2="73.406" width="0.254" layer="1"/>
<wire x1="50.634" y1="73.406" x2="64.262" y2="73.406" width="0.254" layer="1"/>
<wire x1="64.262" y1="73.406" x2="64.516" y2="73.66" width="0.254" layer="1"/>
<wire x1="64.516" y1="73.66" x2="65.024" y2="73.66" width="0.254" layer="1"/>
<via x="65.024" y="73.66" extent="1-16" drill="0.3048"/>
<wire x1="65.949" y1="101.33" x2="65.949" y2="78.649" width="0.254" layer="16"/>
<wire x1="65.949" y1="78.649" x2="65.024" y2="77.724" width="0.254" layer="16"/>
<wire x1="65.024" y1="77.724" x2="65.024" y2="73.66" width="0.254" layer="16"/>
</signal>
<signal name="P0.14">
<contactref element="U1" pad="P32"/>
<contactref element="J1" pad="6"/>
<wire x1="114.346515625" y1="69.37660625" x2="114.346515625" y2="69.422484375" width="0.254" layer="1"/>
<wire x1="114.346515625" y1="69.422484375" x2="114.046" y2="69.723" width="0.254" layer="1"/>
<wire x1="114.046" y1="69.723" x2="114.046" y2="70.739" width="0.254" layer="1"/>
<wire x1="114.046" y1="70.739" x2="114.173" y2="70.866" width="0.254" layer="1"/>
<via x="114.173" y="70.866" extent="1-16" drill="0.254"/>
<wire x1="114.173" y1="70.866" x2="114.173" y2="69.596" width="0.254" layer="16"/>
<wire x1="110.744" y1="63.246" x2="110.49" y2="62.992" width="0.254" layer="16"/>
<via x="110.49" y="62.992" extent="1-16" drill="0.3048"/>
<wire x1="110.49" y1="62.992" x2="110.236" y2="63.246" width="0.254" layer="1"/>
<wire x1="110.236" y1="63.246" x2="89.408" y2="63.246" width="0.254" layer="1"/>
<wire x1="89.408" y1="63.246" x2="89.154" y2="63.5" width="0.254" layer="1"/>
<via x="89.154" y="63.5" extent="1-16" drill="0.3048"/>
<wire x1="89.154" y1="63.5" x2="89.154" y2="67.056" width="0.254" layer="16"/>
<via x="89.154" y="67.056" extent="1-16" drill="0.3048"/>
<wire x1="89.154" y1="67.056" x2="88.9" y2="67.31" width="0.254" layer="1"/>
<wire x1="88.9" y1="67.31" x2="85.852" y2="67.31" width="0.254" layer="1"/>
<wire x1="85.852" y1="67.31" x2="84.836" y2="68.326" width="0.254" layer="1"/>
<wire x1="84.836" y1="68.326" x2="68.58" y2="68.326" width="0.254" layer="1"/>
<wire x1="114.173" y1="69.596" x2="114.808" y2="68.961" width="0.254" layer="16"/>
<wire x1="114.808" y1="68.961" x2="114.808" y2="67.818" width="0.254" layer="16"/>
<wire x1="114.808" y1="67.818" x2="114.046" y2="67.056" width="0.254" layer="16"/>
<wire x1="114.046" y1="67.056" x2="114.046" y2="66.04" width="0.254" layer="16"/>
<wire x1="114.046" y1="66.04" x2="113.792" y2="65.786" width="0.254" layer="16"/>
<wire x1="113.792" y1="65.786" x2="113.792" y2="63.754" width="0.254" layer="16"/>
<wire x1="113.792" y1="63.754" x2="113.284" y2="63.246" width="0.254" layer="16"/>
<wire x1="113.284" y1="63.246" x2="110.744" y2="63.246" width="0.254" layer="16"/>
<wire x1="68.58" y1="68.326" x2="68.326" y2="68.072" width="0.254" layer="1"/>
<via x="68.326" y="68.072" extent="1-16" drill="0.3048"/>
<wire x1="68.326" y1="68.072" x2="67.564" y2="68.834" width="0.254" layer="16"/>
<wire x1="68.449" y1="101.33" x2="68.449" y2="78.863" width="0.254" layer="16"/>
<wire x1="68.449" y1="78.863" x2="67.564" y2="77.978" width="0.254" layer="16"/>
<wire x1="67.564" y1="77.978" x2="67.564" y2="68.834" width="0.254" layer="16"/>
</signal>
<signal name="P0.11">
<contactref element="U1" pad="P27"/>
<contactref element="J1" pad="9"/>
<wire x1="112.424053125" y1="68.53005625" x2="112.522" y2="67.564" width="0.254" layer="1"/>
<wire x1="112.522" y1="67.564" x2="112.522" y2="64.77" width="0.254" layer="1"/>
<wire x1="112.522" y1="64.77" x2="112.776" y2="64.516" width="0.254" layer="1"/>
<via x="112.776" y="64.516" extent="1-16" drill="0.3048"/>
<wire x1="112.776" y1="64.516" x2="108.712" y2="64.516" width="0.254" layer="16"/>
<wire x1="108.712" y1="64.516" x2="108.204" y2="65.024" width="0.254" layer="16"/>
<via x="108.204" y="65.024" extent="1-16" drill="0.3048"/>
<wire x1="108.204" y1="65.024" x2="107.95" y2="64.77" width="0.254" layer="1"/>
<wire x1="107.95" y1="64.77" x2="99.06" y2="64.77" width="0.254" layer="1"/>
<wire x1="99.06" y1="64.77" x2="98.298" y2="65.532" width="0.254" layer="1"/>
<wire x1="98.298" y1="65.532" x2="92.964" y2="65.532" width="0.254" layer="1"/>
<wire x1="92.964" y1="65.532" x2="92.456" y2="65.024" width="0.254" layer="1"/>
<wire x1="92.456" y1="65.024" x2="86.106" y2="65.024" width="0.254" layer="1"/>
<wire x1="69.949" y1="101.33" x2="69.949" y2="76.553" width="0.254" layer="16"/>
<wire x1="69.949" y1="76.553" x2="69.596" y2="76.2" width="0.254" layer="16"/>
<via x="69.596" y="76.2" extent="1-16" drill="0.3048"/>
<wire x1="69.596" y1="76.2" x2="86.106" y2="76.2" width="0.254" layer="1"/>
<via x="86.106" y="76.2" extent="1-16" drill="0.3048"/>
<wire x1="86.106" y1="76.2" x2="86.106" y2="65.024" width="0.254" layer="16"/>
<via x="86.106" y="65.024" extent="1-16" drill="0.3048"/>
</signal>
<signal name="P0.12">
<contactref element="U1" pad="P28"/>
<contactref element="J1" pad="8"/>
<wire x1="113.3322" y1="69.0665" x2="113.3322" y2="71.6762" width="0.254" layer="1"/>
<wire x1="113.3322" y1="71.6762" x2="113.538" y2="71.882" width="0.254" layer="1"/>
<via x="113.538" y="71.882" extent="1-16" drill="0.254"/>
<wire x1="113.538" y1="71.882" x2="113.03" y2="71.374" width="0.254" layer="16"/>
<via x="106.172" y="67.818" extent="1-16" drill="0.3048"/>
<wire x1="89.916" y1="66.548" x2="89.408" y2="66.04" width="0.254" layer="1"/>
<wire x1="89.916" y1="66.548" x2="98.806" y2="66.548" width="0.254" layer="1"/>
<wire x1="98.806" y1="66.548" x2="99.568" y2="65.786" width="0.254" layer="1"/>
<wire x1="99.568" y1="65.786" x2="105.664" y2="65.786" width="0.254" layer="1"/>
<wire x1="105.664" y1="65.786" x2="106.172" y2="66.294" width="0.254" layer="1"/>
<wire x1="106.172" y1="66.294" x2="106.172" y2="67.818" width="0.254" layer="1"/>
<wire x1="113.03" y1="71.374" x2="112.268" y2="71.374" width="0.254" layer="16"/>
<wire x1="112.268" y1="71.374" x2="111.76" y2="70.866" width="0.254" layer="16"/>
<wire x1="111.76" y1="70.866" x2="111.76" y2="68.58" width="0.254" layer="16"/>
<wire x1="111.76" y1="68.58" x2="110.49" y2="67.31" width="0.254" layer="16"/>
<wire x1="106.172" y1="67.818" x2="107.442" y2="67.818" width="0.254" layer="16"/>
<wire x1="107.442" y1="67.818" x2="107.95" y2="67.31" width="0.254" layer="16"/>
<wire x1="107.95" y1="67.31" x2="110.49" y2="67.31" width="0.254" layer="16"/>
<wire x1="89.408" y1="66.04" x2="88.138" y2="66.04" width="0.254" layer="1"/>
<wire x1="88.138" y1="66.04" x2="87.63" y2="66.548" width="0.254" layer="1"/>
<via x="87.63" y="66.548" extent="1-16" drill="0.3048"/>
<wire x1="87.63" y1="66.548" x2="87.63" y2="76.2" width="0.254" layer="16"/>
<via x="86.106" y="77.724" extent="1-16" drill="0.3048"/>
<wire x1="86.106" y1="77.724" x2="69.088" y2="77.724" width="0.254" layer="1"/>
<via x="69.088" y="77.724" extent="1-16" drill="0.3048"/>
<wire x1="69.088" y1="77.724" x2="69.449" y2="78.085" width="0.254" layer="16"/>
<wire x1="69.449" y1="78.085" x2="69.449" y2="101.33" width="0.254" layer="16"/>
<wire x1="87.63" y1="76.2" x2="86.106" y2="77.724" width="0.254" layer="16"/>
</signal>
<signal name="P0.13">
<contactref element="U1" pad="P31"/>
<contactref element="J1" pad="7"/>
<wire x1="111.252" y1="62.738" x2="110.49" y2="61.976" width="0.254" layer="16"/>
<via x="110.49" y="61.976" extent="1-16" drill="0.3048"/>
<wire x1="110.49" y1="61.976" x2="110.236" y2="61.976" width="0.254" layer="1"/>
<wire x1="110.236" y1="61.976" x2="109.474" y2="62.738" width="0.254" layer="1"/>
<wire x1="109.474" y1="62.738" x2="88.646" y2="62.738" width="0.254" layer="1"/>
<wire x1="88.646" y1="62.738" x2="88.392" y2="62.484" width="0.254" layer="1"/>
<via x="88.392" y="62.484" extent="1-16" drill="0.3048"/>
<wire x1="88.392" y1="62.484" x2="88.392" y2="74.93" width="0.254" layer="16"/>
<via x="88.392" y="74.93" extent="1-16" drill="0.3048"/>
<wire x1="88.392" y1="74.93" x2="68.326" y2="74.93" width="0.254" layer="1"/>
<wire x1="114.3" y1="65.024" x2="114.3" y2="63.246" width="0.254" layer="16"/>
<wire x1="114.3" y1="63.246" x2="113.792" y2="62.738" width="0.254" layer="16"/>
<wire x1="113.792" y1="62.738" x2="111.252" y2="62.738" width="0.254" layer="16"/>
<wire x1="114.882959375" y1="68.468459375" x2="115.173540625" y2="68.468459375" width="0.254" layer="1"/>
<wire x1="115.173540625" y1="68.468459375" x2="115.316" y2="68.326" width="0.254" layer="1"/>
<wire x1="115.316" y1="68.326" x2="115.316" y2="65.786" width="0.254" layer="1"/>
<wire x1="115.316" y1="65.786" x2="115.062" y2="65.532" width="0.254" layer="1"/>
<via x="115.062" y="65.532" extent="1-16" drill="0.3048"/>
<wire x1="115.062" y1="65.532" x2="114.808" y2="65.532" width="0.254" layer="16"/>
<wire x1="114.808" y1="65.532" x2="114.3" y2="65.024" width="0.254" layer="16"/>
<wire x1="68.949" y1="101.33" x2="68.949" y2="78.601" width="0.254" layer="16"/>
<wire x1="68.949" y1="78.601" x2="68.326" y2="77.978" width="0.254" layer="16"/>
<wire x1="68.326" y1="77.978" x2="68.326" y2="74.93" width="0.254" layer="16"/>
<via x="68.326" y="74.93" extent="1-16" drill="0.3048"/>
</signal>
<signal name="P0.08">
<contactref element="U1" pad="P24"/>
<contactref element="J1" pad="10"/>
<wire x1="111.389715625" y1="70.0993375" x2="111.389715625" y2="70.622715625" width="0.254" layer="1"/>
<wire x1="111.389715625" y1="70.622715625" x2="112.395" y2="71.628" width="0.254" layer="1"/>
<wire x1="112.395" y1="71.628" x2="112.395" y2="72.517" width="0.254" layer="1"/>
<via x="113.284" y="75.057" extent="1-16" drill="0.254"/>
<wire x1="113.284" y1="75.057" x2="113.03" y2="75.311" width="0.254" layer="16"/>
<via x="104.14" y="77.216" extent="1-16" drill="0.3048"/>
<wire x1="104.14" y1="77.216" x2="104.14" y2="76.962" width="0.254" layer="1"/>
<wire x1="104.14" y1="76.962" x2="101.346" y2="74.168" width="0.254" layer="1"/>
<wire x1="101.346" y1="74.168" x2="95.758" y2="74.168" width="0.254" layer="1"/>
<wire x1="95.758" y1="74.168" x2="94.488" y2="72.898" width="0.254" layer="1"/>
<wire x1="94.488" y1="72.898" x2="71.374" y2="72.898" width="0.254" layer="1"/>
<wire x1="71.374" y1="72.898" x2="70.866" y2="73.406" width="0.254" layer="1"/>
<wire x1="70.866" y1="73.406" x2="70.612" y2="73.406" width="0.254" layer="1"/>
<via x="70.612" y="73.406" extent="1-16" drill="0.3048"/>
<wire x1="112.395" y1="72.517" x2="113.03" y2="73.152" width="0.254" layer="1"/>
<wire x1="113.03" y1="73.152" x2="113.03" y2="74.803" width="0.254" layer="1"/>
<wire x1="113.03" y1="74.803" x2="113.284" y2="75.057" width="0.254" layer="1"/>
<wire x1="70.449" y1="101.33" x2="70.449" y2="73.569" width="0.254" layer="16"/>
<wire x1="70.449" y1="73.569" x2="70.612" y2="73.406" width="0.254" layer="16"/>
<wire x1="113.03" y1="75.311" x2="113.03" y2="75.438" width="0.254" layer="16"/>
<wire x1="113.03" y1="75.438" x2="111.887" y2="76.581" width="0.254" layer="16"/>
<wire x1="104.902" y1="76.454" x2="104.14" y2="77.216" width="0.254" layer="16"/>
<wire x1="104.902" y1="76.454" x2="108.839" y2="76.454" width="0.254" layer="16"/>
<wire x1="108.839" y1="76.454" x2="108.966" y2="76.581" width="0.254" layer="16"/>
<wire x1="108.966" y1="76.581" x2="111.887" y2="76.581" width="0.254" layer="16"/>
</signal>
<signal name="N$24">
<contactref element="LED2" pad="2"/>
<contactref element="LED3" pad="4"/>
<wire x1="95.670275" y1="50.35219375" x2="95.758" y2="51.816" width="0.3048" layer="1"/>
<via x="95.758" y="51.816" extent="1-16" drill="0.3048"/>
<wire x1="95.758" y1="51.816" x2="86.741" y2="52.832" width="0.3048" layer="16"/>
<wire x1="83.6626875" y1="51.76090625" x2="84.836" y2="52.832" width="0.3048" layer="1"/>
<via x="84.836" y="52.832" extent="1-16" drill="0.3048"/>
<wire x1="84.836" y1="52.832" x2="86.741" y2="52.832" width="0.3048" layer="16"/>
</signal>
<signal name="N$15">
<contactref element="LED5" pad="2"/>
<contactref element="LED6" pad="4"/>
<wire x1="75.364940625" y1="49.220778125" x2="76.454" y2="50.292" width="0.3048" layer="1"/>
<via x="76.454" y="50.292" extent="1-16" drill="0.3048"/>
<wire x1="76.454" y1="50.292" x2="85.598" y2="48.514" width="0.3048" layer="16"/>
<via x="85.598" y="48.514" extent="1-16" drill="0.3048"/>
<wire x1="85.598" y1="48.514" x2="87.372528125" y2="47.81206875" width="0.3048" layer="1"/>
</signal>
<signal name="N$16">
<contactref element="LED9" pad="2"/>
<contactref element="LED10" pad="4"/>
<wire x1="73.3328375" y1="44.140525" x2="74.422" y2="45.212" width="0.3048" layer="1"/>
<via x="74.422" y="45.212" extent="1-16" drill="0.3048"/>
<wire x1="74.422" y1="45.212" x2="83.82" y2="43.434" width="0.3048" layer="16"/>
<via x="83.82" y="43.434" extent="1-16" drill="0.3048"/>
<wire x1="83.82" y1="43.434" x2="85.340425" y2="42.7318125" width="0.3048" layer="1"/>
</signal>
<signal name="N$17">
<contactref element="LED13" pad="2"/>
<contactref element="LED14" pad="4"/>
<wire x1="51.739375" y1="42.259525" x2="51.739375" y2="41.097625" width="0.3048" layer="1"/>
<wire x1="51.739375" y1="41.097625" x2="52.451" y2="40.386" width="0.3048" layer="1"/>
<wire x1="52.451" y1="40.386" x2="58.42" y2="40.386" width="0.3048" layer="1"/>
<via x="58.42" y="40.386" extent="1-16" drill="0.3048"/>
<wire x1="58.42" y1="40.386" x2="58.42" y2="26.035" width="0.3048" layer="16"/>
<wire x1="58.42" y1="26.035" x2="58.801" y2="25.654" width="0.3048" layer="16"/>
<wire x1="58.801" y1="25.654" x2="58.801" y2="20.32" width="0.3048" layer="16"/>
<via x="58.801" y="20.32" extent="1-16" drill="0.3048"/>
<wire x1="58.801" y1="20.32" x2="61.202015625" y2="20.32" width="0.3048" layer="1"/>
<wire x1="61.202015625" y1="20.32" x2="61.219028125" y2="20.3370125" width="0.3048" layer="1"/>
</signal>
<signal name="N$18">
<contactref element="LED1" pad="2"/>
<contactref element="LED2" pad="4"/>
<wire x1="77.397040625" y1="54.30103125" x2="78.867" y2="53.721" width="0.3048" layer="1"/>
<via x="78.867" y="53.721" extent="1-16" drill="0.3048"/>
<wire x1="78.867" y1="53.721" x2="79.375" y2="53.721" width="0.3048" layer="16"/>
<wire x1="79.375" y1="53.721" x2="81.534" y2="55.88" width="0.3048" layer="16"/>
<wire x1="89.404628125" y1="52.892321875" x2="89.404628125" y2="54.352628125" width="0.3048" layer="1"/>
<wire x1="89.404628125" y1="54.352628125" x2="89.408" y2="54.356" width="0.3048" layer="1"/>
<via x="89.408" y="54.356" extent="1-16" drill="0.3048"/>
<wire x1="89.408" y1="54.356" x2="81.534" y2="55.88" width="0.3048" layer="16"/>
</signal>
<signal name="N$19">
<contactref element="LED6" pad="2"/>
<contactref element="LED7" pad="4"/>
<wire x1="81.6305875" y1="46.680653125" x2="82.296" y2="47.752" width="0.3048" layer="1"/>
<via x="82.296" y="47.752" extent="1-16" drill="0.3048"/>
<wire x1="82.296" y1="47.752" x2="92.202" y2="45.974" width="0.3048" layer="16"/>
<via x="92.202" y="45.974" extent="1-16" drill="0.3048"/>
<wire x1="92.202" y1="45.974" x2="93.638175" y2="45.271940625" width="0.3048" layer="1"/>
</signal>
<signal name="N$20">
<contactref element="LED10" pad="2"/>
<contactref element="LED11" pad="4"/>
<wire x1="79.598484375" y1="41.600396875" x2="80.518" y2="42.672" width="0.3048" layer="1"/>
<via x="80.518" y="42.672" extent="1-16" drill="0.3048"/>
<wire x1="80.518" y1="42.672" x2="90.17" y2="40.894" width="0.3048" layer="16"/>
<via x="90.17" y="40.894" extent="1-16" drill="0.3048"/>
<wire x1="90.17" y1="40.894" x2="91.606071875" y2="40.1916875" width="0.3048" layer="1"/>
</signal>
<signal name="N$22">
<contactref element="LED3" pad="2"/>
<contactref element="LED4" pad="4"/>
<wire x1="93.472" y1="49.784" x2="99.06" y2="47.371" width="0.3048" layer="16"/>
<via x="99.06" y="47.371" extent="1-16" drill="0.3048"/>
<wire x1="99.06" y1="47.371" x2="101.935921875" y2="47.81206875" width="0.3048" layer="1"/>
<wire x1="89.928334375" y1="49.220778125" x2="90.678" y2="50.546" width="0.3048" layer="1"/>
<via x="90.678" y="50.546" extent="1-16" drill="0.3048"/>
<wire x1="90.678" y1="50.546" x2="93.472" y2="49.784" width="0.3048" layer="16"/>
</signal>
<signal name="N$23">
<contactref element="LED7" pad="2"/>
<contactref element="LED8" pad="4"/>
<wire x1="87.896234375" y1="44.140525" x2="88.9" y2="45.212" width="0.3048" layer="1"/>
<via x="88.9" y="45.212" extent="1-16" drill="0.3048"/>
<wire x1="88.9" y1="45.212" x2="98.552" y2="43.434" width="0.3048" layer="16"/>
<via x="98.552" y="43.434" extent="1-16" drill="0.3048"/>
<wire x1="98.552" y1="43.434" x2="99.903821875" y2="42.7318125" width="0.3048" layer="1"/>
</signal>
<signal name="N$25">
<contactref element="LED11" pad="2"/>
<contactref element="LED12" pad="4"/>
<wire x1="85.86413125" y1="39.060271875" x2="86.36" y2="40.132" width="0.3048" layer="1"/>
<via x="86.36" y="40.132" extent="1-16" drill="0.3048"/>
<wire x1="86.36" y1="40.132" x2="96.52" y2="38.354" width="0.3048" layer="16"/>
<via x="96.52" y="38.354" extent="1-16" drill="0.3048"/>
<wire x1="96.52" y1="38.354" x2="97.87171875" y2="37.651559375" width="0.3048" layer="1"/>
</signal>
<signal name="N$27">
<contactref element="LED4" pad="2"/>
<contactref element="LED5" pad="4"/>
<wire x1="96.19398125" y1="46.680653125" x2="97.536" y2="46.101" width="0.3048" layer="1"/>
<via x="97.536" y="46.101" extent="1-16" drill="0.3048"/>
<wire x1="97.536" y1="46.101" x2="96.393" y2="45.593" width="0.3048" layer="16"/>
<wire x1="96.393" y1="45.593" x2="81.534" y2="51.435" width="0.3048" layer="16"/>
<via x="81.534" y="51.435" extent="1-16" drill="0.3048"/>
<wire x1="81.534" y1="51.435" x2="81.10688125" y2="50.35219375" width="0.3048" layer="1"/>
</signal>
<signal name="N$28">
<contactref element="LED8" pad="2"/>
<contactref element="LED9" pad="4"/>
<wire x1="94.16188125" y1="41.600396875" x2="95.631" y2="41.021" width="0.3048" layer="1"/>
<via x="95.631" y="41.021" extent="1-16" drill="0.3048"/>
<wire x1="95.631" y1="41.021" x2="90.17" y2="43.307" width="0.3048" layer="16"/>
<wire x1="90.17" y1="43.307" x2="89.027" y2="42.418" width="0.3048" layer="16"/>
<wire x1="89.027" y1="42.418" x2="79.629" y2="46.228" width="0.3048" layer="16"/>
<via x="79.629" y="46.228" extent="1-16" drill="0.3048"/>
<wire x1="79.629" y1="46.228" x2="79.074778125" y2="45.271940625" width="0.3048" layer="1"/>
</signal>
<signal name="N$29">
<contactref element="LED13" pad="4"/>
<contactref element="LED12" pad="2"/>
<via x="59.309" y="34.417" extent="1-16" drill="0.3048"/>
<wire x1="59.309" y1="34.417" x2="59.309" y2="45.466" width="0.3048" layer="16"/>
<via x="59.309" y="45.466" extent="1-16" drill="0.3048"/>
<wire x1="59.309" y1="45.466" x2="56.64585" y2="45.466" width="0.3048" layer="1"/>
<wire x1="56.64585" y1="45.466" x2="56.639375" y2="45.459525" width="0.3048" layer="1"/>
<wire x1="59.309" y1="34.417" x2="84.709" y2="34.417" width="0.3048" layer="1"/>
<wire x1="84.709" y1="34.417" x2="84.836" y2="34.544" width="0.3048" layer="1"/>
<via x="84.836" y="34.544" extent="1-16" drill="0.3048"/>
<wire x1="84.836" y1="34.544" x2="85.09" y2="34.29" width="0.3048" layer="16"/>
<wire x1="85.09" y1="34.29" x2="90.678" y2="34.29" width="0.3048" layer="16"/>
<wire x1="90.678" y1="34.29" x2="91.694" y2="35.306" width="0.3048" layer="16"/>
<via x="91.694" y="35.306" extent="1-16" drill="0.3048"/>
<wire x1="91.694" y1="35.306" x2="91.694" y2="36.084365625" width="0.3048" layer="1"/>
<wire x1="91.694" y1="36.084365625" x2="92.129778125" y2="36.52014375" width="0.3048" layer="1"/>
</signal>
<signal name="N$30">
<contactref element="R9" pad="1"/>
<contactref element="LED1" pad="4"/>
<wire x1="83.312" y1="58.84" x2="83.185" y2="55.372" width="0.3048" layer="1"/>
<wire x1="83.185" y1="55.372" x2="83.13898125" y2="55.432446875" width="0.3048" layer="1"/>
</signal>
<signal name="P0.02">
<contactref element="R9" pad="2"/>
<contactref element="U1" pad="P15"/>
<wire x1="86.487" y1="61.595" x2="83.82" y2="61.595" width="0.254" layer="1"/>
<wire x1="83.82" y1="61.595" x2="83.312" y2="61.087" width="0.254" layer="1"/>
<wire x1="83.312" y1="61.087" x2="83.312" y2="60.54" width="0.254" layer="1"/>
<via x="86.868" y="68.072" extent="1-16" drill="0.3048"/>
<wire x1="99.314" y1="68.072" x2="86.868" y2="68.072" width="0.254" layer="1"/>
<wire x1="86.868" y1="68.072" x2="86.868" y2="61.976" width="0.254" layer="16"/>
<wire x1="86.868" y1="61.976" x2="86.487" y2="61.595" width="0.254" layer="16"/>
<via x="86.487" y="61.595" extent="1-16" drill="0.3048"/>
<wire x1="104.648" y1="73.406" x2="99.314" y2="68.072" width="0.254" layer="1"/>
<wire x1="107.11301875" y1="72.599809375" x2="107.11301875" y2="72.71898125" width="0.254" layer="1"/>
<wire x1="107.11301875" y1="72.71898125" x2="106.426" y2="73.406" width="0.254" layer="1"/>
<wire x1="106.426" y1="73.406" x2="104.648" y2="73.406" width="0.254" layer="1"/>
</signal>
<signal name="TOOTH1">
<polygon width="0.254" layer="1">
<vertex x="49.2784625" y="19.812990625"/>
<vertex x="49.2784625" y="20.49035625"/>
<vertex x="49.617146875" y="21.337065625"/>
<vertex x="50.294515625" y="23.199828125"/>
<vertex x="50.633196875" y="24.046534375"/>
<vertex x="50.97188125" y="24.5545625"/>
<vertex x="51.310565625" y="24.723903125"/>
<vertex x="51.818590625" y="24.723903125"/>
<vertex x="53.512009375" y="24.215878125"/>
<vertex x="54.528059375" y="23.87719375"/>
<vertex x="55.036084375" y="23.538509375"/>
<vertex x="55.544109375" y="22.35311875"/>
<vertex x="55.205428125" y="21.167725"/>
<vertex x="54.86674375" y="20.321015625"/>
<vertex x="54.6974" y="19.98233125"/>
<vertex x="54.189375" y="19.98233125"/>
<vertex x="53.512009375" y="19.812990625"/>
<vertex x="53.173325" y="19.64365"/>
<vertex x="52.6653" y="19.304965625"/>
<vertex x="52.326615625" y="18.96628125"/>
<vertex x="51.98793125" y="18.796940625"/>
<vertex x="51.33725" y="18.832940625"/>
<vertex x="50.97188125" y="18.96628125"/>
<vertex x="50.46385625" y="19.135621875"/>
<vertex x="49.44780625" y="19.64365"/>
</polygon>
</signal>
<signal name="TOOTH2">
<polygon width="0.254" layer="1">
<vertex x="61.471071875" y="16.93418125"/>
<vertex x="61.640415625" y="17.7808875"/>
<vertex x="62.31778125" y="19.64365"/>
<vertex x="62.656465625" y="20.49035625"/>
<vertex x="62.82580625" y="20.829040625"/>
<vertex x="63.056490625" y="21.046384375"/>
<vertex x="63.467175" y="21.154384375"/>
<vertex x="64.397884375" y="20.961040625"/>
<vertex x="66.139303125" y="20.477015625"/>
<vertex x="67.4820375" y="20.10233125"/>
<vertex x="68.3380625" y="19.82365"/>
<vertex x="68.460746875" y="19.472965625"/>
<vertex x="68.244746875" y="18.627596875"/>
<vertex x="68.111403125" y="18.131571875"/>
<vertex x="68.0020625" y="17.719546875"/>
<vertex x="67.9060625" y="17.2728625"/>
<vertex x="67.73671875" y="16.7648375"/>
<vertex x="67.567378125" y="16.2568125"/>
<vertex x="67.5300375" y="16.219471875"/>
<vertex x="65.77661875" y="16.291471875"/>
<vertex x="64.913884375" y="16.3168125"/>
<vertex x="63.69115" y="16.390153125"/>
<vertex x="62.0511" y="16.522153125"/>
<vertex x="61.688415625" y="16.583496875"/>
<vertex x="61.471071875" y="16.7648375"/>
</polygon>
</signal>
<signal name="P0.19">
<contactref element="U1" pad="P37"/>
<wire x1="116.4322125" y1="71.3821875" x2="116.4322125" y2="71.2737875" width="0.254" layer="1"/>
<via x="110.49" y="60.706" extent="1-16" drill="0.3048"/>
<wire x1="110.49" y1="60.706" x2="115.824" y2="60.706" width="0.254" layer="16"/>
<via x="115.824" y="60.706" extent="1-16" drill="0.3048"/>
<wire x1="116.332" y1="69.596" x2="116.332" y2="69.088" width="0.254" layer="1"/>
<wire x1="116.332" y1="69.088" x2="115.824" y2="68.58" width="0.254" layer="1"/>
<wire x1="115.824" y1="68.58" x2="115.824" y2="66.421" width="0.254" layer="1"/>
<wire x1="115.824" y1="66.421" x2="117.602" y2="64.643" width="0.254" layer="1"/>
<wire x1="116.332" y1="69.596" x2="116.586" y2="69.85" width="0.254" layer="1"/>
<wire x1="116.586" y1="69.85" x2="116.586" y2="71.12" width="0.254" layer="1"/>
<wire x1="116.586" y1="71.12" x2="116.4322125" y2="71.2737875" width="0.254" layer="1"/>
<wire x1="117.602" y1="64.643" x2="117.602" y2="62.484" width="0.254" layer="1"/>
<wire x1="117.602" y1="62.484" x2="115.824" y2="60.706" width="0.254" layer="1"/>
<contactref element="R10" pad="2"/>
<wire x1="83.81" y1="95.514" x2="50.878" y2="95.514" width="0.254" layer="1"/>
<wire x1="50.878" y1="95.514" x2="48.856" y2="97.79" width="0.254" layer="1"/>
<wire x1="110.49" y1="60.706" x2="92.964" y2="60.706" width="0.254" layer="1"/>
<via x="92.964" y="60.706" extent="1-16" drill="0.3048"/>
<wire x1="87.122" y1="92.202" x2="83.81" y2="95.514" width="0.254" layer="1"/>
<wire x1="92.964" y1="60.706" x2="92.964" y2="90.932" width="0.254" layer="16"/>
<wire x1="92.964" y1="90.932" x2="91.694" y2="92.202" width="0.254" layer="16"/>
<via x="91.694" y="92.202" extent="1-16" drill="0.3048"/>
<wire x1="91.694" y1="92.202" x2="87.122" y2="92.202" width="0.254" layer="1"/>
</signal>
<signal name="ANT">
<wire x1="104.4702" y1="46.6852" x2="129.4638" y2="46.6852" width="0.5334" layer="1"/>
<wire x1="129.4638" y1="46.6852" x2="129.4638" y2="22.733" width="0.5334" layer="1"/>
<wire x1="129.4638" y1="22.733" x2="104.4702" y2="22.733" width="0.5334" layer="1"/>
<wire x1="104.4702" y1="22.733" x2="104.4702" y2="45.6438" width="0.5334" layer="1"/>
<wire x1="104.4702" y1="45.6438" x2="128.4224" y2="45.6438" width="0.5334" layer="1"/>
<wire x1="128.4224" y1="45.6438" x2="128.4224" y2="23.7744" width="0.5334" layer="1"/>
<wire x1="128.4224" y1="23.7744" x2="105.5116" y2="23.7744" width="0.5334" layer="1"/>
<wire x1="105.5116" y1="23.7744" x2="105.5116" y2="44.6024" width="0.5334" layer="1"/>
<wire x1="105.5116" y1="44.6024" x2="127.381" y2="44.6024" width="0.5334" layer="1"/>
<wire x1="127.381" y1="44.6024" x2="127.381" y2="24.8158" width="0.5334" layer="1"/>
<wire x1="127.381" y1="24.8158" x2="106.553" y2="24.8158" width="0.5334" layer="1"/>
<wire x1="106.553" y1="24.8158" x2="106.553" y2="43.561" width="0.5334" layer="1"/>
<wire x1="106.553" y1="43.561" x2="126.3396" y2="43.561" width="0.5334" layer="1"/>
<wire x1="126.3396" y1="43.561" x2="126.3396" y2="25.8572" width="0.5334" layer="1"/>
<wire x1="126.3396" y1="25.8572" x2="107.5944" y2="25.8572" width="0.5334" layer="1"/>
<wire x1="107.5944" y1="25.8572" x2="107.5944" y2="42.5196" width="0.5334" layer="1"/>
<wire x1="107.5944" y1="42.5196" x2="125.2982" y2="42.5196" width="0.5334" layer="1"/>
<wire x1="125.2982" y1="42.5196" x2="125.2982" y2="26.8986" width="0.5334" layer="1"/>
<wire x1="125.2982" y1="26.8986" x2="108.6358" y2="26.8986" width="0.5334" layer="1"/>
<wire x1="108.6358" y1="26.8986" x2="108.6358" y2="41.4782" width="0.5334" layer="1"/>
<contactref element="U1" pad="P26"/>
<contactref element="U1" pad="P25"/>
<contactref element="C23" pad="1"/>
<contactref element="C19" pad="1"/>
<wire x1="104.4702" y1="46.6852" x2="104.4702" y2="50.2552" width="0.254" layer="1"/>
<wire x1="104.4702" y1="50.2552" x2="104.648" y2="50.433" width="0.254" layer="1"/>
<via x="108.6358" y="41.4782" extent="1-16" drill="0.4064"/>
<wire x1="108.6358" y1="41.4782" x2="108.6358" y2="48.1838" width="0.254" layer="16"/>
<wire x1="108.6358" y1="48.1838" x2="108.712" y2="48.26" width="0.254" layer="16"/>
<via x="108.712" y="48.26" extent="1-16" drill="0.4064"/>
<wire x1="112.36095625" y1="69.58291875" x2="112.522" y2="69.7439625" width="0.254" layer="1"/>
<wire x1="112.522" y1="69.7439625" x2="112.522" y2="70.612" width="0.254" layer="1"/>
<via x="112.522" y="70.612" extent="1-16" drill="0.254"/>
<wire x1="111.252" y1="54.356" x2="110.998" y2="54.102" width="0.254" layer="1"/>
<wire x1="110.998" y1="54.102" x2="106.426" y2="54.102" width="0.254" layer="1"/>
<wire x1="106.426" y1="54.102" x2="105.918" y2="53.594" width="0.254" layer="1"/>
<wire x1="105.918" y1="53.594" x2="105.918" y2="51.054" width="0.254" layer="1"/>
<wire x1="105.918" y1="51.054" x2="105.41" y2="50.546" width="0.254" layer="1"/>
<wire x1="105.41" y1="50.546" x2="104.761" y2="50.546" width="0.254" layer="1"/>
<wire x1="104.761" y1="50.546" x2="104.648" y2="50.433" width="0.254" layer="1"/>
<wire x1="112.522" y1="70.612" x2="112.522" y2="66.294" width="0.254" layer="16"/>
<wire x1="111.76" y1="65.532" x2="111.76" y2="54.102" width="0.254" layer="1"/>
<wire x1="111.76" y1="54.102" x2="111.252" y2="53.594" width="0.254" layer="1"/>
<wire x1="111.252" y1="53.594" x2="106.68" y2="53.594" width="0.254" layer="1"/>
<wire x1="106.68" y1="53.594" x2="106.426" y2="53.34" width="0.254" layer="1"/>
<wire x1="106.426" y1="53.34" x2="106.426" y2="51.054" width="0.254" layer="1"/>
<wire x1="106.426" y1="51.054" x2="106.934" y2="50.546" width="0.254" layer="1"/>
<wire x1="106.934" y1="50.546" x2="107.583" y2="50.546" width="0.254" layer="1"/>
<wire x1="107.583" y1="50.546" x2="107.696" y2="50.433" width="0.254" layer="1"/>
<wire x1="108.712" y1="48.26" x2="108.712" y2="48.514" width="0.254" layer="1"/>
<wire x1="108.712" y1="48.514" x2="107.696" y2="49.53" width="0.254" layer="1"/>
<wire x1="107.696" y1="49.53" x2="107.696" y2="50.433" width="0.254" layer="1"/>
<wire x1="112.522" y1="66.294" x2="111.76" y2="65.532" width="0.254" layer="16"/>
<via x="111.76" y="65.532" extent="1-16" drill="0.3048"/>
<wire x1="111.4528125" y1="69.046475" x2="111.4528125" y2="69.0348125" width="0.254" layer="1"/>
<wire x1="111.4528125" y1="69.0348125" x2="110.998" y2="68.58" width="0.254" layer="1"/>
<wire x1="110.998" y1="68.58" x2="110.998" y2="65.024" width="0.254" layer="1"/>
<wire x1="110.998" y1="65.024" x2="111.252" y2="64.77" width="0.254" layer="1"/>
<wire x1="111.252" y1="64.77" x2="111.252" y2="54.356" width="0.254" layer="1"/>
</signal>
<signal name="P0.04">
<contactref element="SD1" pad="7"/>
<contactref element="U1" pad="P20"/>
<wire x1="109.44723125" y1="71.132175" x2="109.740175" y2="71.132175" width="0.254" layer="1"/>
<wire x1="109.740175" y1="71.132175" x2="110.236" y2="71.628" width="0.254" layer="1"/>
<wire x1="110.236" y1="71.628" x2="110.744" y2="71.628" width="0.254" layer="1"/>
<wire x1="110.744" y1="71.628" x2="111.252" y2="72.136" width="0.254" layer="1"/>
<wire x1="111.252" y1="72.136" x2="111.252" y2="73.025" width="0.254" layer="1"/>
<wire x1="111.252" y1="73.025" x2="111.633" y2="73.406" width="0.254" layer="1"/>
<wire x1="111.633" y1="73.406" x2="111.633" y2="74.549" width="0.254" layer="1"/>
<via x="111.633" y="74.549" extent="1-16" drill="0.254"/>
<wire x1="111.633" y1="74.549" x2="111.633" y2="73.406" width="0.254" layer="16"/>
<wire x1="111.633" y1="73.406" x2="111.252" y2="73.025" width="0.254" layer="16"/>
<via x="101.473" y="67.691" extent="1-16" drill="0.3048"/>
<wire x1="102.362" y1="68.58" x2="101.473" y2="67.691" width="0.254" layer="16"/>
<wire x1="91.186" y1="84.074" x2="91.186" y2="67.564" width="0.254" layer="16"/>
<wire x1="91.186" y1="67.564" x2="90.932" y2="67.31" width="0.254" layer="16"/>
<via x="90.932" y="67.31" extent="1-16" drill="0.3048"/>
<wire x1="90.932" y1="67.31" x2="101.092" y2="67.31" width="0.254" layer="1"/>
<wire x1="101.092" y1="67.31" x2="101.473" y2="67.691" width="0.254" layer="1"/>
<wire x1="102.362" y1="68.58" x2="107.442" y2="68.58" width="0.254" layer="16"/>
<wire x1="107.442" y1="68.58" x2="108.966" y2="70.104" width="0.254" layer="16"/>
<wire x1="108.966" y1="70.104" x2="108.966" y2="71.374" width="0.254" layer="16"/>
<wire x1="108.966" y1="71.374" x2="109.474" y2="71.882" width="0.254" layer="16"/>
<wire x1="109.474" y1="71.882" x2="110.744" y2="71.882" width="0.254" layer="16"/>
<wire x1="110.744" y1="71.882" x2="111.252" y2="72.39" width="0.254" layer="16"/>
<wire x1="111.252" y1="72.39" x2="111.252" y2="73.025" width="0.254" layer="16"/>
<via x="91.186" y="84.074" extent="1-16" drill="0.3048"/>
<wire x1="91.186" y1="84.074" x2="98.806" y2="84.074" width="0.254" layer="1"/>
<wire x1="98.806" y1="84.074" x2="99.314" y2="84.582" width="0.254" layer="1"/>
<wire x1="99.314" y1="84.582" x2="99.314" y2="86.36" width="0.254" layer="1"/>
<wire x1="99.314" y1="86.36" x2="97.888" y2="87.786" width="0.254" layer="1"/>
<wire x1="97.888" y1="87.786" x2="97.888" y2="89.549" width="0.254" layer="1"/>
</signal>
<signal name="P0.07">
<contactref element="SD1" pad="2"/>
<contactref element="U1" pad="P23"/>
<via x="96.52" y="64.008" extent="1-16" drill="0.3048"/>
<wire x1="97.79" y1="63.754" x2="97.536" y2="64.008" width="0.254" layer="1"/>
<wire x1="97.536" y1="64.008" x2="96.52" y2="64.008" width="0.254" layer="1"/>
<wire x1="110.48156875" y1="69.56289375" x2="109.982" y2="68.326" width="0.254" layer="1"/>
<wire x1="109.982" y1="68.326" x2="109.982" y2="64.77" width="0.254" layer="1"/>
<wire x1="109.982" y1="64.77" x2="108.966" y2="63.754" width="0.254" layer="1"/>
<wire x1="108.966" y1="63.754" x2="97.79" y2="63.754" width="0.254" layer="1"/>
<wire x1="96.52" y1="64.008" x2="96.774" y2="64.262" width="0.254" layer="16"/>
<wire x1="96.774" y1="64.262" x2="96.774" y2="84.836" width="0.254" layer="16"/>
<wire x1="96.774" y1="84.836" x2="96.52" y2="85.09" width="0.254" layer="16"/>
<via x="96.52" y="85.09" extent="1-16" drill="0.3048"/>
<wire x1="96.52" y1="85.09" x2="92.964" y2="85.09" width="0.254" layer="1"/>
<wire x1="92.964" y1="85.09" x2="92.388" y2="85.666" width="0.254" layer="1"/>
<wire x1="92.388" y1="85.666" x2="92.388" y2="89.549" width="0.254" layer="1"/>
</signal>
<signal name="P0.06">
<contactref element="SD1" pad="3"/>
<contactref element="U1" pad="P22"/>
<wire x1="110.418471875" y1="70.61575625" x2="110.49375625" y2="70.61575625" width="0.254" layer="1"/>
<wire x1="110.49375625" y1="70.61575625" x2="111.76" y2="71.882" width="0.254" layer="1"/>
<wire x1="111.76" y1="71.882" x2="111.76" y2="72.771" width="0.254" layer="1"/>
<wire x1="111.76" y1="72.771" x2="112.268" y2="73.279" width="0.254" layer="1"/>
<wire x1="112.268" y1="73.279" x2="112.268" y2="74.041" width="0.254" layer="1"/>
<wire x1="112.268" y1="74.041" x2="112.395" y2="74.168" width="0.254" layer="1"/>
<wire x1="112.395" y1="74.168" x2="112.395" y2="75.057" width="0.254" layer="1"/>
<wire x1="112.395" y1="75.057" x2="111.76" y2="75.692" width="0.254" layer="1"/>
<via x="111.76" y="75.692" extent="1-16" drill="0.254"/>
<wire x1="102.87" y1="75.946" x2="102.362" y2="

license_type: permissive

branch_name: refs/heads/master

extension: brd


text:
76.454" width="0.254" layer="16"/>
<wire x1="102.362" y1="76.454" x2="99.06" y2="76.454" width="0.254" layer="16"/>
<wire x1="99.06" y1="76.454" x2="98.425" y2="77.089" width="0.254" layer="16"/>
<wire x1="111.76" y1="75.692" x2="111.379" y2="76.073" width="0.254" layer="16"/>
<wire x1="111.379" y1="76.073" x2="109.22" y2="76.073" width="0.254" layer="16"/>
<wire x1="109.22" y1="76.073" x2="109.093" y2="76.073" width="0.254" layer="16"/>
<wire x1="109.093" y1="76.073" x2="108.966" y2="75.946" width="0.254" layer="16"/>
<wire x1="108.966" y1="75.946" x2="102.87" y2="75.946" width="0.254" layer="16"/>
<wire x1="93.472" y1="86.36" x2="93.472" y2="89.533" width="0.254" layer="1"/>
<wire x1="93.472" y1="89.533" x2="93.488" y2="89.549" width="0.254" layer="1"/>
<wire x1="98.425" y1="77.089" x2="98.425" y2="85.979" width="0.254" layer="16"/>
<wire x1="98.425" y1="85.979" x2="98.298" y2="86.106" width="0.254" layer="16"/>
<via x="98.298" y="86.106" extent="1-16" drill="0.3048"/>
<wire x1="98.298" y1="86.106" x2="93.726" y2="86.106" width="0.254" layer="1"/>
<wire x1="93.726" y1="86.106" x2="93.472" y2="86.36" width="0.254" layer="1"/>
</signal>
<signal name="P0.05">
<contactref element="SD1" pad="5"/>
<contactref element="U1" pad="P21"/>
<wire x1="109.510328125" y1="70.0793125" x2="109.510328125" y2="65.060328125" width="0.254" layer="1"/>
<wire x1="109.510328125" y1="65.060328125" x2="108.712" y2="64.262" width="0.254" layer="1"/>
<wire x1="108.712" y1="64.262" x2="98.044" y2="64.262" width="0.254" layer="1"/>
<wire x1="98.044" y1="64.262" x2="97.536" y2="64.77" width="0.254" layer="1"/>
<via x="97.536" y="64.77" extent="1-16" drill="0.3048"/>
<wire x1="97.536" y1="64.77" x2="97.282" y2="65.024" width="0.254" layer="16"/>
<wire x1="97.282" y1="65.024" x2="97.282" y2="76.581" width="0.254" layer="16"/>
<wire x1="97.282" y1="76.581" x2="97.409" y2="76.708" width="0.254" layer="16"/>
<wire x1="97.409" y1="76.708" x2="97.409" y2="85.217" width="0.254" layer="16"/>
<wire x1="97.409" y1="85.217" x2="95.758" y2="86.868" width="0.254" layer="16"/>
<via x="95.758" y="86.868" extent="1-16" drill="0.3048"/>
<wire x1="95.758" y1="86.868" x2="95.688" y2="86.938" width="0.254" layer="1"/>
<wire x1="95.688" y1="86.938" x2="95.688" y2="89.549" width="0.254" layer="1"/>
</signal>
<signal name="P0.03">
<contactref element="SD1" pad="SWA"/>
<contactref element="U1" pad="P19"/>
<via x="90.17" y="65.786" extent="1-16" drill="0.3048"/>
<wire x1="90.17" y1="65.786" x2="90.17" y2="80.264" width="0.254" layer="16"/>
<wire x1="108.539084375" y1="70.59573125" x2="108.458" y2="70.514646875" width="0.254" layer="1"/>
<wire x1="92.202" y1="65.786" x2="90.17" y2="65.786" width="0.254" layer="1"/>
<wire x1="92.202" y1="65.786" x2="92.456" y2="66.04" width="0.254" layer="1"/>
<wire x1="92.456" y1="66.04" x2="98.552" y2="66.04" width="0.254" layer="1"/>
<wire x1="98.552" y1="66.04" x2="99.314" y2="65.278" width="0.254" layer="1"/>
<wire x1="99.314" y1="65.278" x2="107.442" y2="65.278" width="0.254" layer="1"/>
<wire x1="107.442" y1="65.278" x2="108.966" y2="66.802" width="0.254" layer="1"/>
<wire x1="108.966" y1="66.802" x2="108.966" y2="69.596" width="0.254" layer="1"/>
<wire x1="108.966" y1="69.596" x2="108.458" y2="70.104" width="0.254" layer="1"/>
<wire x1="108.458" y1="70.104" x2="108.458" y2="70.514646875" width="0.254" layer="1"/>
<wire x1="90.17" y1="80.264" x2="90.424" y2="80.518" width="0.254" layer="16"/>
<via x="90.424" y="80.518" extent="1-16" drill="0.3048"/>
<wire x1="90.424" y1="80.518" x2="90.618" y2="80.324" width="0.254" layer="1"/>
<wire x1="90.618" y1="80.324" x2="100.113" y2="80.324" width="0.254" layer="1"/>
</signal>
<signal name="P0.31">
<contactref element="JP1" pad="3"/>
<contactref element="U1" pad="P12"/>
<wire x1="108.6823" y1="73.63415" x2="110.84515" y2="73.63415" width="0.254" layer="1"/>
<wire x1="110.84515" y1="73.63415" x2="110.871" y2="73.66" width="0.254" layer="1"/>
<via x="110.871" y="73.66" extent="1-16" drill="0.254"/>
<wire x1="97.536" y1="69.342" x2="39.37" y2="69.342" width="0.254" layer="1"/>
<wire x1="110.871" y1="73.66" x2="108.712" y2="73.66" width="0.254" layer="16"/>
<wire x1="108.712" y1="73.66" x2="107.95" y2="72.898" width="0.254" layer="16"/>
<wire x1="107.95" y1="72.898" x2="107.95" y2="70.866" width="0.254" layer="16"/>
<wire x1="107.95" y1="70.866" x2="106.68" y2="69.596" width="0.254" layer="16"/>
<wire x1="106.68" y1="69.596" x2="98.298" y2="69.596" width="0.254" layer="16"/>
<wire x1="98.298" y1="69.596" x2="98.044" y2="69.85" width="0.254" layer="16"/>
<via x="98.044" y="69.85" extent="1-16" drill="0.3048"/>
<wire x1="98.044" y1="69.85" x2="97.536" y2="69.342" width="0.254" layer="1"/>
<wire x1="37.86179375" y1="80.5272125" x2="35.052" y2="85.344" width="0.254" layer="16"/>
<wire x1="35.052" y1="85.344" x2="35.84705" y2="86.36765" width="0.254" layer="16"/>
<wire x1="39.37" y1="69.342" x2="38.862" y2="68.834" width="0.254" layer="1"/>
<wire x1="38.862" y1="68.834" x2="38.1" y2="68.834" width="0.254" layer="1"/>
<wire x1="38.1" y1="68.834" x2="37.846" y2="69.088" width="0.254" layer="1"/>
<via x="37.846" y="69.088" extent="1-16" drill="0.3048"/>
<wire x1="37.846" y1="69.088" x2="37.846" y2="80.51141875" width="0.254" layer="16"/>
<wire x1="37.846" y1="80.51141875" x2="37.86179375" y2="80.5272125" width="0.254" layer="16"/>
</signal>
<signal name="P0.30">
<contactref element="JP1" pad="5"/>
<contactref element="U1" pad="P11"/>
<wire x1="95.504" y1="70.866" x2="36.576" y2="70.866" width="0.254" layer="1"/>
<wire x1="108.14585625" y1="74.54229375" x2="104.26029375" y2="74.54229375" width="0.254" layer="1"/>
<wire x1="104.26029375" y1="74.54229375" x2="100.838" y2="71.12" width="0.254" layer="1"/>
<wire x1="100.838" y1="71.12" x2="100.076" y2="71.12" width="0.254" layer="1"/>
<wire x1="100.076" y1="71.12" x2="99.06" y2="72.136" width="0.254" layer="1"/>
<wire x1="99.06" y1="72.136" x2="96.774" y2="72.136" width="0.254" layer="1"/>
<wire x1="96.774" y1="72.136" x2="95.504" y2="70.866" width="0.254" layer="1"/>
<wire x1="36.576" y1="70.866" x2="36.322" y2="70.612" width="0.254" layer="1"/>
<via x="36.322" y="70.612" extent="1-16" drill="0.3048"/>
<wire x1="36.322" y1="70.612" x2="36.322" y2="77.978" width="0.254" layer="16"/>
<wire x1="36.322" y1="77.978" x2="33.274" y2="83.312" width="0.254" layer="16"/>
<wire x1="33.274" y1="83.312" x2="33.274" y2="84.328" width="0.254" layer="16"/>
<wire x1="33.274" y1="84.328" x2="33.647346875" y2="85.09765" width="0.254" layer="16"/>
</signal>
<signal name="P0.29">
<contactref element="JP1" pad="7"/>
<contactref element="U1" pad="P10"/>
<wire x1="109.19871875" y1="74.605390625" x2="110.052609375" y2="74.605390625" width="0.254" layer="1"/>
<wire x1="110.052609375" y1="74.605390625" x2="110.236" y2="74.549" width="0.254" layer="1"/>
<via x="110.236" y="74.549" extent="1-16" drill="0.254"/>
<wire x1="110.236" y1="74.549" x2="110.109" y2="74.549" width="0.254" layer="16"/>
<wire x1="110.109" y1="74.549" x2="109.728" y2="74.168" width="0.254" layer="16"/>
<wire x1="95.758" y1="70.358" x2="37.338" y2="70.358" width="0.254" layer="1"/>
<wire x1="109.728" y1="74.168" x2="107.696" y2="74.168" width="0.254" layer="16"/>
<wire x1="107.696" y1="74.168" x2="107.188" y2="73.66" width="0.254" layer="16"/>
<wire x1="107.188" y1="73.66" x2="107.188" y2="71.374" width="0.254" layer="16"/>
<wire x1="107.188" y1="71.374" x2="106.172" y2="70.358" width="0.254" layer="16"/>
<wire x1="106.172" y1="70.358" x2="99.314" y2="70.358" width="0.254" layer="16"/>
<wire x1="99.314" y1="70.358" x2="98.298" y2="71.374" width="0.254" layer="16"/>
<via x="98.298" y="71.374" extent="1-16" drill="0.3048"/>
<wire x1="98.298" y1="71.374" x2="96.774" y2="71.374" width="0.254" layer="1"/>
<wire x1="96.774" y1="71.374" x2="95.758" y2="70.358" width="0.254" layer="1"/>
<wire x1="30.48" y1="74.422" x2="30.48" y2="82.860009375" width="0.254" layer="16"/>
<wire x1="30.48" y1="82.860009375" x2="31.447640625" y2="83.82765" width="0.254" layer="16"/>
<wire x1="37.338" y1="70.358" x2="36.83" y2="69.85" width="0.254" layer="1"/>
<wire x1="36.83" y1="69.85" x2="30.226" y2="69.85" width="0.254" layer="1"/>
<via x="30.226" y="69.85" extent="1-16" drill="0.3048"/>
<wire x1="30.226" y1="69.85" x2="30.226" y2="74.168" width="0.254" layer="16"/>
<wire x1="30.226" y1="74.168" x2="30.48" y2="74.422" width="0.254" layer="16"/>
</signal>
<signal name="P0.00">
<contactref element="JP1" pad="4"/>
<contactref element="U1" pad="P13"/>
<wire x1="96.266" y1="69.85" x2="38.862" y2="69.85" width="0.254" layer="1"/>
<wire x1="104.394" y1="73.914" x2="101.092" y2="70.612" width="0.254" layer="1"/>
<wire x1="101.092" y1="70.612" x2="97.028" y2="70.612" width="0.254" layer="1"/>
<wire x1="97.028" y1="70.612" x2="96.266" y2="69.85" width="0.254" layer="1"/>
<wire x1="107.6294375" y1="73.571053125" x2="107.276946875" y2="73.571053125" width="0.254" layer="1"/>
<wire x1="107.276946875" y1="73.571053125" x2="106.934" y2="73.914" width="0.254" layer="1"/>
<wire x1="106.934" y1="73.914" x2="104.394" y2="73.914" width="0.254" layer="1"/>
<wire x1="38.59213125" y1="81.77820625" x2="37.11705" y2="84.167946875" width="0.254" layer="16"/>
<wire x1="38.862" y1="69.85" x2="38.608" y2="69.596" width="0.254" layer="1"/>
<via x="38.608" y="69.596" extent="1-16" drill="0.3048"/>
<wire x1="38.608" y1="69.596" x2="38.608" y2="81.7623375" width="0.254" layer="16"/>
<wire x1="38.608" y1="81.7623375" x2="38.59213125" y2="81.77820625" width="0.254" layer="16"/>
</signal>
<signal name="P0.01">
<contactref element="JP1" pad="6"/>
<contactref element="U1" pad="P14"/>
<wire x1="108.16588125" y1="72.66290625" x2="108.85790625" y2="72.66290625" width="0.254" layer="1"/>
<wire x1="108.85790625" y1="72.66290625" x2="109.22" y2="73.025" width="0.254" layer="1"/>
<wire x1="109.22" y1="73.025" x2="110.109" y2="73.025" width="0.254" layer="1"/>
<wire x1="110.109" y1="73.025" x2="110.49" y2="72.644" width="0.254" layer="1"/>
<via x="110.49" y="72.644" extent="1-16" drill="0.254"/>
<wire x1="110.49" y1="72.644" x2="110.109" y2="73.025" width="0.254" layer="16"/>
<via x="98.552" y="68.834" extent="1-16" drill="0.3048"/>
<wire x1="98.552" y1="68.834" x2="39.624" y2="68.834" width="0.254" layer="1"/>
<wire x1="110.109" y1="73.025" x2="108.839" y2="73.025" width="0.254" layer="16"/>
<wire x1="108.839" y1="73.025" x2="108.458" y2="72.644" width="0.254" layer="16"/>
<wire x1="108.458" y1="72.644" x2="108.458" y2="70.358" width="0.254" layer="16"/>
<wire x1="108.458" y1="70.358" x2="107.188" y2="69.088" width="0.254" layer="16"/>
<wire x1="107.188" y1="69.088" x2="98.806" y2="69.088" width="0.254" layer="16"/>
<wire x1="98.806" y1="69.088" x2="98.552" y2="68.834" width="0.254" layer="16"/>
<wire x1="37.084" y1="79.248" x2="34.917346875" y2="82.897946875" width="0.254" layer="16"/>
<wire x1="39.624" y1="68.834" x2="39.116" y2="68.326" width="0.254" layer="1"/>
<wire x1="39.116" y1="68.326" x2="37.084" y2="68.326" width="0.254" layer="1"/>
<via x="37.084" y="68.326" extent="1-16" drill="0.3048"/>
<wire x1="37.084" y1="68.326" x2="37.084" y2="79.248" width="0.254" layer="16"/>
</signal>
<signal name="SWDIO">
<contactref element="J2" pad="2"/>
<contactref element="U1" pad="P44"/>
<wire x1="117.445028125" y1="75.204059375" x2="117.327940625" y2="75.204059375" width="0.254" layer="1"/>
<wire x1="117.327940625" y1="75.204059375" x2="116.586" y2="75.438" width="0.254" layer="1"/>
<via x="116.586" y="75.438" extent="1-16" drill="0.254"/>
<wire x1="119.888" y1="73.66" x2="120.65" y2="73.66" width="0.254" layer="16"/>
<wire x1="120.65" y1="73.66" x2="121.158" y2="73.152" width="0.254" layer="16"/>
<wire x1="121.158" y1="73.152" x2="121.412" y2="72.644" width="0.254" layer="16"/>
<wire x1="121.412" y1="72.644" x2="121.92" y2="72.39" width="0.254" layer="16"/>
<wire x1="121.92" y1="72.39" x2="121.898340625" y2="70.65076875" width="0.254" layer="16"/>
<wire x1="116.586" y1="75.438" x2="117.348" y2="74.676" width="0.254" layer="16"/>
<wire x1="117.348" y1="74.676" x2="119.38" y2="73.406" width="0.254" layer="16"/>
<wire x1="119.38" y1="73.406" x2="119.888" y2="73.66" width="0.254" layer="16"/>
</signal>
<signal name="SWCLK">
<contactref element="J2" pad="4"/>
<contactref element="U1" pad="P43"/>
<wire x1="117.98146875" y1="74.295915625" x2="119.38" y2="73.406" width="0.254" layer="1"/>
<wire x1="119.38" y1="73.406" x2="119.634" y2="73.406" width="0.254" layer="1"/>
<wire x1="119.634" y1="73.406" x2="119.888" y2="73.66" width="0.254" layer="1"/>
<wire x1="119.888" y1="73.66" x2="120.65" y2="73.66" width="0.254" layer="1"/>
<wire x1="120.65" y1="73.66" x2="121.158" y2="73.152" width="0.254" layer="1"/>
<wire x1="121.158" y1="73.152" x2="121.158" y2="72.898" width="0.254" layer="1"/>
<wire x1="121.158" y1="72.898" x2="123.19" y2="71.628" width="0.254" layer="1"/>
<wire x1="123.19" y1="71.628" x2="123.444" y2="71.374" width="0.254" layer="1"/>
<wire x1="123.444" y1="71.374" x2="123.444" y2="69.85" width="0.254" layer="1"/>
<wire x1="123.444" y1="69.85" x2="123.19" y2="69.342" width="0.254" layer="1"/>
<via x="123.19" y="69.342" extent="1-16" drill="0.3048"/>
<wire x1="123.19" y1="69.342" x2="121.4895375" y2="69.342" width="0.254" layer="16"/>
<wire x1="121.4895375" y1="69.342" x2="121.3021125" y2="69.529425" width="0.254" layer="16"/>
</signal>
<signal name="P0.18">
<contactref element="J2" pad="6"/>
<contactref element="U1" pad="P36"/>
<wire x1="115.379353125" y1="71.319090625" x2="115.370909375" y2="71.319090625" width="0.254" layer="1"/>
<via x="115.316" y="75.438" extent="1-16" drill="0.254"/>
<wire x1="115.316" y1="75.438" x2="115.824" y2="74.93" width="0.254" layer="16"/>
<wire x1="115.824" y1="74.93" x2="119.38" y2="72.771" width="0.254" layer="16"/>
<wire x1="115.379353125" y1="71.319090625" x2="114.3" y2="72.136" width="0.254" layer="1"/>
<wire x1="119.38" y1="72.771" x2="120.396" y2="72.898" width="0.254" layer="16"/>
<via x="120.396" y="72.898" extent="1-16" drill="0.3048"/>
<wire x1="120.396" y1="72.898" x2="120.396" y2="72.644" width="0.254" layer="1"/>
<wire x1="120.396" y1="72.644" x2="122.936" y2="71.12" width="0.254" layer="1"/>
<wire x1="122.936" y1="71.12" x2="122.936" y2="70.358" width="0.254" layer="1"/>
<wire x1="122.936" y1="70.358" x2="121.92" y2="68.58" width="0.254" layer="1"/>
<wire x1="121.92" y1="68.58" x2="120.705884375" y2="68.40808125" width="0.254" layer="1"/>
<wire x1="114.3" y1="72.136" x2="114.3" y2="72.39" width="0.254" layer="1"/>
<wire x1="114.3" y1="72.39" x2="113.792" y2="72.898" width="0.254" layer="1"/>
<wire x1="113.792" y1="72.898" x2="113.792" y2="74.422" width="0.254" layer="1"/>
<wire x1="113.792" y1="74.422" x2="114.808" y2="75.438" width="0.254" layer="1"/>
<wire x1="114.808" y1="75.438" x2="115.316" y2="75.438" width="0.254" layer="1"/>
</signal>
<signal name="!RESET">
<contactref element="J2" pad="10"/>
<contactref element="U1" pad="P39"/>
<wire x1="116.94863125" y1="72.35343125" x2="116.94863125" y2="72.28136875" width="0.254" layer="1"/>
<wire x1="117.602" y1="65.532" x2="118.880028125" y2="65.532" width="0.254" layer="1"/>
<wire x1="118.880028125" y1="65.532" x2="119.513425" y2="66.165396875" width="0.254" layer="1"/>
<wire x1="116.94863125" y1="72.28136875" x2="117.348" y2="71.882" width="0.254" layer="1"/>
<wire x1="117.348" y1="71.882" x2="117.348" y2="71.374" width="0.254" layer="1"/>
<wire x1="117.348" y1="71.374" x2="117.094" y2="71.12" width="0.254" layer="1"/>
<wire x1="117.094" y1="71.12" x2="117.094" y2="69.342" width="0.254" layer="1"/>
<wire x1="117.094" y1="69.342" x2="116.84" y2="69.088" width="0.254" layer="1"/>
<wire x1="116.84" y1="69.088" x2="116.84" y2="68.834" width="0.254" layer="1"/>
<wire x1="116.84" y1="68.834" x2="116.586" y2="68.58" width="0.254" layer="1"/>
<wire x1="116.586" y1="68.58" x2="116.586" y2="66.548" width="0.254" layer="1"/>
<wire x1="116.586" y1="66.548" x2="117.602" y2="65.532" width="0.254" layer="1"/>
</signal>
<signal name="N$11">
<contactref element="S7" pad="C"/>
<contactref element="R10" pad="1"/>
<contactref element="C21" pad="1"/>
<wire x1="45.466" y1="97.628" x2="47.156" y2="97.628" width="0.4064" layer="1"/>
<wire x1="47.156" y1="97.628" x2="47.156" y2="97.79" width="0.4064" layer="1"/>
<wire x1="47.117" y1="96.022" x2="47.156" y2="96.022" width="0.4064" layer="16"/>
<wire x1="47.156" y1="97.79" x2="47.117" y2="97.751" width="0.508" layer="1"/>
<wire x1="47.117" y1="97.751" x2="47.117" y2="96.022" width="0.508" layer="1"/>
</signal>
<signal name="N$10">
<contactref element="R11" pad="2"/>
<contactref element="U1" pad="P42"/>
<wire x1="116.928609375" y1="74.23281875" x2="115.25118125" y2="74.23281875" width="0.254" layer="1"/>
<wire x1="115.25118125" y1="74.23281875" x2="115.062" y2="74.422" width="0.254" layer="1"/>
<via x="115.062" y="74.422" extent="1-16" drill="0.254"/>
<wire x1="115.062" y1="74.422" x2="112.268" y2="77.216" width="0.254" layer="16"/>
<wire x1="112.268" y1="77.216" x2="105.918" y2="77.216" width="0.254" layer="16"/>
<via x="105.918" y="77.216" extent="1-16" drill="0.3048"/>
<wire x1="105.918" y1="77.216" x2="105.918" y2="78.74" width="0.254" layer="1"/>
<via x="105.918" y="78.74" extent="1-16" drill="0.3048"/>
<wire x1="105.918" y1="78.74" x2="105.918" y2="79.59" width="0.254" layer="16"/>
<wire x1="105.918" y1="79.59" x2="105.371" y2="80.137" width="0.254" layer="16"/>
</signal>
</signals>
<errors>
<approved hash="5,1,c0874118b56dfe16"/>
<approved hash="5,1,bee1f078f28d75eb"/>
<approved hash="6,16,7b00a50e0ec7ba6e"/>
<approved hash="6,16,44182afdd87c3b1d"/>
<approved hash="6,16,0255fd850f470036"/>
<approved hash="6,16,68fe3880397c6902"/>
<approved hash="6,16,142a24d773a60c01"/>
<approved hash="6,16,5c7a1204126d5c13"/>
<approved hash="6,16,7035ba2e456aee20"/>
<approved hash="6,16,05820b0f8ccf04c5"/>
<approved hash="6,16,5a0e00700fac55d2"/>
<approved hash="6,16,84ddc8863c83295e"/>
<approved hash="6,16,c9fce0550fe13f0f"/>
<approved hash="6,1,0fa8c649f28890d7"/>
<approved hash="6,1,7972d50d39bdac00"/>
<approved hash="6,1,df28f30498600fd5"/>
<approved hash="6,16,28f424088e6693e2"/>
<approved hash="6,16,102d254981ea3109"/>
<approved hash="6,16,8717143680bf3031"/>
<approved hash="6,16,0323f65b7a0d77fe"/>
<approved hash="6,16,c600d3b38a2f57b5"/>
<approved hash="6,16,eef5872a157d54aa"/>
<approved hash="6,16,71f7961cf69c89cd"/>
<approved hash="5,16,faf4643099f1c4c3"/>
<approved hash="5,16,6bf2f53099f1c4c5"/>
<approved hash="5,16,4dfdd33085f1d8ca"/>
<approved hash="5,16,3efba03099f1c4cc"/>
<approved hash="5,16,aff8313099f1c4cf"/>
<approved hash="5,16,20e6be309df1c0d1"/>
<approved hash="5,16,91e30f309df1c0d4"/>
<approved hash="5,16,02e19c3099f1c4d6"/>
<approved hash="5,16,41dc52f0af31492b"/>
<approved hash="5,16,d0dac3f0af31492d"/>
<approved hash="5,16,f6d5e5f0b3315522"/>
<approved hash="5,16,85d396f0af314924"/>
<approved hash="5,16,14d007f0af314927"/>
<approved hash="5,16,9bce88f0ab314d39"/>
<approved hash="5,16,2acb39f0ab314d3c"/>
<approved hash="5,16,b9c9aaf0af31493e"/>
<approved hash="5,1,f35451ed5c057ad2"/>
<approved hash="4,1,1db2edd3d6c0c506"/>
<approved hash="4,1,61bc15247c39630d"/>
<approved hash="4,1,9863ac44ee93ba19"/>
<approved hash="4,1,01dcf15ec84fc716"/>
<approved hash="4,1,7dd209a962b6611d"/>
<approved hash="4,1,8413b1d7f002b917"/>
<approved hash="4,1,1dd0f0944a04451f"/>
<approved hash="4,1,61de0863e0fde314"/>
<approved hash="4,1,989fb09572c93b96"/>
<approved hash="5,1,ab825585ba0a3685"/>
<approved hash="6,1,1d0fc169b7b4612d"/>
<approved hash="6,1,5099b9cb89db97a8"/>
<approved hash="6,1,a3a1180aff433659"/>
<approved hash="5,16,4ac244b0b9115409"/>
<approved hash="5,16,dbc4d5b0b911540f"/>
<approved hash="5,16,fdcbf3b0a5114800"/>
<approved hash="5,16,8ecd80b0b9115406"/>
<approved hash="5,16,1fce11b0b9115405"/>
<approved hash="5,16,90d09eb0bd11501b"/>
<approved hash="5,16,21d52fb0bd11501e"/>
<approved hash="5,16,b2d7bcb0b911541c"/>
<approved hash="6,16,b3faa9e0787289ff"/>
<approved hash="6,16,67860db1914f8146"/>
</errors>
</board>
</drawing>
<compatibility>
<note version="6.3" minversion="6.2.2" severity="warning">
Since Version 6.2.2 text objects can contain more than one line,
which will not be processed correctly with this version.
</note>
</compatibility>
</eagle>


text:
package main

import (
	"fmt"
	"crypto/sha256"
	"time"
)

type Data struct {
	Iteration int
	Hash string
}

func A(iteration int) int {
	time.Sleep(50 * time.Millisecond)
	return iteration ^ 10
}

func B(iteration int) string {
	h := sha256.New()
	h.Write([]byte(string(iteration)))
	return string(h.Sum(nil))
}

func C(result string) string {
	return fmt.Sprintf("result: %s\n\r", result)
}

license: MIT

extension: go


text:
#pragma once

/*==============================================================================
Slow classifier example class
==============================================================================*/

//******************************************************************************
//******************************************************************************
//******************************************************************************

#include "sswSlowClassifier.h"

namespace SSW
{

//******************************************************************************
//******************************************************************************
//******************************************************************************
//******************************************************************************
//******************************************************************************
//******************************************************************************
// This is a class that implments a slow classifier. It addresses the problem
// of threshold classification of a noisy variable that varies over time.
//
//

class SwitchLogic
{
public:

   //***************************************************************************
   //***************************************************************************
   //***************************************************************************
   // Constants.

   // Alarm classifications.
   static const int cClass_None       = -99;
   static const int cClass_CriticalLo = -2;
   static const int cClass_AlarmLo    = -1;
   static const int cClass_Nominal    =  0;
   static const int cClass_AlarmHi    =  1;
   static const int cClass_CriticalHi =  2;

   // Amplifier path selections.
   static const int cPath_A      = 0;
   static const int cPath_B      = 1;
   static const int cPath_Bypass = 2;

   //***************************************************************************
   //***************************************************************************
   //***************************************************************************
   // Members.

   // Input values.
   float mValueA;
   float mValueB;

   // Slow classifiers.
   SlowClassifier mClassifierA;
   SlowClassifier mClassifierB;

   // Classifications. Class. This is one of -2,-1,0,1,2.
   int mClassA;
   int mClassB;

   // Classifier change flags
   bool mClassChangeFlagA;
   bool mClassChangeFlagB;
   bool mClassChangeFlag;
   bool mPathChangeFlag;

   // Failed Amplifier Flags (Latched in logic rules)
   bool mAmpFailedA = 0;
   bool mAmpFailedB = 0;

   // variables used to print once upon amp failure
   bool mAmpFailedPrintCatchA = 0;
   bool mAmpFailedPrintCatchB = 0;

   // Fuzzy boolean variable. this is the AND of the fuzzy confidence
   // vararables for all of the thresholders.
   // the measurements.
   Dsp::FuzzyBoolFloat mFuzzyConfidence;

   // True if first update after initialization.
   bool mFirstFlag;

   // Update counter.
   int mCount;

   //***************************************************************************
   //***************************************************************************
   //***************************************************************************
   // Members.

   // Path variables.
   int mCurrentPath;
   int mNextPath;
   int mRequestedPath;

   //***************************************************************************
   //***************************************************************************
   //***************************************************************************
   // Methods.

   // Constructor.
   SwitchLogic();
   void initialize();

   //***************************************************************************
   //***************************************************************************
   //***************************************************************************
   // Methods.

   void doRequestPathA();
   void doRequestPathB();

   void doUpdateA(float aValue);
   void doUpdateB(float aValue);

   //***************************************************************************
   //***************************************************************************
   //***************************************************************************
   // Methods.
   void checkAmpFail();
   void doEvaluateRules();
   void doEvaluateSwitch();

   //***************************************************************************
   //***************************************************************************
   //***************************************************************************
   // Methods.

   // Return a string that can be used for a show.
   char* asShowString(char* aBuffer);
};

//******************************************************************************
//******************************************************************************
//******************************************************************************
}//namespace

extension: h


text:
// AsgExampleTools_entries.cxx

#include <GaudiKernel/DeclareFactoryEntries.h>

#include <TauAnalysisAlgorithms/DiTauEfficiencyCorrectionsAlg.h>
#include <TauAnalysisAlgorithms/DiTauSmearingAlg.h>
#include <TauAnalysisAlgorithms/DiTauTruthMatchingAlg.h>
#include <TauAnalysisAlgorithms/TauEfficiencyCorrectionsAlg.h>
#include <TauAnalysisAlgorithms/TauSmearingAlg.h>
#include <TauAnalysisAlgorithms/TauTruthMatchingAlg.h>

DECLARE_ALGORITHM_FACTORY (CP::DiTauEfficiencyCorrectionsAlg)
DECLARE_ALGORITHM_FACTORY (CP::DiTauSmearingAlg)
DECLARE_ALGORITHM_FACTORY (CP::DiTauTruthMatchingAlg)
DECLARE_ALGORITHM_FACTORY (CP::TauEfficiencyCorrectionsAlg)
DECLARE_ALGORITHM_FACTORY (CP::TauSmearingAlg)
DECLARE_ALGORITHM_FACTORY (CP::TauTruthMatchingAlg)

DECLARE_FACTORY_ENTRIES(TauAnalysisAlgorithms) {
  DECLARE_ALGORITHM (CP::DiTauEfficiencyCorrectionsAlg)
  DECLARE_ALGORITHM (CP::DiTauSmearingAlg)
  DECLARE_ALGORITHM (CP::DiTauTruthMatchingAlg)
  DECLARE_ALGORITHM (CP::TauEfficiencyCorrectionsAlg)
  DECLARE_ALGORITHM (CP::TauSmearingAlg)
  DECLARE_ALGORITHM (CP::TauTruthMatchingAlg)
}

repository: strigazi/athena

repo_name: strigazi/athena

extension: cxx


text:
require bug-app.inc

DESCRIPTION = "This little app shows the Concierge Log in a browser when you go to http://[bug_ip]/service/ConciergeLogViewerWS .\
This application depends on PublicWSAdminExtender: 'http://buglabs.net/applications/PublicWSAdminExtender(http://buglabs.net/applications/PublicWSAdminExtender)':http://buglabs.net/applications/PublicWSAdminExtender\
This is a good, simple, tutorial app that shows how to use PublicWSAdminExtender, which publishes web services as xml and html."
HOMEPAGE = "http://buglabs.net/applications/SimpleConciergeLogViewerXWS"

DEPENDS += "com.buglabs.app.publicwsadminextender com.buglabs.osgi service-tracker com.buglabs.common "

PV = "1"

SRC_LINK = "http://buglabs.net/program_version/download/753"

APIVERSION = ""

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD

extension: bb


text:
package main

import (
	"os"
	"time"

	_ "github.com/cloudfoundry/staticfile-buildpack/src/staticfile/hooks"
	"github.com/cloudfoundry/staticfile-buildpack/src/staticfile/supply"

	"github.com/cloudfoundry/libbuildpack"
)

func main() {
	logger := libbuildpack.NewLogger(os.Stdout)

	buildpackDir, err := libbuildpack.GetBuildpackDir()
	if err != nil {
		logger.Error("Unable to determine buildpack directory: %s", err.Error())
		os.Exit(9)
	}

	manifest, err := libbuildpack.NewManifest(buildpackDir, logger, time.Now())
	if err != nil {
		logger.Error("Unable to load buildpack manifest: %s", err.Error())
		os.Exit(10)
	}

	installer := libbuildpack.NewInstaller(manifest)

	stager := libbuildpack.NewStager(os.Args[1:], logger, manifest)
	if err = installer.SetAppCacheDir(stager.CacheDir()); err != nil {
		logger.Error("Unable to setup appcache: %s", err)
		os.Exit(18)
	}

	if err = manifest.ApplyOverride(stager.DepsDir()); err != nil {
		logger.Error("Unable to apply override.yml files: %s", err)
		os.Exit(17)
	}

	if err := stager.CheckBuildpackValid(); err != nil {
		os.Exit(11)
	}

	err = libbuildpack.RunBeforeCompile(stager)
	if err != nil {
		logger.Error("Before Compile: %s", err.Error())
		os.Exit(12)
	}

	err = stager.SetStagingEnvironment()
	if err != nil {
		logger.Error("Unable to setup environment variables: %s", err.Error())
		os.Exit(13)
	}

	ss := supply.Supplier{
		Stager:    stager,
		Manifest:  manifest,
		Installer: installer,
		Log:       logger,
	}

	err = supply.Run(&ss)
	if err != nil {
		os.Exit(14)
	}

	if err := stager.WriteConfigYml(nil); err != nil {
		logger.Error("Error writing config.yml: %s", err.Error())
		os.Exit(15)
	}

	if err = installer.CleanupAppCache(); err != nil {
		logger.Error("Unable to clean up app cache: %s", err)
		os.Exit(19)
	}
}

repository: cloudfoundry/staticfile-buildpack

repo_name: cloudfoundry/staticfile-buildpack

gha_language: Go


text:
# required for DEB-DEFAULT to work as intended
cmake_minimum_required(VERSION 3.6)

# allow building RPM packages on non-RPM systems
if(DEFINED ENV{ARCH})
    set(CPACK_RPM_PACKAGE_ARCHITECTURE $ENV{ARCH})
    if(CPACK_RPM_PACKAGE_ARCHITECTURE MATCHES "i686")
        set(CPACK_RPM_PACKAGE_ARCHITECTURE "i386")
    elseif(CPACK_RPM_PACKAGE_ARCHITECTURE MATCHES "amd64")
        set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64")
    endif()
endif()

# override default package naming
set(CPACK_RPM_FILE_NAME RPM-DEFAULT)

# versioning
set(CPACK_PACKAGE_VERSION ${APPIMAGED_VERSION})

# use git hash as package release
set(CPACK_RPM_PACKAGE_RELEASE "git${APPIMAGED_GIT_COMMIT}")

# append build ID, similar to AppImage naming
if(DEFINED ENV{TRAVIS_BUILD_NUMBER})
    set(CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}~travis$ENV{TRAVIS_BUILD_NUMBER}")
else()
    set(CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}~local")
endif()

set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")

set(CPACK_RPM_PACKAGE_NAME "appimaged")
set(CPACK_RPM_PACKAGE_SUMMARY
    "Optional AppImage daemon for desktop integration. Integrates AppImages into the desktop, e.g., installs icons and menu entries.")

set(CPACK_RPM_PACKAGE_REQUIRES "libarchive13, libc6 >= 2.4, libglib2.0-0, zlib1g, fuse")

set(CPACK_COMPONENTS_ALL appimaged)
set(CPACK_RPM_COMPONENT_INSTALL ON)

repository: sahwar/appimaged

repo_name: sahwar/appimaged

gha_license_id: NOASSERTION

extension: cmake


text:
#include "FWCore/Framework/interface/one/EDAnalyzer.h"
#include "FWCore/Framework/interface/Run.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/Utilities/interface/EDGetToken.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "FWCore/Utilities/interface/Exception.h"
#include "CommonTools/UtilAlgos/interface/TFileService.h"
#include "DataFormats/Common/interface/Handle.h"

#include "L1Trigger/TrackTrigger/interface/Setup.h"

#include <TProfile.h>
#include <TH1F.h>

#include <vector>
#include <deque>

using namespace std;
using namespace edm;
using namespace tt;

namespace trackerDTC {

  /*! \class  trackerDTC::AnalyzerDAQ
   *  \brief  Class to analyze TTCluster Occupancies on DTCs, plots cluster occupancy
   *  \author Thomas Schuh
   *  \date   2020, Oct
   */
  class AnalyzerDAQ : public one::EDAnalyzer<one::WatchRuns, one::SharedResources> {
  public:
    AnalyzerDAQ(const ParameterSet& iConfig);
    void beginJob() override {}
    void beginRun(const Run& iEvent, const EventSetup& iSetup) override;
    void analyze(const Event& iEvent, const EventSetup& iSetup) override;
    void endRun(const Run& iEvent, const EventSetup& iSetup) override {}
    void endJob() override {}

  private:
    // ED input token of accepted TTClusters
    EDGetTokenT<TTClusterDetSetVec> edGetToken_;
    // Setup token
    ESGetToken<Setup, SetupRcd> esGetTokenSetup_;
    // stores, calculates and provides run-time constants
    const Setup* setup_ = nullptr;

    // Histograms

    TProfile* profModules_;
    TH1F* hisModules_;
    TProfile* profDTCs_;
    TH1F* hisDTCs_;
    TH1F* hisTracker_;
  };

  AnalyzerDAQ::AnalyzerDAQ(const ParameterSet& iConfig) {
    usesResource("TFileService");
    // book input ED products
    const auto& inputTag = iConfig.getParameter<InputTag>("InputTagTTClusterDetSetVec");
    edGetToken_ = consumes<TTClusterDetSetVec>(inputTag);
    // book ES products
    esGetTokenSetup_ = esConsumes<Setup, SetupRcd, Transition::BeginRun>();
  }

  void AnalyzerDAQ::beginRun(const Run& iEvent, const EventSetup& iSetup) {
    // helper class to store configurations
    setup_ = &iSetup.getData(esGetTokenSetup_);
    // book histograms
    Service<TFileService> fs;
    TFileDirectory dir;
    dir = fs->mkdir("Modules");
    int maxOcc = 150;
    int numChannels = setup_->numDTCs() * setup_->numModulesPerDTC();
    hisModules_ = dir.make<TH1F>("His Module Occupancy", ";", maxOcc, -.5, maxOcc - .5);
    profModules_ = dir.make<TProfile>("Prof Module Occupancy", ";", numChannels, -.5, numChannels - .5);
    dir = fs->mkdir("DTCs");
    maxOcc = 3456;
    numChannels = setup_->numDTCs();
    hisDTCs_ = dir.make<TH1F>("His DTC Occupancy", ";", maxOcc / 16, -.5, maxOcc - .5);
    profDTCs_ = dir.make<TProfile>("Prof DTC Occupancy", ";", numChannels, -.5, numChannels - .5);
    dir = fs->mkdir("Tracker");
    maxOcc = pow(2, 29);
    hisTracker_ = dir.make<TH1F>("His Tracker Occupancy", ";", maxOcc * pow(2., -12), -.5, maxOcc - .5);
  }

  void AnalyzerDAQ::analyze(const Event& iEvent, const EventSetup& iSetup) {
    // read in original TTCluster collection
    Handle<TTClusterDetSetVec> handle;
    iEvent.getByToken<TTClusterDetSetVec>(edGetToken_, handle);
    // apply cabling map, reorganise cluster collections
    vector<vector<deque<TTClusterRef>>> dtcs(setup_->numDTCs(),
                                             vector<deque<TTClusterRef>>(setup_->numModulesPerDTC()));
    for (auto itModule = handle->begin(); itModule != handle->end(); itModule++) {
      // DetSetVec->detId - 1 or + 0 = tk layout det id depending from which of both sensor planes the cluster has been constructed
      const DetId& detIdModule = itModule->detId();
      const int offset = setup_->trackerTopology()->isLower(detIdModule) ? 0 : setup_->offsetDetIdTP();
      const DetId detId = detIdModule + offset;
      // corresponding sensor module
      SensorModule* sm = setup_->sensorModule(detId);
      // empty cluster collection
      deque<TTClusterRef>& module = dtcs[sm->dtcId()][sm->modId()];
      for (TTClusterDetSet::const_iterator itCluster = itModule->begin(); itCluster != itModule->end(); itCluster++)
        module.emplace_back(makeRefTo(handle, itCluster));
    }
    // analyze organized TTCluster collections
    int iDTC(0);
    int iModule(0);
    int nAll(0);
    for (const vector<deque<TTClusterRef>>& dtc : dtcs) {
      int nCluster(0);
      for (const deque<TTClusterRef>& module : dtc) {
        nCluster += module.size();
        hisModules_->Fill(module.size());
        profModules_->Fill(iModule++, module.size());
      }
      nAll += nCluster;
      hisDTCs_->Fill(nCluster);
      profDTCs_->Fill(iDTC++, nCluster);
    }
    hisTracker_->Fill(nAll);
  }

}  // namespace trackerDTC

DEFINE_FWK_MODULE(trackerDTC::AnalyzerDAQ);

repository: cms-sw/cmssw

repo_name: cms-sw/cmssw

extension: cc


text:
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#endif /* _WIN32 */

#include "llama_debug/binary/mmap_file.h"

namespace llama_debug {

mmap_file::mmap_file(const std::string &filename)
{
  if (!init(filename)) {
    fprintf(stderr, "Couldn't create file\n");
  }
}

bool mmap_file::init(const std::string &filename)
{
#ifdef _WIN32
  m_file = CreateFile(filename.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  if (m_file == INVALID_HANDLE_VALUE) {
    return false;
  }

  m_size = GetFileSize(m_file, NULL);

  m_map_file = CreateFileMapping(m_file, NULL, PAGE_READONLY, 0, 0, NULL);
  if (m_map_file == 0) {
    CloseHandle(m_file);
    return false;
  }

  m_ptr = (uint8_t *)MapViewOfFile(m_map_file, FILE_MAP_READ, 0, 0, 0);
  if (m_ptr == 0) {
    CloseHandle(m_file);
    CloseHandle(m_map_file);
    return false;
  }
  return true;
#endif
  return false;
}

void mmap_file::close()
{
#ifdef _WIN32
  UnmapViewOfFile((LPVOID)m_ptr);
  CloseHandle(m_map_file);
  CloseHandle(m_file);
#endif
}

}// namespace llama_debug

repository: jacob-doll/LlamaDebug

repo_name: jacob-doll/LlamaDebug

extension: cpp


text:
package grafana

import (
	"context"
	"fmt"
	"net/http"
	"path"
	"time"

	"github.com/segmentio/objconv"
)

// QueryHandler is the handler for the /query endpoint in the
// simple-json-datasource API.
type QueryHandler interface {
	// ServeQuery is expected to reply with a list of data points for the given
	// "target" and time range (or a set of rows for table requests).
	//
	// Note: my understanding is that "target" is some kind of identifier that
	// describes some data set in the source (like a SQL query for example), but
	// it's treated as an opaque blob of data by Grafana itself.
	ServeQuery(ctx context.Context, res QueryResponse, req *QueryRequest) error
}

// QueryHandlerFunc makes it possible to use regular function types as query
// handlers.
type QueryHandlerFunc func(context.Context, QueryResponse, *QueryRequest) error

// ServeQuery calls f, satisfies the QueryHandler interface.
func (f QueryHandlerFunc) ServeQuery(ctx context.Context, res QueryResponse, req *QueryRequest) error {
	return f(ctx, res, req)
}

// QueryResponse is an interface used to respond to a search request.
type QueryResponse interface {
	// Timeserie returns a TimeserieWriter which can be used to output the
	// datapoint in response to a timeserie request.
	Timeserie(target string) TimeserieWriter

	// Table returns a TableWriter which can be used to output the rows in
	// response to a table request.
	Table(columns ...Column) TableWriter
}

// QueryRequest represents a request received on the /query endpoint.
type QueryRequest struct {
	From          time.Time
	To            time.Time
	Interval      time.Duration
	Targets       []Target
	MaxDataPoints int
}

// Target is a data structure representing the target of a query.
type Target struct {
	Query string     `json:"target"`
	RefID string     `json:"refId"`
	Type  TargetType `json:"type"`
}

// TargetType is an enumeration of the various target types supported by
// Grafana.
type TargetType string

// TargetTypes.
const (
	Timeserie TargetType = "timeserie"
	Table     TargetType = "table"
)

// TimeserieWriter is an interface used to write timeserie data in response to a
// query.
type TimeserieWriter interface {
	WriteDatapoint(value float64, time time.Time)
}

// TableWriter is an interface used to write timeserie data in response to a
// query.
type TableWriter interface {
	WriteRow(values ...interface{})
}

// Column is a data structure representing a table column.
type Column struct {
	Text string     `json:"text"`
	Type ColumnType `json:"type,omitempty"`
	Sort bool       `json:"sort,omitempty"`
	Desc bool       `json:"desc,omitempty"`
}

// Col constructs a new Column value from a text and column type.
func Col(text string, colType ColumnType) Column {
	return Column{Text: text, Type: colType}
}

// AscCol constructs a ne Column value from a text a column type, which is
// configured as a sorted column in ascending order.
func AscCol(text string, colType ColumnType) Column {
	return Column{Text: text, Type: colType, Sort: true}
}

// DescCol constructs a ne Column value from a text a column type, which is
// configured as a sorted column in descending order.
func DescCol(text string, colType ColumnType) Column {
	return Column{Text: text, Type: colType, Sort: true, Desc: true}
}

// ColumnType is an enumeration of the various column types supported by
// Grafana.
type ColumnType string

// ColumnTypes.
const (
	Untyped ColumnType = ""
	String  ColumnType = "string"
	Time    ColumnType = "time"
	Number  ColumnType = "number"
)

// NewQueryHandler returns a new http.Handler which delegates /query API calls
// to the given query handler.
func NewQueryHandler(handler QueryHandler) http.Handler {
	return handlerFunc(func(ctx context.Context, enc *objconv.StreamEncoder, dec *objconv.Decoder) error {
		req := queryRequest{}
		res := queryResponse{enc: enc}

		if err := dec.Decode(&req); err != nil {
			return err
		}

		if err := handler.ServeQuery(ctx, &res, &QueryRequest{
			From:          req.Range.From,
			To:            req.Range.To,
			Interval:      req.Interval,
			Targets:       req.Targets,
			MaxDataPoints: req.MaxDataPoints,
		}); err != nil {
			return err
		}

		return res.close()
	})
}

// HandleQuery installs a handler on /query.
func HandleQuery(mux *http.ServeMux, prefix string, handler QueryHandler) {
	mux.Handle(path.Join("/", prefix, "query"), NewQueryHandler(handler))
}

type queryRange struct {
	From time.Time `json:"from"`
	To   time.Time `json:"to"`
}

type queryRequest struct {
	Range         queryRange    `json:"range"`
	Interval      time.Duration `json:"interval"`
	Targets       []Target      `json:"targets"`
	MaxDataPoints int           `json:"maxDataPoints"`
}

type queryResponse struct {
	enc       *objconv.StreamEncoder
	timeserie *timeserie
	table     *table
}

func (res *queryResponse) Timeserie(target string) TimeserieWriter {
	res.flush()
	res.timeserie = &timeserie{
		Target:     target,
		Datapoints: make([]datapoint, 0, 100),
	}
	return res.timeserie
}

func (res *queryResponse) Table(columns ...Column) TableWriter {
	res.flush()
	res.table = &table{
		Columns: columns,
		Rows:    make([]row, 0, 100),
		Type:    "table",
	}
	return res.table
}

func (res *queryResponse) close() error {
	res.flush()
	return res.enc.Close()
}

func (res *queryResponse) flush() {
	if res.timeserie != nil {
		res.enc.Encode(res.timeserie)
		res.timeserie.closed = true
		res.timeserie = nil
	}

	if res.table != nil {
		res.enc.Encode(res.table)
		res.table.closed = true
		res.table = nil
	}
}

type datapoint struct {
	value float64
	time  int64
}

func (d datapoint) EncodeValue(e objconv.Encoder) error {
	i := 0
	return e.EncodeArray(2, func(e objconv.Encoder) error {
		switch i++; i {
		case 1:
			return e.Encode(d.value)
		default:
			return e.Encode(d.time)
		}
	})
}

type timeserie struct {
	Target     string      `json:"target"`
	Datapoints []datapoint `json:"datapoints"`
	closed     bool
}

func (t *timeserie) WriteDatapoint(value float64, time time.Time) {
	if t.closed {
		panic("writing to a timeserie after it was already flushed")
	}

	t.Datapoints = append(t.Datapoints, datapoint{
		value: value,
		time:  timestamp(time),
	})
}

type row []interface{}

type table struct {
	Columns []Column `json:"columns"`
	Rows    []row    `json:"rows"`
	Type    string   `json:"type"`
	closed  bool
}

func (t *table) WriteRow(values ...interface{}) {
	if t.closed {
		panic("writing to a table after it was already flushed")
	}

	if len(values) != len(t.Columns) {
		panic(fmt.Sprintf("row value count doesn't match the number of columns, expected %d values but got %d", len(t.Columns), len(values)))
	}

	row := make(row, len(values))
	copy(row, values)

	for i := range row {
		if t, ok := row[i].(time.Time); ok {
			row[i] = timestamp(t)
		}
	}

	t.Rows = append(t.Rows, row)
}

func timestamp(t time.Time) int64 {
	return t.UnixNano() / int64(time.Millisecond)
}

repository: segmentio/stats

repo_name: segmentio/stats

branch_name: refs/heads/main

gha_license_id: MIT