text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="8.0.1">
<drawing>
<settings>
<setting alwaysvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.05" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.025" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="90" name="Modules" color="5" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="yes" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="yes" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="yes" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="yes" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="yes" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="7" fill="1" visible="no" active="yes"/>
<layer number="114" name="Badge_Outline" color="7" fill="1" visible="yes" active="yes"/>
<layer number="115" name="ReferenceISLANDS" color="7" fill="1" visible="yes" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="yes" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="no" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="no" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="no" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="no" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="yes" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="yes" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="yes" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="yes" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="yes" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="yes" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="yes" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="yes" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="yes" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="no" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="no" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="yes" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="no" active="yes"/>
</layers>
<board>
<plain>
<wire x1="0" y1="0" x2="100" y2="0" width="0" layer="20"/>
<wire x1="100" y1="0" x2="100" y2="80" width="0" layer="20"/>
<wire x1="100" y1="80" x2="0" y2="80" width="0" layer="20"/>
<wire x1="0" y1="80" x2="0" y2="0" width="0" layer="20"/>
</plain>
<libraries>
<library name="AVX_By_element14_Batch_1">
<description>Developed by element14 :

element14 CAD Library consolidation.ulp
at 30/04/2012 16:26:10</description>
<packages>
<package name="CAPC3216X178N">
<smd name="1" x="-1.4986" y="0" dx="1.1176" dy="1.8034" layer="1"/>
<smd name="2" x="1.4986" y="0" dx="1.1176" dy="1.8034" layer="1"/>
<wire x1="-0.6096" y1="-0.889" x2="0.6096" y2="-0.889" width="0.1524" layer="21"/>
<wire x1="0.6096" y1="0.889" x2="-0.6096" y2="0.889" width="0.1524" layer="21"/>
<wire x1="-0.9398" y1="-0.889" x2="-0.9398" y2="0.889" width="0.1524" layer="51"/>
<wire x1="-0.9398" y1="0.889" x2="-1.7018" y2="0.889" width="0.1524" layer="51"/>
<wire x1="-1.7018" y1="-0.889" x2="-0.9398" y2="-0.889" width="0.1524" layer="51"/>
<wire x1="0.9398" y1="0.889" x2="0.9398" y2="-0.889" width="0.1524" layer="51"/>
<wire x1="0.9398" y1="-0.889" x2="1.7018" y2="-0.889" width="0.1524" layer="51"/>
<wire x1="1.7018" y1="0.889" x2="0.9398" y2="0.889" width="0.1524" layer="51"/>
<wire x1="-0.9398" y1="-0.889" x2="0.9398" y2="-0.889" width="0.1524" layer="51"/>
<wire x1="1.7018" y1="-0.889" x2="1.7018" y2="0.889" width="0.1524" layer="51"/>
<wire x1="0.9398" y1="0.889" x2="-0.9398" y2="0.889" width="0.1524" layer="51"/>
<wire x1="-1.7018" y1="0.889" x2="-1.7018" y2="-0.889" width="0.1524" layer="51"/>
<text x="-4.4958" y="1.6764" size="2.0828" layer="25" ratio="10" rot="SR0">>NAME</text>
<text x="-5.7404" y="-3.8354" size="2.0828" layer="27" ratio="10" rot="SR0">>VALUE</text>
</package>
</packages>
</library>
<library name="01_SparkFun">
<description>
SparkFun Electronics' preferred foot prints

We've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="1206">
<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-0.965" y1="0.787" x2="0.965" y2="0.787" width="0.1016" layer="51"/>
<wire x1="-0.965" y1="-0.787" x2="0.965" y2="-0.787" width="0.1016" layer="51"/>
<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
<text x="-1.27" y="1.143" size="0.4064" layer="25">>NAME</text>
<text x="-1.397" y="-1.524" size="0.4064" layer="27">>VALUE</text>
<rectangle x1="-1.7018" y1="-0.8509" x2="-0.9517" y2="0.8491" layer="51"/>
<rectangle x1="0.9517" y1="-0.8491" x2="1.7018" y2="0.8509" layer="51"/>
<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
</package>
</packages>
</library>
<library name="01_FAB_Hello">
<packages>
<package name="CSM-7X-DU">
<description>SMD CRYSTAL

Source: www.ecsxtal.com .. Crystal 3.6864MHz CSM_7X_DU.PDF</description>
<wire x1="-5.575" y1="2.3" x2="-2.725" y2="2.3" width="0.2032" layer="51"/>
<wire x1="-2.725" y1="2.3" x2="2.75" y2="2.3" width="0.2032" layer="51"/>
<wire x1="2.75" y1="2.3" x2="5.55" y2="2.3" width="0.2032" layer="51"/>
<wire x1="5.55" y1="2.3" x2="5.55" y2="-2.3" width="0.2032" layer="51"/>
<wire x1="5.55" y1="-2.3" x2="-2.75" y2="-2.3" width="0.2032" layer="51"/>
<wire x1="-2.75" y1="-2.3" x2="-5.575" y2="-2.3" width="0.2032" layer="51"/>
<wire x1="-5.575" y1="-2.3" x2="-5.575" y2="2.3" width="0.2032" layer="51"/>
<wire x1="-2.75" y1="-2.3" x2="-2.725" y2="2.3" width="0.2032" layer="51" curve="-180"/>
<wire x1="2.75" y1="2.3" x2="2.725" y2="-2.3" width="0.2032" layer="51" curve="-180"/>
<smd name="1" x="-4.75" y="0" dx="5.5" dy="2" layer="1"/>
<smd name="2" x="4.75" y="0" dx="5.5" dy="2" layer="1"/>
<text x="-7.6288" y="2.5334" size="1.27" layer="25">>NAME</text>
<text x="-7.6288" y="-4.3114" size="1.27" layer="27">>VALUE</text>
</package>
<package name="1206">
<description>RESISTOR

chip</description>
<wire x1="0.9525" y1="-0.8128" x2="-0.9652" y2="-0.8128" width="0.1524" layer="51"/>
<wire x1="0.9525" y1="0.8128" x2="-0.9652" y2="0.8128" width="0.1524" layer="51"/>
<wire x1="-2.3206" y1="0.983" x2="2.3206" y2="0.983" width="0.0508" layer="39"/>
<wire x1="2.3206" y1="0.983" x2="2.3206" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="2.3206" y1="-0.983" x2="-2.3206" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-2.3206" y1="-0.983" x2="-2.3206" y2="0.983" width="0.0508" layer="39"/>
<smd name="2" x="1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
<smd name="1" x="-1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
<text x="-1.397" y="1.143" size="1.27" layer="25">>NAME</text>
<text x="-1.397" y="-2.413" size="1.27" layer="27">>VALUE</text>
<rectangle x1="-1.6891" y1="-0.8763" x2="-0.9525" y2="0.8763" layer="51"/>
<rectangle x1="0.9525" y1="-0.8763" x2="1.6891" y2="0.8763" layer="51"/>
<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
</package>
</packages>
</library>
<library name="fab">
<packages>
<package name="2X03SMD">
<smd name="1" x="-2.54" y="2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="3" x="-2.54" y="0" dx="2.54" dy="1.27" layer="1"/>
<smd name="5" x="-2.54" y="-2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="2" x="2.92" y="2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="4" x="2.92" y="0" dx="2.54" dy="1.27" layer="1"/>
<smd name="6" x="2.92" y="-2.54" dx="2.54" dy="1.27" layer="1"/>
<text x="-5.08" y="2.54" size="1.27" layer="27">1</text>
<text x="-3.81" y="3.81" size="1.27" layer="25">>NAME</text>
<text x="-3.81" y="-5.08" size="1.27" layer="27">>VALUE</text>
</package>
<package name="R1206">
<description>RESISTOR</description>
<wire x1="0.9525" y1="-0.8128" x2="-0.9652" y2="-0.8128" width="0.1524" layer="51"/>
<wire x1="0.9525" y1="0.8128" x2="-0.9652" y2="0.8128" width="0.1524" layer="51"/>
<wire x1="-2.473" y1="0.983" x2="2.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="2.473" y1="0.983" x2="2.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="2.473" y1="-0.983" x2="-2.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-2.473" y1="-0.983" x2="-2.473" y2="0.983" width="0.0508" layer="39"/>
<smd name="2" x="1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
<smd name="1" x="-1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
<text x="-1.27" y="1.27" size="1.27" layer="25">>NAME</text>
<text x="-1.27" y="-2.54" size="1.27" layer="27">>VALUE</text>
<rectangle x1="-1.6891" y1="-0.8763" x2="-0.9525" y2="0.8763" layer="51"/>
<rectangle x1="0.9525" y1="-0.8763" x2="1.6891" y2="0.8763" layer="51"/>
<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
</package>
<package name="R1206FAB">
<wire x1="-2.032" y1="1.016" x2="2.032" y2="1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="1.016" x2="2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="-1.016" x2="-2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="-2.032" y1="-1.016" x2="-2.032" y2="1.016" width="0.127" layer="21"/>
<smd name="1" x="-1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<smd name="2" x="1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<text x="-1.778" y="1.27" size="1.016" layer="25" ratio="15">>NAME</text>
<text x="-1.778" y="-2.286" size="1.016" layer="27" ratio="15">>VALUE</text>
</package>
<package name="1X06SMD">
<smd name="1" x="0" y="6.35" dx="2.54" dy="1.27" layer="1"/>
<smd name="2" x="0" y="3.81" dx="2.54" dy="1.27" layer="1"/>
<smd name="3" x="0" y="1.27" dx="2.54" dy="1.27" layer="1"/>
<smd name="4" x="0" y="-1.27" dx="2.54" dy="1.27" layer="1"/>
<smd name="5" x="0" y="-3.81" dx="2.54" dy="1.27" layer="1"/>
<smd name="6" x="0" y="-6.35" dx="2.54" dy="1.27" layer="1"/>
<text x="-1.905" y="-3.175" size="1.27" layer="25" rot="R90">>NAME</text>
</package>
<package name="LED1206FAB">
<description>LED1206 FAB style (smaller pads to allow trace between)</description>
<wire x1="-2.032" y1="1.016" x2="2.032" y2="1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="1.016" x2="2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="2.032" y1="-1.016" x2="-2.032" y2="-1.016" width="0.127" layer="21"/>
<wire x1="-2.032" y1="-1.016" x2="-2.032" y2="1.016" width="0.127" layer="21"/>
<smd name="1" x="-1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<smd name="2" x="1.651" y="0" dx="1.27" dy="1.905" layer="1"/>
<text x="-1.778" y="1.27" size="1.016" layer="25" ratio="15">>NAME</text>
<text x="-1.778" y="-2.286" size="1.016" layer="27" ratio="15">>VALUE</text>
</package>
</packages>
</library>
<library name="atmega8">
<packages>
<package name="TQFP32-08">
<description>Thin Plasic Quad Flat Package Grid 0.8 mm</description>
<wire x1="3.505" y1="3.505" x2="3.505" y2="-3.505" width="0.1524" layer="21"/>
<wire x1="3.505" y1="-3.505" x2="-3.505" y2="-3.505" width="0.1524" layer="21"/>
<wire x1="-3.505" y1="-3.505" x2="-3.505" y2="3.15" width="0.1524" layer="21"/>
<wire x1="-3.15" y1="3.505" x2="3.505" y2="3.505" width="0.1524" layer="21"/>
<wire x1="-3.15" y1="3.505" x2="-3.505" y2="3.15" width="0.1524" layer="21"/>
<circle x="-2.7432" y="2.7432" radius="0.3592" width="0.1524" layer="21"/>
<smd name="1" x="-4.4196" y="2.8" dx="1.016" dy="0.4064" layer="1"/>
<smd name="2" x="-4.1656" y="2" dx="1.524" dy="0.3556" layer="1"/>
<smd name="3" x="-4.1656" y="1.2" dx="1.524" dy="0.3556" layer="1"/>
<smd name="4" x="-4.1656" y="0.4" dx="1.524" dy="0.3556" layer="1"/>
<smd name="5" x="-4.1656" y="-0.4" dx="1.524" dy="0.3556" layer="1"/>
<smd name="6" x="-4.1656" y="-1.2" dx="1.524" dy="0.3556" layer="1"/>
<smd name="7" x="-4.1656" y="-2" dx="1.524" dy="0.3556" layer="1"/>
<smd name="8" x="-4.4196" y="-2.8" dx="1.016" dy="0.4064" layer="1"/>
<smd name="9" x="-2.8" y="-4.4196" dx="0.4064" dy="1.016" layer="1"/>
<smd name="10" x="-2" y="-4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="11" x="-1.2" y="-4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="12" x="-0.4" y="-4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="13" x="0.4" y="-4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="14" x="1.2" y="-4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="15" x="2" y="-4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="16" x="2.8" y="-4.4196" dx="0.4064" dy="1.016" layer="1"/>
<smd name="17" x="4.4196" y="-2.8" dx="1.016" dy="0.4064" layer="1"/>
<smd name="18" x="4.1656" y="-2" dx="1.524" dy="0.3556" layer="1"/>
<smd name="19" x="4.1656" y="-1.2" dx="1.524" dy="0.3556" layer="1"/>
<smd name="20" x="4.1656" y="-0.4" dx="1.524" dy="0.3556" layer="1"/>
<smd name="21" x="4.1656" y="0.4" dx="1.524" dy="0.3556" layer="1"/>
<smd name="22" x="4.1656" y="1.2" dx="1.524" dy="0.3556" layer="1"/>
<smd name="23" x="4.1656" y="2" dx="1.524" dy="0.3556" layer="1"/>
<smd name="24" x="4.4196" y="2.8" dx="1.016" dy="0.4064" layer="1"/>
<smd name="25" x="2.8" y="4.4196" dx="0.4064" dy="1.016" layer="1"/>
<smd name="26" x="2" y="4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="27" x="1.2" y="4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="28" x="0.4" y="4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="29" x="-0.4" y="4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="30" x="-1.2" y="4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="31" x="-2" y="4.1656" dx="0.3556" dy="1.524" layer="1"/>
<smd name="32" x="-2.8" y="4.4196" dx="0.4064" dy="1.016" layer="1"/>
<text x="-2.7686" y="5.08" size="0.8128" layer="25">>NAME</text>
<text x="-3.0226" y="-1.27" size="0.8128" layer="27">>VALUE</text>
<rectangle x1="-4.5466" y1="2.5714" x2="-3.556" y2="3.0286" layer="51"/>
<rectangle x1="-4.5466" y1="1.7714" x2="-3.556" y2="2.2286" layer="51"/>
<rectangle x1="-4.5466" y1="0.9714" x2="-3.556" y2="1.4286" layer="51"/>
<rectangle x1="-4.5466" y1="0.1714" x2="-3.556" y2="0.6286" layer="51"/>
<rectangle x1="-4.5466" y1="-0.6286" x2="-3.556" y2="-0.1714" layer="51"/>
<rectangle x1="-4.5466" y1="-1.4286" x2="-3.556" y2="-0.9714" layer="51"/>
<rectangle x1="-4.5466" y1="-2.2286" x2="-3.556" y2="-1.7714" layer="51"/>
<rectangle x1="-4.5466" y1="-3.0286" x2="-3.556" y2="-2.5714" layer="51"/>
<rectangle x1="-3.0286" y1="-4.5466" x2="-2.5714" y2="-3.556" layer="51"/>
<rectangle x1="-2.2286" y1="-4.5466" x2="-1.7714" y2="-3.556" layer="51"/>
<rectangle x1="-1.4286" y1="-4.5466" x2="-0.9714" y2="-3.556" layer="51"/>
<rectangle x1="-0.6286" y1="-4.5466" x2="-0.1714" y2="-3.556" layer="51"/>
<rectangle x1="0.1714" y1="-4.5466" x2="0.6286" y2="-3.556" layer="51"/>
<rectangle x1="0.9714" y1="-4.5466" x2="1.4286" y2="-3.556" layer="51"/>
<rectangle x1="1.7714" y1="-4.5466" x2="2.2286" y2="-3.556" layer="51"/>
<rectangle x1="2.5714" y1="-4.5466" x2="3.0286" y2="-3.556" layer="51"/>
<rectangle x1="3.556" y1="-3.0286" x2="4.5466" y2="-2.5714" layer="51"/>
<rectangle x1="3.556" y1="-2.2286" x2="4.5466" y2="-1.7714" layer="51"/>
<rectangle x1="3.556" y1="-1.4286" x2="4.5466" y2="-0.9714" layer="51"/>
<rectangle x1="3.556" y1="-0.6286" x2="4.5466" y2="-0.1714" layer="51"/>
<rectangle x1="3.556" y1="0.1714" x2="4.5466" y2="0.6286" layer="51"/>
<rectangle x1="3.556" y1="0.9714" x2="4.5466" y2="1.4286" layer="51"/>
<rectangle x1="3.556" y1="1.7714" x2="4.5466" y2="2.2286" layer="51"/>
<rectangle x1="3.556" y1="2.5714" x2="4.5466" y2="3.0286" layer="51"/>
<rectangle x1="2.5714" y1="3.556" x2="3.0286" y2="4.5466" layer="51"/>
<rectangle x1="1.7714" y1="3.556" x2="2.2286" y2="4.5466" layer="51"/>
<rectangle x1="0.9714" y1="3.556" x2="1.4286" y2="4.5466" layer="51"/>
<rectangle x1="0.1714" y1="3.556" x2="0.6286" y2="4.5466" layer="51"/>
<rectangle x1="-0.6286" y1="3.556" x2="-0.1714" y2="4.5466" layer="51"/>
<rectangle x1="-1.4286" y1="3.556" x2="-0.9714" y2="4.5466" layer="51"/>
<rectangle x1="-2.2286" y1="3.556" x2="-1.7714" y2="4.5466" layer="51"/>
<rectangle x1="-3.0286" y1="3.556" x2="-2.5714" y2="4.5466" layer="51"/>
</package>
</packages>
</library>
<library name="con-molex">
<description>Molex Connectors

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="22-23-2021">
<description>.100" (2.54mm) Center Headers - 2 Pin</description>
<wire x1="-2.54" y1="3.175" x2="2.54" y2="3.175" width="0.254" layer="21"/>
<wire x1="2.54" y1="3.175" x2="2.54" y2="1.27" width="0.254" layer="21"/>
<wire x1="2.54" y1="1.27" x2="2.54" y2="-3.175" width="0.254" layer="21"/>
<wire x1="2.54" y1="-3.175" x2="-2.54" y2="-3.175" width="0.254" layer="21"/>
<wire x1="-2.54" y1="-3.175" x2="-2.54" y2="1.27" width="0.254" layer="21"/>
<wire x1="-2.54" y1="1.27" x2="-2.54" y2="3.175" width="0.254" layer="21"/>
<wire x1="-2.54" y1="1.27" x2="2.54" y2="1.27" width="0.254" layer="21"/>
<pad name="1" x="-1.27" y="0" drill="1" shape="long" rot="R90"/>
<pad name="2" x="1.27" y="0" drill="1" shape="long" rot="R90"/>
<text x="-2.54" y="3.81" size="1.016" layer="25" ratio="10">>NAME</text>
<text x="-2.54" y="-5.08" size="1.016" layer="27" ratio="10">>VALUE</text>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="default *">
<description language="de">EAGLE Design Rules

