text:
36" size="1.27" layer="27" rot="R90"/>
</element>
<element name="R9" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="100k" x="19.685" y="34.8996" smashed="yes" rot="R180">
<attribute name="NAME" x="16.256" y="36.0934" size="1.27" layer="25" rot="R270"/>
<attribute name="SPICEPREFIX" value="R" x="-13.335" y="57.7596" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="21.6662" y="37.6682" size="1.27" layer="27" rot="R180"/>
</element>
<element name="IC2" library="linear" library_urn="urn:adsk.eagle:library:262" package="SO14" package3d_urn="urn:adsk.eagle:package:16406/2" value="LMV324M" x="44.45" y="20.574" smashed="yes" rot="R180">
<attribute name="NAME" x="43.18" y="20.4724" size="1.27" layer="25"/>
<attribute name="VALUE" x="38.608" y="22.479" size="1.27" layer="27" rot="R270"/>
</element>
<element name="R11" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="50.673" y="22.225" smashed="yes" rot="R270">
<attribute name="NAME" x="49.8856" y="21.3106" size="1.27" layer="25" rot="R90"/>
<attribute name="SPICEPREFIX" value="R" x="64.643" y="34.925" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="48.133" y="22.86" size="1.27" layer="27" rot="R270"/>
</element>
<element name="R12" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="47.625" y="14.097" smashed="yes" rot="R180">
<attribute name="NAME" x="48.26" y="12.827" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="R" x="66.675" y="19.177" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="48.26" y="16.637" size="1.27" layer="27" rot="R180"/>
</element>
<element name="R13" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="49.53" y="10.414" smashed="yes" rot="R90">
<attribute name="NAME" x="48.26" y="9.779" size="1.27" layer="25" rot="R90"/>
<attribute name="SPICEPREFIX" value="R" x="54.61" y="10.414" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="52.07" y="9.779" size="1.27" layer="27" rot="R90"/>
</element>
<element name="R14" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="50.927" y="17.399" smashed="yes" rot="R90">
<attribute name="NAME" x="49.657" y="16.764" size="1.27" layer="25" rot="R90"/>
<attribute name="SPICEPREFIX" value="R" x="62.357" y="11.049" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="53.467" y="16.764" size="1.27" layer="27" rot="R90"/>
</element>
<element name="R15" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="32.766" y="22.987" smashed="yes">
<attribute name="NAME" x="30.6324" y="21.7932" size="1.27" layer="25" rot="R90"/>
<attribute name="SPICEPREFIX" value="R" x="20.066" y="5.207" size="1.778" layer="27" display="off"/>
<attribute name="VALUE" x="32.131" y="20.447" size="1.27" layer="27"/>
</element>
<element name="R16" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="36.703" y="14.605" smashed="yes" rot="R180">
<attribute name="NAME" x="37.1856" y="17.7038" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="R" x="55.753" y="38.735" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="36.703" y="28.7274" size="1.27" layer="28" rot="MR180"/>
</element>
<element name="R17" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="40.513" y="12.192" smashed="yes" rot="R270">
<attribute name="NAME" x="39.5986" y="10.2362" size="1.27" layer="25" rot="R90"/>
<attribute name="SPICEPREFIX" value="R" x="16.383" y="12.192" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="37.973" y="12.827" size="1.27" layer="27" rot="R270"/>
</element>
<element name="R18" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="38.862" y="19.558" smashed="yes" rot="R90">
<attribute name="NAME" x="37.592" y="18.923" size="1.27" layer="25" rot="R90"/>
<attribute name="SPICEPREFIX" value="R" x="69.342" y="13.208" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="41.402" y="18.923" size="1.27" layer="27" rot="R90"/>
</element>
<element name="R19" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="100k" x="36.703" y="25.273" smashed="yes" rot="R180">
<attribute name="NAME" x="38.7604" y="27.0764" size="1.27" layer="25" rot="R270"/>
<attribute name="SPICEPREFIX" value="R" x="50.673" y="86.233" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="37.338" y="27.813" size="1.27" layer="27" rot="R180"/>
</element>
<element name="C3" library="rcl" library_urn="urn:adsk.eagle:library:334" package="C0805" package3d_urn="urn:adsk.eagle:package:23617/2" value="47pF" x="36.703" y="27.5844" smashed="yes">
<attribute name="NAME" x="34.9504" y="29.337" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="C" x="30.353" y="-28.2956" size="1.778" layer="27" display="off"/>
<attribute name="VALUE" x="35.433" y="25.0444" size="1.27" layer="27"/>
</element>
<element name="R20" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="100k" x="50.673" y="26.543" smashed="yes" rot="R270">
<attribute name="NAME" x="50.3174" y="30.48" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="R" x="-11.557" y="26.543" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="48.3108" y="28.4988" size="1.27" layer="27" rot="R270"/>
</element>
<element name="C4" library="rcl" library_urn="urn:adsk.eagle:library:334" package="C0805" package3d_urn="urn:adsk.eagle:package:23617/2" value="47pF" x="52.959" y="26.543" smashed="yes" rot="R90">
<attribute name="NAME" x="54.2036" y="29.4894" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="C" x="121.539" y="13.843" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="55.499" y="25.273" size="1.27" layer="27" rot="R90"/>
</element>
<element name="IC3" library="linear" library_urn="urn:adsk.eagle:library:262" package="SO14" package3d_urn="urn:adsk.eagle:package:16406/2" value="LMV324M" x="59.436" y="15.621" smashed="yes" rot="R180">
<attribute name="NAME" x="58.166" y="15.6972" size="1.27" layer="25"/>
<attribute name="VALUE" x="53.594" y="17.526" size="1.27" layer="27" rot="R270"/>
</element>
<element name="R21" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="68.199" y="19.939" smashed="yes" rot="R270">
<attribute name="NAME" x="69.215" y="21.6408" size="1.27" layer="25" rot="R270"/>
<attribute name="SPICEPREFIX" value="R" x="69.469" y="38.989" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="65.659" y="20.574" size="1.27" layer="27" rot="R270"/>
</element>
<element name="R22" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="70.739" y="8.128" smashed="yes" rot="R270">
<attribute name="NAME" x="72.009" y="9.7536" size="1.27" layer="25" rot="R270"/>
<attribute name="SPICEPREFIX" value="R" x="72.009" y="8.128" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="68.199" y="8.763" size="1.27" layer="27" rot="R270"/>
</element>
<element name="R23" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="64.008" y="5.461" smashed="yes">
<attribute name="NAME" x="62.6364" y="3.048" size="1.27" layer="25"/>
<attribute name="SPICEPREFIX" value="R" x="57.658" y="0.381" size="1.778" layer="27" display="off"/>
<attribute name="VALUE" x="63.373" y="2.921" size="1.27" layer="27"/>
</element>
<element name="R24" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="69.215" y="15.367" smashed="yes" rot="R180">
<attribute name="NAME" x="69.85" y="14.097" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="R" x="81.915" y="26.797" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="69.85" y="17.907" size="1.27" layer="27" rot="R180"/>
</element>
<element name="R25" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="53.086" y="17.399" smashed="yes" rot="R270">
<attribute name="NAME" x="53.8734" y="18.4658" size="1.27" layer="25" rot="R270"/>
<attribute name="SPICEPREFIX" value="R" x="35.306" y="36.449" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="50.546" y="18.034" size="1.27" layer="27" rot="R270"/>
</element>
<element name="R26" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="54.356" y="7.366" smashed="yes" rot="R180">
<attribute name="NAME" x="55.7784" y="6.1722" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="R" x="54.356" y="25.146" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="54.991" y="9.906" size="1.27" layer="27" rot="R180"/>
</element>
<element name="R27" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="57.658" y="6.35" smashed="yes" rot="R270">
<attribute name="NAME" x="58.928" y="6.985" size="1.27" layer="25" rot="R270"/>
<attribute name="SPICEPREFIX" value="R" x="33.528" y="12.7" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="55.118" y="6.985" size="1.27" layer="27" rot="R270"/>
</element>
<element name="R28" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="330" x="59.055" y="9.525" smashed="yes" rot="R180">
<attribute name="NAME" x="60.9092" y="8.763" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="R" x="71.755" y="40.005" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="59.69" y="12.065" size="1.27" layer="27" rot="R180"/>
</element>
<element name="R29" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="100k" x="53.848" y="23.368" smashed="yes" rot="R180">
<attribute name="NAME" x="57.1246" y="25.4508" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="R" x="67.818" y="84.328" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="57.6834" y="25.8064" size="1.27" layer="27" rot="R180"/>
</element>
<element name="C5" library="rcl" library_urn="urn:adsk.eagle:library:334" package="C0805" package3d_urn="urn:adsk.eagle:package:23617/2" value="47pF" x="53.848" y="21.209" smashed="yes">
<attribute name="NAME" x="52.578" y="22.479" size="1.27" layer="25"/>
<attribute name="SPICEPREFIX" value="C" x="47.498" y="-34.671" size="1.778" layer="27" display="off"/>
<attribute name="VALUE" x="53.848" y="18.669" size="1.27" layer="27"/>
</element>
<element name="R30" library="rcl" library_urn="urn:adsk.eagle:library:334" package="R0805" package3d_urn="urn:adsk.eagle:package:23553/2" value="100k" x="64.516" y="20.955" smashed="yes">
<attribute name="NAME" x="65.8368" y="25.6286" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="R" x="64.516" y="-41.275" size="1.778" layer="27" display="off"/>
<attribute name="VALUE" x="63.881" y="18.415" size="1.27" layer="27"/>
</element>
<element name="C6" library="rcl" library_urn="urn:adsk.eagle:library:334" package="C0805" package3d_urn="urn:adsk.eagle:package:23617/2" value="47pF" x="64.516" y="23.368" smashed="yes" rot="R180">
<attribute name="NAME" x="63.0428" y="22.86" size="1.27" layer="25" rot="R180"/>
<attribute name="SPICEPREFIX" value="C" x="77.216" y="91.948" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="65.786" y="25.908" size="1.27" layer="27" rot="R180"/>
</element>
<element name="JP1" library="pinhead2" package="1X05" package3d_urn="urn:adsk.eagle:package:22469/2" value="" x="70.612" y="30.6832" smashed="yes" rot="R90">
<attribute name="NAME" x="68.7832" y="24.257" size="1.27" layer="25" ratio="10" rot="R90"/>
<attribute name="VALUE" x="73.787" y="24.3332" size="1.27" layer="27" rot="R90"/>
</element>
<element name="JP2" library="pinhead2" package="1X06" package3d_urn="urn:adsk.eagle:package:22472/2" value="" x="36.703" y="6.0452" smashed="yes" rot="R180">
<attribute name="NAME" x="44.3992" y="4.2164" size="1.27" layer="25" ratio="10" rot="R180"/>
<attribute name="VALUE" x="44.323" y="9.2202" size="1.27" layer="27" rot="R180"/>
</element>
<element name="JP3" library="pinhead2" package="1X07" package3d_urn="urn:adsk.eagle:package:22477/2" value="" x="51.689" y="34.925" smashed="yes" rot="R180">
<attribute name="NAME" x="60.6552" y="33.0962" size="1.27" layer="25" ratio="10" rot="R180"/>
<attribute name="VALUE" x="60.579" y="38.1" size="1.27" layer="27" rot="R180"/>
</element>
</elements>
<signals>
<signal name="VHIGH">
<contactref element="IC1" pad="4"/>
<contactref element="IC2" pad="4"/>
<contactref element="IC3" pad="4"/>
<wire x1="65.913" y1="35.687" x2="62.103" y2="31.877" width="0.6096" layer="16"/>
<wire x1="57.785" y1="26.035" x2="58.352946875" y2="26.035053125" width="0.6096" layer="1"/>
<wire x1="59.436" y1="24.952" x2="59.436" y2="18.221" width="0.6096" layer="1"/>
<wire x1="59.436" y1="24.952" x2="58.352946875" y2="26.035053125" width="0.6096" layer="1"/>
<via x="57.785" y="26.035" extent="1-16" drill="1.1" diameter="2"/>
<via x="44.577" y="29.845" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="57.785" y1="26.035" x2="51.562" y2="26.035" width="0.6096" layer="16"/>
<wire x1="44.577" y1="29.845" x2="44.958" y2="30.226" width="0.6096" layer="16"/>
<wire x1="47.371" y1="30.226" x2="44.958" y2="30.226" width="0.6096" layer="16"/>
<wire x1="51.562" y1="26.035" x2="47.371" y2="30.226" width="0.6096" layer="16"/>
<wire x1="44.577" y1="29.845" x2="44.45" y2="29.718" width="0.6096" layer="1"/>
<wire x1="44.45" y1="29.718" x2="44.45" y2="23.174" width="0.6096" layer="1"/>
<wire x1="44.577" y1="29.845" x2="44.45" y2="29.972" width="0.6096" layer="16"/>
<wire x1="44.45" y1="29.972" x2="36.068" y2="29.972" width="0.6096" layer="16"/>
<wire x1="36.068" y1="29.972" x2="29.718" y2="36.322" width="0.6096" layer="16"/>
<wire x1="27.305" y1="36.322" x2="25.527" y2="34.544" width="0.6096" layer="16"/>
<wire x1="25.527" y1="34.544" x2="25.527" y2="34.163" width="0.6096" layer="16"/>
<via x="25.527" y="34.163" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="25.527" y1="34.163" x2="25.527" y2="32.639" width="0.6096" layer="1"/>
<wire x1="25.527" y1="32.639" x2="24.384" y2="31.496" width="0.6096" layer="1"/>
<wire x1="24.384" y1="31.496" x2="24.384" y2="27.746" width="0.6096" layer="1"/>
<wire x1="29.718" y1="36.322" x2="27.305" y2="36.322" width="0.6096" layer="16"/>
<wire x1="62.103" y1="29.718" x2="62.103" y2="31.877" width="0.6096" layer="16"/>
<wire x1="62.103" y1="29.718" x2="58.42" y2="26.035" width="0.6096" layer="16"/>
<wire x1="58.42" y1="26.035" x2="57.785" y2="26.035" width="0.6096" layer="16"/>
<contactref element="JP1" pad="5"/>
<wire x1="70.612" y1="35.7632" x2="70.5358" y2="35.687" width="0.6096" layer="16"/>
<wire x1="70.5358" y1="35.687" x2="65.913" y2="35.687" width="0.6096" layer="16"/>
</signal>
<signal name="VG">
<contactref element="IC1" pad="3"/>
<contactref element="IC2" pad="3"/>
<contactref element="IC3" pad="3"/>
<contactref element="IC1" pad="5"/>
<contactref element="IC2" pad="5"/>
<contactref element="IC3" pad="5"/>
<wire x1="66.167" y1="33.147" x2="64.135" y2="31.115" width="0.6096" layer="16"/>
<wire x1="64.135" y1="31.115" x2="64.135" y2="27.813" width="0.6096" layer="16"/>
<wire x1="64.135" y1="27.813" x2="62.23" y2="25.908" width="0.6096" layer="16"/>
<wire x1="62.23" y1="25.908" x2="61.341" y2="25.908" width="0.6096" layer="16"/>
<via x="61.341" y="25.908" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="61.341" y1="25.908" x2="60.706" y2="25.273" width="0.6096" layer="1"/>
<wire x1="60.706" y1="25.273" x2="60.706" y2="18.221" width="0.6096" layer="1"/>
<wire x1="42.291" y1="27.686" x2="43.18" y2="26.797" width="0.6096" layer="1"/>
<wire x1="43.18" y1="26.797" x2="43.18" y2="23.174" width="0.6096" layer="1"/>
<via x="42.291" y="27.686" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="46.482" y1="23.876" x2="44.7675" y2="25.5905" width="0.6096" layer="16"/>
<wire x1="44.7675" y1="25.5905" x2="42.4815" y2="27.8765" width="0.6096" layer="16"/>
<wire x1="42.291" y1="27.686" x2="42.4815" y2="27.8765" width="0.6096" layer="16"/>
<wire x1="46.482" y1="23.876" x2="57.277" y2="23.876" width="0.6096" layer="16"/>
<wire x1="59.309" y1="23.876" x2="61.341" y2="25.908" width="0.6096" layer="16"/>
<wire x1="59.309" y1="23.876" x2="57.277" y2="23.876" width="0.6096" layer="16"/>
<wire x1="42.291" y1="27.686" x2="29.718" y2="27.686" width="0.6096" layer="16"/>
<wire x1="28.575" y1="34.163" x2="28.575" y2="28.829" width="0.6096" layer="16"/>
<wire x1="29.718" y1="27.686" x2="28.575" y2="28.829" width="0.6096" layer="16"/>
<wire x1="28.575" y1="28.829" x2="27.432" y2="29.972" width="0.6096" layer="16"/>
<via x="28.575" y="34.163" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="28.575" y1="34.163" x2="28.575" y2="33.655" width="0.6096" layer="1"/>
<wire x1="28.575" y1="33.655" x2="25.654" y2="30.734" width="0.6096" layer="1"/>
<wire x1="25.654" y1="30.734" x2="25.654" y2="27.746" width="0.6096" layer="1"/>
<wire x1="23.114" y1="32.258" x2="22.606" y2="32.766" width="0.6096" layer="1"/>
<via x="22.606" y="32.766" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="23.114" y1="27.746" x2="23.114" y2="32.258" width="0.6096" layer="1"/>
<wire x1="22.606" y1="32.766" x2="25.4" y2="29.972" width="0.6096" layer="16"/>
<wire x1="25.4" y1="29.972" x2="27.432" y2="29.972" width="0.6096" layer="16"/>
<wire x1="58.166" y1="18.221" x2="58.166" y2="22.225" width="0.6096" layer="1"/>
<wire x1="58.166" y1="22.225" x2="57.277" y2="23.114" width="0.6096" layer="1"/>
<via x="57.277" y="23.114" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="57.277" y1="23.114" x2="57.277" y2="23.876" width="0.6096" layer="16"/>
<wire x1="45.72" y1="23.174" x2="45.72" y2="26.797" width="0.6096" layer="1"/>
<via x="46.736" y="27.813" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="45.72" y1="26.797" x2="46.736" y2="27.813" width="0.6096" layer="1"/>
<wire x1="46.736" y1="27.813" x2="44.7675" y2="25.8445" width="0.6096" layer="16"/>
<wire x1="44.7675" y1="25.8445" x2="44.7675" y2="25.5905" width="0.6096" layer="16"/>
<contactref element="JP1" pad="4"/>
<wire x1="70.612" y1="33.2232" x2="70.5358" y2="33.147" width="0.6096" layer="16"/>
<wire x1="70.5358" y1="33.147" x2="66.167" y2="33.147" width="0.6096" layer="16"/>
</signal>
<signal name="VG/2">
<wire x1="67.564" y1="30.607" x2="67.183" y2="30.988" width="0.6096" layer="16"/>
<via x="67.183" y="30.988" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="67.183" y1="30.988" x2="60.071" y2="30.988" width="0.6096" layer="1"/>
<wire x1="60.071" y1="30.988" x2="59.69" y2="31.369" width="0.6096" layer="1"/>
<via x="59.69" y="31.369" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="59.309" y1="31.75" x2="59.69" y2="31.369" width="0.6096" layer="16"/>
<contactref element="JP1" pad="3"/>
<contactref element="JP3" pad="1"/>
<wire x1="59.309" y1="34.925" x2="59.309" y2="31.75" width="0.6096" layer="16"/>
<wire x1="70.612" y1="30.6832" x2="70.5358" y2="30.607" width="0.6096" layer="16"/>
<wire x1="70.5358" y1="30.607" x2="67.564" y2="30.607" width="0.6096" layer="16"/>
</signal>
<signal name="VG-1">
<contactref element="R7" pad="2"/>
<contactref element="R3" pad="1"/>
<contactref element="R13" pad="1"/>
<contactref element="R17" pad="2"/>
<contactref element="R27" pad="2"/>
<contactref element="R23" pad="1"/>
<via x="60.325" y="5.372" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="70.485" y1="7.531" x2="68.326" y2="5.372" width="0.6096" layer="16"/>
<wire x1="60.325" y1="5.372" x2="68.326" y2="5.372" width="0.6096" layer="16"/>
<wire x1="70.485" y1="7.531" x2="70.485" y2="11.811" width="0.6096" layer="16"/>
<wire x1="70.485" y1="11.811" x2="67.818" y2="14.478" width="0.6096" layer="16"/>
<wire x1="67.818" y1="14.478" x2="67.818" y2="26.543" width="0.6096" layer="16"/>
<wire x1="69.342" y1="28.067" x2="67.818" y2="26.543" width="0.6096" layer="16"/>
<wire x1="60.325" y1="5.372" x2="50.762" y2="5.372" width="0.6096" layer="16"/>
<wire x1="50.762" y1="5.372" x2="46.609" y2="9.525" width="0.6096" layer="16"/>
<wire x1="46.609" y1="9.525" x2="46.609" y2="9.652" width="0.6096" layer="16"/>
<via x="46.609" y="9.652" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="63.058" y1="5.461" x2="62.969" y2="5.372" width="0.6096" layer="1"/>
<wire x1="62.969" y1="5.372" x2="60.325" y2="5.372" width="0.6096" layer="1"/>
<wire x1="60.325" y1="5.372" x2="57.686" y2="5.372" width="0.6096" layer="1"/>
<wire x1="57.658" y1="5.4" x2="57.686" y2="5.372" width="0.6096" layer="1"/>
<wire x1="26.096" y1="10.729" x2="26.096" y2="10.287" width="0.6096" layer="1"/>
<wire x1="25.715" y1="9.906" x2="26.096" y2="10.287" width="0.6096" layer="1"/>
<wire x1="28.448" y1="12.766" x2="28.133" y2="12.766" width="0.6096" layer="1"/>
<wire x1="28.448" y1="12.766" x2="28.829" y2="12.385" width="0.6096" layer="1"/>
<wire x1="26.096" y1="10.729" x2="28.133" y2="12.766" width="0.6096" layer="1"/>
<wire x1="49.53" y1="9.464" x2="49.342" y2="9.652" width="0.6096" layer="1"/>
<wire x1="49.342" y1="9.652" x2="46.609" y2="9.652" width="0.6096" layer="1"/>
<wire x1="31.496" y1="14.478" x2="31.496" y2="13.843" width="0.6096" layer="1"/>
<wire x1="31.496" y1="13.843" x2="29.911" y2="12.258" width="0.6096" layer="1"/>
<wire x1="29.911" y1="12.258" x2="28.956" y2="12.258" width="0.6096" layer="1"/>
<wire x1="28.956" y1="12.258" x2="28.829" y2="12.385" width="0.6096" layer="1"/>
<via x="31.496" y="14.478" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="40.005" y1="15.113" x2="32.131" y2="15.113" width="0.6096" layer="16"/>
<wire x1="31.496" y1="14.478" x2="32.131" y2="15.113" width="0.6096" layer="16"/>
<wire x1="43.18" y1="12.319" x2="42.799" y2="12.319" width="0.6096" layer="16"/>
<wire x1="42.799" y1="12.319" x2="40.005" y2="15.113" width="0.6096" layer="16"/>
<via x="43.18" y="12.319" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="46.609" y1="9.652" x2="43.942" y2="12.319" width="0.6096" layer="1"/>
<wire x1="43.18" y1="12.319" x2="43.942" y2="12.319" width="0.6096" layer="1"/>
<wire x1="42.103" y1="11.242" x2="43.18" y2="12.319" width="0.6096" layer="1"/>
<wire x1="40.513" y1="11.242" x2="42.103" y2="11.242" width="0.6096" layer="1"/>
<contactref element="JP1" pad="2"/>
<wire x1="70.612" y1="28.1432" x2="70.5358" y2="28.067" width="0.6096" layer="16"/>
<wire x1="70.5358" y1="28.067" x2="69.342" y2="28.067" width="0.6096" layer="16"/>
</signal>
<signal name="GND">
<contactref element="R4" pad="1"/>
<contactref element="R8" pad="1"/>
<contactref element="IC1" pad="11"/>
<contactref element="R14" pad="1"/>
<contactref element="R18" pad="1"/>
<contactref element="R24" pad="1"/>
<contactref element="R28" pad="1"/>
<contactref element="IC2" pad="11"/>
<contactref element="IC3" pad="11"/>
<wire x1="59.436" y1="13.021" x2="59.436" y2="11.303" width="0.6096" layer="1"/>
<wire x1="60.005" y1="9.525" x2="60.005" y2="10.734" width="0.6096" layer="1"/>
<wire x1="60.005" y1="10.734" x2="59.436" y2="11.303" width="0.6096" layer="1"/>
<wire x1="61.783" y1="7.62" x2="63.754" y2="7.62" width="0.6096" layer="1"/>
<wire x1="61.783" y1="7.62" x2="60.005" y2="9.398" width="0.6096" layer="1"/>
<wire x1="60.005" y1="9.398" x2="60.005" y2="9.525" width="0.6096" layer="1"/>
<wire x1="70.165" y1="15.367" x2="70.165" y2="13.65" width="0.6096" layer="1"/>
<wire x1="68.961" y1="12.446" x2="70.165" y2="13.65" width="0.6096" layer="1"/>
<wire x1="70.165" y1="15.367" x2="70.866" y2="16.068" width="0.6096" layer="1"/>
<wire x1="66.294" y1="28.194" x2="66.294" y2="27.178" width="0.6096" layer="1"/>
<wire x1="70.866" y1="22.352" x2="70.104" y2="23.114" width="0.6096" layer="1"/>
<wire x1="70.104" y1="23.114" x2="68.707" y2="23.114" width="0.6096" layer="1"/>
<wire x1="68.707" y1="23.114" x2="67.818" y2="24.003" width="0.6096" layer="1"/>
<wire x1="67.818" y1="25.654" x2="67.818" y2="24.003" width="0.6096" layer="1"/>
<wire x1="67.818" y1="25.654" x2="66.294" y2="27.178" width="0.6096" layer="1"/>
<via x="66.294" y="28.194" extent="1-16" drill="1.1" diameter="2"/>
<via x="53.34" y="13.462" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="53.34" y1="13.462" x2="52.705" y2="13.462" width="0.6096" layer="1"/>
<wire x1="52.705" y1="13.462" x2="50.927" y2="15.24" width="0.6096" layer="1"/>
<wire x1="50.927" y1="15.24" x2="50.927" y2="16.449" width="0.6096" layer="1"/>
<wire x1="66.294" y1="28.194" x2="65.913" y2="27.813" width="0.6096" layer="16"/>
<wire x1="65.913" y1="27.813" x2="65.913" y2="17.526" width="0.6096" layer="16"/>
<wire x1="65.913" y1="17.526" x2="64.008" y2="15.621" width="0.6096" layer="16"/>
<wire x1="64.008" y1="15.621" x2="55.882396875" y2="15.621" width="0.6096" layer="16"/>
<wire x1="55.882396875" y1="15.621" x2="53.723396875" y2="13.462" width="0.6096" layer="16"/>
<wire x1="53.34" y1="13.462" x2="53.723396875" y2="13.462" width="0.6096" layer="16"/>
<wire x1="51.181" y1="14.986" x2="44.069" y2="14.986" width="0.6096" layer="16"/>
<wire x1="53.34" y1="13.462" x2="52.705" y2="13.462" width="0.6096" layer="16"/>
<wire x1="52.705" y1="13.462" x2="51.181" y2="14.986" width="0.6096" layer="16"/>
<via x="44.069" y="14.986" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="44.45" y1="17.974" x2="44.45" y2="15.367" width="0.6096" layer="1"/>
<wire x1="44.069" y1="14.986" x2="44.45" y2="15.367" width="0.6096" layer="1"/>
<wire x1="44.069" y1="14.986" x2="38.862" y2="20.193" width="0.6096" layer="16"/>
<wire x1="38.862" y1="20.193" x2="33.8836" y2="20.193" width="0.6096" layer="16"/>
<via x="33.8836" y="20.193" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="33.8836" y1="20.193" x2="30.7086" y2="17.018" width="0.6096" layer="16"/>
<wire x1="30.7086" y1="17.018" x2="24.765" y2="17.018" width="0.6096" layer="16"/>
<via x="24.765" y="17.018" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="24.765" y1="17.018" x2="24.384" y2="17.399" width="0.6096" layer="1"/>
<wire x1="24.384" y1="17.399" x2="24.384" y2="22.546" width="0.6096" layer="1"/>
<wire x1="24.765" y1="17.018" x2="24.196" y2="16.449" width="0.6096" layer="1"/>
<wire x1="24.196" y1="16.449" x2="24.196" y2="14.224" width="0.6096" layer="1"/>
<wire x1="18.542" y1="14.036" x2="18.542" y2="11.214" width="0.6096" layer="1"/>
<wire x1="18.542" y1="11.214" x2="18.58" y2="11.176" width="0.6096" layer="1"/>
<via x="18.58" y="11.176" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="64.643" y1="9.906" x2="67.183" y2="12.446" width="0.6096" layer="1"/>
<wire x1="67.183" y1="12.446" x2="68.961" y2="12.446" width="0.6096" layer="1"/>
<wire x1="63.754" y1="7.62" x2="64.643" y2="8.509" width="0.6096" layer="1"/>
<wire x1="64.643" y1="8.509" x2="64.643" y2="9.906" width="0.6096" layer="1"/>
<polygon width="0.127" layer="1" isolate="1" thermals="no">
<vertex x="14.859" y="39.37"/>
<vertex x="75.311" y="39.37"/>
<vertex x="75.311" y="1.524"/>
<vertex x="14.859" y="1.524"/>
</polygon>
<polygon width="0.127" layer="16" isolate="1" thermals="no">
<vertex x="14.859" y="39.37"/>
<vertex x="75.311" y="39.37"/>
<vertex x="75.311" y="1.524"/>
<vertex x="14.859" y="1.524"/>
</polygon>
<wire x1="70.866" y1="16.068" x2="70.866" y2="22.352" width="0.6096" layer="1"/>
<wire x1="38.862" y1="18.608" x2="36.51" y2="18.608" width="0.6096" layer="1"/>
<wire x1="36.51" y1="18.608" x2="34.925" y2="20.193" width="0.6096" layer="1"/>
<wire x1="34.925" y1="20.193" x2="33.8836" y2="20.193" width="0.6096" layer="1"/>
<contactref element="JP1" pad="1"/>
</signal>
<signal name="S1">
<contactref element="R2" pad="1"/>
<contactref element="IC1" pad="14"/>
<wire x1="30.922" y1="19.691" x2="28.194" y2="22.419" width="0.6096" layer="1"/>
<wire x1="28.194" y1="22.546" x2="28.194" y2="22.419" width="0.6096" layer="1"/>
<wire x1="30.922" y1="19.691" x2="30.922" y2="18.288" width="0.6096" layer="1"/>
<wire x1="30.922" y1="18.288" x2="31.811" y2="18.288" width="0.6096" layer="1"/>
<wire x1="33.655" y1="16.444" x2="31.811" y2="18.288" width="0.6096" layer="1"/>
<wire x1="33.655" y1="16.444" x2="33.655" y2="12.573" width="0.6096" layer="1"/>
<wire x1="33.655" y1="12.573" x2="30.861" y2="9.779" width="0.6096" layer="1"/>
<via x="28.829" y="9.779" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="29.337" y1="9.779" x2="30.353" y2="8.763" width="0.6096" layer="16"/>
<wire x1="28.829" y1="9.779" x2="29.337" y2="9.779" width="0.6096" layer="16"/>
<wire x1="30.861" y1="9.779" x2="28.829" y2="9.779" width="0.6096" layer="1"/>
<contactref element="JP2" pad="6"/>
<wire x1="30.353" y1="8.763" x2="30.353" y2="6.0452" width="0.6096" layer="16"/>
</signal>
<signal name="S2">
<contactref element="R6" pad="2"/>
<contactref element="IC1" pad="8"/>
<wire x1="20.574" y1="22.546" x2="20.5638" y2="22.5358" width="0.6096" layer="1"/>
<wire x1="20.5638" y1="22.5358" x2="20.5638" y2="18.542" width="0.6096" layer="1"/>
<wire x1="20.5638" y1="18.542" x2="20.3352" y2="18.3134" width="0.6096" layer="1"/>
<wire x1="20.3352" y1="18.3134" x2="20.513" y2="18.1356" width="0.6096" layer="1"/>
<wire x1="20.513" y1="18.1356" x2="20.5232" y2="13.081" width="0.6096" layer="1"/>
<wire x1="20.5232" y1="13.081" x2="20.5232" y2="12.3698" width="0.6096" layer="1"/>
<wire x1="20.5232" y1="12.3698" x2="21.6154" y2="11.2776" width="0.6096" layer="1"/>
<wire x1="21.6154" y1="11.2776" x2="21.6154" y2="9.2964" width="0.6096" layer="1"/>
<wire x1="21.6154" y1="9.2964" x2="20.3962" y2="8.0772" width="0.6096" layer="1"/>
<via x="20.3962" y="8.0772" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="30.099" y1="12.192" x2="27.559" y2="12.192" width="0.6096" layer="16"/>
<wire x1="32.385" y1="9.906" x2="30.099" y2="12.192" width="0.6096" layer="16"/>
<wire x1="23.4442" y1="8.0772" x2="20.3962" y2="8.0772" width="0.6096" layer="16"/>
<wire x1="27.559" y1="12.192" x2="23.4442" y2="8.0772" width="0.6096" layer="16"/>
<contactref element="JP2" pad="5"/>
<wire x1="32.893" y1="6.0452" x2="32.385" y2="6.5532" width="0.6096" layer="16"/>
<wire x1="32.385" y1="6.5532" x2="32.385" y2="9.906" width="0.6096" layer="16"/>
</signal>
<signal name="S3">
<contactref element="R12" pad="1"/>
<contactref element="IC2" pad="14"/>
<wire x1="48.575" y1="14.097" x2="48.26" y2="14.097" width="0.6096" layer="1"/>
<wire x1="48.26" y1="17.974" x2="48.26" y2="14.097" width="0.6096" layer="1"/>
<wire x1="48.575" y1="14.097" x2="49.657" y2="14.097" width="0.6096" layer="1"/>
<wire x1="51.943" y1="11.811" x2="51.943" y2="8.89" width="0.6096" layer="1"/>
<wire x1="49.657" y1="14.097" x2="51.943" y2="11.811" width="0.6096" layer="1"/>
<wire x1="51.943" y1="8.89" x2="50.546" y2="7.493" width="0.6096" layer="1"/>
<wire x1="50.546" y1="7.493" x2="45.72" y2="7.493" width="0.6096" layer="1"/>
<wire x1="43.815" y1="9.398" x2="34.544" y2="9.398" width="0.6096" layer="1"/>
<via x="34.544" y="9.398" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="34.544" y1="9.398" x2="35.433" y2="8.509" width="0.6096" layer="16"/>
<wire x1="45.72" y1="7.493" x2="43.815" y2="9.398" width="0.6096" layer="1"/>
<contactref element="JP2" pad="4"/>
<wire x1="35.433" y1="8.509" x2="35.433" y2="6.0452" width="0.6096" layer="16"/>
</signal>
<signal name="S4">
<contactref element="R16" pad="2"/>
<contactref element="IC2" pad="8"/>
<via x="36.449" y="11.811" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="37.592" y1="10.287" x2="36.449" y2="11.43" width="0.6096" layer="16"/>
<wire x1="36.449" y1="11.811" x2="36.449" y2="11.43" width="0.6096" layer="16"/>
<wire x1="37.592" y1="6.985" x2="37.592" y2="10.287" width="0.6096" layer="16"/>
<wire x1="36.068" y1="14.29" x2="35.753" y2="14.605" width="0.6096" layer="1"/>
<wire x1="35.8982" y1="15.812625" x2="36.545375" y2="16.4598" width="0.6096" layer="1"/>
<wire x1="35.753" y1="14.605" x2="35.8982" y2="14.7502" width="0.6096" layer="1"/>
<wire x1="35.8982" y1="14.7502" x2="35.8982" y2="15.812625" width="0.6096" layer="1"/>
<wire x1="36.545375" y1="16.4598" x2="40.0082" y2="16.4598" width="0.6096" layer="1"/>
<wire x1="36.449" y1="11.811" x2="35.753" y2="12.507" width="0.6096" layer="1"/>
<wire x1="35.753" y1="12.507" x2="35.753" y2="14.605" width="0.6096" layer="1"/>
<wire x1="40.0082" y1="16.4598" x2="40.64" y2="17.0916" width="0.6096" layer="1"/>
<wire x1="40.64" y1="17.0916" x2="40.64" y2="17.974" width="0.6096" layer="1"/>
<contactref element="JP2" pad="3"/>
<wire x1="37.973" y1="6.0452" x2="37.973" y2="6.604" width="0.6096" layer="16"/>
<wire x1="37.973" y1="6.604" x2="37.592" y2="6.985" width="0.6096" layer="16"/>
</signal>
<signal name="S5">
<contactref element="R22" pad="1"/>
<contactref element="IC3" pad="14"/>
<wire x1="70.739" y1="9.078" x2="69.657" y2="10.16" width="0.6096" layer="1"/>
<wire x1="69.657" y1="10.16" x2="68.199" y2="10.16" width="0.6096" layer="1"/>
<via x="68.199" y="10.16" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="68.199" y1="10.16" x2="65.405" y2="12.954" width="0.6096" layer="16"/>
<wire x1="65.405" y1="13.716" x2="65.405" y2="12.954" width="0.6096" layer="16"/>
<via x="65.405" y="13.716" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="65.405" y1="13.716" x2="64.71" y2="13.021" width="0.6096" layer="1"/>
<wire x1="64.71" y1="13.021" x2="63.246" y2="13.021" width="0.6096" layer="1"/>
<wire x1="65.405" y1="13.716" x2="61.722" y2="13.716" width="0.6096" layer="16"/>
<wire x1="61.722" y1="13.716" x2="57.277" y2="9.271" width="0.6096" layer="16"/>
<wire x1="57.277" y1="9.271" x2="51.689" y2="9.271" width="0.6096" layer="16"/>
<wire x1="51.689" y1="9.271" x2="49.149" y2="11.811" width="0.6096" layer="16"/>
<wire x1="49.149" y1="11.811" x2="45.72" y2="11.811" width="0.6096" layer="16"/>
<wire x1="45.72" y1="11.811" x2="43.942" y2="10.033" width="0.6096" layer="16"/>
<wire x1="41.402" y1="10.033" x2="43.942" y2="10.033" width="0.6096" layer="16"/>
<contactref element="JP2" pad="2"/>
<wire x1="40.513" y1="6.0452" x2="40.513" y2="9.144" width="0.6096" layer="16"/>
<wire x1="40.513" y1="9.144" x2="41.402" y2="10.033" width="0.6096" layer="16"/>
</signal>
<signal name="S6">
<contactref element="R26" pad="2"/>
<contactref element="IC3" pad="8"/>
<via x="46.609" y="5.334" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="46.609" y1="5.334" x2="51.501" y2="5.334" width="0.6096" layer="1"/>
<wire x1="53.406" y1="7.239" x2="51.501" y2="5.334" width="0.6096" layer="1"/>
<wire x1="53.406" y1="7.239" x2="53.406" y2="7.366" width="0.6096" layer="1"/>
<wire x1="55.626" y1="13.021" x2="55.626" y2="12.259" width="0.6096" layer="1"/>
<wire x1="55.626" y1="12.259" x2="53.406" y2="10.039" width="0.6096" layer="1"/>
<wire x1="53.406" y1="10.039" x2="53.406" y2="7.366" width="0.6096" layer="1"/>
<contactref element="JP2" pad="1"/>
<wire x1="46.609" y1="5.334" x2="43.9674" y2="5.334" width="0.6096" layer="16"/>
<wire x1="43.9674" y1="5.334" x2="43.942" y2="5.3594" width="0.6096" layer="16"/>
<wire x1="43.942" y1="5.3594" x2="43.7388" y2="5.3594" width="0.6096" layer="16"/>
<wire x1="43.7388" y1="5.3594" x2="43.053" y2="6.0452" width="0.6096" layer="16"/>
</signal>
<signal name="S1IN">
<contactref element="IC1" pad="2"/>
<contactref element="C2" pad="2"/>
<contactref element="R10" pad="1"/>
<wire x1="40.894" y1="33.782" x2="39.431" y2="32.319" width="0.6096" layer="1"/>
<wire x1="39.431" y1="32.319" x2="37.8968" y2="32.319" width="0.6096" layer="1"/>
<via x="40.894" y="33.782" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="40.894" y1="33.782" x2="42.672" y2="32.004" width="0.6096" layer="16"/>
<wire x1="45.339" y1="32.004" x2="42.672" y2="32.004" width="0.6096" layer="16"/>
<wire x1="35.56" y1="32.319" x2="37.8968" y2="32.319" width="0.6096" layer="1"/>
<wire x1="35.56" y1="32.319" x2="35.306" y2="32.065" width="0.6096" layer="1"/>
<wire x1="35.306" y1="32.065" x2="29.017" y2="32.065" width="0.6096" layer="1"/>
<wire x1="26.924" y1="29.972" x2="26.924" y2="27.746" width="0.6096" layer="1"/>
<wire x1="29.017" y1="32.065" x2="26.924" y2="29.972" width="0.6096" layer="1"/>
<contactref element="JP3" pad="6"/>
<wire x1="46.609" y1="34.925" x2="46.609" y2="33.274" width="0.6096" layer="16"/>
<wire x1="46.609" y1="33.274" x2="45.339" y2="32.004" width="0.6096" layer="16"/>
</signal>
<signal name="S2IN">
<contactref element="C1" pad="2"/>
<contactref element="R9" pad="1"/>
<contactref element="IC1" pad="6"/>
<wire x1="36.957" y1="35.941" x2="35.814" y2="34.798" width="0.6096" layer="16"/>
<via x="35.814" y="34.798" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="35.814" y1="34.798" x2="34.29" y2="36.322" width="0.6096" layer="1"/>
<wire x1="34.29" y1="36.322" x2="22.0574" y2="36.322" width="0.6096" layer="1"/>
<wire x1="22.0574" y1="36.322" x2="20.635" y2="34.8996" width="0.6096" layer="1"/>
<wire x1="20.635" y1="34.8996" x2="20.381" y2="34.6456" width="0.6096" layer="1"/>
<wire x1="20.508" y1="30.861" x2="20.381" y2="30.988" width="0.6096" layer="1"/>
<wire x1="20.381" y1="34.6456" x2="20.381" y2="30.988" width="0.6096" layer="1"/>
<wire x1="21.844" y1="29.906" x2="20.889" y2="30.861" width="0.6096" layer="1"/>
<wire x1="20.508" y1="30.861" x2="20.889" y2="30.861" width="0.6096" layer="1"/>
<wire x1="21.844" y1="29.906" x2="21.844" y2="27.746" width="0.6096" layer="1"/>
<contactref element="JP3" pad="7"/>
<wire x1="44.069" y1="34.925" x2="43.053" y2="35.941" width="0.6096" layer="16"/>
<wire x1="43.053" y1="35.941" x2="36.957" y2="35.941" width="0.6096" layer="16"/>
</signal>
<signal name="S3IN">
<contactref element="IC2" pad="2"/>
<contactref element="R20" pad="1"/>
<contactref element="C4" pad="2"/>
<wire x1="52.959" y1="27.493" x2="50.673" y2="27.493" width="0.6096" layer="1"/>
<wire x1="51.943" y1="30.226" x2="52.959" y2="29.21" width="0.6096" layer="1"/>
<wire x1="52.959" y1="29.21" x2="52.959" y2="27.493" width="0.6096" layer="1"/>
<via x="51.943" y="30.226" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="46.99" y1="23.174" x2="46.99" y2="25.019" width="0.6096" layer="1"/>
<wire x1="49.464" y1="27.493" x2="50.673" y2="27.493" width="0.6096" layer="1"/>
<wire x1="46.99" y1="25.019" x2="49.464" y2="27.493" width="0.6096" layer="1"/>
<contactref element="JP3" pad="4"/>
<wire x1="51.689" y1="34.925" x2="51.689" y2="30.48" width="0.6096" layer="16"/>
<wire x1="51.689" y1="30.48" x2="51.943" y2="30.226" width="0.6096" layer="16"/>
</signal>
<signal name="S4IN">
<contactref element="R19" pad="1"/>
<contactref element="C3" pad="2"/>
<contactref element="IC2" pad="6"/>
<via x="49.149" y="31.496" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="41.91" y1="24.892" x2="41.91" y2="23.174" width="0.6096" layer="1"/>
<wire x1="39.9034" y1="26.8986" x2="39.9034" y2="27.559" width="0.6096" layer="1"/>
<wire x1="39.9034" y1="26.8986" x2="41.91" y2="24.892" width="0.6096" layer="1"/>
<wire x1="37.653" y1="27.5844" x2="37.6784" y2="27.559" width="0.6096" layer="1"/>
<wire x1="37.653" y1="27.559" x2="37.6784" y2="27.559" width="0.6096" layer="1"/>
<wire x1="37.6784" y1="27.559" x2="39.9034" y2="27.559" width="0.6096" layer="1"/>
<wire x1="37.653" y1="25.273" x2="37.653" y2="27.559" width="0.6096" layer="1"/>
<wire x1="39.9034" y1="27.559" x2="39.9034" y2="29.3624" width="0.6096" layer="1"/>
<wire x1="39.9034" y1="29.3624" x2="42.545" y2="32.004" width="0.6096" layer="1"/>
<wire x1="42.545" y1="32.004" x2="48.641" y2="32.004" width="0.6096" layer="1"/>
<wire x1="48.641" y1="32.004" x2="49.149" y2="31.496" width="0.6096" layer="1"/>
<contactref element="JP3" pad="5"/>
<wire x1="49.149" y1="34.925" x2="49.149" y2="31.496" width="0.6096" layer="16"/>
</signal>
<signal name="S5IN">
<contactref element="IC3" pad="2"/>
<contactref element="R30" pad="1"/>
<contactref element="C6" pad="2"/>
<wire x1="61.976" y1="18.221" x2="61.976" y2="20.447" width="0.6096" layer="1"/>
<wire x1="61.976" y1="20.447" x2="62.484" y2="20.955" width="0.6096" layer="1"/>
<wire x1="62.484" y1="20.955" x2="63.566" y2="20.955" width="0.6096" layer="1"/>
<wire x1="63.566" y1="20.955" x2="63.566" y2="23.368" width="0.6096" layer="1"/>
<wire x1="63.566" y1="23.368" x2="63.566" y2="26.858" width="0.6096" layer="1"/>
<wire x1="61.595" y1="28.829" x2="58.166" y2="28.829" width="0.6096" layer="1"/>
<via x="58.166" y="28.829" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="58.166" y1="29.718" x2="58.166" y2="28.829" width="0.6096" layer="16"/>
<wire x1="56.769" y1="31.115" x2="58.166" y2="29.718" width="0.6096" layer="16"/>
<wire x1="63.566" y1="26.858" x2="61.595" y2="28.829" width="0.6096" layer="1"/>
<contactref element="JP3" pad="2"/>
<wire x1="56.769" y1="34.925" x2="56.769" y2="31.115" width="0.6096" layer="16"/>
</signal>
<signal name="S6IN">
<contactref element="R29" pad="1"/>
<contactref element="C5" pad="2"/>
<contactref element="IC3" pad="6"/>
<wire x1="56.896" y1="18.221" x2="56.896" y2="20.254" width="0.6096" layer="1"/>
<wire x1="56.896" y1="20.254" x2="55.941" y2="21.209" width="0.6096" layer="1"/>
<wire x1="55.941" y1="21.209" x2="54.798" y2="21.209" width="0.6096" layer="1"/>
<wire x1="54.798" y1="23.368" x2="54.798" y2="21.209" width="0.6096" layer="1"/>
<wire x1="55.118" y1="29.464" x2="55.052" y2="29.398" width="0.6096" layer="1"/>
<wire x1="55.052" y1="29.398" x2="55.052" y2="23.622" width="0.6096" layer="1"/>
<wire x1="55.052" y1="23.622" x2="54.798" y2="23.368" width="0.6096" layer="1"/>
<via x="55.118" y="29.464" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="54.483" y1="34.671" x2="54.483" y2="30.226" width="0.6096" layer="16"/>
<wire x1="55.118" y1="29.591" x2="55.118" y2="29.464" width="0.6096" layer="16"/>
<wire x1="55.118" y1="29.591" x2="54.483" y2="30.226" width="0.6096" layer="16"/>
<contactref element="JP3" pad="3"/>
<wire x1="54.229" y1="34.925" x2="54.483" y2="34.671" width="0.6096" layer="16"/>
</signal>
<signal name="N$3">
<contactref element="R2" pad="2"/>
<contactref element="R3" pad="2"/>
<contactref element="IC1" pad="13"/>
<wire x1="29.083" y1="18.227" x2="29.083" y2="14.539" width="0.6096" layer="1"/>
<wire x1="29.083" y1="14.539" x2="28.829" y2="14.285" width="0.6096" layer="1"/>
<wire x1="29.022" y1="18.288" x2="29.083" y2="18.227" width="0.6096" layer="1"/>
<wire x1="26.924" y1="20.386" x2="26.924" y2="22.546" width="0.6096" layer="1"/>
<wire x1="29.022" y1="18.288" x2="26.924" y2="20.386" width="0.6096" layer="1"/>
</signal>
<signal name="N$4">
<contactref element="R5" pad="1"/>
<contactref element="R9" pad="2"/>
<contactref element="C1" pad="1"/>
<contactref element="IC1" pad="7"/>
<wire x1="18.735" y1="34.8996" x2="18.735" y2="30.988" width="0.6096" layer="1"/>
<wire x1="18.735" y1="30.988" x2="18.608" y2="30.861" width="0.6096" layer="1"/>
<wire x1="18.608" y1="30.861" x2="18.288" y2="30.541" width="0.6096" layer="1"/>
<wire x1="18.288" y1="30.541" x2="18.288" y2="27.7724" width="0.6096" layer="1"/>
<wire x1="20.5476" y1="27.7724" x2="20.574" y2="27.746" width="0.6096" layer="1"/>
<wire x1="20.5476" y1="27.7724" x2="18.288" y2="27.7724" width="0.6096" layer="1"/>
<wire x1="18.669" y1="27.62" x2="18.667" y2="27.62" width="0.6096" layer="1"/>
<wire x1="18.667" y1="27.62" x2="18.5156" y2="27.7714" width="0.6096" layer="1"/>
<wire x1="20.5486" y1="27.7714" x2="20.574" y2="27.746" width="0.6096" layer="1"/>
<wire x1="20.5486" y1="27.7714" x2="18.5156" y2="27.7714" width="0.6096" layer="1"/>
</signal>
<signal name="N$5">
<contactref element="R6" pad="1"/>
<contactref element="R7" pad="1"/>
<contactref element="IC1" pad="9"/>
<wire x1="22.2352" y1="18.3134" x2="22.2352" y2="19.9644" width="0.6096" layer="1"/>
<wire x1="22.2352" y1="19.9644" x2="21.844" y2="20.3556" width="0.6096" layer="1"/>
<wire x1="21.844" y1="20.3556" x2="21.844" y2="22.546" width="0.6096" layer="1"/>
<wire x1="22.2352" y1="18.3134" x2="22.159" y2="18.2372" width="0.6096" layer="1"/>
<wire x1="22.159" y1="18.2372" x2="22.159" y2="13.0606" width="0.6096" layer="1"/>
<wire x1="23.815" y1="11.4046" x2="23.815" y2="9.906" width="0.6096" layer="1"/>
<wire x1="23.815" y1="11.4046" x2="22.159" y2="13.0606" width="0.6096" layer="1"/>
</signal>
<signal name="N$2">
<contactref element="R5" pad="2"/>
<contactref element="R8" pad="2"/>
<contactref element="IC1" pad="10"/>
<wire x1="22.733" y1="25.019" x2="18.669" y2="25.019" width="0.6096" layer="1"/>
<wire x1="18.669" y1="25.72" x2="18.669" y2="25.019" width="0.6096" layer="1"/>
<wire x1="22.733" y1="25.019" x2="23.114" y2="24.638" width="0.6096" layer="1"/>
<wire x1="23.114" y1="24.638" x2="23.114" y2="22.546" width="0.6096" layer="1"/>
<wire x1="18.542" y1="15.936" x2="18.669" y2="16.063" width="0.6096" layer="1"/>
<wire x1="18.669" y1="25.72" x2="18.669" y2="16.063" width="0.6096" layer="1"/>
</signal>
<signal name="N$6">
<contactref element="R1" pad="2"/>
<contactref element="R4" pad="2"/>
<contactref element="IC1" pad="12"/>
<wire x1="31.496" y1="28.006" x2="28.636" y2="25.146" width="0.6096" layer="1"/>
<wire x1="28.636" y1="25.146" x2="26.289" y2="25.146" width="0.6096" layer="1"/>
<wire x1="25.654" y1="24.511" x2="25.654" y2="22.546" width="0.6096" layer="1"/>
<wire x1="26.289" y1="25.146" x2="25.654" y2="24.511" width="0.6096" layer="1"/>
<wire x1="26.924" y1="18.228" x2="26.924" y2="15.052" width="0.6096" layer="1"/>
<wire x1="26.096" y1="14.224" x2="26.924" y2="15.052" width="0.6096" layer="1"/>
<wire x1="26.924" y1="18.228" x2="25.654" y2="19.498" width="0.6096" layer="1"/>
<wire x1="25.654" y1="19.498" x2="25.654" y2="22.546" width="0.6096" layer="1"/>
</signal>
<signal name="N$9">
<contactref element="C2" pad="1"/>
<contactref element="IC1" pad="1"/>
<contactref element="R1" pad="1"/>
<contactref element="R10" pad="2"/>
<wire x1="31.496" y1="29.906" x2="31.243" y2="30.159" width="0.6096" layer="1"/>
<wire x1="31.243" y1="30.159" x2="29.21" y2="30.159" width="0.6096" layer="1"/>
<wire x1="28.194" y1="27.746" x2="28.194" y2="29.143" width="0.6096" layer="1"/>
<wire x1="29.21" y1="30.159" x2="28.194" y2="29.143" width="0.6096" layer="1"/>
<wire x1="34.158" y1="30.16" x2="31.75" y2="30.16" width="0.6096" layer="1"/>
<wire x1="31.496" y1="29.906" x2="31.75" y2="30.16" width="0.6096" layer="1"/>
<wire x1="35.306" y1="30.165" x2="35.56" y2="30.419" width="0.6096" layer="1"/>
<wire x1="35.306" y1="30.165" x2="34.163" y2="30.165" width="0.6096" layer="1"/>
<wire x1="34.163" y1="30.165" x2="34.158" y2="30.16" width="0.6096" layer="1"/>
<wire x1="35.56" y1="30.419" x2="37.8968" y2="30.419" width="0.6096" layer="1"/>
</signal>
<signal name="N$12">
<contactref element="IC2" pad="1"/>
<contactref element="R11" pad="1"/>
<contactref element="R20" pad="2"/>
<contactref element="C4" pad="1"/>
<wire x1="52.959" y1="25.593" x2="50.673" y2="25.593" width="0.6096" layer="1"/>
<wire x1="50.673" y1="25.593" x2="50.673" y2="23.175" width="0.6096" layer="1"/>
<wire x1="50.673" y1="23.175" x2="50.672" y2="23.174" width="0.6096" layer="1"/>
<wire x1="50.672" y1="23.174" x2="48.26" y2="23.174" width="0.6096" layer="1"/>
</signal>
<signal name="N$7">
<contactref element="R15" pad="1"/>
<contactref element="R19" pad="2"/>
<contactref element="C3" pad="1"/>
<contactref element="IC2" pad="7"/>
<wire x1="40.64" y1="23.174" x2="40.446" y2="23.368" width="0.6096" layer="1"/>
<wire x1="40.446" y1="23.368" x2="36.5252" y2="23.368" width="0.6096" layer="1"/>
<wire x1="35.753" y1="24.1402" x2="35.753" y2="25.273" width="0.6096" layer="1"/>
<wire x1="36.5252" y1="23.368" x2="35.753" y2="24.1402" width="0.6096" layer="1"/>
<wire x1="35.753" y1="27.5844" x2="35.753" y2="25.273" width="0.6096" layer="1"/>
<wire x1="31.816" y1="22.987" x2="31.816" y2="24.069" width="0.6096" layer="1"/>
<wire x1="33.02" y1="25.273" x2="35.753" y2="25.273" width="0.6096" layer="1"/>
<wire x1="31.816" y1="24.069" x2="33.02" y2="25.273" width="0.6096" layer="1"/>
</signal>
<signal name="N$8">
<contactref element="R16" pad="1"/>
<contactref element="R17" pad="1"/>
<contactref element="IC2" pad="9"/>
<wire x1="40.513" y1="13.142" x2="41.91" y2="14.539" width="0.6096" layer="1"/>
<wire x1="41.91" y1="14.539" x2="41.91" y2="17.974" width="0.6096" layer="1"/>
<wire x1="37.653" y1="14.605" x2="39.05" y2="14.605" width="0.6096" layer="1"/>
<wire x1="39.05" y1="14.605" x2="40.513" y2="13.142" width="0.6096" layer="1"/>
</signal>
<signal name="N$10">
<contactref element="R15" pad="2"/>
<contactref element="R18" pad="2"/>
<contactref element="IC2" pad="10"/>
<wire x1="43.18" y1="20.193" x2="43.18" y2="17.974" width="0.6096" layer="1"/>
<wire x1="43.18" y1="20.193" x2="42.799" y2="20.574" width="0.6096" layer="1"/>
<wire x1="38.928" y1="20.574" x2="38.862" y2="20.508" width="0.6096" layer="1"/>
<wire x1="42.799" y1="20.574" x2="38.928" y2="20.574" width="0.6096" layer="1"/>
<wire x1="38.862" y1="20.508" x2="37.526" y2="21.844" width="0.6096" layer="1"/>
<wire x1="34.91271875" y1="22.987" x2="33.716" y2="22.987" width="0.6096" layer="1"/>
<wire x1="36.05571875" y1="21.844" x2="34.91271875" y2="22.987" width="0.6096" layer="1"/>
<wire x1="37.526" y1="21.844" x2="36.05571875" y2="21.844" width="0.6096" layer="1"/>
</signal>
<signal name="N$1">
<contactref element="R12" pad="2"/>
<contactref element="R13" pad="2"/>
<contactref element="IC2" pad="13"/>
<wire x1="46.675" y1="14.097" x2="46.99" y2="14.412" width="0.6096" layer="1"/>
<wire x1="46.99" y1="14.412" x2="46.99" y2="17.974" width="0.6096" layer="1"/>
<wire x1="49.276" y1="11.618" x2="49.53" y2="11.364" width="0.6096" layer="1"/>
<wire x1="49.276" y1="11.618" x2="47.376" y2="11.618" width="0.6096" layer="1"/>
<wire x1="47.376" y1="11.618" x2="46.675" y2="12.319" width="0.6096" layer="1"/>
<wire x1="46.675" y1="12.319" x2="46.675" y2="14.097" width="0.6096" layer="1"/>
</signal>
<signal name="N$11">
<contactref element="R11" pad="2"/>
<contactref element="R14" pad="2"/>
<contactref element="IC2" pad="12"/>
<wire x1="50.673" y1="21.275" x2="50.673" y2="18.603" width="0.6096" layer="1"/>
<wire x1="50.673" y1="18.603" x2="50.927" y2="18.349" width="0.6096" layer="1"/>
<wire x1="45.72" y1="17.974" x2="45.72" y2="19.685" width="0.6096" layer="1"/>
<wire x1="45.72" y1="19.685" x2="46.736" y2="20.701" width="0.6096" layer="1"/>
<wire x1="50.673" y1="21.275" x2="50.099" y2="20.701" width="0.6096" layer="1"/>
<wire x1="50.099" y1="20.701" x2="46.736" y2="20.701" width="0.6096" layer="1"/>
</signal>
<signal name="N$13">
<contactref element="R22" pad="2"/>
<contactref element="R23" pad="2"/>
<contactref element="IC3" pad="13"/>
<wire x1="67.183" y1="7.493" x2="67.183" y2="6.67" width="0.6096" layer="1"/>
<wire x1="67.183" y1="6.67" x2="65.974" y2="5.461" width="0.6096" layer="1"/>
<wire x1="65.974" y1="5.461" x2="64.958" y2="5.461" width="0.6096" layer="1"/>
<wire x1="70.739" y1="7.178" x2="70.424" y2="7.493" width="0.6096" layer="1"/>
<wire x1="70.424" y1="7.493" x2="67.183" y2="7.493" width="0.6096" layer="1"/>
<wire x1="62.4839" y1="10.0202" x2="61.976" y2="10.5281" width="0.6096" layer="1"/>
<via x="62.4839" y="10.0202" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="67.183" y1="7.493" x2="67.183" y2="7.7341" width="0.6096" layer="16"/>
<wire x1="62.4839" y1="10.0202" x2="64.8969" y2="10.0202" width="0.6096" layer="16"/>
<wire x1="67.183" y1="7.7341" x2="64.8969" y2="10.0202" width="0.6096" layer="16"/>
<via x="67.183" y="7.493" extent="1-16" drill="1.1" diameter="2"/>
<wire x1="61.976" y1="10.5281" x2="61.976" y2="13.021" width="0.6096" layer="1"/>
</signal>
<signal name="N$14">
<contactref element="R25" pad="1"/>
<contactref element="R29" pad="2"/>
<contactref element="C5" pad="1"/>
<contactref element="IC3" pad="7"/>
<wire x1="52.898" y1="23.368" x2="52.898" y2="21.209" width="0.6096" layer="1"/>
<wire x1="55.432" y1="18.415" x2="53.152" y2="18.415" width="0.6096" layer="1"/>
<wire x1="53.086" y1="18.349" x2="53.152" y2="18.415" width="0.6096" layer="1"/>
<wire x1="55.626" y1="18.221" x2="55.432" y2="18.415" width="0.6096" layer="1"/>
<wire x1="52.898" y1="21.209" x2="53.086" y2="21.021" width="0.6096" layer="1"/>
<wire x1="53.086" y1="21.021" x2="53.086" y2="18.349" width="0.6096" layer="1"/>
</signal>
<signal name="N$15">
<contactref element="R26" pad="1"/>
<contactref element="R27" pad="1"/>
<contactref element="IC3" pad="9"/>
<wire x1="56.896" y1="13.021" x2="56.896" y2="11.2928" width="0.6096" layer="1"/>
<wire x1="55.306" y1="7.366" x2="55.306" y2="9.7028" width="0.6096" layer="1"/>
<wire x1="56.896" y1="11.2928" x2="55.306" y2="9.7028" width="0.6096" layer="1"/>
<wire x1="55.306" y1="7.366" x2="57.592" y2="7.366" width="0.6096" layer="1"/>
<wire x1="57.592" y1="7.366" x2="57.658" y2="7.3" width="0.6096" layer="1"/>
</signal>
<signal name="N$16">
<contactref element="R25" pad="2"/>
<contactref element="R28" pad="2"/>
<contactref element="IC3" pad="10"/>
<wire x1="58.166" y1="13.021" x2="58.166" y2="9.586" width="0.6096" layer="1"/>
<wire x1="58.166" y1="9.586" x2="58.105" y2="9.525" width="0.6096" layer="1"/>
<wire x1="58.166" y1="13.021" x2="58.166" y2="14.986" width="0.6096" layer="1"/>
<wire x1="58.166" y1="14.986" x2="57.531" y2="15.621" width="0.6096" layer="1"/>
<wire x1="57.531" y1="15.621" x2="53.914" y2="15.621" width="0.6096" layer="1"/>
<wire x1="53.9

license: MIT

license_type: permissive

branch_name: refs/heads/master


text:
14" y1="15.621" x2="53.086" y2="16.449" width="0.6096" layer="1"/>
</signal>
<signal name="N$17">
<contactref element="R21" pad="2"/>
<contactref element="R24" pad="2"/>
<contactref element="IC3" pad="12"/>
<wire x1="68.199" y1="18.989" x2="68.199" y2="18.608" width="0.6096" layer="1"/>
<wire x1="68.199" y1="18.608" x2="66.6115" y2="17.0205" width="0.6096" layer="1"/>
<wire x1="65.499" y1="17.051" x2="64.069" y2="15.621" width="0.6096" layer="1"/>
<wire x1="64.069" y1="15.621" x2="61.468" y2="15.621" width="0.6096" layer="1"/>
<wire x1="61.468" y1="15.621" x2="60.706" y2="14.859" width="0.6096" layer="1"/>
<wire x1="60.706" y1="14.859" x2="60.706" y2="13.021" width="0.6096" layer="1"/>
<wire x1="68.265" y1="15.367" x2="66.6115" y2="17.0205" width="0.6096" layer="1"/>
<wire x1="66.581" y1="17.051" x2="65.499" y2="17.051" width="0.6096" layer="1"/>
<wire x1="68.265" y1="15.367" x2="66.581" y2="17.051" width="0.6096" layer="1"/>
</signal>
<signal name="N$18">
<contactref element="IC3" pad="1"/>
<contactref element="R21" pad="1"/>
<contactref element="R30" pad="2"/>
<contactref element="C6" pad="1"/>
<wire x1="63.246" y1="18.221" x2="63.313" y2="18.288" width="0.6096" layer="1"/>
<wire x1="63.313" y1="18.288" x2="64.516" y2="18.288" width="0.6096" layer="1"/>
<wire x1="64.516" y1="18.288" x2="65.466" y2="19.238" width="0.6096" layer="1"/>
<wire x1="65.466" y1="19.238" x2="65.466" y2="20.955" width="0.6096" layer="1"/>
<wire x1="65.466" y1="20.955" x2="65.466" y2="23.368" width="0.6096" layer="1"/>
<wire x1="65.466" y1="20.955" x2="68.133" y2="20.955" width="0.6096" layer="1"/>
<wire x1="68.133" y1="20.955" x2="68.199" y2="20.889" width="0.6096" layer="1"/>
</signal>
</signals>
<mfgpreviewcolors>
<mfgpreviewcolor name="soldermaskcolor" color="0xC8008000"/>
<mfgpreviewcolor name="silkscreencolor" color="0xFFFEFEFE"/>
<mfgpreviewcolor name="backgroundcolor" color="0xFF282828"/>
<mfgpreviewcolor name="coppercolor" color="0xFFFFBF00"/>
<mfgpreviewcolor name="substratecolor" color="0xFF786E46"/>
</mfgpreviewcolors>
</board>
</drawing>
<compatibility>
<note version="8.2" severity="warning">
Since Version 8.2, EAGLE supports online libraries. The ids
of those online libraries will not be understood (or retained)
with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports the association of 3D packages
with devices in libraries, schematics, and board files. Those 3D
packages will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>