Die Standard-Design-Rules sind so gewählt, dass sie für
die meisten Anwendungen passen. Sollte ihre Platine
besondere Anforderungen haben, treffen Sie die erforderlichen
Einstellungen hier und speichern die Design Rules unter
einem neuen Namen ab.</description>
<description language="en">EAGLE Design Rules

The default Design Rules have been set to cover
a wide range of applications. Your particular design
may have different requirements, so please make the
necessary adjustments and save your customized
design rules under a new name.</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm"/>
<param name="mtIsolate" value="1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm"/>
<param name="mdWireWire" value="0.3mm"/>
<param name="mdWirePad" value="0.2mm"/>
<param name="mdWireVia" value="0.2mm"/>
<param name="mdPadPad" value="0.2mm"/>
<param name="mdPadVia" value="0.2mm"/>
<param name="mdViaVia" value="0.2mm"/>
<param name="mdSmdPad" value="0.2mm"/>
<param name="mdSmdVia" value="0.2mm"/>
<param name="mdSmdSmd" value="0.2mm"/>
<param name="mdViaViaSameLayer" value="8mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="40mil"/>
<param name="mdDrill" value="8mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="0.6mm"/>
<param name="msDrill" value="24mil"/>
<param name="msMicroVia" value="9.99mm"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0.25"/>
<param name="rvPadInner" value="0.25"/>
<param name="rvPadBottom" value="0.25"/>
<param name="rvViaOuter" value="0.25"/>
<param name="rvViaInner" value="0.25"/>
<param name="rvMicroViaOuter" value="0.25"/>
<param name="rvMicroViaInner" value="0.25"/>
<param name="rlMinPadTop" value="10mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="10mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="10mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="8mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="8mil"/>
<param name="rlMaxViaInner" value="20mil"/>
<param name="rlMinMicroViaOuter" value="4mil"/>
<param name="rlMaxMicroViaOuter" value="20mil"/>
<param name="rlMinMicroViaInner" value="4mil"/>
<param name="rlMaxMicroViaInner" value="20mil"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="4mil"/>
<param name="mlMaxStopFrame" value="4mil"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0mil"/>
<param name="mlViaStopLimit" value="0mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="10mil"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkGrid" value="0"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="50mil"/>
<param name="AutoGrid" value="1"/>
<param name="Efforts" value="2"/>
<param name="TopRouterVariant" value="1"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="a"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="0"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="C1" library="AVX_By_element14_Batch_1" package="CAPC3216X178N" value="22pF" x="48.26" y="45.72">
<attribute name="OC_FARNELL" value="-" x="48.26" y="45.72" size="1.778" layer="27" display="off"/>
<attribute name="VOLTAGERATING" value="10V" x="48.26" y="45.72" size="1.778" layer="27" display="off"/>
<attribute name="TOLERANCE" value="±20%" x="48.26" y="45.72" size="1.778" layer="27" display="off"/>
<attribute name="OC_NEWARK" value="12N3209" x="48.26" y="45.72" size="1.778" layer="27" display="off"/>
<attribute name="SUPPLIER" value="AVX" x="48.26" y="45.72" size="1.778" layer="27" display="off"/>
<attribute name="MPN" value="0612ZC225MAT2A" x="48.26" y="45.72" size="1.778" layer="27" display="off"/>
</element>
<element name="C2" library="AVX_By_element14_Batch_1" package="CAPC3216X178N" value="22pF" x="49.53" y="43.18">
<attribute name="OC_FARNELL" value="-" x="49.53" y="43.18" size="1.778" layer="27" display="off"/>
<attribute name="VOLTAGERATING" value="10V" x="49.53" y="43.18" size="1.778" layer="27" display="off"/>
<attribute name="TOLERANCE" value="±20%" x="49.53" y="43.18" size="1.778" layer="27" display="off"/>
<attribute name="OC_NEWARK" value="12N3209" x="49.53" y="43.18" size="1.778" layer="27" display="off"/>
<attribute name="SUPPLIER" value="AVX" x="49.53" y="43.18" size="1.778" layer="27" display="off"/>
<attribute name="MPN" value="0612ZC225MAT2A" x="49.53" y="43.18" size="1.778" layer="27" display="off"/>
</element>
<element name="C3" library="01_SparkFun" package="1206" value="10uF" x="10.16" y="68.58"/>
<element name="C4" library="01_SparkFun" package="1206" value="1uF" x="10.16" y="74.93"/>
<element name="C5" library="01_SparkFun" package="1206" value="100nF" x="24.13" y="74.93" rot="R270"/>
<element name="CRYSTAL" library="01_FAB_Hello" package="CSM-7X-DU" value="16Mhz" x="54.61" y="38.1" rot="R180">
<attribute name="OC_FARNELL" value="unknown" x="54.61" y="38.1" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="OC_NEWARK" value="unknown" x="54.61" y="38.1" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MF" value="" x="54.61" y="38.1" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MPN" value="" x="54.61" y="38.1" size="1.778" layer="27" rot="R180" display="off"/>
</element>
<element name="JP1" library="fab" package="2X03SMD" value="" x="6.35" y="55.88" rot="R180"/>
<element name="JP2" library="fab" package="2X03SMD" value="" x="60.96" y="67.31" rot="R90"/>
<element name="JP3" library="fab" package="2X03SMD" value="" x="60.96" y="53.34"/>
<element name="JP4" library="fab" package="2X03SMD" value="" x="26.67" y="46.99"/>
<element name="JP5" library="fab" package="2X03SMD" value="" x="52.07" y="67.31" rot="R270"/>
<element name="JP6" library="fab" package="2X03SMD" value="" x="21.59" y="55.88" rot="R180"/>
<element name="LED_GREEN" library="01_FAB_Hello" package="1206" value="" x="15.24" y="73.66" rot="R270"/>
<element name="MICRO" library="atmega8" package="TQFP32-08" value="ATMEGA328P-AU" x="48.26" y="53.34" rot="R90"/>
<element name="POWER" library="con-molex" package="22-23-2021" value="22-23-2021" x="6.35" y="46.99">
<attribute name="OC_FARNELL" value="1462926" x="6.35" y="46.99" size="1.778" layer="27" display="off"/>
<attribute name="OC_NEWARK" value="25C3832" x="6.35" y="46.99" size="1.778" layer="27" display="off"/>
<attribute name="MF" value="MOLEX" x="6.35" y="46.99" size="1.778" layer="27" display="off"/>
<attribute name="MPN" value="22-23-2021" x="6.35" y="46.99" size="1.778" layer="27" display="off"/>
</element>
<element name="R1" library="fab" package="R1206" value="499" x="10.16" y="71.12"/>
<element name="R10" library="fab" package="R1206FAB" value="" x="40.64" y="68.58"/>
<element name="R11" library="fab" package="R1206FAB" value="0" x="35.56" y="52.07" rot="R270"/>
<element name="R12" library="fab" package="R1206FAB" value="0" x="35.56" y="46.99" rot="R270"/>
<element name="R14" library="fab" package="R1206FAB" value="0" x="39.37" y="52.07" rot="R270"/>
<element name="R15" library="fab" package="R1206FAB" value="0" x="39.37" y="57.15" rot="R270"/>
<element name="R16" library="fab" package="R1206FAB" value="0" x="40.64" y="72.39" rot="R180"/>
<element name="R17" library="fab" package="R1206FAB" value="0" x="33.02" y="71.12" rot="R270"/>
<element name="R18" library="fab" package="R1206FAB" value="0" x="33.02" y="76.2"/>
<element name="R19" library="fab" package="R1206FAB" value="0" x="29.21" y="58.42" rot="R270"/>
<element name="R2" library="01_SparkFun" package="1206" value="499" x="20.32" y="74.93"/>
<element name="R20" library="fab" package="R1206FAB" value="0" x="25.4" y="41.91" rot="R180"/>
<element name="R21" library="fab" package="R1206FAB" value="0" x="21.59" y="63.5" rot="R180"/>
<element name="R22" library="fab" package="R1206FAB" value="0" x="21.59" y="66.04" rot="R180"/>
<element name="R3" library="fab" package="R1206FAB" value="0" x="40.64" y="76.2">
<attribute name="RESISTOR" value="0" x="40.64" y="76.2" size="1.778" layer="27" display="off"/>
</element>
<element name="R4" library="fab" package="R1206FAB" value="499" x="34.29" y="58.42"/>
<element name="R5" library="fab" package="R1206FAB" value="499" x="20.32" y="43.18" rot="R90"/>
<element name="R6" library="fab" package="R1206FAB" value="499" x="33.02" y="66.04" rot="R180"/>
<element name="R7" library="fab" package="R1206FAB" value="499" x="33.02" y="62.23" rot="R180"/>
<element name="R8" library="fab" package="R1206FAB" value="" x="27.94" y="74.93" rot="R270"/>
<element name="R9" library="fab" package="R1206FAB" value="" x="27.94" y="69.85" rot="R270"/>
<element name="U$1" library="fab" package="1X06SMD" value="FTDI-SMD-HEADER" x="13.97" y="52.07"/>
<element name="U$2" library="fab" package="1X06SMD" value="FTDI-SMD-HEADER" x="3.81" y="69.85"/>
<element name="U$3" library="fab" package="LED1206FAB" value="LEDFAB1206" x="48.26" y="76.2" rot="R180"/>
<element name="R23" library="fab" package="R1206FAB" value="0" x="39.37" y="46.99" rot="R270"/>
</elements>
<signals>
<signal name="VCC">
<contactref element="MICRO" pad="4"/>
<contactref element="POWER" pad="1"/>
<contactref element="LED_GREEN" pad="1"/>
<contactref element="C4" pad="1"/>
<contactref element="C5" pad="1"/>
<contactref element="C3" pad="1"/>
<contactref element="U$2" pad="1"/>
<contactref element="JP1" pad="6"/>
<contactref element="JP1" pad="2"/>
<contactref element="JP1" pad="4"/>
<contactref element="U$2" pad="2"/>
<contactref element="U$2" pad="3"/>
<contactref element="U$2" pad="4"/>
<contactref element="U$2" pad="5"/>
<contactref element="U$2" pad="6"/>
<contactref element="MICRO" pad="6"/>
<contactref element="MICRO" pad="18"/>
<contactref element="MICRO" pad="20"/>
<contactref element="R10" pad="2"/>
<contactref element="JP5" pad="6"/>
<wire x1="47.9425" y1="47.9425" x2="47.9425" y2="48.895" width="0.6" layer="1"/>
<wire x1="48.26" y1="47.625" x2="47.9425" y2="47.9425" width="0.6" layer="1"/>
<wire x1="48.895" y1="47.625" x2="48.26" y2="47.625" width="0.6" layer="1"/>
<wire x1="49.53" y1="48.26" x2="48.895" y2="47.625" width="0.6" layer="1"/>
<wire x1="49.53" y1="48.895" x2="49.53" y2="48.26" width="0.6" layer="1"/>
<wire x1="47.9425" y1="48.895" x2="47.86" y2="49.1744" width="0.6" layer="1"/>
<wire x1="49.53" y1="48.895" x2="49.46" y2="49.1744" width="0.6" layer="1"/>
<wire x1="50.165" y1="50.8" x2="50.165" y2="56.1975" width="0.6" layer="1"/>
<wire x1="50.165" y1="56.1975" x2="50.165" y2="57.4675" width="0.6" layer="1"/>
<wire x1="49.53" y1="50.165" x2="50.165" y2="50.8" width="0.6" layer="1"/>
<wire x1="49.53" y1="49.2125" x2="49.53" y2="50.165" width="0.6" layer="1"/>
<wire x1="50.165" y1="57.4675" x2="50.26" y2="57.5056" width="0.6" layer="1"/>
<wire x1="49.53" y1="49.2125" x2="49.46" y2="49.1744" width="0.6" layer="1"/>
<wire x1="48.5775" y1="63.1825" x2="48.5775" y2="62.5475" width="0.6" layer="1"/>
<wire x1="48.5775" y1="62.5475" x2="48.5775" y2="57.785" width="0.6" layer="1"/>
<wire x1="49.53" y1="64.135" x2="48.5775" y2="63.1825" width="0.6" layer="1"/>
<wire x1="48.5775" y1="57.785" x2="48.66" y2="57.5056" width="0.6" layer="1"/>
<wire x1="49.53" y1="64.135" x2="49.53" y2="64.39" width="0.6" layer="1"/>
<wire x1="48.5775" y1="62.5475" x2="42.545" y2="68.58" width="0.6" layer="1"/>
<wire x1="42.545" y1="68.58" x2="42.291" y2="68.58" width="0.6" layer="1"/>
<wire x1="48.895" y1="56.1975" x2="50.165" y2="56.1975" width="0.6" layer="1"/>
<wire x1="48.5775" y1="56.515" x2="48.895" y2="56.1975" width="0.6" layer="1"/>
<wire x1="48.5775" y1="57.4675" x2="48.5775" y2="56.515" width="0.6" layer="1"/>
<wire x1="48.5775" y1="57.4675" x2="48.66" y2="57.5056" width="0.6" layer="1"/>
<wire x1="3.4925" y1="55.88" x2="3.4925" y2="53.34" width="0.6" layer="1"/>
<wire x1="3.4925" y1="55.88" x2="3.4925" y2="58.42" width="0.6" layer="1"/>
<wire x1="3.4925" y1="55.88" x2="3.43" y2="55.88" width="0.6" layer="1"/>
<wire x1="5.08" y1="51.7525" x2="5.08" y2="46.99" width="0.6" layer="1"/>
<wire x1="3.4925" y1="53.34" x2="5.08" y2="51.7525" width="0.6" layer="1"/>
<wire x1="3.4925" y1="53.34" x2="3.43" y2="53.34" width="0.6" layer="1"/>
<wire x1="3.81" y1="66.04" x2="3.81" y2="63.5" width="0.6" layer="1"/>
<wire x1="3.81" y1="68.58" x2="8.76" y2="68.58" width="0.6" layer="1"/>
<wire x1="3.81" y1="68.58" x2="3.81" y2="66.04" width="0.6" layer="1"/>
<wire x1="3.81" y1="73.66" x2="3.81" y2="71.12" width="0.6" layer="1"/>
<wire x1="5.08" y1="74.93" x2="8.76" y2="74.93" width="0.6" layer="1"/>
<wire x1="3.81" y1="76.2" x2="5.08" y2="74.93" width="0.6" layer="1"/>
<wire x1="21.59" y1="76.5175" x2="24.13" y2="76.5175" width="0.6" layer="1"/>
<wire x1="19.685" y1="78.4225" x2="20.47875" y2="77.62875" width="0.6" layer="1"/>
<wire x1="20.47875" y1="77.62875" x2="21.59" y2="76.5175" width="0.6" layer="1"/>
<wire x1="12.3825" y1="78.4225" x2="19.685" y2="78.4225" width="0.6" layer="1"/>
<wire x1="8.89" y1="74.93" x2="12.3825" y2="78.4225" width="0.6" layer="1"/>
<wire x1="24.13" y1="76.5175" x2="24.13" y2="76.33" width="0.6" layer="1"/>
<wire x1="8.89" y1="74.93" x2="8.76" y2="74.93" width="0.6" layer="1"/>
<wire x1="16.51" y1="74.93" x2="15.24" y2="74.93" width="0.6" layer="1"/>
<wire x1="19.3675" y1="72.0725" x2="16.51" y2="74.93" width="0.6" layer="1"/>
<wire x1="25.0825" y1="72.0725" x2="19.3675" y2="72.0725" width="0.6" layer="1"/>
<wire x1="26.3525" y1="73.3425" x2="25.0825" y2="72.0725" width="0.6" layer="1"/>
<wire x1="26.3525" y1="74.295" x2="26.3525" y2="73.3425" width="0.6" layer="1"/>
<wire x1="27.305" y1="75.2475" x2="26.3525" y2="74.295" width="0.6" layer="1"/>
<wire x1="29.21" y1="75.2475" x2="27.305" y2="75.2475" width="0.6" layer="1"/>
<wire x1="29.5275" y1="75.565" x2="29.21" y2="75.2475" width="0.6" layer="1"/>
<wire x1="29.5275" y1="77.47" x2="29.5275" y2="75.565" width="0.6" layer="1"/>
<wire x1="29.21" y1="77.7875" x2="29.36875" y2="77.62875" width="0.6" layer="1"/>
<wire x1="29.36875" y1="77.62875" x2="29.5275" y2="77.47" width="0.6" layer="1"/>
<wire x1="20.6375" y1="77.7875" x2="29.21" y2="77.7875" width="0.6" layer="1"/>
<wire x1="15.24" y1="74.93" x2="15.24" y2="75.082" width="0.6" layer="1"/>
<wire x1="20.6375" y1="77.7875" x2="20.47875" y2="77.62875" width="0.6" layer="1"/>
<wire x1="5.08" y1="74.93" x2="3.81" y2="73.66" width="0.6" layer="1"/>
<wire x1="3.81" y1="71.12" x2="3.81" y2="68.58" width="0.6" layer="1"/>
<wire x1="3.4925" y1="63.1825" x2="3.4925" y2="58.42" width="0.6" layer="1"/>
<wire x1="3.81" y1="63.5" x2="3.4925" y2="63.1825" width="0.6" layer="1"/>
<wire x1="3.4925" y1="58.42" x2="3.43" y2="58.42" width="0.6" layer="1"/>
<wire x1="42.2275" y1="69.85" x2="42.2275" y2="68.58" width="0.6" layer="1"/>
<wire x1="40.3225" y1="71.755" x2="42.2275" y2="69.85" width="0.6" layer="1"/>
<wire x1="40.3225" y1="77.47" x2="40.3225" y2="71.755" width="0.6" layer="1"/>
<wire x1="40.005" y1="77.7875" x2="40.3225" y2="77.47" width="0.6" layer="1"/>
<wire x1="29.5275" y1="77.7875" x2="40.005" y2="77.7875" width="0.6" layer="1"/>
<wire x1="42.2275" y1="68.58" x2="42.291" y2="68.58" width="0.6" layer="1"/>
<wire x1="29.5275" y1="77.7875" x2="29.36875" y2="77.62875" width="0.6" layer="1"/>
</signal>
<signal name="N$2">
<contactref element="MICRO" pad="7"/>
<contactref element="CRYSTAL" pad="2"/>
<contactref element="C1" pad="2"/>
<wire x1="49.8475" y1="38.1" x2="49.8475" y2="45.72" width="0.6" layer="1"/>
<wire x1="49.8475" y1="45.72" x2="49.7586" y2="45.72" width="0.6" layer="1"/>
<wire x1="49.8475" y1="38.1" x2="49.86" y2="38.1" width="0.6" layer="1"/>
<wire x1="49.8475" y1="45.72" x2="50.26" y2="49.1744" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$9">
<contactref element="MICRO" pad="8"/>
<contactref element="CRYSTAL" pad="1"/>
<contactref element="C2" pad="2"/>
<wire x1="51.1175" y1="43.18" x2="51.1175" y2="48.895" width="0.6" layer="1"/>
<wire x1="51.1175" y1="48.895" x2="51.06" y2="48.9204" width="0.6" layer="1"/>
<wire x1="53.975" y1="43.18" x2="51.1175" y2="43.18" width="0.6" layer="1"/>
<wire x1="59.055" y1="38.1" x2="53.975" y2="43.18" width="0.6" layer="1"/>
<wire x1="51.1175" y1="43.18" x2="51.0286" y2="43.18" width="0.6" layer="1"/>
<wire x1="59.055" y1="38.1" x2="59.36" y2="38.1" width="0.6" layer="1"/>
</signal>
<signal name="GND">
<contactref element="C4" pad="2"/>
<contactref element="C5" pad="2"/>
<contactref element="C3" pad="2"/>
<contactref element="MICRO" pad="3"/>
<contactref element="C1" pad="1"/>
<contactref element="C2" pad="1"/>
<contactref element="POWER" pad="2"/>
<contactref element="R2" pad="2"/>
<contactref element="U$1" pad="1"/>
<contactref element="U$1" pad="2"/>
<contactref element="U$1" pad="3"/>
<contactref element="U$1" pad="4"/>
<contactref element="U$1" pad="5"/>
<contactref element="U$1" pad="6"/>
<contactref element="JP1" pad="1"/>
<contactref element="JP1" pad="3"/>
<contactref element="JP1" pad="5"/>
<contactref element="R1" pad="1"/>
<contactref element="MICRO" pad="5"/>
<contactref element="JP6" pad="2"/>
<contactref element="JP6" pad="4"/>
<contactref element="R8" pad="1"/>
<contactref element="JP5" pad="4"/>
<wire x1="46.99" y1="45.72" x2="46.99" y2="48.895" width="0.6" layer="1"/>
<wire x1="46.99" y1="48.895" x2="47.06" y2="49.1744" width="0.6" layer="1"/>
<wire x1="47.9425" y1="44.7675" x2="47.9425" y2="43.18" width="0.6" layer="1"/>
<wire x1="46.99" y1="45.72" x2="47.9425" y2="44.7675" width="0.6" layer="1"/>
<wire x1="46.99" y1="45.72" x2="46.7614" y2="45.72" width="0.6" layer="1"/>
<wire x1="52.07" y1="57.15" x2="52.07" y2="64.39" width="0.6" layer="1"/>
<wire x1="51.1175" y1="56.1975" x2="52.07" y2="57.15" width="0.6" layer="1"/>
<wire x1="51.1175" y1="50.4825" x2="51.1175" y2="56.1975" width="0.6" layer="1"/>
<wire x1="61.9125" y1="39.6875" x2="51.1175" y2="50.4825" width="0.6" layer="1"/>
<wire x1="62.23" y1="39.6875" x2="61.9125" y2="39.6875" width="0.6" layer="1"/>
<wire x1="62.865" y1="39.0525" x2="62.23" y2="39.6875" width="0.6" layer="1"/>
<wire x1="62.865" y1="37.1475" x2="62.865" y2="39.0525" width="0.6" layer="1"/>
<wire x1="62.23" y1="36.5125" x2="62.865" y2="37.1475" width="0.6" layer="1"/>
<wire x1="46.99" y1="36.5125" x2="62.23" y2="36.5125" width="0.6" layer="1"/>
<wire x1="46.355" y1="37.1475" x2="46.99" y2="36.5125" width="0.6" layer="1"/>
<wire x1="46.355" y1="41.5925" x2="46.355" y2="40.3225" width="0.6" layer="1"/>
<wire x1="46.355" y1="40.3225" x2="46.355" y2="37.1475" width="0.6" layer="1"/>
<wire x1="47.9425" y1="43.18" x2="46.355" y2="41.5925" width="0.6" layer="1"/>
<wire x1="47.9425" y1="43.18" x2="48.0314" y2="43.18" width="0.6" layer="1"/>
<wire x1="22.86" y1="74.93" x2="21.72" y2="74.93" width="0.6" layer="1"/>
<wire x1="24.13" y1="73.66" x2="22.86" y2="74.93" width="0.6" layer="1"/>
<wire x1="26.9875" y1="76.5175" x2="27.94" y2="76.5175" width="0.6" layer="1"/>
<wire x1="24.13" y1="73.66" x2="26.9875" y2="76.5175" width="0.6" layer="1"/>
<wire x1="27.94" y1="76.5175" x2="27.94" y2="76.581" width="0.6" layer="1"/>
<wire x1="24.13" y1="73.66" x2="24.13" y2="73.53" width="0.6" layer="1"/>
<wire x1="8.89" y1="71.12" x2="11.43" y2="68.58" width="0.6" layer="1"/>
<wire x1="11.43" y1="73.66" x2="11.43" y2="74.93" width="0.6" layer="1"/>
<wire x1="8.89" y1="71.12" x2="11.43" y2="73.66" width="0.6" layer="1"/>
<wire x1="11.43" y1="74.93" x2="11.56" y2="74.93" width="0.6" layer="1"/>
<wire x1="8.89" y1="71.12" x2="8.738" y2="71.12" width="0.6" layer="1"/>
<wire x1="8.89" y1="55.88" x2="8.89" y2="53.34" width="0.6" layer="1"/>
<wire x1="8.89" y1="55.88" x2="8.89" y2="58.42" width="0.6" layer="1"/>
<wire x1="18.7325" y1="55.88" x2="18.7325" y2="53.34" width="0.6" layer="1"/>
<wire x1="18.7325" y1="53.34" x2="18.67" y2="53.34" width="0.6" layer="1"/>
<wire x1="18.7325" y1="55.88" x2="18.67" y2="55.88" width="0.6" layer="1"/>
<wire x1="13.97" y1="58.42" x2="13.97" y2="55.88" width="0.6" layer="1"/>
<wire x1="13.97" y1="53.34" x2="13.97" y2="50.8" width="0.6" layer="1"/>
<wire x1="13.97" y1="48.26" x2="13.97" y2="46.99" width="0.6" layer="1"/>
<wire x1="13.97" y1="46.99" x2="13.97" y2="45.72" width="0.6" layer="1"/>
<wire x1="13.97" y1="46.99" x2="12.3825" y2="46.99" width="0.6" layer="1"/>
<wire x1="12.3825" y1="46.99" x2="7.62" y2="46.99" width="0.6" layer="1"/>
<wire x1="13.97" y1="48.26" x2="13.97" y2="50.8" width="0.6" layer="1"/>
<wire x1="13.97" y1="53.34" x2="13.97" y2="55.88" width="0.6" layer="1"/>
<wire x1="13.97" y1="53.34" x2="18.67" y2="53.34" width="0.6" layer="1"/>
<wire x1="13.97" y1="58.42" x2="11.43" y2="58.42" width="0.6" layer="1"/>
<wire x1="11.43" y1="58.42" x2="8.89" y2="58.42" width="0.6" layer="1"/>
<wire x1="11.43" y1="58.42" x2="11.43" y2="68.58" width="0.6" layer="1"/>
<wire x1="11.43" y1="68.58" x2="11.56" y2="68.58" width="0.6" layer="1"/>
<wire x1="19.05" y1="77.47" x2="21.59" y2="74.93" width="0.6" layer="1"/>
<wire x1="13.335" y1="77.47" x2="19.05" y2="77.47" width="0.6" layer="1"/>
<wire x1="11.7475" y1="75.8825" x2="13.335" y2="77.47" width="0.6" layer="1"/>
<wire x1="11.7475" y1="74.93" x2="11.7475" y2="75.8825" width="0.6" layer="1"/>
<wire x1="21.59" y1="74.93" x2="21.72" y2="74.93" width="0.6" layer="1"/>
<wire x1="11.7475" y1="74.93" x2="11.56" y2="74.93" width="0.6" layer="1"/>
<wire x1="19.05" y1="40.3225" x2="46.355" y2="40.3225" width="0.6" layer="1"/>
<wire x1="12.3825" y1="46.99" x2="19.05" y2="40.3225" width="0.6" layer="1"/>
<wire x1="47.06" y1="49.1744" x2="48.66" y2="49.1744" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$26">
<contactref element="LED_GREEN" pad="2"/>
<contactref element="R2" pad="1"/>
<wire x1="18.0975" y1="74.93" x2="18.92" y2="74.93" width="0.6" layer="1"/>
<wire x1="16.51" y1="76.5175" x2="18.0975" y2="74.93" width="0.6" layer="1"/>
<wire x1="13.97" y1="76.5175" x2="16.51" y2="76.5175" width="0.6" layer="1"/>
<wire x1="13.6525" y1="76.2" x2="13.97" y2="76.5175" width="0.6" layer="1"/>
<wire x1="13.6525" y1="73.9775" x2="13.6525" y2="76.2" width="0.6" layer="1"/>
<wire x1="15.24" y1="72.39" x2="13.6525" y2="73.9775" width="0.6" layer="1"/>
<wire x1="15.24" y1="72.39" x2="15.24" y2="72.238" width="0.6" layer="1"/>
</signal>
<signal name="N$10">
<contactref element="JP2" pad="5"/>
<contactref element="JP2" pad="6"/>
<contactref element="MICRO" pad="17"/>
<contactref element="JP5" pad="5"/>
<contactref element="U$3" pad="1"/>
<wire x1="51.1175" y1="62.5475" x2="51.1175" y2="57.785" width="0.6" layer="1"/>
<wire x1="50.8" y1="62.865" x2="51.1175" y2="62.5475" width="0.6" layer="1"/>
<wire x1="50.8" y1="66.04" x2="50.8" y2="62.865" width="0.6" layer="1"/>
<wire x1="49.53" y1="67.31" x2="50.8" y2="66.04" width="0.6" layer="1"/>
<wire x1="49.53" y1="69.85" x2="49.53" y2="67.31" width="0.6" layer="1"/>
<wire x1="51.1175" y1="57.785" x2="51.06" y2="57.7596" width="0.6" layer="1"/>
<wire x1="63.5" y1="64.77" x2="63.5" y2="70.23" width="0.6" layer="1"/>
<wire x1="49.8475" y1="73.66" x2="49.8475" y2="76.2" width="0.6" layer="1"/>
<wire x1="50.165" y1="73.3425" x2="49.8475" y2="73.66" width="0.6" layer="1"/>
<wire x1="50.4825" y1="73.3425" x2="50.165" y2="73.3425" width="0.6" layer="1"/>
<wire x1="51.7525" y1="74.6125" x2="50.4825" y2="73.3425" width="0.6" layer="1"/>
<wire x1="57.4675" y1="74.6125" x2="51.7525" y2="74.6125" width="0.6" layer="1"/>
<wire x1="57.785" y1="74.295" x2="57.4675" y2="74.6125" width="0.6" layer="1"/>
<wire x1="59.3725" y1="74.295" x2="57.785" y2="74.295" width="0.6" layer="1"/>
<wire x1="60.0075" y1="73.66" x2="59.3725" y2="74.295" width="0.6" layer="1"/>
<wire x1="61.9125" y1="73.66" x2="60.0075" y2="73.66" width="0.6" layer="1"/>
<wire x1="63.5" y1="72.0725" x2="61.9125" y2="73.66" width="0.6" layer="1"/>
<wire x1="63.5" y1="70.23" x2="63.5" y2="72.0725" width="0.6" layer="1"/>
<wire x1="49.8475" y1="76.2" x2="49.911" y2="76.2" width="0.6" layer="1"/>
<wire x1="49.53" y1="73.3425" x2="49.53" y2="69.85" width="0.6" layer="1"/>
<wire x1="49.8475" y1="73.66" x2="49.53" y2="73.3425" width="0.6" layer="1"/>
</signal>
<signal name="N$12">
<contactref element="MICRO" pad="29"/>
<contactref element="R19" pad="2"/>
<wire x1="42.8625" y1="53.0225" x2="43.815" y2="53.0225" width="0.6" layer="1"/>
<wire x1="40.9575" y1="54.9275" x2="42.8625" y2="53.0225" width="0.6" layer="1"/>
<wire x1="40.9575" y1="56.515" x2="40.9575" y2="54.9275" width="0.6" layer="1"/>
<wire x1="40.005" y1="57.4675" x2="40.9575" y2="56.515" width="0.6" layer="1"/>
<wire x1="38.1" y1="57.4675" x2="40.005" y2="57.4675" width="0.6" layer="1"/>
<wire x1="37.1475" y1="58.42" x2="38.1" y2="57.4675" width="0.6" layer="1"/>
<wire x1="37.1475" y1="59.69" x2="37.1475" y2="58.42" width="0.6" layer="1"/>
<wire x1="36.83" y1="60.0075" x2="37.1475" y2="59.69" width="0.6" layer="1"/>
<wire x1="34.925" y1="60.0075" x2="36.83" y2="60.0075" width="0.6" layer="1"/>
<wire x1="33.9725" y1="59.055" x2="34.925" y2="60.0075" width="0.6" layer="1"/>
<wire x1="33.9725" y1="57.15" x2="33.9725" y2="59.055" width="0.6" layer="1"/>
<wire x1="33.655" y1="56.8325" x2="33.9725" y2="57.15" width="0.6" layer="1"/>
<wire x1="29.21" y1="56.8325" x2="33.655" y2="56.8325" width="0.6" layer="1"/>
<wire x1="43.815" y1="53.0225" x2="44.0944" y2="52.94" width="0.6" layer="1"/>
<wire x1="29.21" y1="56.8325" x2="29.21" y2="56.769" width="0.6" layer="1"/>
</signal>
<signal name="N$6">
<contactref element="MICRO" pad="12"/>
<contactref element="JP3" pad="5"/>
<wire x1="52.4256" y1="52.94" x2="58.42" y2="50.8" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$20">
<contactref element="MICRO" pad="21"/>
</signal>
<signal name="N$5">
<contactref element="MICRO" pad="13"/>
<contactref element="JP3" pad="3"/>
<wire x1="58.1025" y1="53.6575" x2="52.705" y2="53.6575" width="0.6" layer="1"/>
<wire x1="58.42" y1="53.34" x2="58.1025" y2="53.6575" width="0.6" layer="1"/>
<wire x1="52.705" y1="53.6575" x2="52.4256" y2="53.74" width="0.6" layer="1"/>
</signal>
<signal name="N$7">
<contactref element="MICRO" pad="11"/>
<contactref element="JP3" pad="6"/>
<wire x1="62.5475" y1="52.07" x2="52.705" y2="52.07" width="0.6" layer="1"/>
<wire x1="63.8175" y1="50.8" x2="62.5475" y2="52.07" width="0.6" layer="1"/>
<wire x1="52.705" y1="52.07" x2="52.4256" y2="52.14" width="0.6" layer="1"/>
<wire x1="63.8175" y1="50.8" x2="63.88" y2="50.8" width="0.6" layer="1"/>
</signal>
<signal name="N$4">
<contactref element="MICRO" pad="14"/>
<contactref element="JP3" pad="1"/>
<wire x1="52.4256" y1="54.54" x2="58.42" y2="55.88" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$8">
<contactref element="MICRO" pad="9"/>
<contactref element="JP3" pad="2"/>
<wire x1="55.88" y1="50.4825" x2="52.705" y2="50.4825" width="0.6" layer="1"/>
<wire x1="56.8325" y1="49.53" x2="55.88" y2="50.4825" width="0.6" layer="1"/>
<wire x1="65.405" y1="49.53" x2="56.8325" y2="49.53" width="0.6" layer="1"/>
<wire x1="65.7225" y1="49.8475" x2="65.405" y2="49.53" width="0.6" layer="1"/>
<wire x1="65.7225" y1="54.2925" x2="65.7225" y2="49.8475" width="0.6" layer="1"/>
<wire x1="64.135" y1="55.88" x2="65.7225" y2="54.2925" width="0.6" layer="1"/>
<wire x1="52.705" y1="50.4825" x2="52.6796" y2="50.54" width="0.6" layer="1"/>
<wire x1="64.135" y1="55.88" x2="63.88" y2="55.88" width="0.6" layer="1"/>
</signal>
<signal name="N$11">
<contactref element="MICRO" pad="10"/>
<contactref element="JP3" pad="4"/>
<wire x1="52.4256" y1="51.34" x2="63.88" y2="53.34" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$16">
<contactref element="MICRO" pad="26"/>
<contactref element="R6" pad="1"/>
<wire x1="44.0944" y1="55.34" x2="34.671" y2="66.04" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$41">
<contactref element="JP4" pad="6"/>
<contactref element="R12" pad="2"/>
<wire x1="30.48" y1="45.085" x2="35.56" y2="45.085" width="0.6" layer="1"/>
<wire x1="29.845" y1="44.45" x2="30.48" y2="45.085" width="0.6" layer="1"/>
<wire x1="35.56" y1="45.085" x2="35.56" y2="45.339" width="0.6" layer="1"/>
<wire x1="29.845" y1="44.45" x2="29.59" y2="44.45" width="0.6" layer="1"/>
</signal>
<signal name="N$14">
<contactref element="MICRO" pad="24"/>
<contactref element="R4" pad="1"/>
<wire x1="39.37" y1="63.8175" x2="45.4025" y2="57.785" width="0.6" layer="1"/>
<wire x1="33.655" y1="63.8175" x2="39.37" y2="63.8175" width="0.6" layer="1"/>
<wire x1="32.7025" y1="62.865" x2="33.655" y2="63.8175" width="0.6" layer="1"/>
<wire x1="32.7025" y1="58.42" x2="32.7025" y2="62.865" width="0.6" layer="1"/>
<wire x1="45.4025" y1="57.785" x2="45.46" y2="57.7596" width="0.6" layer="1"/>
<wire x1="32.7025" y1="58.42" x2="32.639" y2="58.42" width="0.6" layer="1"/>
</signal>
<signal name="N$19">
<contactref element="MICRO" pad="27"/>
<contactref element="R7" pad="1"/>
<wire x1="45.085" y1="54.61" x2="44.1325" y2="54.61" width="0.6" layer="1"/>
<wire x1="45.4025" y1="54.9275" x2="45.085" y2="54.61" width="0.6" layer="1"/>
<wire x1="45.4025" y1="56.1975" x2="45.4025" y2="54.9275" width="0.6" layer="1"/>
<wire x1="39.37" y1="62.23" x2="45.4025" y2="56.1975" width="0.6" layer="1"/>
<wire x1="34.671" y1="62.23" x2="39.37" y2="62.23" width="0.6" layer="1"/>
<wire x1="44.1325" y1="54.61" x2="44.0944" y2="54.54" width="0.6" layer="1"/>
</signal>
<signal name="N$37">
<contactref element="R5" pad="2"/>
<contactref element="JP4" pad="5"/>
<wire x1="23.8125" y1="44.7675" x2="20.32" y2="44.7675" width="0.6" layer="1"/>
<wire x1="24.13" y1="44.45" x2="23.8125" y2="44.7675" width="0.6" layer="1"/>
<wire x1="20.32" y1="44.7675" x2="20.32" y2="44.831" width="0.6" layer="1"/>
</signal>
<signal name="N$42">
<contactref element="MICRO" pad="1"/>
<contactref element="JP4" pad="2"/>
<wire x1="42.2275" y1="48.895" x2="45.4025" y2="48.895" width="0.6" layer="1"/>
<wire x1="40.64" y1="47.3075" x2="42.2275" y2="48.895" width="0.6" layer="1"/>
<wire x1="32.0675" y1="47.3075" x2="40.64" y2="47.3075" width="0.6" layer="1"/>
<wire x1="29.845" y1="49.53" x2="32.0675" y2="47.3075" width="0.6" layer="1"/>
<wire x1="45.4025" y1="48.895" x2="45.46" y2="48.9204" width="0.6" layer="1"/>
<wire x1="29.845" y1="49.53" x2="29.59" y2="49.53" width="0.6" layer="1"/>
</signal>
<signal name="N$45">
<contactref element="R8" pad="2"/>
<contactref element="R9" pad="1"/>
<wire x1="27.94" y1="73.279" x2="27.94" y2="71.501" width="0.6" layer="1"/>
</signal>
<signal name="N$46">
<contactref element="R9" pad="2"/>
<contactref element="R10" pad="1"/>
<contactref element="JP6" pad="6"/>
<contactref element="JP6" pad="5"/>
<wire x1="24.13" y1="58.42" x2="18.7325" y2="58.42" width="0.6" layer="1"/>
<wire x1="29.21" y1="68.2625" x2="27.94" y2="68.2625" width="0.6" layer="1"/>
<wire x1="31.75" y1="70.8025" x2="29.21" y2="68.2625" width="0.6" layer="1"/>
<wire x1="36.5125" y1="70.8025" x2="31.75" y2="70.8025" width="0.6" layer="1"/>
<wire x1="38.735" y1="68.58" x2="36.5125" y2="70.8025" width="0.6" layer="1"/>
<wire x1="27.94" y1="68.2625" x2="27.94" y2="68.199" width="0.6" layer="1"/>
<wire x1="38.735" y1="68.58" x2="38.989" y2="68.58" width="0.6" layer="1"/>
<wire x1="18.7325" y1="67.31" x2="18.7325" y2="58.42" width="0.6" layer="1"/>
<wire x1="19.3675" y1="67.945" x2="18.7325" y2="67.31" width="0.6" layer="1"/>
<wire x1="27.94" y1="67.945" x2="19.3675" y2="67.945"


text:
width="0.6" layer="1"/>
<wire x1="18.7325" y1="58.42" x2="18.67" y2="58.42" width="0.6" layer="1"/>
<wire x1="27.94" y1="67.945" x2="27.94" y2="68.199" width="0.6" layer="1"/>
</signal>
<signal name="N$17">
<contactref element="MICRO" pad="30"/>
<contactref element="JP6" pad="3"/>
<wire x1="28.2575" y1="52.07" x2="43.815" y2="52.07" width="0.6" layer="1"/>
<wire x1="24.4475" y1="55.88" x2="28.2575" y2="52.07" width="0.6" layer="1"/>
<wire x1="24.13" y1="55.88" x2="24.4475" y2="55.88" width="0.6" layer="1"/>
<wire x1="43.815" y1="52.07" x2="44.0944" y2="52.14" width="0.6" layer="1"/>
</signal>
<signal name="N$18">
<contactref element="JP6" pad="1"/>
<contactref element="MICRO" pad="31"/>
<wire x1="24.13" y1="53.34" x2="44.0944" y2="51.34" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$47">
<contactref element="JP4" pad="4"/>
<contactref element="MICRO" pad="2"/>
<wire x1="29.59" y1="46.99" x2="46.26" y2="49.1744" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$43">
<contactref element="R3" pad="2"/>
<contactref element="U$3" pad="2"/>
<wire x1="46.609" y1="76.2" x2="42.291" y2="76.2" width="0.6" layer="1"/>
</signal>
<signal name="N$3">
<contactref element="JP2" pad="3"/>
<contactref element="JP2" pad="1"/>
<contactref element="MICRO" pad="15"/>
<contactref element="JP5" pad="1"/>
<wire x1="60.96" y1="66.675" x2="60.96" y2="64.77" width="0.6" layer="1"/>
<wire x1="60.6425" y1="66.9925" x2="60.96" y2="66.675" width="0.6" layer="1"/>
<wire x1="59.055" y1="66.9925" x2="60.6425" y2="66.9925" width="0.6" layer="1"/>
<wire x1="58.42" y1="66.3575" x2="59.055" y2="66.9925" width="0.6" layer="1"/>
<wire x1="58.42" y1="65.7225" x2="58.42" y2="66.3575" width="0.6" layer="1"/>
<wire x1="54.2925" y1="55.245" x2="52.705" y2="55.245" width="0.6" layer="1"/>
<wire x1="55.88" y1="56.8325" x2="54.2925" y2="55.245" width="0.6" layer="1"/>
<wire x1="55.88" y1="57.785" x2="55.88" y2="56.8325" width="0.6" layer="1"/>
<wire x1="58.1025" y1="60.0075" x2="55.88" y2="57.785" width="0.6" layer="1"/>
<wire x1="58.1025" y1="61.9125" x2="58.1025" y2="60.0075" width="0.6" layer="1"/>
<wire x1="58.42" y1="62.23" x2="58.1025" y2="61.9125" width="0.6" layer="1"/>
<wire x1="58.42" y1="64.77" x2="58.42" y2="62.23" width="0.6" layer="1"/>
<wire x1="52.705" y1="55.245" x2="52.4256" y2="55.34" width="0.6" layer="1"/>
<wire x1="54.61" y1="67.945" x2="54.61" y2="69.85" width="0.6" layer="1"/>
<wire x1="54.9275" y1="67.6275" x2="54.61" y2="67.945" width="0.6" layer="1"/>
<wire x1="56.515" y1="67.6275" x2="54.9275" y2="67.6275" width="0.6" layer="1"/>
<wire x1="58.42" y1="65.7225" x2="56.515" y2="67.6275" width="0.6" layer="1"/>
<wire x1="58.42" y1="65.7225" x2="58.42" y2="64.77" width="0.6" layer="1"/>
</signal>
<signal name="N$49">
<contactref element="JP2" pad="4"/>
<contactref element="JP2" pad="2"/>
<contactref element="MICRO" pad="16"/>
<contactref element="JP5" pad="3"/>
<wire x1="60.96" y1="70.1675" x2="58.42" y2="70.1675" width="0.6" layer="1"/>
<wire x1="58.42" y1="70.1675" x2="58.42" y2="70.23" width="0.6" layer="1"/>
<wire x1="60.96" y1="70.1675" x2="60.96" y2="70.23" width="0.6" layer="1"/>
<wire x1="53.34" y1="56.8325" x2="52.705" y2="56.1975" width="0.6" layer="1"/>
<wire x1="53.34" y1="66.04" x2="53.34" y2="56.8325" width="0.6" layer="1"/>
<wire x1="52.07" y1="67.31" x2="53.34" y2="66.04" width="0.6" layer="1"/>
<wire x1="52.07" y1="69.85" x2="52.07" y2="67.31" width="0.6" layer="1"/>
<wire x1="52.705" y1="56.1975" x2="52.6796" y2="56.14" width="0.6" layer="1"/>
<wire x1="56.1975" y1="72.7075" x2="58.42" y2="70.485" width="0.6" layer="1"/>
<wire x1="53.0225" y1="72.7075" x2="56.1975" y2="72.7075" width="0.6" layer="1"/>
<wire x1="52.07" y1="71.755" x2="53.0225" y2="72.7075" width="0.6" layer="1"/>
<wire x1="52.07" y1="69.85" x2="52.07" y2="71.755" width="0.6" layer="1"/>
<wire x1="58.42" y1="70.485" x2="58.42" y2="70.23" width="0.6" layer="1"/>
</signal>
<signal name="N$1">
<contactref element="R4" pad="2"/>
<contactref element="R11" pad="1"/>
<wire x1="35.56" y1="58.1025" x2="35.56" y2="53.721" width="0.6" layer="1"/>
<wire x1="35.8775" y1="58.42" x2="35.56" y2="58.1025" width="0.6" layer="1"/>
<wire x1="35.8775" y1="58.42" x2="35.941" y2="58.42" width="0.6" layer="1"/>
</signal>
<signal name="N$48">
<contactref element="R11" pad="2"/>
<contactref element="R12" pad="1"/>
<wire x1="35.56" y1="50.419" x2="35.56" y2="48.641" width="0.6" layer="1"/>
</signal>
<signal name="N$15">
<contactref element="MICRO" pad="25"/>
<contactref element="R15" pad="1"/>
<wire x1="42.8625" y1="56.1975" x2="43.815" y2="56.1975" width="0.6" layer="1"/>
<wire x1="40.3225" y1="58.7375" x2="42.8625" y2="56.1975" width="0.6" layer="1"/>
<wire x1="39.37" y1="58.7375" x2="40.3225" y2="58.7375" width="0.6" layer="1"/>
<wire x1="43.815" y1="56.1975" x2="43.8404" y2="56.14" width="0.6" layer="1"/>
<wire x1="39.37" y1="58.7375" x2="39.37" y2="58.801" width="0.6" layer="1"/>
</signal>
<signal name="N$51">
<contactref element="R15" pad="2"/>
<contactref element="R14" pad="1"/>
<wire x1="39.37" y1="55.499" x2="39.37" y2="53.721" width="0.6" layer="1"/>
</signal>
<signal name="N$53">
<contactref element="JP5" pad="2"/>
<contactref element="R16" pad="1"/>
<wire x1="45.4025" y1="72.39" x2="42.291" y2="72.39" width="0.6" layer="1"/>
<wire x1="48.5775" y1="75.565" x2="45.4025" y2="72.39" width="0.6" layer="1"/>
<wire x1="48.5775" y1="77.47" x2="48.5775" y2="75.565" width="0.6" layer="1"/>
<wire x1="48.895" y1="77.7875" x2="48.5775" y2="77.47" width="0.6" layer="1"/>
<wire x1="59.3725" y1="77.7875" x2="48.895" y2="77.7875" width="0.6" layer="1"/>
<wire x1="64.77" y1="72.39" x2="59.3725" y2="77.7875" width="0.6" layer="1"/>
<wire x1="64.77" y1="63.1825" x2="64.77" y2="72.39" width="0.6" layer="1"/>
<wire x1="64.4525" y1="62.865" x2="64.77" y2="63.1825" width="0.6" layer="1"/>
<wire x1="62.5475" y1="62.865" x2="64.4525" y2="62.865" width="0.6" layer="1"/>
<wire x1="62.23" y1="63.1825" x2="62.5475" y2="62.865" width="0.6" layer="1"/>
<wire x1="62.23" y1="66.9925" x2="62.23" y2="63.1825" width="0.6" layer="1"/>
<wire x1="60.96" y1="68.2625" x2="62.23" y2="66.9925" width="0.6" layer="1"/>
<wire x1="57.4675" y1="68.2625" x2="60.96" y2="68.2625" width="0.6" layer="1"/>
<wire x1="55.88" y1="69.85" x2="57.4675" y2="68.2625" width="0.6" layer="1"/>
<wire x1="55.88" y1="71.4375" x2="55.88" y2="69.85" width="0.6" layer="1"/>
<wire x1="55.5625" y1="71.755" x2="55.88" y2="71.4375" width="0.6" layer="1"/>
<wire x1="53.6575" y1="71.755" x2="55.5625" y2="71.755" width="0.6" layer="1"/>
<wire x1="53.34" y1="71.4375" x2="53.6575" y2="71.755" width="0.6" layer="1"/>
<wire x1="53.34" y1="67.6275" x2="53.34" y2="71.4375" width="0.6" layer="1"/>
<wire x1="54.61" y1="66.3575" x2="53.34" y2="67.6275" width="0.6" layer="1"/>
<wire x1="54.61" y1="64.39" x2="54.61" y2="66.3575" width="0.6" layer="1"/>
</signal>
<signal name="N$54">
<contactref element="R16" pad="2"/>
<contactref element="R17" pad="1"/>
<wire x1="33.3375" y1="72.39" x2="38.989" y2="72.39" width="0.6" layer="1"/>
<wire x1="33.02" y1="72.7075" x2="33.3375" y2="72.39" width="0.6" layer="1"/>
<wire x1="33.02" y1="72.7075" x2="33.02" y2="72.771" width="0.6" layer="1"/>
</signal>
<signal name="N$13">
<contactref element="R1" pad="2"/>
<contactref element="R18" pad="1"/>
<wire x1="13.6525" y1="71.12" x2="11.582" y2="71.12" width="0.6" layer="1"/>
<wire x1="14.605" y1="70.1675" x2="13.6525" y2="71.12" width="0.6" layer="1"/>
<wire x1="29.21" y1="70.1675" x2="14.605" y2="70.1675" width="0.6" layer="1"/>
<wire x1="31.115" y1="72.0725" x2="29.21" y2="70.1675" width="0.6" layer="1"/>
<wire x1="31.115" y1="76.2" x2="31.115" y2="72.0725" width="0.6" layer="1"/>
<wire x1="31.115" y1="76.2" x2="31.369" y2="76.2" width="0.6" layer="1"/>
</signal>
<signal name="N$55">
<contactref element="R18" pad="2"/>
<contactref element="R3" pad="1"/>
<wire x1="38.989" y1="76.2" x2="34.671" y2="76.2" width="0.6" layer="1"/>
</signal>
<signal name="N$56">
<contactref element="R17" pad="2"/>
<contactref element="R19" pad="1"/>
<wire x1="29.21" y1="62.5475" x2="29.21" y2="60.071" width="0.6" layer="1"/>
<wire x1="31.115" y1="64.4525" x2="29.21" y2="62.5475" width="0.6" layer="1"/>
<wire x1="32.385" y1="64.4525" x2="31.115" y2="64.4525" width="0.6" layer="1"/>
<wire x1="33.02" y1="65.0875" x2="32.385" y2="64.4525" width="0.6" layer="1"/>
<wire x1="33.02" y1="69.469" x2="33.02" y2="65.0875" width="0.6" layer="1"/>
</signal>
<signal name="N$57">
<contactref element="R20" pad="2"/>
<contactref element="R5" pad="1"/>
<wire x1="23.1775" y1="41.5925" x2="20.32" y2="41.5925" width="0.6" layer="1"/>
<wire x1="23.495" y1="41.91" x2="23.1775" y2="41.5925" width="0.6" layer="1"/>
<wire x1="20.32" y1="41.5925" x2="20.32" y2="41.529" width="0.6" layer="1"/>
<wire x1="23.495" y1="41.91" x2="23.749" y2="41.91" width="0.6" layer="1"/>
</signal>
<signal name="N$59">
<contactref element="R6" pad="2"/>
<contactref element="R22" pad="1"/>
<wire x1="31.369" y1="66.04" x2="23.241" y2="66.04" width="0.6" layer="1"/>
</signal>
<signal name="N$44">
<contactref element="JP4" pad="1"/>
<contactref element="R21" pad="2"/>
<wire x1="20.6375" y1="63.5" x2="19.939" y2="63.5" width="0.6" layer="1"/>
<wire x1="24.4475" y1="59.69" x2="20.6375" y2="63.5" width="0.6" layer="1"/>
<wire x1="25.7175" y1="59.69" x2="24.4475" y2="59.69" width="0.6" layer="1"/>
<wire x1="26.035" y1="59.3725" x2="25.7175" y2="59.69" width="0.6" layer="1"/>
<wire x1="26.035" y1="57.4675" x2="26.035" y2="59.3725" width="0.6" layer="1"/>
<wire x1="25.7175" y1="57.15" x2="26.035" y2="57.4675" width="0.6" layer="1"/>
<wire x1="22.5425" y1="57.15" x2="25.7175" y2="57.15" width="0.6" layer="1"/>
<wire x1="22.225" y1="56.8325" x2="22.5425" y2="57.15" width="0.6" layer="1"/>
<wire x1="22.225" y1="51.435" x2="22.225" y2="56.8325" width="0.6" layer="1"/>
<wire x1="24.13" y1="49.53" x2="22.225" y2="51.435" width="0.6" layer="1"/>
</signal>
<signal name="N$58">
<contactref element="R7" pad="2"/>
<contactref element="R21" pad="1"/>
<wire x1="27.6225" y1="59.3725" x2="23.495" y2="63.5" width="0.6" layer="1"/>
<wire x1="27.6225" y1="59.055" x2="27.6225" y2="59.3725" width="0.6" layer="1"/>
<wire x1="27.94" y1="58.7375" x2="27.6225" y2="59.055" width="0.6" layer="1"/>
<wire x1="30.48" y1="58.7375" x2="27.94" y2="58.7375" width="0.6" layer="1"/>
<wire x1="31.115" y1="59.3725" x2="30.48" y2="58.7375" width="0.6" layer="1"/>
<wire x1="31.115" y1="62.23" x2="31.115" y2="59.3725" width="0.6" layer="1"/>
<wire x1="23.495" y1="63.5" x2="23.241" y2="63.5" width="0.6" layer="1"/>
<wire x1="31.115" y1="62.23" x2="31.369" y2="62.23" width="0.6" layer="1"/>
</signal>
<signal name="N$40">
<contactref element="R22" pad="2"/>
<contactref element="JP4" pad="3"/>
<wire x1="24.13" y1="46.99" x2="19.939" y2="66.04" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$52">
<contactref element="R14" pad="2"/>
<contactref element="R23" pad="1"/>
<wire x1="39.37" y1="50.419" x2="39.37" y2="48.641" width="0.6" layer="1"/>
</signal>
<signal name="N$60">
<contactref element="R23" pad="2"/>
<contactref element="R20" pad="1"/>
<wire x1="36.195" y1="41.91" x2="27.051" y2="41.91" width="0.6" layer="1"/>
<wire x1="39.37" y1="45.085" x2="36.195" y2="41.91" width="0.6" layer="1"/>
<wire x1="39.37" y1="45.085" x2="39.37" y2="45.339" width="0.6" layer="1"/>
</signal>
</signals>
</board>
</drawing>
</eagle>