extension: brd


text:
package helmcli

import (
	"context"
	"io/ioutil"
	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
	"helm.sh/helm/v3/pkg/action"
	"helm.sh/helm/v3/pkg/chartutil"
	"helm.sh/helm/v3/pkg/cli"
	kubefake "helm.sh/helm/v3/pkg/kube/fake"
	"helm.sh/helm/v3/pkg/release"
	"helm.sh/helm/v3/pkg/storage"
	"helm.sh/helm/v3/pkg/storage/driver"
)

const testReleaseName = "test-release-albatross"

func TestUninstallShouldFailForInvalidRelease(t *testing.T) {
	actionConfig := fakeUninstallConfiguration(t)
	u := &uninstaller{
		action:      action.NewUninstall(actionConfig),
		envSettings: cli.New(),
	}

	_, err := u.Uninstall(context.Background(), testReleaseName+"-incorrect")

	assert.Error(t, err)
}

func TestUninstallShouldSucceedForValidRelease(t *testing.T) {
	actionConfig := fakeUninstallConfiguration(t)
	u := &uninstaller{
		action:      action.NewUninstall(actionConfig),
		envSettings: cli.New(),
	}
	response, err := u.Uninstall(context.Background(), testReleaseName)

	assert.Nil(t, err)
	assert.NotNil(t, response)
}

func TestUninstallShouldRemoveTheRelease(t *testing.T) {
	actionConfig := fakeUninstallConfiguration(t)
	u := &uninstaller{
		action:      action.NewUninstall(actionConfig),
		envSettings: cli.New(),
	}
	l := &lister{
		action:      action.NewList(actionConfig),
		envSettings: cli.New(),
	}
	releaseList, err := l.List(context.Background())
	assert.Len(t, releaseList, 1)
	require.NoError(t, err)

	resp, err := u.Uninstall(context.Background(), testReleaseName)

	assert.NotNil(t, resp)
	require.NoError(t, err)
	releaseList, err = l.List(context.Background())
	assert.Len(t, releaseList, 0)
	assert.Nil(t, err)
}

func fakeUninstallConfiguration(t *testing.T) *action.Configuration {
	newStorage := storage.Init(driver.NewMemory())
	err := newStorage.Create(
		release.Mock(
			&release.MockReleaseOptions{
				Name:      testReleaseName,
				Version:   1,
				Namespace: "default",
				Chart:     nil,
				Status:    release.StatusDeployed,
			}))
	require.NoError(t, err)

	return &action.Configuration{
		Releases: newStorage,
		KubeClient: &kubefake.FailingKubeClient{
			PrintingKubeClient: kubefake.PrintingKubeClient{
				Out: ioutil.Discard,
			},
		},
		Capabilities: chartutil.DefaultCapabilities,
		Log: func(format string, v ...interface{}) {
			t.Helper()
			t.Logf(format, v...)
		},
	}
}