license: MIT

license_type: permissive

branch_name: refs/heads/master

extension: brd


text:
using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Markup.Xaml;

namespace OpenTracker.Views
{
    public class ModeSettings : UserControl
    {
        public static AvaloniaProperty<bool> ModeSettingsPopupOpenProperty =
            AvaloniaProperty.Register<MainWindow, bool>(nameof(ModeSettingsPopupOpen));
        public bool ModeSettingsPopupOpen
        {
            get => (bool)GetValue(ModeSettingsPopupOpenProperty);
            set => SetValue(ModeSettingsPopupOpenProperty, value);
        }

        public ModeSettings()
        {
            this.InitializeComponent();
        }

        private void InitializeComponent()
        {
            AvaloniaXamlLoader.Load(this);
        }

        private void OpenModeSettingsPopup(object sender, PointerReleasedEventArgs e)
        {
            if (e.InitialPressMouseButton == MouseButton.Left)
            {
                ModeSettingsPopupOpen = true;
            }
        }
    }
}

extension: cs


text:
include(CMakeFindDependencyMacro)

set(RTCLI_LIB @LIB@)
# Define Macros.
if(RTCLI_LIB)
    add_definitions("-DRTCLI_BUILD_LIB")
    message(STATUS "RTCLI as lib.")
endif()