repository: myfdtestacc/albatross

repo_name: myfdtestacc/albatross

extension: go


text:
package main

import (
	"github.com/tehmoon/errors"
	flag "github.com/spf13/pflag"
	"github.com/spf13/cobra"
	"github.com/spf13/viper"
	"github.com/abiosoft/ishell"
)

var (
	ErrBadPassword = errors.New("Password is either wrong or database is corrupted")
	ErrEmptyPassword = errors.New("Password is empty")
	ErrCorruptedPasswordFile = errors.New("Password file is corrupted")
	ErrCorruptedFile = errors.New("File is corrupted")
	ErrCommandUnsupportedPrivateKey = errors.New("")
	ErrCommandNoCommandSpecified = errors.New("No command specified")
	ErrCommandNotSupported = errors.New("Command not supported")
	ErrCommandAlreadyConfigured = errors.New("Command has already been configured")
	ErrCommandBadFlags = errors.New("")
	ErrCommandDirectoryNotEmpty = errors.New("Target directory is not empty")
	ErrCommandDirectoryAlreadyExists = errors.New("Directory already exists")
	ErrFileAlreadyExists = errors.New("File already exists")
	ErrFileNotFound = errors.New("File not found")
	ErrCommandNegativeDuration = errors.New("Duration cannot be negative")
	ErrCommandNotDirectory = errors.New("Not a directory")
	ErrCommandDirectoryNotInit = errors.New("Directory has not been initialized. Call init first")
)

type Command interface {
	Do() (error)
	Init(*flag.FlagSet, []string) (error)
	Config() (*viper.Viper)
	Flags() (*viper.Viper)
}

var (
	CommandsFunc = []func(*viper.Viper, *viper.Viper, *ishell.Context) (*cobra.Command) {
		NewCommandCreateCA,
		NewCommandCreate,
		NewCommandExport,
		NewCommandInit,
		NewCommandRevoke,
		NewCommandCRL,
	}
)

repository: tehmoon/easy-ca

repo_name: tehmoon/easy-ca

gha_license_id: MIT

gha_language: Go


text:
@misc{david2011uppaal,
  title={UPPAAL 4.0: Small Tutorial},
  author={David, A and Amnel, T and Stigge, M and Ekberg, P},
  year={2011},
  publisher={Abgerufen am}
}

@inproceedings{behrmann2004tutorial,
  title={A tutorial on uppaal},
  author={Behrmann, Gerd and David, Alexandre and Larsen, Kim G},
  booktitle={Formal methods for the design of real-time systems},
  pages={200--236},
  year={2004},
  organization={Springer}
}

repository: Vaibhavsaharan/Meeting-Room-Automata

repo_name: Vaibhavsaharan/Meeting-Room-Automata

extension: bib


text:
package sgreplicate

type ReplicationStatus int

const (
	REPLICATION_UNKNOWN_STATUS = ReplicationStatus(iota)

	// the replication finished "naturally", eg, successfully
	REPLICATION_STOPPED

	// the replication aborted due to some error or unexpected event
	REPLICATION_ABORTED

	// the replication stopped due to being cancelled by client
	REPLICATION_CANCELLED

	// after replication.Start() is called, this will be emitted
	REPLICATION_ACTIVE

	REPLICATION_FETCHED_CHECKPOINT
	REPLICATION_FETCHED_CHANGES_FEED
	REPLICATION_FETCHED_REVS_DIFF
	REPLICATION_FETCHED_BULK_GET
	REPLICATION_PUSHED_BULK_DOCS
	REPLICATION_PUSHED_ATTACHMENT_DOCS
	REPLICATION_PUSHED_CHECKPOINT
)

type ReplicationNotification struct {
	Status ReplicationStatus
	Error  *ReplicationError
	Data   interface{}
}

func NewReplicationNotification(status ReplicationStatus) *ReplicationNotification {
	return &ReplicationNotification{
		Status: status,
	}
}

func (status ReplicationStatus) String() string {
	switch status {
	case REPLICATION_UNKNOWN_STATUS:
		return "REPLICATION_UNKNOWN_STATUS"
	case REPLICATION_STOPPED:
		return "REPLICATION_STOPPED"
	case REPLICATION_CANCELLED:
		return "REPLICATION_CANCELLED"
	case REPLICATION_ABORTED:
		return "REPLICATION_ABORTED"
	case REPLICATION_ACTIVE:
		return "REPLICATION_ACTIVE"
	case REPLICATION_FETCHED_CHECKPOINT:
		return "REPLICATION_FETCHED_CHECKPOINT"
	case REPLICATION_FETCHED_CHANGES_FEED:
		return "REPLICATION_FETCHED_CHANGES_FEED"
	case REPLICATION_FETCHED_REVS_DIFF:
		return "REPLICATION_FETCHED_REVS_DIFF"
	case REPLICATION_FETCHED_BULK_GET:
		return "REPLICATION_FETCHED_BULK_GET"
	case REPLICATION_PUSHED_BULK_DOCS:
		return "REPLICATION_PUSHED_BULK_DOCS"
	case REPLICATION_PUSHED_ATTACHMENT_DOCS:
		return "REPLICATION_PUSHED_ATTACHMENT_DOCS"
	case REPLICATION_PUSHED_CHECKPOINT:
		return "REPLICATION_PUSHED_CHECKPOINT"

	}
	return "ERROR_RESOLVING_REPLICATION_STATUS"

}

repository: couchbaselabs/sg-replicate

repo_name: couchbaselabs/sg-replicate

gha_license_id: NOASSERTION


text:
// Package assistant contains auto-generated files. DO NOT MODIFY
package assistant

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

	"github.com/RJPearson94/twilio-sdk-go/client"
)

// FetchAssistantResponse defines the response fields for the retrieved assistant
type FetchAssistantResponse struct {
	AccountSid          string     `json:"account_sid"`
	CallbackEvents      *string    `json:"callback_events,omitempty"`
	CallbackURL         *string    `json:"callback_url,omitempty"`
	DateCreated         time.Time  `json:"date_created"`
	DateUpdated         *time.Time `json:"date_updated,omitempty"`
	DevelopmentStage    string     `json:"development_stage"`
	FriendlyName        *string    `json:"friendly_name,omitempty"`
	LatestModelBuildSid *string    `json:"latest_model_build_sid,omitempty"`
	LogQueries          bool       `json:"log_queries"`
	NeedsModelBuild     *bool      `json:"needs_model_build,omitempty"`
	Sid                 string     `json:"sid"`
	URL                 string     `json:"url"`
	UniqueName          string     `json:"unique_name"`
}

// Fetch retrieves an assistant resource
// See https://www.twilio.com/docs/autopilot/api/assistant#fetch-an-assistant-resource for more details
// Context is defaulted to Background. See https://golang.org/pkg/context/#Background for more information
func (c Client) Fetch() (*FetchAssistantResponse, error) {
	return c.FetchWithContext(context.Background())
}

// FetchWithContext retrieves an assistant resource
// See https://www.twilio.com/docs/autopilot/api/assistant#fetch-an-assistant-resource for more details
func (c Client) FetchWithContext(context context.Context) (*FetchAssistantResponse, error) {
	op := client.Operation{
		Method: http.MethodGet,
		URI:    "/Assistants/{sid}",
		PathParams: map[string]string{
			"sid": c.sid,
		},
	}

	response := &FetchAssistantResponse{}
	if err := c.client.Send(context, op, nil, response); err != nil {
		return nil, err
	}
	return response, nil
}

branch_name: refs/heads/main


text:
package internal

import (
	"fmt"
	"github.com/pkg/errors"
	"strings"
)

type stackTracer interface {
	StackTrace() errors.StackTrace
}

// BuildStack will build and return the stack of an error that implementing stackTracer
func BuildStack(err error, skip int) []string {
	traces := make([]string, 0)
	if err, ok := err.(stackTracer); ok {
		frames := err.StackTrace()
		l := len(frames)
		for i := skip; i <= skip+4; i++ {
			if i >= l {
				break
			}
			f := frames[i]
			traces = append(traces, strings.ReplaceAll(
				strings.TrimSpace(fmt.Sprintf("%+s:%d", f, f)),
				"\n\t",
				" ",
			))
		}
	}
	return traces
}

repository: yuchanns/bullets

repo_name: yuchanns/bullets


text:
SUMMARY = "openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files"
DESCRIPTION = "It was born from lack of existing library to read/write natively \
from Python the Office Open XML format. All kudos to the PHPExcel team as openpyxl \
was initially based on PHPExcel."

HOMEPAGE = "http://www.python-excel.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"

inherit pypi setuptools3

SRC_URI[sha256sum] = "a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184"

RDEPENDS:${PN} += "\
	${PYTHON_PN}-compression \
	${PYTHON_PN}-io \
	${PYTHON_PN}-pprint \
	${PYTHON_PN}-shell \
	${PYTHON_PN}-jdcal \
	${PYTHON_PN}-et-xmlfile \
	${PYTHON_PN}-numbers \
	${PYTHON_PN}-xml \
"

repository: openembedded/meta-openembedded

repo_name: openembedded/meta-openembedded

gha_language: BitBake

extension: bb