if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
    add_compile_options(
        ${CLANG_DISABLED_WARNINGS}
    )
endif()

include("${CMAKE_CURRENT_LIST_DIR}/@RTCLI_IMPL_NAME@Targets.cmake")

branch_name: refs/heads/main

extension: in


text:
SUMMARY = "Real-time Midi I/O Library"
HOMEPAGE = "http://portmedia.sourceforge.net"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://license.txt;md5=a0c1c261bc48165d48388e3a121a31e9"

inherit cmake dos2unix

DEPENDS += " \
    alsa-lib \
"

SRC_URI = " \
    ${SOURCEFORGE_MIRROR}/project/portmedia/${BPN}/${PV}/${BPN}-src-${PV}.zip \
    file://fedora-portmidi-cmake.patch \
    file://0001-do-not-build-java-application-to-set-midi-defaults.patch \
    file://0002-fix-compilation-du-to-unkown-functions.patch \
    file://0003-fix-format-security..patch \
"
SRC_URI[md5sum] = "03f46fd3947e2ef4c8c465baaf832241"
SRC_URI[sha256sum] = "08e9a892bd80bdb1115213fb72dc29a7bf2ff108b378180586aa65f3cfd42e0f"

S = "${WORKDIR}/${BPN}"

EXTRA_OECMAKE += " \
    -DLIB_INSTALL_DIR=${libdir} \
    -DINCLUDE_INSTALL_DIR=${includedir} \
    -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=Release \
    -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=Release \
    -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=Release \
"