text:
@Book{ggplot2,
  title = {{ggplot2}: Elegant Graphics for Data Analysis},
  author = {Wickham, Hadley},
  year = {2016},
  isbn = {978-3-319-24275-0},
  url = {https://ggplot2-book.org/},
}

@Paper{Genois2018,
author="G{'e}nois, Mathieu
and Barrat, Alain",
title="Can co-location be used as a proxy for face-to-face contacts?",
journal="EPJ Data Science",
year="2018"
}

@Paper{zachary,
  title = {An Information Flow Model for Conflict and Fission in Small Groups},
  author = {Zachary, W. W.},
  year = {1977},
  journal = {Journal of Anthropological Research},
}


text:
@article{Catalan:2015cna,
 archiveprefix = {arXiv},
 author = {Cabrera-Catalan, Maria Eugenia and Ando, Shin'ichiro and Weniger, Christoph and Zandanel, Fabio},
 doi = {10.1103/PhysRevD.92.035018},
 eprint = {1503.00599},
 journal = {Phys. Rev. D},
 number = {3},
 pages = {035018},
 primaryclass = {hep-ph},
 title = {Indirect and direct detection prospect for TeV dark matter in the nine parameter MSSM},
 volume = {92},
 year = {2015}
}

repository: cweniger/personal-website

repo_name: cweniger/personal-website


text:
package postgres

import (
	"context"
	"fmt"
	"net"
	"path/filepath"
	"strings"

	"github.com/testcontainers/testcontainers-go"
)

const (
	defaultUser          = "postgres"
	defaultPassword      = "postgres"
	defaultPostgresImage = "docker.io/postgres:11-alpine"
)

// PostgresContainer represents the postgres container type used in the module
type PostgresContainer struct {
	testcontainers.Container
	dbName   string
	user     string
	password string
}

// ConnectionString returns the connection string for the postgres container, using the default 5432 port, and
// obtaining the host and exposed port from the container. It also accepts a variadic list of extra arguments
// which will be appended to the connection string. The format of the extra arguments is the same as the
// connection string format, e.g. "connect_timeout=10" or "application_name=myapp"
func (c *PostgresContainer) ConnectionString(ctx context.Context, args ...string) (string, error) {
	containerPort, err := c.MappedPort(ctx, "5432/tcp")
	if err != nil {
		return "", err
	}

	host, err := c.Host(ctx)
	if err != nil {
		return "", err
	}

	extraArgs := strings.Join(args, "&")
	connStr := fmt.Sprintf("postgres://%s:%s@%s/%s?%s", c.user, c.password, net.JoinHostPort(host, containerPort.Port()), c.dbName, extraArgs)
	return connStr, nil
}

// WithConfigFile sets the config file to be used for the postgres container
// It will also set the "config_file" parameter to the path of the config file
// as a command line argument to the container
func WithConfigFile(cfg string) testcontainers.CustomizeRequestOption {
	return func(req *testcontainers.GenericContainerRequest) {
		cfgFile := testcontainers.ContainerFile{
			HostFilePath:      cfg,
			ContainerFilePath: "/etc/postgresql.conf",
			FileMode:          0o755,
		}

		req.Files = append(req.Files, cfgFile)
		req.Cmd = append(req.Cmd, "-c", "config_file=/etc/postgresql.conf")
	}
}

// WithDatabase sets the initial database to be created when the container starts
// It can be used to define a different name for the default database that is created when the image is first started.
// If it is not specified, then the value of WithUser will be used.
func WithDatabase(dbName string) testcontainers.CustomizeRequestOption {
	return func(req *testcontainers.GenericContainerRequest) {
		req.Env["POSTGRES_DB"] = dbName
	}
}

// WithInitScripts sets the init scripts to be run when the container starts
func WithInitScripts(scripts ...string) testcontainers.CustomizeRequestOption {
	return func(req *testcontainers.GenericContainerRequest) {
		initScripts := []testcontainers.ContainerFile{}
		for _, script := range scripts {
			cf := testcontainers.ContainerFile{
				HostFilePath:      script,
				ContainerFilePath: "/docker-entrypoint-initdb.d/" + filepath.Base(script),
				FileMode:          0o755,
			}
			initScripts = append(initScripts, cf)
		}
		req.Files = append(req.Files, initScripts...)
	}
}

// WithPassword sets the initial password of the user to be created when the container starts
// It is required for you to use the PostgreSQL image. It must not be empty or undefined.
// This environment variable sets the superuser password for PostgreSQL.
func WithPassword(password string) testcontainers.CustomizeRequestOption {
	return func(req *testcontainers.GenericContainerRequest) {
		req.Env["POSTGRES_PASSWORD"] = password
	}
}

// WithUsername sets the initial username to be created when the container starts
// It is used in conjunction with WithPassword to set a user and its password.
// It will create the specified user with superuser power and a database with the same name.
// If it is not specified, then the default user of postgres will be used.
func WithUsername(user string) testcontainers.CustomizeRequestOption {
	return func(req *testcontainers.GenericContainerRequest) {
		if user == "" {
			user = defaultUser
		}

		req.Env["POSTGRES_USER"] = user
	}
}

// RunContainer creates an instance of the postgres container type
func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*PostgresContainer, error) {
	req := testcontainers.ContainerRequest{
		Image: defaultPostgresImage,
		Env: map[string]string{
			"POSTGRES_USER":     defaultUser,
			"POSTGRES_PASSWORD": defaultPassword,
			"POSTGRES_DB":       defaultUser, // defaults to the user name
		},
		ExposedPorts: []string{"5432/tcp"},
		Cmd:          []string{"postgres", "-c", "fsync=off"},
	}

	genericContainerReq := testcontainers.GenericContainerRequest{
		ContainerRequest: req,
		Started:          true,
	}

	for _, opt := range opts {
		opt.Customize(&genericContainerReq)
	}

	container, err := testcontainers.GenericContainer(ctx, genericContainerReq)
	if err != nil {
		return nil, err
	}

	user := req.Env["POSTGRES_USER"]
	password := req.Env["POSTGRES_PASSWORD"]
	dbName := req.Env["POSTGRES_DB"]

	return &PostgresContainer{Container: container, dbName: dbName, password: password, user: user}, nil
}

repository: testcontainers/testcontainers-go

repo_name: testcontainers/testcontainers-go


text:
SUMMARY = "A plain ASCII to PostScript converter"
DESCRIPTION = "GNU enscript is a free replacement for Adobe''s Enscript \
program. Enscript converts ASCII files to PostScript(TM) and spools generated \
PostScript output to the specified printer or saves it to a file. Enscript can \
be extended to handle different output media and includes many options for \
customizing printouts."
HOMEPAGE = "http://www.gnu.org/software/enscript/"
SECTION = "console/utils"

LICENSE = "GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"

SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
           file://enscript-autoconf.patch \
           file://0001-Fix-builds-with-recent-gettext.patch \
           file://0001-getopt-Include-string.h-for-strcmp-stcncmp-functions.patch \
           "

inherit autotools gettext

EXTRA_OECONF += "PERL='${USRBINPATH}/env perl'"

SRC_URI[md5sum] = "3acc242b829adacabcaf28533f049afd"
SRC_URI[sha256sum] = "6d56bada6934d055b34b6c90399aa85975e66457ac5bf513427ae7fc77f5c0bb"

RDEPENDS:${PN} = "perl"


text:
#pragma once

#ifndef DV_ITEM_VIEW_INCLUDED
#define DV_ITEM_VIEW_INCLUDED

// TnzQt includes
#include "toonzqt/selection.h"
#include "toonzqt/lineedit.h"

// TnzCore includes
#include "tfilepath.h"

// Qt includes
#include <QWidget>
#include <QScrollArea>
#include <QToolBar>

// STD includes
#include <set>

//==============================================================

//    Forward declarations

class DvItemViewer;
class DvItemSelection;
class QMimeData;

//==============================================================

//=============================================================================

class DvItemListModel {
public:
  enum DataType {
    Name,
    Thumbnail,
    Icon,
    ToolTip,
    CreationDate,
    ModifiedDate,
    FileSize,
    FrameCount,
    FullPath,
    PlayAvailable,
    VersionControlStatus,
    FileType,
    IsFolder
  };

  enum Status {
    VC_None = 0,
    VC_ReadOnly,
    VC_Edited,
    VC_Modified,
    VC_ToUpdate,
    VC_Locked,
    VC_Unversioned,
    VC_Missing,
    VC_PartialEdited,
    VC_PartialLocked,
    VC_PartialModified
  };

public:
  DvItemListModel() : m_isDiscendent(true), m_orderType(Name) {}
  virtual ~DvItemListModel() {}

  DataType getCurrentOrderType() { return m_orderType; }
  bool isDiscendentOrder() { return m_isDiscendent; }
  void setIsDiscendentOrder(bool isDiscendentOrder) {
    m_isDiscendent = isDiscendentOrder;
  }
  void setOrderType(DataType dataType) { m_orderType = dataType; }

  // n.b. refreshData viene chiamato PRIMA di getItemCount() e getItemData()
  // vanno messe dentro refreshData() le operazioni "costose" di getItemData() e
  // getItemCount()
  virtual void refreshData(){};
  virtual int getItemCount() const = 0;
  virtual int compareData(DataType dataType, int firstIndex, int secondIndex);
  virtual void sortByDataModel(DataType dataType, bool isDiscendent) {}
  virtual QVariant getItemData(int index, DataType dataType,
                               bool isSelected = false) = 0;
  virtual QString getItemDataAsString(int index, DataType dataType);
  virtual QString getItemDataIdentifierName(DataType dataType);
  virtual void startDragDrop() {}
  virtual QMenu *getContextMenu(QWidget *parent, int index) { return 0; }
  virtual void enableSelectionCommands(TSelection *selection) {}
  virtual bool canRenameItem(int index) const { return false; }
  virtual void renameItem(int index, const QString &newName) {}
  virtual bool isSceneItem(int index) const { return false; }
  virtual bool acceptDrop(const QMimeData *data) const { return false; }
  virtual bool drop(const QMimeData *data) { return false; }

protected:
  bool m_isDiscendent;
  DataType m_orderType;
};

//=============================================================================

class ItemViewPlayWidget final : public QWidget {
  Q_OBJECT

  int m_currentItemIndex;  //-1 -> pause
  int m_timerId;
  bool m_isSliderMode;

  class PlayManager {
    TFilePath m_path;
    std::vector<TFrameId> m_fids;
    int m_currentFidIndex;
    QPixmap m_pixmap;
    QSize m_iconSize;

  public:
    PlayManager();
    ~PlayManager() {}

    void reset();
    void setInfo(DvItemListModel *model, int index);
    /*! Increase current frame if icon is computed; return true if frame is
     * increased. */
    bool increaseCurrentFrame();
    /*! If icon is computed return true, overwise start to compute it. */
    bool getCurrentFrame();
    /*! Return true if current frame index is less than fids size. */
    bool isFrameIndexInRange();
    bool setCurrentFrameIndexFromXValue(int xValue, int length);
    double currentFrameIndexToXValue(int length);
    QPixmap getCurrentPixmap();
  };

  PlayManager *m_playManager;

public:
  ItemViewPlayWidget(QWidget *parent = 0);
  ~ItemViewPlayWidget() {}

  void play();
  void stop();
  void clear();

  void setIsPlaying(DvItemListModel *model, int index);
  void setIsPlayingCurrentFrameIndex(DvItemListModel *model, int index,
                                     int xValue, int length);
  int getCurrentFramePosition(int length);

  bool isIndexPlaying(int index) { return m_currentItemIndex == index; }
  bool isPlaying() { return m_currentItemIndex != -1; }
  bool isSliderMode() { return m_isSliderMode; }

  void paint(QPainter *painter, QRect rect);

protected:
  void timerEvent(QTimerEvent *event) override;
};

//=============================================================================

class DVItemViewPlayDelegate final : public QObject {
  Q_OBJECT

  ItemViewPlayWidget *m_itemViewPlay;

public:
  DVItemViewPlayDelegate(QWidget *parent);
  ~DVItemViewPlayDelegate() {}

  void paint(QPainter *painter, QRect rect, int index);

  bool setPlayWidget(DvItemListModel *model, int index, QRect rect, QPoint pos);

public slots:

  void resetPlayWidget();

protected:
  QRect getPlayButtonRect(QRect rect);
  QRect getPlaySliderRect(QRect rect);
};

//=============================================================================

class DvItemSelection : public QObject, public TSelection {
  Q_OBJECT

  std::set<int> m_selectedIndices;
  DvItemListModel *m_model;

public:
  DvItemSelection();

  void select(int index, bool on = true);
  void select(int *indices, int indicesCount);
  void selectNone() override;
  void selectAll();

  bool isSelected(int index) const {
    return m_selectedIndices.count(index) > 0;
  }
  bool isEmpty() const override { return m_selectedIndices.empty(); }

  const std::set<int> &getSelectedIndices() const { return m_selectedIndices; }

  void setModel(DvItemListModel *model);
  DvItemListModel *getModel() const { return m_model; }

  void enableCommands() override;

signals:

  void itemSelectionChanged();
};

//=============================================================================

class DvItemViewerPanel final : public QFrame, public TSelection::View {
  Q_OBJECT

  QColor m_alternateBackground;     // alaternate bg color for teble view
                                    // (170,170,170)
  QColor m_textColor;               // text color (black)
  QColor m_selectedTextColor;       // selected item text color (white)
  QColor m_folderTextColor;         // folder item text color (blue)
  QColor m_selectedItemBackground;  // selected item background color (0,0,128)

  Q_PROPERTY(QColor AlternateBackground READ getAlternateBackground WRITE
                 setAlternateBackground)
  Q_PROPERTY(QColor TextColor READ getTextColor WRITE setTextColor)
  Q_PROPERTY(QColor SelectedTextColor READ getSelectedTextColor WRITE
                 setSelectedTextColor)
  Q_PROPERTY(
      QColor FolderTextColor READ getFolderTextColor WRITE setFolderTextColor)
  Q_PROPERTY(QColor SelectedItemBackground READ getSelectedItemBackground WRITE
                 setSelectedItemBackground)

public:
  enum ViewType { ListView = 0, TableView, ThumbnailView };
  void setAlternateBackground(const QColor &color) {
    m_alternateBackground = color;
  }
  QColor getAlternateBackground() const { return m_alternateBackground; }
  void setTextColor(const QColor &color) { m_textColor = color; }
  QColor getTextColor() const { return m_textColor; }
  void setSelectedTextColor(const QColor &color) {
    m_selectedTextColor = color;
  }
  QColor getSelectedTextColor() const { return m_selectedTextColor; }
  void setFolderTextColor(const QColor &color) { m_folderTextColor = color; }
  QColor getFolderTextColor() const { return m_folderTextColor; }
  void setSelectedItemBackground(const QColor &color) {
    m_selectedItemBackground = color;
  }
  QColor getSelectedItemBackground() const { return m_selectedItemBackground; }

private:
  ViewType to_enum(int n) {
    switch (n) {
    case 0:
      return ListView;
    case 1:
      return TableView;
    case 2:
      return ThumbnailView;
    default:
      return ThumbnailView;
    }
  }

  DvItemSelection *m_selection;
  bool m_globalSelectionEnabled;
  bool m_multiSelectionEnabled;

  DvItemViewer *m_viewer;

  DVItemViewPlayDelegate *m_itemViewPlayDelegate;
  bool m_isPlayDelegateDisable;

  DVGui::LineEdit *m_editFld;
  ViewType m_viewType;
  bool m_singleColumnEnabled;
  bool m_centerAligned;

  // view parameters
  int m_itemSpacing;
  int m_xMargin, m_yMargin, m_itemPerRow;
  QSize m_itemSize;
  QSize m_iconSize;
  bool m_noContextMenu;
  void updateViewParameters(int panelWidth);
  void updateViewParameters() { updateViewParameters(width()); }
  QPoint m_startDragPosition;
  QPoint m_lastMousePos;
  int m_currentIndex;
  std::vector<std::pair<DvItemListModel::DataType, std::pair<int, bool>>>
      m_columns;  // type, <width, visibility>
  DvItemListModel *getModel() const;
  int getItemCount() const {
    return getModel() ? getModel()->getItemCount() : 0;
  }
  QColor m_missingColor;

public:
  DvItemViewerPanel(DvItemViewer *viewer, bool noContextMenu,
                    bool multiselectionEnabled, QWidget *parent);

  void enableGlobalSelection(bool enabled) {
    if (!enabled) m_selection->makeNotCurrent();
    m_globalSelectionEnabled = enabled;
  }

  void setItemViewPlayDelegate(DVItemViewPlayDelegate *playDelegate);
  DVItemViewPlayDelegate *getItemViewPlayDelegate();

  void addColumn(DvItemListModel::DataType dataType, int width);
  void setColumnWidth(DvItemListModel::DataType dataType, int width);
  void getColumns(
      std::vector<std::pair<DvItemListModel::DataType, std::pair<int, bool>>>
          &columns) {
    columns = m_columns;
  };
  bool getVisibility(DvItemListModel::DataType dataType);
  void setVisibility(DvItemListModel::DataType dataType, bool value);
  int getContentMinimumWidth();
  int getContentHeight(int width);

  QSize getItemSize() const;

  QSize getIconSize() const { return m_iconSize; }

  int pos2index(const QPoint &pos) const;
  QRect index2pos(int index) const;

  QRect getCaptionRect(int index) const;

  void paintThumbnailItem(QPainter &p, int index);
  void paintListItem(QPainter &p, int index);
  void paintTableItem(QPainter &p, int index);

  // da TSelection::View
  void onSelectionChanged() override { update(); }

  const std::set<int> &getSelectedIndices() const;

  void enableSingleColumn(bool enabled) { m_singleColumnEnabled = enabled; }
  bool isSingleColumnEnabled() const { return m_singleColumnEnabled; }

  void setAlignCenter() { m_centerAligned = true; }

  DvItemSelection *getSelection() const { return m_selection; }
  void setSelection(DvItemSelection *selection);  // gets ownership
  void setMissingTextColor(const QColor &color);

protected:
  void paintEvent(QPaintEvent *) override;
  void mousePressEvent(QMouseEvent *) override;
  void mouseMoveEvent(QMouseEvent *) override;
  void mouseReleaseEvent(QMouseEvent *) override;
  void mouseDoubleClickEvent(QMouseEvent *) override;
  void contextMenuEvent(QContextMenuEvent *) override;
  bool event(QEvent *event) override;

signals:
  void viewTypeChange(DvItemViewerPanel::ViewType viewType);

public slots:
  void setListView();
  void setTableView();
  void setThumbnailsView();
  void rename();
  // for exporting the file information to text format file
  void exportFileList();
};

//=============================================================================

class DvItemViewer : public QScrollArea {
  Q_OBJECT

public:
  enum WindowType { Browser = 0, Cast };
  WindowType m_windowType;

private:
  DvItemListModel *m_model;
  DvItemViewerPanel *m_panel;

protected:
  void resizeEvent(QResizeEvent *) override;

public:
  DvItemViewer(QWidget *parent, bool noContextMenu = false,
               bool multiSelectionEnabled = false, enum WindowType = Browser);

  void resetVerticalScrollBar();
  DvItemListModel *getModel() const { return m_model; }
  void setModel(DvItemListModel *model);  // gets ownership

  const std::set<int> &getSelectedIndices() const {
    return m_panel->getSelectedIndices();
  }

  void updateContentSize();
  void refresh();

  DvItemViewerPanel *getPanel() { return m_panel; }

  virtual void draw(QPainter &p) {}
  void notifyClick(int index) {
    emit clickedItem(index);
    emit selectedItems(m_panel->getSelectedIndices());
  }
  void notifyDoubleClick(int index) {
    emit doubleClickedItem(index);
    emit selectedItems(m_panel->getSelectedIndices());
  }

  void enableGlobalSelection(bool enabled) {
    m_panel->enableGlobalSelection(enabled);
  }
  void selectNone();
  void keyPressEvent(QKeyEvent *event) override;

protected:
  void dragEnterEvent(QDragEnterEvent *event) override;
  void dropEvent(QDropEvent *event) override;

signals:
  void clickedItem(int index);
  void doubleClickedItem(int index);
  void selectedItems(const std::set<int> &indexes);
};

//=============================================================================

class DvItemViewerTitleBar final : public QWidget {
  Q_OBJECT

  DvItemViewer *m_itemViewer;
  bool m_isInteractive;
  int m_dragColumnIndex;
  QPoint m_pos;

  QColor m_colColor;
  QColor m_colSortedColor;
  QColor m_colTextColor;
  QColor m_colBorderColor;
  QColor m_colRaisedColor;

  Q_PROPERTY(QColor ColColor READ getColColor WRITE setColColor);
  Q_PROPERTY(QColor ColSortedColor READ getColColor WRITE setColSortedColor);
  Q_PROPERTY(QColor ColTextColor READ getColColor WRITE setColTextColor);
  Q_PROPERTY(QColor ColBorderColor READ getColColor WRITE setColBorderColor);
  Q_PROPERTY(
      QColor ColRaisedColor READ getColRaisedColor WRITE setColRaisedColor);

public:
  void setColColor(const QColor &color) { m_colColor = color; }
  QColor getColColor() const { return m_colColor; }
  void setColSortedColor(const QColor &color) { m_colSortedColor = color; }
  QColor getColSortedColor() const { return m_colSortedColor; }
  void setColTextColor(const QColor &color) { m_colTextColor = color; }
  QColor getColTextColor() const { return m_colTextColor; }
  void setColBorderColor(const QColor &color) { m_colBorderColor = color; }
  QColor getColBorderColor() const { return m_colBorderColor; }
  void setColRaisedColor(const QColor &color) { m_colRaisedColor = color; }
  QColor getColRaisedColor() const { return m_colRaisedColor; }

  DvItemViewerTitleBar(DvItemViewer *itemViewer, QWidget *parent = 0,
                       bool isInteractive = true);

protected slots:
  void onViewTypeChanged(DvItemViewerPanel::ViewType viewType);

protected:
  void mouseMoveEvent(QMouseEvent *) override;
  void openContextMenu(QMouseEvent *);
  void mousePressEvent(QMouseEvent *) override;
  void paintEvent(QPaintEvent *) override;
};

//=============================================================================

class DvItemViewerButtonBar final : public QToolBar {
  Q_OBJECT
  QAction *m_folderBack;
  QAction *m_folderFwd;

public:
  DvItemViewerButtonBar(DvItemViewer *itemViewer, QWidget *parent = 0);

public slots:
  void onHistoryChanged(bool, bool);
  void onPreferenceChanged(const QString &);

signals:
  void folderUp();
  void newFolder();
  void folderBack();
  void folderFwd();
};

#endif  // DV_ITEM_VIEW_INCLUDED

repository: manongjohn/OTX

repo_name: manongjohn/OTX

extension: h


text:
SUMMARY = "DTS Coherent Acoustics decoder with support for HD extensions"

LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c"

SRCREV = "b93deed1a231dd6dd7e39b9fe7d2abe05aa00158"
SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https;branch=master \
           file://0001-define-BASELIB-make-variable.patch \
          "

S = "${WORKDIR}/git"

inherit lib_package

EXTRA_OEMAKE = "CONFIG_SHARED=1 PREFIX=${prefix} BASELIB=${baselib}"

do_install() {
	oe_runmake install DESTDIR="${D}"
}


text:
DESCRIPTION = "Framebuffer splash utilities."
SECTION = "media-gfx"
LICENSE = "GPL"
PR = "r1"

SRC_URI = "http://dev.gentoo.org/~spock/projects/gensplash/archive/splashutils-${PV}.tar.bz2"

DEPENDS = "jpeg klcc-cross"

inherit autotools

PARALLEL_MAKE = ""

# klcc doesn't work with -isystem
export TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}/${layout_includedir}"
export BUILD_CPPFLAGS = "-I${STAGING_DIR_NATIVE}${layout_includedir}"