do_install:append() {
    ln -s libportmidi.so.0. "${D}/${libdir}/libporttime.so"
    ln -s libportmidi.so.0. "${D}/${libdir}/libporttime.so.0"
    ln -s libportmidi.so.0. "${D}/${libdir}/libporttime.so.0."
}

repository: schnitzeltony/meta-musicians

repo_name: schnitzeltony/meta-musicians

gha_license_id: MIT

gha_language: BitBake

extension: bb


text:
@article{dong2021spartan,
  title     = {Spartan: A sparsity-adaptive framework to accelerate deep neural network training on GPUs},
  author    = {Dong, Shi and Sun, Yifan and Agostini, Nicolas Bohm and Karimi, Elmira and Lowell, Daniel and Zhou, Jing and Cano, Jos{\'e} and Abell{\'a}n, Jos{\'e} L and Kaeli, David},
  journal   = {IEEE Transactions on Parallel and Distributed Systems},
  volume    = {32},
  number    = {10},
  pages     = {2448--2463},
  year      = {2021},
  publisher = {IEEE}
}

gha_language: HTML

extension: bib


text:
package main

import (
	"fmt"
	"net/http"
	"os"
	"strconv"
	"strings"

	"github.com/gofrs/uuid"
)

const startupMessage = `
                                                   �

                                               ��������
                                              �������          �
  ��        �� ��   ���  ��                  �������          � ����
  �          ����       ����          ����          �         �  ���
  �      �    ��    ���               ����                     �����
                     �         �����������            �           ���������
                                            �����   ����        ����������
                                              �      �������
             � �  �                                 �����������       �
                  �  �        ��  ��  �         � ����������������   ��
                           ��� �     �� �           �����������������
`

func main() {

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Hello! you've requested %s\n", r.URL.Path)
	})

	http.HandleFunc("/cached", func(w http.ResponseWriter, r *http.Request) {
		maxAgeParams, ok := r.URL.Query()["max-age"]
		if ok && len(maxAgeParams) > 0 {
			maxAge, _ := strconv.Atoi(maxAgeParams[0])
			w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%d", maxAge))
		}
		requestID := uuid.Must(uuid.NewV4())
		fmt.Fprintf(w, requestID.String())
	})

	http.HandleFunc("/headers", func(w http.ResponseWriter, r *http.Request) {
		keys, ok := r.URL.Query()["key"]
		if ok && len(keys) > 0 {
			fmt.Fprintf(w, r.Header.Get(keys[0]))
			return
		}
		headers := []string{}
		for key, values := range r.Header {
			headers = append(headers, fmt.Sprintf("%s=%s", key, strings.Join(values, ",")))
		}
		fmt.Fprintf(w, strings.Join(headers, "\n"))
	})

	http.HandleFunc("/env", func(w http.ResponseWriter, r *http.Request) {
		keys, ok := r.URL.Query()["key"]
		if ok && len(keys) > 0 {
			fmt.Fprintf(w, os.Getenv(keys[0]))
			return
		}
		envs := []string{}
		for _, env := range os.Environ() {
			envs = append(envs, env)
		}
		fmt.Fprintf(w, strings.Join(envs, "\n"))
	})

	http.HandleFunc("/status", func(w http.ResponseWriter, r *http.Request) {
		codeParams, ok := r.URL.Query()["code"]
		if ok && len(codeParams) > 0 {
			statusCode, _ := strconv.Atoi(codeParams[0])
			if statusCode >= 200 && statusCode < 600 {
				w.WriteHeader(statusCode)
			}
		}
		requestID := uuid.Must(uuid.NewV4())
		fmt.Fprintf(w, requestID.String())
	})

	port := os.Getenv("PORT")
	if port == "" {
		port = "80"
	}

	for _, encodedRoute := range strings.Split(os.Getenv("ROUTES"), ",") {
		if encodedRoute == "" {
			continue
		}
		pathAndBody := strings.SplitN(encodedRoute, "=", 2)
		path, body := pathAndBody[0], pathAndBody[1]
		http.HandleFunc("/"+path, func(w http.ResponseWriter, r *http.Request) {
			fmt.Fprint(w, body)
		})
	}

	bindAddr := fmt.Sprintf(":%s", port)
	lines := strings.Split(startupMessage, "\n")
	fmt.Println()
	for _, line := range lines {
		fmt.Println(line)
	}
	fmt.Println()
	fmt.Printf("==> Server listening at %s 🚀\n", bindAddr)

	err := http.ListenAndServe(fmt.Sprintf(":%s", port), nil)
	if err != nil {
		panic(err)
	}
}