do_configure_prepend() {
	if [ -f "${S}"/src/Makefile.am ] ; then
		sed -i "s#^INCLUDES = \(.*\)#INCLUDES = \1 $CPPFLAGS#" "${S}"/src/Makefile.am
	fi
}

EXTRA_OECONF = "--without-gpm --without-png --without-mng --without-ttf --without-ttf-kernel"

# fbcondecor_helper is also useful outside of the main package.
RDEPENDS_${PN} = "${PN}-helper"

PACKAGES =+ "${PN}-helper"
FILES_${PN}-helper = "${base_sbindir}/fbcondecor_helper ${base_sbindir}/splash_helper"
FILES_${PN} += "/lib"

do_install_append () {
	if [ -f "${S}"/debian/splashutils.dirs ] ; then
		for dir in $(cat debian/splashutils.dirs) ; do
			mkdir -p ${D}/$dir
		done
	fi

	ln -s fbcondecor_helper ${D}${base_sbindir}/splash_helper

}

SRC_URI[md5sum] = "00dce0efb5e6389cacbf15c62d18e413"
SRC_URI[sha256sum] = "05265dbc948a690dc5b5710da23eb7093fa4eaabbfebd58463a2be4ab9b848b4"

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD


text:
/*
Copyright 2020 gRPC authors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package status

import (
	grpcv1 "github.com/grpc/test-infra/api/v1"
	"github.com/grpc/test-infra/config"
	corev1 "k8s.io/api/core/v1"
)

// DefaultClientPool is a key in the NodeCountByPool map on the LoadTestMissing
// struct. It maps to the number of nodes required from the default client pool.
const DefaultClientPool = "__default_pool (clients)"

// DefaultDriverPool is a key in the NodeCountByPool map on the LoadTestMissing
// struct. It maps to the number of nodes required from the default driver pool.
const DefaultDriverPool = "__default_pool (drivers)"

// DefaultServerPool is a key in the NodeCountByPool map on the LoadTestMissing
// struct. It maps to the number of nodes required from the default server pool.
const DefaultServerPool = "__default_pool (servers)"

// LoadTestMissing defines missing pods of LoadTest.
type LoadTestMissing struct {
	// Driver is the component that orchestrates the test. If Driver is not set
	// that means we already have the Driver running.
	Driver *grpcv1.Driver

	// Servers are a list of components that receive traffic from. The list
	// indicates the Servers still in need.
	Servers []grpcv1.Server

	// Clients are a list of components that send traffic to servers. The list
	// indicates the Clients still in need.
	Clients []grpcv1.Client

	// NodeCountPyPool is a map which gives the number of nodes required from
	// each pool to run the test. These counts will not include any pods from
	// the test that have already been scheduled. The names of the required node
	// pools are the keys and the value is the number of nodes required from the
	// named pool.
	//
	// If a test does not require any nodes from a pool, the pool name will not
	// be present as a key in the map. If a driver, client or server has not
	// been scheduled for a test and does not specify a pool, it will be counted
	// in one of the default pool keys. See the DefaultClientPool,
	// DefaultDriverPool and DefaultServerPool constants.
	NodeCountByPool map[string]int
}

// IsEmpty returns true if there are no missing driver, servers or clients on a
// LoadTestMissing struct. Otherwise, it returns false.
func (ltm *LoadTestMissing) IsEmpty() bool {
	return ltm.Driver == nil && len(ltm.Servers) == 0 && len(ltm.Clients) == 0
}

// CheckMissingPods attempts to check if any required component is missing from
// the current load test. It takes reference of the current load test and a pod
// list that contains all running pods at the moment, returning all missing
// components required from the current load test with their roles.
func CheckMissingPods(test *grpcv1.LoadTest, ownedPods []*corev1.Pod) *LoadTestMissing {
	currentMissing := &LoadTestMissing{
		Servers: []grpcv1.Server{},
		Clients: []grpcv1.Client{},
		NodeCountByPool: map[string]int{
			DefaultClientPool: 0,
			DefaultDriverPool: 0,
			DefaultServerPool: 0,
		},
	}

	requiredClientMap := make(map[string]*grpcv1.Client)
	requiredServerMap := make(map[string]*grpcv1.Server)
	foundDriver := false

	for i := 0; i < len(test.Spec.Clients); i++ {
		requiredClientMap[*test.Spec.Clients[i].Name] = &test.Spec.Clients[i]
	}
	for i := 0; i < len(test.Spec.Servers); i++ {
		requiredServerMap[*test.Spec.Servers[i].Name] = &test.Spec.Servers[i]
	}

	if ownedPods != nil {

		for _, eachPod := range ownedPods {

			if eachPod.Labels == nil {
				continue
			}

			roleLabel := eachPod.Labels[config.RoleLabel]
			componentNameLabel := eachPod.Labels[config.ComponentNameLabel]

			if roleLabel == config.DriverRole {
				if *test.Spec.Driver.Name == componentNameLabel {
					foundDriver = true
				}
			} else if roleLabel == config.ClientRole {
				if _, ok := requiredClientMap[componentNameLabel]; ok {
					delete(requiredClientMap, componentNameLabel)
				}
			} else if roleLabel == config.ServerRole {
				if _, ok := requiredServerMap[componentNameLabel]; ok {
					delete(requiredServerMap, componentNameLabel)
				}
			}
		}
	}

	incNodeCount := func(pool string) {
		if _, ok := currentMissing.NodeCountByPool[pool]; !ok {
			currentMissing.NodeCountByPool[pool] = 0
		}
		currentMissing.NodeCountByPool[pool]++
	}

	for _, eachMissingClient := range requiredClientMap {
		currentMissing.Clients = append(currentMissing.Clients, *eachMissingClient)
		if eachMissingClient.Pool == nil {
			currentMissing.NodeCountByPool[DefaultClientPool]++
		} else {
			incNodeCount(*eachMissingClient.Pool)
		}
	}

	for _, eachMissingServer := range requiredServerMap {
		currentMissing.Servers = append(currentMissing.Servers, *eachMissingServer)
		if eachMissingServer.Pool == nil {
			currentMissing.NodeCountByPool[DefaultServerPool]++
		} else {
			incNodeCount(*eachMissingServer.Pool)
		}
	}

	if !foundDriver {
		currentMissing.Driver = test.Spec.Driver
		if test.Spec.Driver.Pool == nil {
			currentMissing.NodeCountByPool[DefaultDriverPool]++
		} else {
			incNodeCount(*test.Spec.Driver.Pool)
		}
	}

	return currentMissing
}

repository: grpc/test-infra

repo_name: grpc/test-infra


text:
package elm

import (
	"bytes"
	"embed"
	"text/template"

	"github.com/pkg/errors"
	"github.com/webrpc/webrpc/gen"
	"github.com/webrpc/webrpc/schema"
)

func init() {
	gen.Register("elm", &generator{})
}

//go:embed templates/*.elm.tmpl
var templatesFS embed.FS

type generator struct{}

func (g *generator) Gen(proto *schema.WebRPCSchema, opts gen.TargetOptions) (string, error) {
	// Load templates
	tmpl, err := template.
		New("webrpc-gen-elm").
		Delims("<%", "%>").
		Funcs(templateFuncMap).
		ParseFS(templatesFS, "templates/*.elm.tmpl")
	if err != nil {
		return "", errors.Wrap(err, "failed to parse elm templates")
	}

	// generate deterministic schema hash of the proto file
	schemaHash, err := proto.SchemaHash()
	if err != nil {
		return "", err
	}

	// template vars
	vars := struct {
		*schema.WebRPCSchema
		SchemaHash string
		TargetOpts gen.TargetOptions
	}{
		proto, schemaHash, opts,
	}

	// generate the template
	genBuf := bytes.NewBuffer(nil)
	err = tmpl.ExecuteTemplate(genBuf, "proto", vars)
	if err != nil {
		return "", err
	}

	return string(genBuf.Bytes()), nil
}

repository: eriklott/webrpc

repo_name: eriklott/webrpc


text:
@article{luzzi_semi-automated_2023,
 author = {Luzzi, Erica and Nodjoumi, Giacomo and Massironi, Matteo and Pozzobon, Riccardo and Rossi, Angelo Pio},
 journal = {Journal of Geophysical Research: Planets},
 pages = {e2022JE007265},
 title = {A semi-automated analysis of displacement-to-length scaling of the grabens affecting lunar Floor-Fractured craters},
 year = {2023}
}