repository: jeffotoni/digitalocean

repo_name: jeffotoni/digitalocean

extension: go


text:
package providers

import (
	"context"
	"errors"
	"net/http"
	"net/http/httptest"
	"net/url"
	"testing"

	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
	"github.com/stretchr/testify/assert"
)

func updateURL(url *url.URL, hostname string) {
	if url == nil {
		return
	}
	url.Scheme = "http"
	url.Host = hostname
}

type ValidateSessionTestProvider struct {
	*ProviderData
}

var _ Provider = (*ValidateSessionTestProvider)(nil)

func (tp *ValidateSessionTestProvider) GetEmailAddress(ctx context.Context, s *sessions.SessionState) (string, error) {
	return "", errors.New("not implemented")
}

// Note that we're testing the internal validateToken() used to implement
// several Provider's ValidateSession() implementations
func (tp *ValidateSessionTestProvider) ValidateSession(ctx context.Context, s *sessions.SessionState) bool {
	return false
}

type ValidateSessionStateTest struct {
	backend      *httptest.Server
	responseCode int
	provider     *ValidateSessionTestProvider
	header       http.Header
}

func NewValidateSessionTest() *ValidateSessionStateTest {
	var vtTest ValidateSessionStateTest

	vtTest.backend = httptest.NewServer(
		http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
			if r.URL.Path != "/oauth/tokeninfo" {
				w.WriteHeader(500)
				w.Write([]byte("unknown URL"))
			}
			tokenParam := r.FormValue("access_token")
			if tokenParam == "" {
				missing := false
				receivedHeaders := r.Header
				for k := range vtTest.header {
					received := receivedHeaders.Get(k)
					expected := vtTest.header.Get(k)
					if received == "" || received != expected {
						missing = true
					}
				}
				if missing {
					w.WriteHeader(500)
					w.Write([]byte("no token param and missing or incorrect headers"))
				}
			}
			w.WriteHeader(vtTest.responseCode)
			w.Write([]byte("only code matters; contents disregarded"))

		}))
	backendURL, _ := url.Parse(vtTest.backend.URL)
	vtTest.provider = &ValidateSessionTestProvider{
		ProviderData: &ProviderData{
			ValidateURL: &url.URL{
				Scheme: "http",
				Host:   backendURL.Host,
				Path:   "/oauth/tokeninfo",
			},
		},
	}
	vtTest.responseCode = 200
	return &vtTest
}

func (vtTest *ValidateSessionStateTest) Close() {
	vtTest.backend.Close()
}

func TestValidateSessionValidToken(t *testing.T) {
	vtTest := NewValidateSessionTest()
	defer vtTest.Close()
	assert.Equal(t, true, validateToken(context.Background(), vtTest.provider, "foobar", nil))
}

func TestValidateSessionValidTokenWithHeaders(t *testing.T) {
	vtTest := NewValidateSessionTest()
	defer vtTest.Close()
	vtTest.header = make(http.Header)
	vtTest.header.Set("Authorization", "Bearer foobar")
	assert.Equal(t, true,
		validateToken(context.Background(), vtTest.provider, "foobar", vtTest.header))
}

func TestValidateSessionEmptyToken(t *testing.T) {
	vtTest := NewValidateSessionTest()
	defer vtTest.Close()
	assert.Equal(t, false, validateToken(context.Background(), vtTest.provider, "", nil))
}

func TestValidateSessionEmptyValidateURL(t *testing.T) {
	vtTest := NewValidateSessionTest()
	defer vtTest.Close()
	vtTest.provider.Data().ValidateURL = nil
	assert.Equal(t, false, validateToken(context.Background(), vtTest.provider, "foobar", nil))
}

func TestValidateSessionRequestNetworkFailure(t *testing.T) {
	vtTest := NewValidateSessionTest()
	// Close immediately to simulate a network failure
	vtTest.Close()
	assert.Equal(t, false, validateToken(context.Background(), vtTest.provider, "foobar", nil))
}

func TestValidateSessionExpiredToken(t *testing.T) {
	vtTest := NewValidateSessionTest()
	defer vtTest.Close()
	vtTest.responseCode = 401
	assert.Equal(t, false, validateToken(context.Background(), vtTest.provider, "foobar", nil))
}

func TestValidateSessionValidateURLWithQueryParams(t *testing.T) {
	vtTest := NewValidateSessionTest()
	defer vtTest.Close()
	vtTest.provider.Data().ValidateURL, _ = url.Parse(vtTest.provider.Data().ValidateURL.String() + "?query_param1=true&query_param2=test")
	assert.Equal(t, true, validateToken(context.Background(), vtTest.provider, "foobar", nil))
}

func TestStripTokenNotPresent(t *testing.T) {
	test := "http://local.test/api/test?a=1&b=2"
	assert.Equal(t, test, stripToken(test))
}

func TestStripToken(t *testing.T) {
	test := "http://local.test/api/test?access_token=deadbeef&b=1&c=2"
	expected := "http://local.test/api/test?access_token=dead...&b=1&c=2"
	assert.Equal(t, expected, stripToken(test))
}

gha_language: Go


text:
// +build integration

package info

import (
	"testing"

	rd "github.com/garyburd/redigo/redis"
	"github.com/stretchr/testify/assert"

	"github.com/elastic/beats/libbeat/common"
	"github.com/elastic/beats/metricbeat/helper"
	"github.com/elastic/beats/metricbeat/module/redis"
)

// Test Redis specific struct
type RedisModuleConfig struct {
	Hosts    []string `config:"hosts"`
	Module   string   `config:"module"`
	Password string   `config:"password"`
}

var DEFAULT_PASS string = "foobared"
var LOCAL_REDIS string = redis.GetRedisEnvHost() + ":" + redis.GetRedisEnvPort()

func TestConnect(t *testing.T) {

	ms, msErr := getRedisMetricSet("")
	assert.NoError(t, msErr)

	// Setup metricset and metricseter
	err := ms.Setup()
	assert.NoError(t, err)
	err = ms.MetricSeter.Setup(ms)
	assert.NoError(t, err)

	// Check that host is correctly set
	assert.Equal(t, LOCAL_REDIS, ms.Config.Hosts[0])

	data, err := ms.MetricSeter.Fetch(ms, ms.Config.Hosts[0])
	assert.NoError(t, err)

	// Check fields
	assert.Equal(t, 9, len(data))
	server := data["server"].(common.MapStr)
	assert.Equal(t, "3.0.7", server["redis_version"])
	assert.Equal(t, "standalone", server["redis_mode"])
}

func TestKeyspace(t *testing.T) {

	// Config redis and metricset
	ms, msErr := getRedisMetricSet("")
	assert.NoError(t, msErr)

	ms.Setup()

	// Write to DB to enable Keyspace stats
	rErr := writeToRedis(LOCAL_REDIS)
	assert.NoError(t, rErr)

	// Fetch metrics
	data, err := ms.MetricSeter.Fetch(ms, LOCAL_REDIS)
	assert.NoError(t, err)
	keyspace := data["keyspace"].(map[string]common.MapStr)
	keyCount := keyspace["db0"]["keys"].(int)
	assert.True(t, (keyCount > 0))
}

func TestPasswords(t *testing.T) {

	// Config redis and metricset with no password
	ms, msErr := getRedisMetricSet("")
	assert.NoError(t, msErr)
	ms.Setup()

	// Add password and ensure it gets reset
	authErr := addPassword(LOCAL_REDIS, DEFAULT_PASS)
	defer resetPassword(LOCAL_REDIS)
	assert.NoError(t, authErr)

	// Test Fetch metrics with missing password
	_, err := ms.MetricSeter.Fetch(ms, LOCAL_REDIS)
	if assert.Error(t, err) {
		assert.Contains(t, err, "NOAUTH Authentication required.")
	}

	// Config redis and metricset with an invalid password
	ms2, msErr := getRedisMetricSet("blah")
	assert.NoError(t, msErr)
	ms2.Setup()

	// Test Fetch metrics with invalid password
	_, err2 := ms2.MetricSeter.Fetch(ms2, LOCAL_REDIS)
	if assert.Error(t, err2) {
		assert.Contains(t, err2, "ERR invalid password")
	}

	// Config redis and metricset with a valid password
	ms3, msErr := getRedisMetricSet(DEFAULT_PASS)
	assert.NoError(t, msErr)
	ms3.Setup()

	// Test Fetch metrics with valid password
	_, err3 := ms3.MetricSeter.Fetch(ms3, LOCAL_REDIS)
	assert.NoError(t, err3)
}

// addPassword will add password to redis
func addPassword(host, pass string) error {
	c, err := rd.Dial("tcp", host)
	if err != nil {
		return err
	}
	defer c.Close()

	_, cErr := c.Do("CONFIG", "SET", "requirepass", pass)
	if cErr != nil {
		return cErr
	}
	return nil
}

func resetPassword(host string) error {
	c, err := rd.Dial("tcp", host)
	if err != nil {
		return err
	}
	defer c.Close()

	_, pErr := c.Do("AUTH", DEFAULT_PASS)
	if pErr != nil {
		return pErr
	}

	_, cErr := c.Do("CONFIG", "SET", "requirepass", "")
	if cErr != nil {
		return cErr
	}
	return nil

}

func getRedisMetricSet(pass string) (*helper.MetricSet, error) {
	config, _ := getRedisModuleConfig(pass)
	module, mErr := helper.NewModule(config, redis.New)
	if mErr != nil {
		return nil, mErr
	}
	return helper.NewMetricSet("info", New, module)
}

func getRedisModuleConfig(pass string) (*common.Config, error) {
	return common.NewConfigFrom(RedisModuleConfig{
		Module:   "redis",
		Hosts:    []string{LOCAL_REDIS},
		Password: pass,
	})
}

// writeToRedis will write to the default DB 0
func writeToRedis(host string) error {
	c, err := rd.Dial("tcp", host)
	if err != nil {
		return err
	}
	defer c.Close()

	_, cErr := c.Do("SET", "foo", "bar")
	if cErr != nil {
		return cErr
	}
	return nil
}

repository: avleen/beats

repo_name: avleen/beats


text:
package service

import (
	"fmt"
	"github.com/ntt360/pmon2/app/model"
	"os"
	"time"
)

type ProcStat struct {
	Done    chan int
	Process *model.Process
}

func NewProcStat(p *model.Process) *ProcStat {
	stat := &ProcStat{
		Done:    make(chan int),
		Process: p,
	}

	stat.Run()

	return stat
}

func (r *ProcStat) Run() {
	go r.ProcessWait(r.Process)
	go r.ProcessExistCheck(r.Process.Pid)
}

func (r *ProcStat) Wait() *model.Process {
	// waiting result
	status := <-r.Done

	if status > 0 {
		r.Process.Status = model.StatusFailed
	} else {
		r.Process.Status = model.StatusRunning
	}

	return r.Process
}

func (r *ProcStat) ProcessWait(process *model.Process) {
	processState, err := process.Pointer.Wait()
	if err != nil {
		r.Done <- 1
		return
	}

	if processState.Exited() {
		r.Done <- processState.ExitCode()
	}
}

func (r *ProcStat) ProcessExistCheck(pid int) {
	timer := time.NewTicker(time.Millisecond * 200)
	defer timer.Stop()
	for {
		select {
		case existCode := <-r.Done:
			if existCode != 0 { // process exist exception
				r.Done <- 1
				return
			}
		case <-timer.C: // check process status by proc file
			_, err := os.Stat(fmt.Sprintf("/proc/%d/status", pid))
			if !os.IsNotExist(err) {
				r.Done <- 0
				return
			}
		}
	}
}


text:
package middleware

import (
	"github.com/gin-gonic/gin"
)

func InitMiddleware(router *gin.Engine) *gin.Engine {
	router = DefaultMiddleware(router)
	router = HtmlRenderMiddleware(router)

	return router
}

repository: tomothumb/sandbox

repo_name: tomothumb/sandbox

gha_language: JavaScript


text:
inherit setuptools3
require python-cassandra-driver.inc

# Requires concurrent which is currently in -misc
RDEPENDS_${PN} += " \
    ${PYTHON_PN}-misc \
    ${PYTHON_PN}-numbers \
"

repository: astarche/meta-openembedded

repo_name: astarche/meta-openembedded

branch_name: refs/heads/nilrt/master/sumo


text:
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Collier.IO;
using System;
using System.Diagnostics;
using System.Text;
using System.Threading.Tasks;

namespace Collier.Monitoring.Gpu
{
    public class NvidiaSmiExecutor : INvidiaSmiExecutor
    {
        public class Settings
        {
            public string SmiCommandLocation { get; set; }
        }

        private readonly Settings _settings;
        private readonly ILogger<NvidiaSmiExecutor> _logger;
        private readonly ProcessFactory _processFactory;

        public NvidiaSmiExecutor(IOptions<Settings> settings, ILogger<NvidiaSmiExecutor> logger, ProcessFactory processFactory)
        {
            _settings = settings.Value ?? throw new ArgumentNullException(nameof(settings));
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));
            _processFactory = processFactory ?? throw new ArgumentNullException(nameof(processFactory));
        }

        public virtual async Task<string> ExecuteCommandAsync()
        {
            if (!System.IO.File.Exists(_settings.SmiCommandLocation))
            {
                _logger.LogError("No file at command location {commandLocation}.", _settings.SmiCommandLocation);
                return "";
            }

            var outputBuilder = new StringBuilder();
            var commandProcess = _processFactory.GetProcess(new ProcessStartInfo
            {
                FileName = _settings.SmiCommandLocation,
                Arguments = "-q",
                RedirectStandardOutput = true,
                RedirectStandardError = true
            });

            commandProcess.OutputDataReceived += (sender, a) => outputBuilder.AppendLine(a.Data);

            commandProcess.Start();
            commandProcess.BeginOutputReadLine();

            await commandProcess.WaitForExitAsync();

            HasErrored = commandProcess.ExitCode > 0;

            return outputBuilder.ToString();
        }

        public virtual bool HasErrored
        {
            get; private set;
        }

    }
}

repository: cwtowns/collier

repo_name: cwtowns/collier

gha_language: C#


text:
package utils

import (
	"errors"
	"math"
)

// CalculateWpm calculates words per minute
// based on words typed so far and time elapsed
func CalculateWpm(countCh int, secs float64) int {
	// average word length is 5
	return int((60 * float64(countCh) / 5) / secs)
}

// CalculateAccuracy calculates accuracy in a race
// based on chars typed so far and mistyped chars
func CalculateAccuracy(chars int, mistypes int) (float64, error) {
	if chars <= 0 {
		return 0, errors.New("Invalid chars param for CalculateAccuracy")
	}
	mistypesF := float64(mistypes)
	charsF := float64(chars)
	mistypesF = math.Min(mistypesF, charsF)
	return 100 * (1 - mistypesF/charsF), nil
}


text:
// Copyright 2021 The Khronos Group
// SPDX-License-Identifier: Apache-2.0

#include "scene.h"
// std
#include <cstring>

namespace anari {
namespace scenes {

TestScene::TestScene(ANARIDevice device) : m_device(device)
{
  anariRetain(m_device, m_device);
}

TestScene::~TestScene()
{
  anariRelease(m_device, m_device);
}

Camera TestScene::createDefaultCameraFromWorld(ANARIWorld w)
{
  box3 bounds;

  anari::getProperty(m_device, w, "bounds", bounds);

  const glm::vec3 bounds_size = bounds[1] - bounds[0];
  const glm::vec3 bounds_center = 0.5f * (bounds[0] + bounds[1]);
  const float distance = glm::length(bounds_size) * 0.8f;

  const glm::vec3 eye_pos = bounds_center + glm::vec3(0, 0, -distance);

  Camera cam;

  cam.position = eye_pos;
  cam.direction = glm::normalize(bounds_center - eye_pos);
  cam.at = bounds_center;
  cam.up = glm::vec3(0, 1, 0);

  return cam;
}

box3 TestScene::bounds()
{
  box3 retval;
  anari::getProperty(m_device, world(), "bounds", retval);
  return retval;
}

std::vector<Camera> TestScene::cameras()
{
  return {createDefaultCameraFromWorld(world())};
}

std::vector<ParameterInfo> TestScene::parameters()
{
  return {};
}

bool TestScene::animated() const
{
  return false;
}

void TestScene::computeNextFrame()
{
  // no-op
}

void TestScene::setDefaultAmbientLight(ANARIWorld w)
{
  auto light = anari::newObject<anari::Light>(m_device, "ambient");
  anari::commit(m_device, light);
  anari::setAndReleaseParameter(
      m_device, w, "light", anari::newArray(m_device, &light));
  anari::release(m_device, light);
}

} // namespace scenes

ANARI_TYPEFOR_DEFINITION(scenes::box3);

} // namespace anari

repository: thewtex/ANARI-SDK

repo_name: thewtex/ANARI-SDK

extension: cpp


text:
import { PathInfo } from './interfaces';

const PATH_INFOS: PathInfo[] = [
  {
    path: /^\/$/,
    label: 'Home'
  },
  {
    path: /^\/create-machine$/,
    label: 'Create Machine'
  },
  {
    path: /^\/machines$/,
    label: 'Machines'
  },
  {
    path: /^\/machines\/[a-zA-Z0-9]+$/,
    dynamicLabel: (route) => route.params.machineName
  },
  {
    path: /^\/machines\/[a-zA-Z0-9]+\/containers$/,
    label: 'Containers'
  },
  {
    path: /^\/machines\/[a-zA-Z0-9]+\/create-container$/,
    label: 'Create Container'
  },
  {
    path: /^\/machines\/[a-zA-Z0-9]+\/images$/,
    label: 'Images'
  },
  {
    path: /^\/machines\/[a-zA-Z0-9]+\/pull-image$/,
    label: 'Pull Image'
  },
  {
    path: /^\/containers$/,
    label: 'Containers'
  },
  {
    path: /^\/images$/,
    label: 'Images'
  },
  {
    path: /^\/pull-image$/,
    label: 'Pull Image'
  }
];

export default PATH_INFOS;

repository: LCTL/neptune-front

repo_name: LCTL/neptune-front

extension: ts