text:
import {
  Invocable,
  InvocableRegistry,
  CreatableInjection,
  StaticInjection
} from '../src/index';
import {
  SimpleSpecifier,
  SimpleSpecifierResolver
} from './test-helpers';

const { module, test } = QUnit;

const doSomething: Invocable = {
  invoke(...thingsToDo: string[]) {
    return 'Things to do: ' + thingsToDo.join(',');
  }
};

const doSomethingOnce: Invocable = {
  invoke() {
    this._result = "This is the only time I'm doing something";
    return this.result;
  },

  get result() {
    return this._result;
  }
}

module('InvocableRegistry');

test('invocables can be registered, unregistered, and resolved', function(assert) {
  let specifierResolver = new SimpleSpecifierResolver;
  let registry = new InvocableRegistry<SimpleSpecifier>(specifierResolver);

  registry.registerInvocable('doSomething', doSomething);
  assert.strictEqual(registry.invocableFor('doSomething'), doSomething);

  registry.unregisterInvocable('doSomething');
  assert.strictEqual(registry.invocableFor('doSomething'), undefined);
});

test('invocables can be registered and resolved with a priority', function(assert) {
  let specifierResolver = new SimpleSpecifierResolver;
  let registry = new InvocableRegistry<SimpleSpecifier>(specifierResolver);

  registry.registerInvocable('*', doSomething);
  assert.strictEqual(registry.invocableFor('doSomething'), doSomething);

  registry.registerInvocable('doSomething', doSomethingOnce);
  assert.strictEqual(registry.invocableFor('doSomething'), doSomethingOnce);

  registry.unregisterInvocable('doSomething');
  assert.strictEqual(registry.invocableFor('doSomething'), doSomething);
});

test('invocable args can be registered, unregistered, and resolved', function(assert) {
  let specifierResolver = new SimpleSpecifierResolver;
  let registry = new InvocableRegistry<SimpleSpecifier>(specifierResolver);
  let injections = [
    'write todo list', {
    type: 'static',
    value: 'dishes'
  } as StaticInjection];

  registry.registerInvocableArguments('doSomething', injections);
  assert.strictEqual(registry.invocableArgumentsFor('doSomething'), injections);

  registry.unregisterInvocableArguments('doSomething');
  assert.strictEqual(registry.invocableArgumentsFor('doSomething'), undefined);
});

test('invocable args can be registered and resolved with priority', function(assert) {
  let specifierResolver = new SimpleSpecifierResolver;
  let registry = new InvocableRegistry<SimpleSpecifier>(specifierResolver);
  let injections = [
    'write todo list', {
    type: 'static',
    value: 'dishes'
  } as StaticInjection];
  let injections2 = [
    'water plants',
    'change world'];

  registry.registerInvocableArguments('*', injections);
  assert.strictEqual(registry.invocableArgumentsFor('doSomething'), injections);

  registry.registerInvocableArguments('doSomething', injections2);
  assert.strictEqual(registry.invocableArgumentsFor('doSomething'), injections2);
});

repository: dgeb/diametric

repo_name: dgeb/diametric

gha_language: TypeScript

extension: ts


text:
/*

 MIT License

 Copyright (c) 2023 Google LLC

 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:

 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.

 */

import dateLocale from 'date-fns/locale/th'
import { thTH as componentsLocale } from '@looker/components'
import { thTH as filterexpressionsLocale } from '@looker/filter-expressions'
import { mergeLocaleObjects } from '@looker/i18n'

const resources = {
  AddRemoveButtons: {
    Add: 'เพิ่ม',
    Remove: 'นำออก',
  },
  before_after_units: {
    'days ago': 'วันที่แล้ว',
    'days from now': 'วันนับจากนี้',
    'fiscal quarter from now': 'ไตรมาสงบประมาณนับจากนี้',
    'fiscal quarters ago': 'ไตรมาสงบประมาณที่แล้ว',
    'fiscal years ago': 'ปีงบประมาณที่แล้ว',
    'fiscal years from now': 'ปีงบประมาณนับจากนี้',
    'hours ago': 'ชั่วโมงที่แล้ว',
    'hours from now': 'ชั่วโมงนับจากนี้',
    'minutes ago': 'นาทีที่แล้ว',
    'minutes from now': 'นาทีนับจากนี้',
    'months ago': 'เดือนที่แล้ว',
    'months from now': 'เดือนนับจากนี้',
    now: 'ขณะนี้',
    'quarters ago': 'ไตรมาสที่แล้ว',
    'quarters from now': 'ไตรมาสนับจากนี้',
    'seconds ago': 'วินาทีที่แล้ว',
    'seconds from now': 'วินาทีนับจากนี้',
    'weeks ago': 'สัปดาห์ที่แล้ว',
    'weeks from now': 'สัปดาห์นับจากนี้',
    'years ago': 'ปีที่แล้ว',
    'years from now': 'ปีนับจากนี้',
  },
  BeforeAfter: {
    absolute: '(สัมบูรณ์)',
    relative: '(สัมพัทธ์)',
  },
  Between: {
    AND: 'AND',
  },
  date_units: {
    day: 'วัน',
    days: 'วัน',
    'fiscal quarter': 'ไตรมาสงบประมาณ',
    'fiscal quarters': 'ไตรมาสงบประมาณ',
    'fiscal year': 'ปีงบประมาณ',
    'fiscal years': 'ปีงบประมาณ',
    hour: 'ชั่วโมง',
    hours: 'ชั่วโมง',
    minute: 'นาที',
    minutes: 'นาที',
    month: 'เดือน',
    months: 'เดือน',
    quarter: 'ไตรมาส',
    quarters: 'ไตรมาส',
    second: 'วินาที',
    seconds: 'วินาที',
    week: 'สัปดาห์',
    weeks: 'สัปดาห์',
    year: 'ปี',
    years: 'ปี',
  },
  DateRange: {
    'until (before)': 'จนถึง (ก่อน)',
  },
  get_date_filter_options: {
    is: 'เป็น',
    'is any time': 'เป็นเวลาใดก็ได้',
    'is before': 'อยู่ก่อน',
    'is in range': 'อยู่ในช่วง',
    'is in the last': 'อยู่ในรายการล่าสุด',
    'is in the month': 'อยู่ในเดือน',
    'is in the year': 'อยู่ในปี',
    'is next': 'อยู่ถัดไป',
    'is not null': 'ไม่เป็นค่าว่าง',
    'is null': 'เป็นค่าว่าง',
    'is on or after': 'อยู่ที่หรือหลัง',
    'is on the day': 'อยู่ในวัน',
    'is previous': 'อยู่ก่อนหน้า',
    'is this': 'อยู่รายการนี้',
  },
  get_filter_options: {
    'matches advanced': 'รายการที่ตรงกัน (ขั้นสูง)',
  },
  get_location_filter_options: {
    Box: 'กล่อง',
    Circle: 'วงกลม',
    Location: 'ตำแหน่งที่ตั้ง',
    feet: 'ฟุต',
    'is anywhere': 'ที่ใดก็ได้',
    'is not null': 'ไม่เป็นค่าว่าง',
    'is null': 'เป็นค่าว่าง',
    kilometers: 'กิโลเมตร',
    meters: 'เมตร',
    miles: 'ไมล์',
  },
  get_number_filter_options: {
    exclusive: '(ไม่รวม)',
    inclusive: '[รวม]',
    is: 'เป็น',
    'is between': 'อยู่ระหว่าง',
    'is greater': 'เป็น >',
    'is greater equal': 'เป็น >=',
    'is less': 'เป็น <',
    'is less equal': 'เป็น <=',
    'is not': 'ไม่',
    'is not between': 'ไม่อยู่ระหว่าง',
    'is not null': 'ไม่เป็นค่าว่าง',
    'is null': 'เป็นค่าว่าง',
    'left exclusive': '(ไม่รวมซ้าย]',
    'right exclusive': '[ไม่รวมขวา)',
  },
  get_relative_timeframe_presets: {
    'Last 14 Days': '14 วันที่ผ่านมา',
    'Last 180 Days': '180 วันที่ผ่านมา',
    'Last 28 Days': '28 วันที่ผ่านมา',
    'Last 30 Days': '30 วันที่ผ่านมา',
    'Last 365 Days': '365 วันที่ผ่านมา',
    'Last 7 Days': '7 วันที่ผ่านมา',
    'Last 90 Days': '90 วันที่ผ่านมา',
    'Previous Month': 'เดือนที่แล้ว',
    'Previous Quarter': 'ไตรมาสที่แล้ว',
    'Previous Week': 'สัปดาห์ที่แล้ว',
    'Previous Year': 'ปีที่แล้ว',
    'This Month': 'เดือนนี้',
    'This Quarter': 'ไตรมาสนี้',
    'This Week': 'สัปดาห์นี้',
    'This Year': 'ปีนี้',
    Today: 'วันนี้',
    'Year To Date': 'ตั้งแต่ต้นปี',
    Yesterday: 'เมื่อวาน',
  },
  get_string_filter_options: {
    contains: 'ประกอบด้วย',
    'doesnt contain': 'ไม่ได้ประกอบด้วย',
    'doesnt end with': 'ไม่ได้สิ้นสุดด้วย',
    'doesnt start with': 'ไม่ได้เริ่มต้นด้วย',
    'ends with': 'สิ้นสุดด้วย',
    is: 'เป็น',
    'is blank': 'เว้นว่าง',
    'is not': 'ไม่',
    'is not blank': 'ไม่เว้นว่าง',
    'is not null': 'ไม่เป็นค่าว่าง',
    'is null': 'เป็นค่าว่าง',
    'starts with': 'เริ่มต้นด้วย',
  },
  get_tier_filter_options: {
    is: 'เป็น',
    'is any value': 'เป็นค่าใดก็ได้',
    'is not': 'ไม่',
  },
  get_user_attribute_option: {
    'matches a user attribute': 'ตรงกับแอตทริบิวต์ของผู้ใช้',
  },
  MultiInput: {
    'Clear all': '',
    Remove: '',
    Toggle: '',
  },
  NoMatchingFields: {
    'No Matching Fields': 'ไม่มีฟิลด์ที่ตรงกัน',
    'Try Something Else':
      'ลองใช้คำค้นหาอื่นหรือเริ่มต้นใหม่และขยายการสำรวจเพื่อเรียกดูฟิลด์ที่มีอยู่',
  },
  NumberFilter: {
    'any value': 'ค่าใดก็ได้',
  },
  OperatorLabel: {
    AND: 'AND',
    OR: 'OR',
  },
  past_units: {
    'complete days': 'วันถ้วน',
    'complete fiscal quarters': 'ไตรมาสงบประมาณถ้วน',
    'complete fiscal years': 'ปีงบประมาณถ้วน',
    'complete hours': 'ชั่วโมงถ้วน',
    'complete minutes': 'นาทีถ้วน',
    'complete months': 'เดือนถ้วน',
    'complete quarters': 'ไตรมาสถ้วน',
    'complete seconds': 'วินาทีถ้วน',
    'complete weeks': 'สัปดาห์ถ้วน',
    'complete years': 'ปีถ้วน',
  },
  RadioGroup: {
    'any value': 'ค่าใดก็ได้',
  },
  ReactSelectCustomIcons: {
    'Clear all': 'ล้างทั้งหมด',
    Remove: 'นำออก',
    Toggle: 'สลับ',
  },
  Relative: {
    ago: 'ที่แล้ว',
    'from now': 'นับจากนี้',
  },
  RelativeTimeframe: {
    'Choose a Timeframe': 'เลือกกรอบเวลา',
  },
  RelativeTimeframePopoverContent: {
    Custom: 'กำหนดเอง',
    Presets: 'กำหนดล่วงหน้า',
  },
  RelativeTimeframePresets: {
    More: 'เพิ่มเติม',
  },
  use_filters_errors: {
    'Invalid value': 'ค่าไม่ถูกต้อง',
    'No value is set for your user attribute':
      'ไม่มีการกำหนดค่าสำหรับแอตทริบิวต์ของผู้ใช้ของคุณ',
    'Selection required': 'ต้องเลือก',
  },
  use_option_filtering: {
    'No values': 'ไม่มีค่า',
    'No values match': 'ไม่มีค่าที่ตรงกัน',
  },
  use_placeholder: {
    'any value': 'ค่าใดก็ได้',
  },
  use_suggestable: {
    'Error loading suggestions': 'เกิดข้อผิดพลาดในการโหลดคำแนะนำ',
  },
  use_validation_message: {
    'Value required': 'ต้องระบุค่า',
  },
}

export const thTH = mergeLocaleObjects(
  [componentsLocale, filterexpressionsLocale],
  'th-TH',
  resources,
  dateLocale
)

license: MIT

repository: looker-open-source/components

license_type: permissive

repo_name: looker-open-source/components

branch_name: refs/heads/main

gha_license_id: MIT


text:
@inproceedings{mante_analysis_2020,
 abstract = {Synthetic biology is a movement to standardize genetic engineering and make it more repeatable. An important advancement was the development of standardized genetic parts known as BioBricks, which can be composed using restriction enzyme assembly. The iGEM (international Genetically Engineered Machines) competition is an important synthetic biology outreach activity which is run by the iGEM foundation in keeping with their principles of the advancement of synthetic biology via education, competition, and development of an open and collaborative community. As part of the iGEM competition students submit records of any ‘parts’ they create to the iGEM registry (http://parts.igem.org/Main_Page). The iGEM registry was converted to the Synthetic Biology Open Language (SBOL) data format, a standard language for describing genetic designs, and a preliminary analysis of the data was carried out to predict the size of a potential library as well as quantify current problems with the registry data set.},
 address = {Virtual},
 author = {Mante, Jeanet and Mclaughlin, James and Myers, Chris},
 booktitle = {IWBDA2020Proceedings},
 keywords = {Annotation, Curation, SBOL, Sequence, Standardization, SynBioHub, iGEM},
 language = {English},
 month = {August},
 pages = {78--79},
 title = {Analysis of the SBOL iGEM Data Set},
 url = {https://www.iwbdaconf.org/2020/docs/IWBDA2020Proceedings.pdf},
 year = {2020}
}

branch_name: refs/heads/master

gha_language: HTML

extension: bib


text:
SUMMARY = "UNIX Shell similar to the Korn shell"
DESCRIPTION = "Zsh is a shell designed for interactive use, although it is also a \
               powerful scripting language. Many of the useful features of bash, \
               ksh, and tcsh were incorporated into zsh; many original features were added."
HOMEPAGE = "http://www.zsh.org"
SECTION = "base/shell"

LICENSE = "zsh"
LIC_FILES_CHKSUM = "file://LICENCE;md5=1a4c4cda3e8096d2fd483ff2f4514fec"

DEPENDS = "ncurses bison-native libcap libpcre gdbm groff-native"

SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/5.8/${BP}.tar.xz \
	file://CVE-2021-45444_1.patch \
	file://CVE-2021-45444_2.patch \
	file://CVE-2021-45444_3.patch \
	"
SRC_URI[sha256sum] = "dcc4b54cc5565670a65581760261c163d720991f0d06486da61f8d839b52de27"

inherit autotools-brokensep gettext update-alternatives manpages

EXTRA_OECONF = " \
    --bindir=${base_bindir} \
    --enable-etcdir=${sysconfdir} \
    --enable-fndir=${datadir}/${BPN}/${PV}/functions \
    --enable-site-fndir=${datadir}/${BPN}/site-functions \
    --with-term-lib='ncursesw ncurses' \
    --with-tcsetpgrp \
    --enable-cap \
    --enable-multibyte \
    --disable-gdbm \
    --disable-dynamic \
    zsh_cv_shared_environ=yes \
"

# Configure respects --bindir from EXTRA_OECONF, but then Src/Makefile will read bindir from environment
export bindir="${base_bindir}"

EXTRA_OEMAKE = "-e MAKEFLAGS="

ALTERNATIVE:${PN} = "sh"
ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
ALTERNATIVE_PRIORITY = "90"

export AUTOHEADER = "true"

do_configure () {
    gnu-configize --force ${S}
    oe_runconf
}

pkg_postinst:${PN} () {
    touch $D${sysconfdir}/shells
    grep -q "bin/zsh" $D${sysconfdir}/shells || echo /bin/zsh >> $D${sysconfdir}/shells
    grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
}

# work around QA failures with usrmerge installing zsh in /usr/bin/zsh instead of /bin/zsh
# ERROR: QA Issue: /usr/share/zsh/5.8/functions/zed contained in package zsh requires /bin/zsh, but no providers found in RDEPENDS:zsh? [file-rdeps]
# like bash does since https://git.openembedded.org/openembedded-core/commit/?id=4759408677a4e60c5fa7131afcb5bc184cf2f90a
RPROVIDES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/zsh', '', d)}"

repository: openembedded/meta-openembedded

repo_name: openembedded/meta-openembedded

gha_language: BitBake

extension: bb


text:
using MXGP.Core.Contracts;
using MXGP.Models.Motorcycles;
using MXGP.Models.Motorcycles.Contracts;
using MXGP.Models.Races;
using MXGP.Models.Races.Contracts;
using MXGP.Models.Riders;
using MXGP.Models.Riders.Contracts;
using MXGP.Repositories;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MXGP.Core
{
    public class ChampionshipController : IChampionshipController
    {
        private MotorcycleRepository motorcycleRepository;
        private RaceRepository raceRepository;
        private RiderRepository riderRepository;

        public ChampionshipController()
        {
            this.motorcycleRepository = new MotorcycleRepository();
            this.raceRepository = new RaceRepository();
            this.riderRepository = new RiderRepository();
        }

        public string AddMotorcycleToRider(string riderName, string motorcycleModel)
        {
            IMotorcycle motorcycle = this.motorcycleRepository
                .GetByName(motorcycleModel);
            IRider rider = this.riderRepository
                .GetByName(riderName);

            if (rider is null)
            {
                throw new InvalidOperationException(
                    $"Rider {riderName} could not be found.");
            }

            if (motorcycle is null)
            {
                throw new InvalidOperationException(
                    $"Motorcycle {motorcycleModel} could not be found.");
            }

            rider.AddMotorcycle(motorcycle);

            return $"Rider {riderName} received motorcycle {motorcycleModel}.";
        }

        public string AddRiderToRace(string raceName, string riderName)
        {
            IRace race = this.raceRepository
                .GetByName(raceName);

            if (race is null)
            {
                throw new InvalidOperationException(
                    $"Race {raceName} could not be found.");
            }

            IRider rider = this.riderRepository
                .GetByName(riderName);

            if (rider is null)
            {
                throw new InvalidOperationException(
                    $"Rider {riderName} could not be found.");
            }

            race.AddRider(rider);

            return $"Rider {riderName} added in {raceName} race.";
        }

        public string CreateMotorcycle(string type, string model, int horsePower)
        {
            //Create a motorcycle with the provided model and horsepower and add it to the repository.
            //There are two types of motorcycles: "SpeedMotorcycle" and "PowerMotorcycle".
            //If the motorcycle already exists in the appropriate repository throw an ArgumentException with following message:
            //"Motorcycle {model} is already created."
            //If the motorcycle is successfully created, the method should return the following message:
            //"{"SpeedMotorcycle"/ "PowerMotorcycle"} {model} is created."
            IMotorcycle motorcycle = this.motorcycleRepository
                .GetByName(model);

            if (motorcycle != null)
            {
                throw new ArgumentException(
                    $"Motorcycle {model} is already created.");
            }

            if (type == "Speed")
            {
                motorcycle = new SpeedMotorcycle(model, horsePower);
            }
            else if (type == "Power")
            {
                motorcycle = new PowerMotorcycle(model, horsePower);
            }

            this.motorcycleRepository.Add(motorcycle);

            return $"{motorcycle.GetType().Name} {model} is created.";
        }

        public string CreateRace(string name, int laps)
        {
            IRace race = this.raceRepository
                .GetByName(name);

            if (race != null)
            {
                throw new InvalidOperationException(
                    $"Race {name} is already created.");
            }

            race = new Race(name, laps);

            this.raceRepository.Add(race);

            return $"Race {name} is created.";
        }

        public string CreateRider(string riderName)
        {
            //Creates a rider with the given name and adds it to the appropriate repository.
            //The method should return the following message:
            //"Rider {name} is created."
            //If a rider with the given name already exists in the rider repository, throw an ArgumentException with message
            //"Rider {name} is already created."
            IRider rider = this.riderRepository
                .GetByName(riderName);

            if (rider != null)
            {
                throw new ArgumentException(
                    $"Rider {riderName} is already created.");
            }

            rider = new Rider(riderName);

            this.riderRepository.Add(rider);

            return $"Rider {riderName} is created.";
        }

        public string StartRace(string raceName)
        {
            IRace race = this.raceRepository
                .GetByName(raceName);

            if (race is null)
            {
                throw new InvalidOperationException(
                    $"Race {raceName} could not be found.");
            }

            if (race.Riders.Count < 3)
            {
                throw new InvalidOperationException(
                    $"Race {raceName} cannot start with less than 3 participants.");
            }

            var sortedRiders = race
                .Riders
                .OrderByDescending(r => r.Motorcycle.CalculateRacePoints(race.Laps))
                .Take(3)
                .ToList();

            StringBuilder builder = new StringBuilder();

            builder.AppendLine($"Rider {sortedRiders[0].Name} wins {raceName} race.");
            builder.AppendLine($"Rider {sortedRiders[1].Name} is second in {raceName} race.");
            builder.AppendLine($"Rider {sortedRiders[2].Name} is third in {raceName} race.");

            this.raceRepository.Remove(race);

            return builder.ToString().TrimEnd();
        }
    }
}

gha_language: C#

extension: cs


text:
package ledger_model

import "github.com/blockchain-jd-com/framework-go/crypto/framework"

/*
 * Author: imuge
 * Date: 2020/5/29 上午9:11
 */

// 区块链交易模板
type TransactionBuilder interface {
	ClientOperator

	GetLedgerHash() framework.HashDigest

	// 基于当前的系统时间完成交易定义，并生成就绪的交易数据
	// 调用此方法后，不能再向当前对象加入更多的操作
	PrepareRequestNow() TransactionRequestBuilder

	// 生成交易内容
	PrepareContentNow() TransactionContent

	// 基于当前的系统时间完成交易定义，并生成就绪的交易数据
	PrepareRequest(time int64) TransactionRequestBuilder

	// 生成交易内容
	PrepareContent(time int64) TransactionContent
}

extension: go


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="6.4">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="5" unitdist="mil" unit="mm" style="lines" multiple="1" display="yes" altdistance="0.025" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="no" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="no"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="no"/>
<layer number="4" name="Route4" color="1" fill="4" visible="no" active="no"/>
<layer number="5" name="Route5" color="4" fill="4" visible="no" active="no"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="no"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="no"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="no"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="no"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="no"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="no"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="no"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="no"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="no"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="no"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="no" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="no" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="no" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="1" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="7" fill="1" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="7" fill="1" visible="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
<layer number="104" name="Name" color="7" fill="1" visible="no" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
<layer number="108" name="tplace-old" color="7" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="7" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="7" fill="1" visible="no" active="yes"/>
<layer number="116" name="centerDrill" color="7" fill="1" visible="yes" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="no"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="no" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="no" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="no" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="no"/>
<layer number="201" name="201bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="202" name="202bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="203" name="203bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="no" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="no" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="no" active="yes"/>
</layers>
<board>
<plain>
<wire x1="1.651" y1="0.889" x2="40.112" y2="0.889" width="0.103" layer="20"/>
<wire x1="40.112" y1="0.889" x2="40.112" y2="16.942" width="0.103" layer="20"/>
<wire x1="40.112" y1="16.942" x2="1.651" y2="16.942" width="0.103" layer="20"/>
<wire x1="1.651" y1="16.942" x2="1.651" y2="0.889" width="0.103" layer="20"/>
<circle x="33.02" y="15.24" radius="0.354" width="0.408" layer="116"/>
<circle x="33.02" y="12.7" radius="0.354" width="0.408" layer="116"/>
<circle x="33.02" y="10.16" radius="0.354" width="0.408" layer="116"/>
<circle x="38.1" y="10.16" radius="0.4" width="0.5" layer="116"/>
<circle x="35.56" y="10.16" radius="0.4" width="0.5" layer="116"/>
<circle x="38.1" y="12.7" radius="0.4" width="0.5" layer="116"/>
<circle x="35.56" y="12.7" radius="0.4" width="0.5" layer="116"/>
<circle x="38.1" y="15.24" radius="0.4" width="0.5" layer="116"/>
<circle x="35.56" y="15.24" radius="0.4" width="0.5" layer="116"/>
<circle x="32.182" y="7.087" radius="0.354" width="0.408" layer="116"/>
<circle x="38.684" y="7.087" radius="0.354" width="0.408" layer="116"/>
<circle x="32.182" y="2.565" radius="0.354" width="0.408" layer="116"/>
<circle x="38.684" y="2.565" radius="0.354" width="0.408" layer="116"/>
<circle x="27.051" y="2.54" radius="0.3" width="0.3" layer="116"/>
<circle x="29.591" y="5.08" radius="0.3" width="0.3" layer="116"/>
<circle x="27.051" y="5.08" radius="0.3" width="0.3" layer="116"/>
<circle x="29.591" y="2.54" radius="0.3" width="0.3" layer="116"/>
<circle x="27.051" y="10.16" radius="0.3" width="0.3" layer="116"/>
<circle x="29.591" y="10.16" radius="0.3" width="0.3" layer="116"/>
<circle x="27.051" y="7.62" radius="0.3" width="0.3" layer="116"/>
<circle x="29.591" y="7.62" radius="0.3" width="0.3" layer="116"/>
<circle x="15.367" y="9.271" radius="0.202" width="0.103" layer="116"/>
<circle x="15.367" y="6.858" radius="0.202" width="0.103" layer="116"/>
</plain>
<libraries>
<library name="stm32f030x">
<packages>
<package name="TSSOP-20">
<wire x1="-3.1646" y1="-2.2828" x2="3.1646" y2="-2.2828" width="0.1524" layer="21"/>
<wire x1="3.1646" y1="2.2828" x2="3.1646" y2="-2.2828" width="0.1524" layer="21"/>
<wire x1="3.1646" y1="2.2828" x2="-3.1646" y2="2.2828" width="0.1524" layer="21"/>
<wire x1="-3.1646" y1="-2.2828" x2="-3.1646" y2="2.2828" width="0.1524" layer="21"/>
<wire x1="-2.936" y1="-2.0542" x2="2.936" y2="-2.0542" width="0.0508" layer="21"/>
<wire x1="2.936" y1="2.0542" x2="2.936" y2="-2.0542" width="0.0508" layer="21"/>
<wire x1="2.936" y1="2.0542" x2="-2.936" y2="2.0542" width="0.0508" layer="21"/>
<wire x1="-2.936" y1="-2.0542" x2="-2.936" y2="2.0542" width="0.0508" layer="21"/>
<circle x="-2.2756" y="-1.2192" radius="0.4572" width="0.1524" layer="21"/>
<smd name="1" x="-2.925" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="2" x="-2.275" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="3" x="-1.625" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="4" x="-0.975" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="5" x="-0.325" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="6" x="0.325" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="7" x="0.975" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="8" x="1.625" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="9" x="2.275" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="10" x="2.925" y="-2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="11" x="2.925" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="12" x="2.275" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="13" x="1.625" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="14" x="0.975" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="15" x="0.325" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="16" x="-0.325" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="17" x="-0.975" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="18" x="-1.625" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="19" x="-2.275" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<smd name="20" x="-2.925" y="2.9178" dx="0.3048" dy="0.9906" layer="1"/>
<text x="-3.5456" y="-2.0828" size="1.016" layer="25" ratio="10" rot="R90">>NAME</text>
<text x="4.5362" y="-2.0828" size="1.016" layer="27" ratio="10" rot="R90">>VALUE</text>
<rectangle x1="-3.0266" y1="-3.121" x2="-2.8234" y2="-2.2828" layer="51"/>
<rectangle x1="-2.3766" y1="-3.121" x2="-2.1734" y2="-2.2828" layer="51"/>
<rectangle x1="-1.7266" y1="-3.121" x2="-1.5234" y2="-2.2828" layer="51"/>
<rectangle x1="-1.0766" y1="-3.121" x2="-0.8734" y2="-2.2828" layer="51"/>
<rectangle x1="-0.4266" y1="-3.121" x2="-0.2234" y2="-2.2828" layer="51"/>
<rectangle x1="0.2234" y1="-3.121" x2="0.4266" y2="-2.2828" layer="51"/>
<rectangle x1="0.8734" y1="-3.121" x2="1.0766" y2="-2.2828" layer="51"/>
<rectangle x1="1.5234" y1="-3.121" x2="1.7266" y2="-2.2828" layer="51"/>
<rectangle x1="2.1734" y1="-3.121" x2="2.3766" y2="-2.2828" layer="51"/>
<rectangle x1="2.8234" y1="-3.121" x2="3.0266" y2="-2.2828" layer="51"/>
<rectangle x1="2.8234" y1="2.2828" x2="3.0266" y2="3.121" layer="51"/>
<rectangle x1="2.1734" y1="2.2828" x2="2.3766" y2="3.121" layer="51"/>
<rectangle x1="1.5234" y1="2.2828" x2="1.7266" y2="3.121" layer="51"/>
<rectangle x1="0.8734" y1="2.2828" x2="1.0766" y2="3.121" layer="51"/>
<rectangle x1="0.2234" y1="2.2828" x2="0.4266" y2="3.121" layer="51"/>
<rectangle x1="-0.4266" y1="2.2828" x2="-0.2234" y2="3.121" layer="51"/>
<rectangle x1="-1.0766" y1="2.2828" x2="-0.8734" y2="3.121" layer="51"/>
<rectangle x1="-1.7266" y1="2.2828" x2="-1.5234" y2="3.121" layer="51"/>
<rectangle x1="-2.3766" y1="2.2828" x2="-2.1734" y2="3.121" layer="51"/>
<rectangle x1="-3.0266" y1="2.2828" x2="-2.8234" y2="3.121" layer="51"/>
</package>
</packages>
</library>
<library name="RC.v2">
<packages>
<package name="0805">
<smd name="P$1" x="-0.95" y="0" dx="1.25" dy="0.7" layer="1" rot="R90"/>
<smd name="P$2" x="0.95" y="0" dx="1.25" dy="0.7" layer="1" rot="R90"/>
<wire x1="-0.508" y1="0.635" x2="0.508" y2="0.635" width="0.1524" layer="21"/>
<wire x1="0.508" y1="-0.635" x2="-0.508" y2="-0.635" width="0.1524" layer="21"/>
<text x="0" y="0.889" size="0.8128" layer="25" font="vector" align="bottom-center">>name</text>
<text x="0" y="-0.889" size="0.8128" layer="27" font="vector" align="top-center">>value</text>
</package>
<package name="0603">
<smd name="P$1" x="-0.735" y="0" dx="0.8" dy="0.5" layer="1" rot="R90"/>
<smd name="P$2" x="0.735" y="0" dx="0.8" dy="0.5" layer="1" rot="R90"/>
<wire x1="-0.381" y1="0.381" x2="0.381" y2="0.381" width="0.1524" layer="21"/>
<wire x1="0.381" y1="-0.381" x2="-0.381" y2="-0.381" width="0.1524" layer="21"/>
<text x="0" y="0.635" size="0.8128" layer="25" font="vector" align="bottom-center">>name</text>
<text x="0" y="-0.635" size="0.8128" layer="27" font="vector" align="top-center">>value</text>
</package>
<package name="0402">
<smd name="P$1" x="-0.46" y="0" dx="0.5" dy="0.42" layer="1" rot="R90"/>
<smd name="P$2" x="0.46" y="0" dx="0.5" dy="0.42" layer="1" rot="R90"/>
<wire x1="-0.127" y1="0.254" x2="0.127" y2="0.254" width="0.1524" layer="21"/>
<wire x1="0.127" y1="-0.254" x2="-0.127" y2="-0.254" width="0.1524" layer="21"/>
<text x="0" y="0.508" size="0.8128" layer="25" font="vector" align="bottom-center">>name</text>
<text x="0" y="-0.508" size="0.8128" layer="27" font="vector" align="top-center">>value</text>
</package>
</packages>
</library>
<library name="XC6206">
<packages>
<package name="XC6206_SOT-23">
<description>

XC6206 SOT-23 type package

</description>
<wire x1="-1.45" y1="-0.7" x2="1.45" y2="-0.7" width="0.127" layer="21"/>
<wire x1="1.45" y1="-0.7" x2="1.45" y2="0.7" width="0.127" layer="21"/>
<wire x1="1.45" y1="0.7" x2="-1.45" y2="0.7" width="0.127" layer="21"/>
<wire x1="-1.45" y1="0.7" x2="-1.45" y2="-0.7" width="0.127" layer="21"/>
<smd name="3" x="0" y="1.186" dx="0.6" dy="0.7" layer="1" roundness="75"/>
<smd name="1" x="-0.95" y="-1.161" dx="0.6" dy="0.7" layer="1" roundness="75"/>
<smd name="2" x="0.95" y="-1.161" dx="0.6" dy="0.7" layer="1" roundness="75"/>
<text x="-1.705" y="-1.305" size="0.8128" layer="25" font="vector" ratio="15" rot="R90">>NAME</text>
</package>
</packages>
</library>
<library name="resonator">
<packages>
<package name="FA-20H">
<description>MHZ RANGE CRYSTASL UNIT FA-20H

ULTRA MINIATURE SIZE LOW PROFILE SMD

Source: Epson Toyocom FA-20H.pdf</description>
<wire x1="-1.6" y1="1.25" x2="1.6" y2="1.25" width="0.2032" layer="51"/>
<wire x1="1.6" y1="1.25" x2="1.6" y2="-1.25" width="0.2032" layer="51"/>
<wire x1="1.6" y1="-1.25" x2="-1.6" y2="-1.25" width="0.2032" layer="51"/>
<wire x1="-1.6" y1="-1.25" x2="-1.6" y2="1.25" width="0.2032" layer="51"/>
<smd name="1" x="-1.27" y="-0.889" dx="1" dy="1" layer="1" roundness="75" cream="no"/>
<smd name="2" x="1.27" y="-0.889" dx="1" dy="1" layer="1" roundness="75" cream="no"/>
<smd name="3" x="1.27" y="0.889" dx="1" dy="1" layer="1" roundness="75" rot="R180" cream="no"/>
<smd name="4" x="-1.27" y="0.889" dx="1" dy="1" layer="1" roundness="75" rot="R180"/>
<text x="-1.7879" y="1.7113" size="0.8128" layer="25" font="vector" ratio="12">>NAME</text>
<text x="-1.8818" y="-2.496" size="0.8128" layer="27" font="vector" ratio="12">>VALUE</text>
<wire x1="-0.635" y1="1.27" x2="0.635" y2="1.27" width="0.2" layer="21"/>
<wire x1="-0.635" y1="-1.27" x2="0.635" y2="-1.27" width="0.2" layer="21"/>
<wire x1="-1.651" y1="0.254" x2="-1.651" y2="-0.254" width="0.2" layer="21"/>
<wire x1="1.651" y1="0.254" x2="1.651" y2="-0.254" width="0.2" layer="21"/>
</package>
</packages>
</library>
<library name="led">
<packages>
<package name="LED-0603">
<wire x1="0.46" y1="0.17" x2="0" y2="0.17" width="0.2032" layer="21"/>
<wire x1="-0.46" y1="0.17" x2="0" y2="0.17" width="0.2032" layer="21"/>
<wire x1="0" y1="0.17" x2="0.2338" y2="-0.14" width="0.2032" layer="21"/>
<wire x1="-0.0254" y1="0.1546" x2="-0.2184" y2="-0.14" width="0.2032" layer="21"/>
<smd name="C" x="0" y="0.777" dx="0.8" dy="0.6" layer="1" roundness="30"/>
<smd name="A" x="0" y="-0.777" dx="0.8" dy="0.6" layer="1" roundness="30"/>
<text x="-0.6985" y="-0.889" size="0.4064" layer="25" rot="R90">>NAME</text>
<text x="1.0795" y="-1.016" size="0.4064" layer="27" rot="R90">>VALUE</text>
</package>
</packages>
</library>
<library name="SparkFun-Connectors">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="1X03">
<wire x1="3.81" y1="0.635" x2="4.445" y2="1.27" width="0.2032" layer="21"/>
<wire x1="4.445" y1="1.27" x2="5.715" y2="1.27" width="0.2032" layer="21"/>
<wire x1="5.715" y1="1.27" x2="6.35" y2="0.635" width="0.2032" layer="21"/>
<wire x1="6.35" y1="-0.635" x2="5.715" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="5.715" y1="-1.27" x2="4.445" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="4.445" y1="-1.27" x2="3.81" y2="-0.635" width="0.2032" layer="21"/>
<wire x1="-0.635" y1="1.27" x2="0.635" y2="1.27" width="0.2032" layer="21"/>
<wire x1="0.635" y1="1.27" x2="1.27" y2="0.635" width="0.2032" layer="21"/>
<wire x1="1.27" y1="-0.635" x2="0.635" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="1.27" y1="0.635" x2="1.905" y2="1.27" width="0.2032" layer="21"/>
<wire x1="1.905" y1="1.27" x2="3.175" y2="1.27" width="0.2032" layer="21"/>
<wire x1="3.175" y1="1.27" x2="3.81" y2="0.635" width="0.2032" layer="21"/>
<wire x1="3.81" y1="-0.635" x2="3.175" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="3.175" y1="-1.27" x2="1.905" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="1.905" y1="-1.27" x2="1.27" y2="-0.635" width="0.2032" layer="21"/>
<wire x1="-1.27" y1="0.635" x2="-1.27" y2="-0.635" width="0.2032" layer="21"/>
<wire x1="-0.635" y1="1.27" x2="-1.27" y2="0.635" width="0.2032" layer="21"/>
<wire x1="-1.27" y1="-0.635" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="0.635" y1="-1.27" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="6.35" y1="0.635" x2="6.35" y2="-0.635" width="0.2032" layer="21"/>
<pad name="1" x="0" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
<pad name="2" x="2.54" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
<pad name="3" x="5.08" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
<text x="-1.3462" y="1.8288" size="1.27" layer="25" ratio="10">>NAME</text>
<text x="-1.27" y="-3.175" size="1.27" layer="27">>VALUE</text>
<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
</package>
<package name="2X3_POGO">
<pad name="P$1" x="0" y="0" drill="1.2" diameter="1.8288" shape="octagon"/>
<pad name="P$3" x="2.54" y="0" drill="1.2" diameter="1.8288" shape="octagon"/>
<pad name="P$5" x="5.08" y="0" drill="1.2" diameter="1.8288" shape="octagon"/>
<pad name="P$6" x="5.08" y="2.54" drill="1.2" diameter="1.8288" shape="octagon"/>
<pad name="P$4" x="2.54" y="2.54" drill="1.2" diameter="1.8288" shape="octagon"/>
<pad name="P$2" x="0" y="2.54" drill="1.2" diameter="1.8288" shape="octagon"/>
<wire x1="-0.635" y1="1.27" x2="-1.27" y2="1.905" width="0.127" layer="21"/>
<wire x1="-1.27" y1="1.905" x2="-1.27" y2="3.175" width="0.127" layer="21"/>
<wire x1="-1.27" y1="3.175" x2="-0.635" y2="3.81" width="0.127" layer="21"/>
<wire x1="-0.635" y1="3.81" x2="0.635" y2="3.81" width="0.127" layer="21"/>
<wire x1="0.635" y1="3.81" x2="1.27" y2="3.175" width="0.127" layer="21"/>
<wire x1="1.27" y1="3.175" x2="1.905" y2="3.81" width="0.127" layer="21"/>
<wire x1="1.905" y1="3.81" x2="3.175" y2="3.81" width="0.127" layer="21"/>
<wire x1="3.175" y1="3.81" x2="3.81" y2="3.175" width="0.127" layer="21"/>
<wire x1="3.81" y1="3.175" x2="4.445" y2="3.81" width="0.127" layer="21"/>
<wire x1="4.445" y1="3.81" x2="5.715" y2="3.81" width="0.127" layer="21"/>
<wire x1="5.715" y1="3.81" x2="6.35" y2="3.175" width="0.127" layer="21"/>
<wire x1="6.35" y1="3.175" x2="6.35" y2="1.905" width="0.127" layer="21"/>
<wire x1="6.35" y1="1.905" x2="5.715" y2="1.27" width="0.127" layer="21"/>
<wire x1="5.715" y1="1.27" x2="6.35" y2="0.635" width="0.127" layer="21"/>
<wire x1="6.35" y1="0.635" x2="6.35" y2="-0.635" width="0.127" layer="21"/>
<wire x1="6.35" y1="-0.635" x2="5.715" y2="-1.27" width="0.127" layer="21"/>
<wire x1="5.715" y1="-1.27" x2="4.445" y2="-1.27" width="0.127" layer="21"/>
<wire x1="4.445" y1="-1.27" x2="3.81" y2="-0.635" width="0.127" layer="21"/>
<wire x1="3.81" y1="-0.635" x2="3.175" y2="-1.27" width="0.127" layer="21"/>
<wire x1="3.175" y1="-1.27" x2="1.905" y2="-1.27" width="0.127" layer="21"/>
<wire x1="1.905" y1="-1.27" x2="1.27" y2="-0.635" width="0.127" layer="21"/>
<wire x1="1.27" y1="-0.635" x2="0.635" y2="-1.27" width="0.127" layer="21"/>
<wire x1="0.635" y1="-1.27" x2="-0.635" y2="-1.27" width="0.127" layer="21"/>
<wire x1="-0.635" y1="-1.27" x2="-1.27" y2="-0.635" width="0.127" layer="21"/>
<wire x1="-1.27" y1="-0.635" x2="-1.27" y2="0.635" width="0.127" layer="21"/>
<wire x1="-1.27" y1="0.635" x2="-0.635" y2="1.27" width="0.127" layer="21"/>
<wire x1="1.27" y1="2.54" x2="1.27" y2="0" width="0.127" layer="21"/>
<wire x1="3.81" y1="2.54" x2="3.81" y2="0" width="0.127" layer="21"/>
<wire x1="-0.635" y1="-1.651" x2="0.635" y2="-1.651" width="0.127" layer="21"/>
<text x="-0.508" y="4.064" size="0.4064" layer="25">>NAME</text>
<text x="1.778" y="4.064" size="0.4064" layer="25">>VALUE</text>
</package>
</packages>
</library>
<library name="SparkFun-Electromechanical">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find anything that moves- switches, relays, buttons, potentiometers. Also, anything that goes on a board but isn't electrical in nature- screws, standoffs, etc.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="TACTILE-PTH">
<description>OMRON SWITCH</description>
<wire x1="3.048" y1="1.016" x2="3.048" y2="2.54" width="0.2032" layer="51"/>
<wire x1="3.048" y1="2.54" x2="2.54" y2="3.048" width="0.2032" layer="51"/>
<wire x1="2.54" y1="-3.048" x2="3.048" y2="-2.54" width="0.2032" layer="51"/>
<wire x1="3.048" y1="-2.54" x2="3.048" y2="-1.016" width="0.2032" layer="51"/>
<wire x1="-2.54" y1="3.048" x2="-3.048" y2="2.54" width="0.2032" layer="51"/>
<wire x1="-3.048" y1="2.54" x2="-3.048" y2="1.016" width="0.2032" layer="51"/>
<wire x1="-2.54" y1="-3.048" x2="-3.048" y2="-2.54" width="0.2032" layer="51"/>
<wire x1="-3.048" y1="-2.54" x2="-3.048" y2="-1.016" width="0.2032" layer="51"/>
<wire x1="2.54" y1="-3.048" x2="2.159" y2="-3.048" width="0.2032" layer="51"/>
<wire x1="-2.54" y1="-3.048" x2="-2.159" y2="-3.048" width="0.2032" layer="51"/>
<wire x1="-2.54" y1="3.048" x2="-2.159" y2="3.048" width="0.2032" layer="51"/>
<wire x1="2.54" y1="3.048" x2="2.159" y2="3.048" width="0.2032" layer="51"/>
<wire x1="2.159" y1="3.048" x2="-2.159" y2="3.048" width="0.2032" layer="21"/>
<wire x1="-2.159" y1="-3.048" x2="2.159" y2="-3.048" width="0.2032" layer="21"/>
<wire x1="3.048" y1="0.998" x2="3.048" y2="-1.016" width="0.2032" layer="21"/>
<wire x1="-3.048" y1="1.028" x2="-3.048" y2="-1.016" width="0.2032" layer="21"/>
<wire x1="-2.54" y1="1.27" x2="-2.54" y2="0.508" width="0.2032" layer="51"/>
<wire x1="-2.54" y1="-0.508" x2="-2.54" y2="-1.27" width="0.2032" layer="51"/>
<wire x1="-2.54" y1="0.508" x2="-2.159" y2="-0.381" width="0.2032" layer="51"/>
<circle x="0" y="0" radius="1.778" width="0.2032" layer="21"/>
<pad name="1" x="-3.2512" y="2.2606" drill="1.016" diameter="1.8796"/>
<pad name="2" x="3.2512" y="2.2606" drill="1.016" diameter="1.8796"/>
<pad name="3" x="-3.2512" y="-2.2606" drill="1.016" diameter="1.8796"/>
<pad name="4" x="3.2512" y="-2.2606" drill="1.016" diameter="1.8796"/>
<text x="-2.54" y="3.81" size="1.27" layer="25" ratio="10">>NAME</text>
</package>
</packages>
</library>
<library name="eBay parts">
<packages>
<package name="NRF24L01">
<description>Footprint for the NRF24L01+ module from eBay</description>
<wire x1="-1.27" y1="-1.27" x2="-1.27" y2="1.27" width="0.127" layer="21"/>
<wire x1="-1.27" y1="1.27" x2="-1.27" y2="27.559" width="0.127" layer="21"/>
<wire x1="-1.27" y1="-1.27" x2="1.27" y2="-1.27" width="0.127" layer="21"/>
<pad name="GND" x="0" y="0" drill="0.8" diameter="1.778" shape="square"/>
<pad name="3.3V" x="0" y="2.54" drill="0.8" diameter="1.778"/>
<pad name="CE" x="2.54" y="0" drill="0.8" diameter="1.778"/>
<pad name="CSN" x="2.54" y="2.54" drill="0.8" diameter="1.778"/>
<pad name="SCK" x="5.08" y="0" drill="0.8" diameter="1.778"/>
<pad name="MOSI" x="5.08" y="2.54" drill="0.8" diameter="1.778"/>
<pad name="MISO" x="7.62" y="0" drill="0.8" diameter="1.778"/>
<pad name="IRQ" x="7.62" y="2.54" drill="0.8" diameter="1.778"/>
<wire x1="1.27" y1="-1.27" x2="13.97" y2="-1.27" width="0.127" layer="21"/>
<wire x1="13.97" y1="-1.27" x2="13.97" y2="27.559" width="0.127" layer="21"/>
<wire x1="-1.27" y1="27.559" x2="13.97" y2="27.559" width="0.127" layer="21"/>
<rectangle x1="-1.27" y1="17.399" x2="13.97" y2="27.559" layer="40"/>
<rectangle x1="-1.27" y1="17.399" x2="13.97" y2="27.559" layer="39"/>
<text x="11.43" y="1.27" size="1.27" layer="25" rot="R90">NRF24L01+</text>
<wire x1="-1.27" y1="1.27" x2="1.27" y2="1.27" width="0.127" layer="21"/>
<wire x1="1.27" y1="1.27" x2="1.27" y2="-1.27" width="0.127" layer="21"/>
</package>
</packages>
</library>
<library name="pad">
<packages>
<package name="SMD1,27-2,54">
<description>SMD PAD</description>
<smd name="1" x="0" y="0" dx="1.27" dy="0.635" layer="1" roundness="25"/>
<text x="0" y="0" size="0.0254" layer="27">>VALUE</text>
<text x="-0.8" y="-2.4" size="1.27" layer="25" rot="R90">>NAME</text>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="default">
<description language="de">EAGLE Design Rules

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

The default Design Rules have been set to cover
a wide range of applications. Your particular design
may have different requirements, so please make the
necessary adjustments and save your customized
design rules under a new name.</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm"/>
<param name="mtIsolate" value="1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm"/>
<param name="mdWireWire" value="8mil"/>
<param name="mdWirePad" value="8mil"/>
<param name="mdWireVia" value="8mil"/>
<param name="mdPadPad" value="8mil"/>
<param name="mdPadVia" value="8mil"/>
<param name="mdViaVia" value="8mil"/>
<param name="mdSmdPad" value="8mil"/>
<param name="mdSmdVia" value="8mil"/>
<param name="mdSmdSmd" value="8mil"/>
<param name="mdViaViaSameLayer" value="8mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="40mil"/>
<param name="mdDrill" value="8mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="10mil"/>
<param name="msDrill" value="24mil"/>
<param name="msMicroVia" value="9.99mm"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0.25"/>
<param name="rvPadInner" value="0.25"/>
<param name="rvPadBottom" value="0.25"/>
<param name="rvViaOuter" value="0.25"/>
<param name="rvViaInner" value="0.25"/>
<param name="rvMicroViaOuter" value="0.25"/>
<param name="rvMicroViaInner" value="0.25"/>
<param name="rlMinPadTop" value="10mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="10mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="10mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="8mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="8mil"/>
<param name="rlMaxViaInner" value="20mil"/>
<param name="rlMinMicroViaOuter" value="4mil"/>
<param name="rlMaxMicroViaOuter" value="20mil"/>
<param name="rlMinMicroViaInner" value="4mil"/>
<param name="rlMaxMicroViaInner" value="20mil"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="4mil"/>
<param name="mlMaxStopFrame" value="4mil"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0mil"/>
<param name="mlViaStopLimit" value="0mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="10mil"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkGrid" value="0"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="50mil"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="|"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="-"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="IC2" library="stm32f030x" package="TSSOP-20" value="STM32F030F4P6" x="19.304" y="9.779" rot="MR0"/>
<element name="R1" library="RC.v2" package="0402" value="680" x="16.002" y="5.08" rot="MR0"/>
<element name="C1" library="RC.v2" package="0402" value="47n" x="23.622" y="7.493" rot="MR0"/>
<element name="IC1" library="XC6206" package="XC6206_SOT-23" value="XC6206-3.3" x="12.192" y="9.779" rot="MR270"/>
<element name="Q1" library="resonator" package="FA-20H" value="16 MHz" x="22.098" y="4.572" rot="MR180"/>
<element name="D1" library="led" package="LED-0603" value="RED" x="13.97" y="5.08" rot="MR270">
<attribute name="PROD_ID" value="DIO-00819" x="13.97" y="5.08" size="1.778" layer="28" rot="MR270" display="off"/>
</element>
<element name="JP1" library="SparkFun-Connectors" package="1X03" value="" x="33.02" y="15.24" rot="R270"/>
<element name="JP2" library="SparkFun-Connectors" package="2X3_POGO" value="" x="38.1" y="10.16" rot="R90">
<attribute name="PROD_ID" value="HW-11044" x="38.1" y="10.16" size="1.778" layer="27" rot="R90" display="off"/>
</element>
<element name="S1" library="SparkFun-Electromechanical" package="TACTILE-PTH" value="Bind" x="35.433" y="4.826"/>
<element name="U$1" library="eBay parts" package="NRF24L01" value="NRF24L01" x="29.591" y="2.54" rot="R90"/>
<element name="C2" library="RC.v2" package="0805" value="4.7u" x="12.192" y="14.478" rot="MR0"/>
<element name="C3" library="RC.v2" package="0805" value="4.7u" x="12.192" y="12.446" rot="MR0"/>
<element name="C4" library="RC.v2" package="0805" value="4.7u" x="12.192" y="6.858" rot="MR180"/>
<element name="R2" library="RC.v2" package="0402" value="1k" x="23.622" y="6.604" rot="MR0"/>
<element name="C5" library="RC.v2" package="0402" value="0.1u" x="19.304" y="13.97" rot="MR180"/>
<element name="C6" library="RC.v2" package="0402" value="0.1u" x="19.558" y="5.334" rot="MR90"/>
<element name="PAD1" library="pad" package="SMD1,27-2,54" value="" x="22.86" y="14.097" rot="MR90"/>
<element name="PAD2" library="pad" package="SMD1,27-2,54" value="" x="21.717" y="14.097" rot="MR90"/>
<element name="R3" library="RC.v2" package="0603" value="0r" x="18.288" y="3.429" rot="MR270"/>
</elements>
<signals>
<signal name="N$1">
<contactref element="JP2" pad="P$2"/>
<contactref element="IC1" pad="3"/>
<contactref element="C2" pad="P$2"/>
<contactref element="C3" pad="P$2"/>
<contactref element="JP2" pad="P$4"/>
<contactref element="JP2" pad="P$6"/>
<wire x1="35.56" y1="10.16" x2="35.56" y2="12.7" width="0.8128" layer="16"/>
<wire x1="35.56" y1="12.7" x2="35.56" y2="15.24" width="0.8128" layer="16"/>
<wire x1="11.242" y1="14.478" x2="11.242" y2="12.446" width="0.3048" layer="16"/>
<wire x1="11.242" y1="12.446" x2="11.242" y2="11.496" width="0.3048" layer="16"/>
<wire x1="11.242" y1="11.496" x2="11.006" y2="10.371" width="0.3048" layer="16"/>
<wire x1="11.006" y1="10.371" x2="11.006" y2="9.779" width="0.3048" layer="16"/>
<wire x1="11.242" y1="14.478" x2="11.242" y2="15.383" width="0.3048" layer="16"/>
<wire x1="11.242" y1="15.383" x2="12.242" y2="16.383" width="0.3048" layer="16" curve="-90"/>
<wire x1="12.242" y1="16.383" x2="31.877" y2="16.383" width="0.3048" layer="16"/>
<wire x1="31.877" y1="16.383" x2="32.258" y2="16.51" width="0.3048" layer="16"/>
<wire x1="32.258" y1="16.51" x2="33.8757875" y2="16.51" width="0.3048" layer="16"/>
<wire x1="33.8757875" y1="16.51" x2="34.58289375" y2="16.21710625" width="0.3048" layer="16" curve="-45"/>
<wire x1="34.58289375" y1="16.21710625" x2="35.56" y2="15.24" width="0.3048" layer="16"/>
</signal>
<signal name="GND">
<contactref element="C3" pad="P$1"/>
<contactref element="C2" pad="P$1"/>
<contactref element="JP2" pad="P$3"/>
<contactref element="JP2" pad="P$1"/>
<contactref element="JP2" pad="P$5"/>
<contactref element="IC1" pad="1"/>
<contactref element="C4" pad="P$1"/>
<contactref element="U$1" pad="GND"/>
<contactref element="Q1" pad="2"/>
<contactref element="Q1" pad="4"/>
<contactref element="R2" pad="P$1"/>
<contactref element="C1" pad="P$1"/>
<contactref element="IC2" pad="15"/>
<contactref element="C5" pad="P$1"/>
<contactref element="C6" pad="P$1"/>
<contactref element="S1" pad="3"/>
<contactref element="D1" pad="C"/>
<contactref element="S1" pad="4"/>
<polygon width="0.254" layer="16" spacing="0.508" pour="hatch">
<vertex x="10.541" y="16.764"/>
<vertex x="39.624" y="16.764"/>
<vertex x="39.624" y="1.016"/>
<vertex x="10.541" y="1.016"/>
</polygon>
<wire x1="18.979" y1="12.6968" x2="18.979" y2="13.406" width="0.254" layer="16"/>
<wire x1="18.979" y1="13.406" x2="18.844" y2="13.541" width="0.254" layer="16"/>
<wire x1="18.844" y1="13.541" x2="18.844" y2="13.97" width="0.254" layer="16"/>
</signal>
<signal name="3V3">
<contactref element="IC1" pad="2"/>
<contactref element="C4" pad="P$2"/>
<contactref element="U$1" pad="3.3V"/>
<wire x1="13.087565625" y1="15.748" x2="18.3817875" y2="15.748" width="0.3048" layer="16"/>
<wire x1="18.3817875" y1="15.748" x2="19.08889375" y2="15.45510625" width="0.3048" layer="16" curve="-45"/>
<wire x1="19.08889375" y1="15.45510625" x2="19.764" y2="14.78" width="0.3048" layer="16"/>
<wire x1="12.087565625" y1="8.829" x2="12.087565625" y2="14.748" width="0.3048" layer="16"/>
<wire x1="12.087565625" y1="14.748" x2="13.087565625" y2="15.748" width="0.3048" layer="16" curve="-90"/>
<wire x1="13.353" y1="8.829" x2="13.353" y2="8.273" width="0.3048" layer="16"/>
<wire x1="13.353" y1="8.273" x2="13.142" y2="7.681" width="0.3048" layer="16"/>
<wire x1="13.142" y1="7.681" x2="13.142" y2="6.858" width="0.3048" layer="16"/>
<wire x1="27.051" y1="2.54" x2="26.543" y2="2.032" width="0.3048" layer="16"/>
<wire x1="26.543" y1="2.032" x2="18.288" y2="2.032" width="0.3048" layer="16"/>
<wire x1="10.57989375" y1="3.00910625" x2="11.26410625" y2="2.32489375" width="0.3048" layer="16"/>
<wire x1="11.26410625" y1="2.32489375" x2="11.9712125" y2="2.032" width="0.3048" layer="16" curve="45"/>
<wire x1="11.9712125" y1="2.032" x2="18.288" y2="2.032" width="0.3048" layer="16"/>
<wire x1="10.287" y1="7.829" x2="10.287" y2="3.7162125" width="0.3048" layer="16"/>
<wire x1="10.287" y1="3.7162125" x2="10.57989375" y2="3.00910625" width="0.3048" layer="16" curve="45"/>
<wire x1="12.087565625" y1="8.829" x2="11.287" y2="8.829" width="0.3048" layer="16"/>
<wire x1="11.287" y1="8.829" x2="10.287" y2="7.829" width="0.3048" layer="16" curve="90"/>
<wire x1="13.353" y1="8.829" x2="12.087565625" y2="8.829" width="0.3048" layer="16"/>
<contactref element="IC2" pad="16"/>
<contactref element="C5" pad="P$2"/>
<wire x1="19.629" y1="12.6968" x2="19.629" y2="13.406" width="0.254" layer="16"/>
<wire x1="19.629" y1="13.406" x2="19.764" y2="13.541" width="0.254" layer="16"/>
<wire x1="19.764" y1="13.541" x2="19.764" y2="13.97" width="0.254" layer="16"/>
<contactref element="R3" pad="P$2"/>
<wire x1="19.764" y1="14.78" x2="19.764" y2="13.97" width="0.254" layer="16"/>
<wire x1="18.288" y1="2.694" x2="18.288" y2="2.032" width="0.3048" layer="16"/>
</signal>
<signal name="N$4">
<contactref element="IC2" pad="11"/>
<contactref element="U$1" pad="SCK"/>
<wire x1="16.379" y1="12.6968" x2="16.379" y2="12.2292125" width="0.254" layer="16"/>
<wire x1="16.379" y1="12.2292125" x2="16.67189375" y2="11.52210625" width="0.254" layer="16" curve="45"/>
<wire x1="16.67189375" y1="11.52210625" x2="17.61410625" y2="10.57989375" width="0.254" layer="16"/>
<wire x1="17.61410625" y1="10.57989375" x2="18.3212125" y2="10.287" width="0.254" layer="16" curve="45"/>
<wire x1="18.3212125" y1="10.287" x2="24.6047875" y2="10.287" width="0.254" layer="16"/>
<wire x1="24.6047875" y1="10.287" x2="25.31189375" y2="9.99410625" width="0.254" layer="16" curve="-45"/>
<wire x1="25.31189375" y1="9.99410625" x2="26.12310625" y2="9.18289375" width="0.254" layer="16"/>
<wire x1="26.12310625" y1="9.18289375" x2="26.8302125" y2="8.89" width="0.254" layer="16" curve="45"/>
<wire x1="26.8302125" y1="8.89" x2="27.9067875" y2="8.89" width="0.254" layer="16"/>
<wire x1="27.9067875" y1="8.89" x2="28.61389375" y2="8.59710625" width="0.254" layer="16" curve="-45"/>
<wire x1="28.61389375" y1="8.59710625" x2="29.591" y2="7.62" width="0.254" layer="16"/>
</signal>
<signal name="N$5">
<contactref element="IC2" pad="12"/>
<contactref element="U$1" pad="MISO"/>
<wire x1="17.029" y1="12.6968" x2="17.029" y2="12.3412125" width="0.254" layer="16"/>
<wire x1="17.029" y1="12.3412125" x2="17.32189375" y2="11.63410625" width="0.254" layer="16" curve="45"/>
<wire x1="17.32189375" y1="11.63410625" x2="17.86810625" y2="11.08789375" width="0.254" layer="16"/>
<wire x1="17.86810625" y1="11.08789375" x2="18.5752125" y2="10.795" width="0.254" layer="16" curve="45"/>
<wire x1="18.5752125" y1="10.795" x2="25.2397875" y2="10.795" width="0.254" layer="16"/>
<wire x1="25.2397875" y1="10.795" x2="25.94689375" y2="11.08789375" width="0.254" layer="16" curve="45"/>
<wire x1="25.94689375" y1="11.08789375" x2="26.12310625" y2="11.26410625" width="0.254" layer="16"/>
<wire x1="26.12310625" y1="11.26410625" x2="26.8302125" y2="11.557" width="0.254" layer="16" curve="-45"/>
<wire x1="26.8302125" y1="11.557" x2="27.7797875" y2="11.557" width="0.254" layer="16"/>
<wire x1="27.7797875" y1="11.557" x2="28.48689375" y2="11.26410625" width="0.254" layer="16" curve="-45"/>
<wire x1="28.48689375" y1="11.26410625" x2="29.591" y2="10.16" width="0.254" layer="16"/>
</signal>
<signal name="N$6">
<contactref element="IC2" pad="13"/>
<contactref element="U$1" pad="MOSI"/>
<wire x1="17.679" y1="12.6968" x2="17.679" y2="13.081" width="0.254" layer="16"/>
<wire x1="17.679" y1="13.081" x2="17.044" y2="13.716" width="0.254" layer="16" curve="90"/>
<wire x1="17.044" y1="13.716" x2="16.383" y2="13.716" width="0.254" layer="16"/>
<wire x1="16.383" y1="13.716" x2="15.748" y2="13.081" width="0.254" layer="16" curve="90"/>
<wire x1="15.748" y1="13.081" x2="15.748" y2="12.0982125" width="0.254" layer="16"/>
<wire x1="15.748" y1="12.0982125" x2="16.04089375" y2="11.39110625" width="0.254" layer="16" curve="45"/>
<wire x1="16.04089375" y1="11.39110625" x2="17.36010625" y2="10.07189375" width="0.254" layer="16"/>
<wire x1="17.36010625" y1="10.07189375" x2="18.0672125" y2="9.779" width="0.254" layer="16" curve="45"/>
<wire x1="18.0672125" y1="9.779" x2="24.3507875" y2="9.779" width="0.254" layer="16"/>
<wire x1="24.3507875" y1="9.779" x2="25.05789375" y2="9.48610625" width="0.254" layer="16" curve="-45"/>
<wire x1="25.05789375" y1="9.48610625" x2="26.924" y2="7.62" width="0.254" layer="16"/>
<wire x1="26.924" y1="7.62" x2="27.051" y2="7.62" width="0.254" layer="16"/>
</signal>
<signal name="N$7">
<contactref element="JP1" pad="1"/>
<contactref element="IC2" pad="17"/>
<wire x1="20.279" y1="12.6968" x2="20.279" y2="13.1624875" width="0.254" layer="16"/>
<wire x1="20.279" y1="13.1624875" x2="20.37199375" y2="13.38699375" width="0.254" layer="16" curve="-45"/>
<wire x1="20.37199375" y1="13.38699375" x2="20.456025" y2="13.471025" width="0.254" layer="16"/>
<wire x1="20.456025" y1="13.471025" x2="20.828" y2="14.36905" width="0.254" layer="16" curve="45"/>
<wire x1="20.828" y1="14.36905" x2="20.828" y2="15.04763125" width="0.254" layer="16"/>
<wire x1="20.828" y1="15.04763125" x2="20.964025" y2="15.376025" width="0.254" layer="16" curve="-45"/>
<wire x1="20.964025" y1="15.376025" x2="21.86205" y2="15.748" width="0.254" layer="16" curve="-45"/>
<wire x1="21.86205" y1="15.748" x2="22.84195" y2="15.748" width="0.254" layer="16"/>
<wire x1="22.84195" y1="15.748" x2="23.739975" y2="15.376025" width="0.254" layer="16" curve="-45"/>
<wire x1="23.739975" y1="15.376025" x2="25.48810625" y2="13.62789375" width="0.254" layer="16"/>
<wire x1="25.48810625" y1="13.62789375" x2="26.1952125" y2="13.335" width="0.254" layer="16" curve="45"/>
<wire x1="26.1952125" y1="13.335" x2="30.7007875" y2="13.335" width="0.254" layer="16"/>
<wire x1="30.7007875" y1="13.335" x2="31.40789375" y2="13.62789375" width="0.254" layer="16" curve="45"/>
<wire x1="31.40789375" y1="13.62789375" x2="33.02" y2="15.24" width="0.254" layer="16"/>
</signal>
<signal name="N$8">
<contactref element="JP1" pad="2"/>
<contactref element="IC2" pad="18"/>
<wire x1="20.929" y1="12.6968" x2="20.929" y2="12.065" width="0.254" layer="16"/>
<wire x1="20.929" y1="12.065" x2="21.183" y2="11.811" width="0.254" layer="16" curve="90"/>
<wire x1="21.183" y1="11.811" x2="24.4777875" y2="11.811" width="0.254" layer="16"/>
<wire x1="24.4777875" y1="11.811" x2="25.18489375" y2="12.10389375" width="0.254" layer="16" curve="45"/>
<wire x1="25.18489375" y1="12.10389375" x2="25.48810625" y2="12.40710625" width="0.254" layer="16"/>
<wire x1="25.48810625" y1="12.40710625" x2="26.1952125" y2="12.7" width="0.254" layer="16" curve="-45"/>
<wire x1="26.1952125" y1="12.7" x2="33.02" y2="12.7" width="0.254" layer="16"/>
</signal>
<signal name="N$9">
<contactref element="JP1" pad="3"/>
<contactref element="IC2" pad="14"/>
<wire x1="18.329" y1="12.6968" x2="18.329" y2="12.303" width="0.254" layer="16"/>
<wire x1="18.329" y1="12.303" x2="19.329" y2="11.303" width="0.254" layer="16" curve="90"/>
<wire x1="19.329" y1="11.303" x2="24.8587875" y2="11.303" width="0.254" layer="16"/>
<wire x1="24.8587875" y1="11.303" x2="25.56589375" y2="11.59589375" width="0.254" layer="16" curve="45"/>
<wire x1="25.56589375" y1="11.59589375" x2="25.74210625" y2="11.77210625" width="0.254" layer="16"/>
<wire x1="25.74210625" y1="11.77210625" x2="26.4492125" y2="12.065" width="0.254" layer="16" curve="-45"/>
<wire x1="26.4492125" y1="12.065" x2="30.7007875" y2="12.065" width="0.254" layer="16"/>
<wire x1="30.7007875" y1="12.065" x2="31.40789375" y2="11.77210625" width="0.254" layer="16" curve="-45"/>
<wire x1="31.40789375" y1="11.77210625" x2="33.02" y2="10.16" width="0.254" layer="16"/>
</signal>
<signal name="N$10">
<contactref element="IC2" pad="2"/>
<contactref element="Q1" pad="3"/>
<wire x1="21.579" y1="6.8612" x2="21.579" y2="6.3655125" width="0.254" layer="16"/>
<wire x1="21.579" y1="6.3655125" x2="21.67199375" y2="6.14100625" width="0.254" layer="16" curve="45"/>
<wire x1="21.67199375" y1="6.14100625" x2="21.87800625" y2="5.93499375" width="0.254" layer="16"/>
<wire x1="21.87800625" y1="5.93499375" x2="21.971" y2="5.7104875" width="0.254" layer="16" curve="-45"/>
<wire x1="21.971" y1="5.7104875" x2="21.971" y2="5.4942125" width="0.254" layer="16"/>
<wire x1="21.971" y1="5.4942125" x2="22.26389375" y2="4.78710625" width="0.254" layer="16" curve="45"/>
<wire x1="22.26389375" y1="4.78710625" x2="23.368" y2="3.683" width="0.254" layer="16"/>
</signal>
<signal name="N$11">
<contactref element="IC2" pad="3"/>
<contactref element="Q1" pad="1"/>
<wire x1="20.929" y1="6.8612" x2="20.929" y2="5.562" width="0.254" layer="16"/>
<wire x1="20.929" y1="5.562" x2="20.828" y2="5.461" width="0.254" layer="16"/>
</signal>
<signal name="N$13">
<contactref element="IC2" pad="1"/>
<contactref element="R2" pad="P$2"/>
<wire x1="22.229" y1="6.8612" x2="22.229" y2="6.604" width="0.254" layer="16"/>
<wire x1="22.229" y1="6.604" x2="23.162" y2="6.604" width="0.254" layer="16"/>
</signal>
<signal name="N$12">
<contactref element="C1" pad="P$2"/>
<contactref element="IC2" pad="4"/>
<wire x1="20.279" y1="6.8612" x2="20.279" y2="7.493" width="0.254" layer="16"/>
<wire x1="20.279" y1="7.493" x2="20.533" y2="7.747" width="0.254" layer="16" curve="-90"/>
<wire x1="20.533" y1="7.747" x2="22.373790625" y2="7.747" width="0.254" layer="16"/>
<wire x1="22.373790625" y1="7.747" x2="22.55339375" y2="7.67260625" width="0.254" layer="16" curve="-44.999502"/>
<wire x1="22.55339375" y1="7.67260625" x2="22.65860625" y2="7.56739375" width="0.254" layer="16"/>
<wire x1="22.65860625" y1="7.56739375" x2="22.838209375" y2="7.493" width="0.254" layer="16" curve="44.999295"/>
<wire x1="22.838209375" y1="7.493" x2="23.162" y2="7.493" width="0.254" layer="16"/>
</signal>
<signal name="N$2">
<contactref element="D1" pad="A"/>
<contactref element="R1" pad="P$2"/>
<wire x1="14.747" y1="5.08" x2="15.542" y2="5.08" width="0.254" layer="16"/>
</signal>
<signal name="N$14">
<contactref element="R1" pad="P$1"/>
<contactref element="IC2" pad="9"/>
<wire x1="17.029" y1="6.8612" x2="17.029" y2="5.334" width="0.254" layer="16"/>
<wire x1="17.029" y1="5.334" x2="16.775" y2="5.08" width="0.254" layer="16" curve="-90"/>
<wire x1="16.775" y1="5.08" x2="16.462" y2="5.08" width="0.254" layer="16"/>
</signal>
<signal name="N$3">
<contactref element="IC2" pad="20"/>
<contactref element="PAD1" pad="1"/>
<wire x1="22.229" y1="12.6968" x2="22.5425" y2="12.6968" width="0.254" layer="16"/>
<wire x1="22.5425" y1="12.6968" x2="22.86" y2="13.0143" width="0.254" layer="16" curve="90"/>
<wire x1="22.86" y1="13.0143" x2="22.86" y2="14.097" width="0.254" layer="16"/>
</signal>
<signal name="N$15">
<contactref element="IC2" pad="19"/>
<contactref element="PAD2" pad="1"/>
<wire x1="21.579" y1="12.6968" x2="21.579" y2="13.959" width="0.254" layer="16"/>
<wire x1="21.579" y1="13.959" x2="21.717" y2="14.097" width="0.254" layer="16"/>
</signal>
<signal name="N$16">
<contactref element="U$1" pad="CE"/>
<contactref element="IC2" pad="7"/>
<wire x1="18.329" y1="6.8612" x2="18.329" y2="8.001" width="0.254" layer="16"/>
<wire x1="18.329" y1="8.001" x2="19.599" y2="9.271" width="0.254" layer="16" curve="-90"/>
<wire x1="19.599" y1="9.271" x2="24.0967875" y2="9.271" width="0.254" layer="16"/>
<wire x1="24.0967875" y1="9.271" x2="24.80389375" y2="8.97810625" width="0.254" layer="16" curve="-45"/>
<wire x1="24.80389375" y1="8.97810625" x2="25.48810625" y2="8.29389375" width="0.254" layer="16"/>
<wire x1="25.48810625" y1="8.29389375" x2="25.781" y2="7.5867875" width="0.254" layer="16" curve="-45"/>
<wire x1="25.781" y1="7.5867875" x2="25.781" y2="7.5262125" width="0.254" layer="16"/>
<wire x1="25.781" y1="7.5262125" x2="26.07389375" y2="6.81910625" width="0.254" layer="16" curve="45"/>
<wire x1="26.07389375" y1="6.81910625" x2="26.25010625" y2="6.64289375" width="0.254" layer="16"/>
<wire x1="26.25010625" y1="6.64289375" x2="26.9572125" y2="6.35" width="0.254" layer="16" curve="45"/>
<wire x1="26.9572125" y1="6.35" x2="27.9067875" y2="6.35" width="0.254" layer="16"/>
<wire x1="27.9067875" y1="6.35" x2="28.61389375" y2="6.05710625" width="0.254" layer="16" curve="-45"/>
<wire x1="28.61389375" y1="6.05710625" x2="29.591" y2="5.08" width="0.254" layer="16"/>
</signal>
<signal name="N$17">
<contactref element="U$1" pad="CSN"/>
<contactref element="IC2" pad="6"/>
<wire x1="18.979" y1="6.8612" x2="18.979" y2="7.763" width="0.254" layer="16"/>
<wire x1="18.979" y1="7.763" x2="19.979" y2="8.763" width="0.254" layer="16" curve="-90"/>
<wire x1="19.979" y1="8.763" x2="23.8427875" y2="8.763" width="0.254" layer="16"/>
<wire x1="23.8427875" y1="8.763" x2="24.54989375" y2="8.47010625" width="0.254" layer="16" curve="-45"/>
<wire x1="24.54989375" y1="8.47010625" x2="24.98010625" y2="8.03989375" width="0.254" layer="16"/>
<wire x1="24.98010625" y1="8.03989375" x2="25.273" y2="7.3327875" width="0.254" layer="16" curve="-45"/>
<wire x1="25.273" y1="7.3327875" x2="25.273" y2="7.2722125" width="0.254" layer="16"/>
<wire x1="25.273" y1="7.2722125" x2="25.56589375" y2="6.56510625" width="0.254" layer="16" curve="45"/>
<wire x1="25.56589375" y1="6.56510625" x2="27.051" y2="5.08" width="0.254" layer="16"/>
</signal>
<signal name="N$18">
<contactref element="U$1" pad="IRQ"/>
<contactref element="IC2" pad="8"/>
<via x="15.367" y="9.271" extent="1-16" drill="0.4064" diameter="1.27"/>
<wire x1="15.367" y1="9.271" x2="26.035" y2="9.144" width="0.254" layer="1"/>
<wire x1="26.035" y1="9.144" x2="27.051" y2="10.16" width="0.254" layer="1"/>
<wire x1="17.679" y1="6.8612" x2="17.679" y2="8.001" width="0.254" layer="16"/>
<wire x1="17.679" y1="8.001" x2="16.409" y2="9.271" width="0.254" layer="16" curve="90"/>
<wire x1="16.409" y1="9.271" x2="15.367" y2="9.271" width="0.254" layer="16"/>
</signal>
<signal name="N$19">
<contactref element="IC2" pad="10"/>
<contactref element="S1" pad="1"/>
<wire x1="16.379" y1="6.8612" x2="15.3702" y2="6.8612" width="0.254" layer="16"/>
<wire x1="15.3702" y1="6.8612" x2="15.367" y2="6.858" width="0.254" layer="16"/>
<via x="15.367" y="6.858" extent="1-16" drill="0.4064" diameter="1.27"/>
<wire x1="15.367" y1="6.858" x2="25.781" y2="6.858" width="0.254" layer="1"/>
<wire x1="25.781" y1="6.858" x2="26.289" y2="6.35" width="0.254" layer="1"/>
<wire x1="26.289" y1="6.35" x2="31.4452" y2="6.35" width="0.254" layer="1"/>
<wire x1="31.4452" y1="6.35" x2="32.1818" y2="7.0866" width="0.254" layer="1"/>
</signal>
<signal name="3V3-1">
<contactref element="IC2" pad="5"/>
<contactref element="C6" pad="P$2"/>
<contactref element="R3" pad="P$1"/>
<wire x1="19.629" y1="6.8612" x2="19.629" y2="5.865" width="0.254" layer="16"/>
<wire x1="19.629" y1="5.865" x2="19.558" y2="5.794" width="0.254" layer="16"/>
<wire x1="19.558" y1="5.794" x2="18.923" y2="5.794" width="0.254" layer="16"/>
<wire x1="18.923" y1="5.794" x2="18.288" y2="5.159" width="0.254" layer="16" curve="90"/>
<wire x1="18.288" y1="5.159" x2="18.288" y2="4.164" width="0.254" layer="16"/>
</signal>
</signals>
</board>
</drawing>
</eagle>

license: Unlicense

gha_license_id: Unlicense

extension: brd


text:
/*
Copyright 2019 - 2021 Inetum

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.
*/
using umi3d.cdk.interaction;
using umi3d.common.interaction;

namespace umi3d.cdk.menu.interaction
{
    /// <summary>
    /// <see cref="MenuItem"/> for <see cref="AbstractInteractionDto"/>
    /// </summary>
    public class InteractionMenuItem : MenuItem
    {
        /// <summary>
        /// Interaction that belongs to the menu item.
        /// </summary>
        public virtual AbstractInteractionDto interaction { get; set; }
        /// <summary>
        /// Tool id if the interaciton belongs to one.
        /// </summary>
        public virtual ulong toolId { get; set; }

        /// <summary>
        /// Is the interaction projected on a controller ?
        /// </summary>
        /// <returns></returns>
        public bool isProjected()
        {
            if ((interaction == null) || (interaction.id == 0))
                return false;

            if (!AbstractInteractionMapper.Instance.IsToolSelected(toolId))
                return false;

            AbstractController controller = AbstractInteractionMapper.Instance.GetController(toolId);
            if (controller != null)
            {
                return controller.inputs.Exists(input => (input.CurrentInteraction() != null) && input.CurrentInteraction().id.Equals(interaction.id));
            }
            else
            {
                return false;
            }
        }
    }
}


text:
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-contact',
  templateUrl: './contact.component.html',
  styleUrls: ['./contact.component.scss']
})
export class ContactComponent implements OnInit {

  contacts = {
    phones: ['+38 095 447 48 12', '+38 067 236 45 54'],
    address: 'Kyiv, Somestr Str., 228',
    mail: 'feedback@gmail.com'
  };

  constructor() { }

  ngOnInit() {}
}

repository: mbodak/lovehub-docker

repo_name: mbodak/lovehub-docker


text:
#
# base recipes: meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb
# base branch: jethro
#

SUMMARY = "Miscellaneous Mesa GL utilities"
DESCRIPTION = "This package provides several basic GL utilities built by Mesa"
HOMEPAGE = "http://mesa3d.org/"

inherit debian-package
PV = "8.2.0"

LICENSE = "MIT-style & PD & LGPLv2+"
LIC_FILES_CHKSUM = " \
    file://src/xdemos/glxinfo.c;endline=20;md5=528e51cb8d683b1271806b7dce9b28d3 \
    file://src/xdemos/glxdemo.c;beginline=3;endline=8;md5=5c753761467aa6d4fb9f067671715e3e \
    file://src/util/glstate.h;beginline=2;endline=19;md5=ca7dfb81015ae8cf1a0c9e019309571c \
"

DEBIAN_PATCH_TYPE = "quilt"

DEPENDS = "glew virtual/libgl"

inherit autotools pkgconfig

PACKAGECONFIG ??= "drm freetype2 egl gles1 gles2 x11"
PACKAGECONFIG[drm] = "--enable-libdrm,--disable-libdrm,libdrm"
PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
PACKAGECONFIG[freetype2] = "--enable-freetype2,--disable-freetype2,freetype"
PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgl"
PACKAGECONFIG[gles1] = "--enable-gles1,--disable-gles1,virtual/libgles1"
PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2"
PACKAGECONFIG[glut] = "--with-glut=${STAGING_EXECPREFIXDIR},--without-glut,"
PACKAGECONFIG[osmesa] = "--enable-osmesa,--disable-osmesa,"
PACKAGECONFIG[vg] = "--enable-vg,--disable-vg,virtual/libopenvg"
PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,virtual/libgl wayland"
PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"

do_install_append() {
	ln -s es2gears_x11 ${D}${bindir}/es2gears
}

PACKAGES =+ "mesa-utils mesa-utils-extra"

FILES_mesa-utils = " \
    ${bindir}/glxdemo \
    ${bindir}/glxgears \
    ${bindir}/glxheads \
    ${bindir}/glxinfo \
"
FILES_mesa-utils-extra = "${bindir}/es2*"

repository: manut/meta-combo

repo_name: manut/meta-combo

branch_name: refs/heads/morty


text:
using System.Windows.Controls;

namespace RayCarrot.RCP.Metro
{
    /// <summary>
    /// Interaction logic for R1TPLSUtilityUI.xaml
    /// </summary>
    public partial class R1TPLSUtilityUI : UserControl
    {
        public R1TPLSUtilityUI()
        {
            InitializeComponent();
        }
    }
}


text:
#
# Copyright (c) 2016-2021 Li-Pro.Net, Stephan Linz
#

require central-image-base.bb

SUMMARY = "A product image capable of allowing an Central \
device to boot and provides full feature support."

DESCRIPTION = "A product image capable of allowing an Central \
device to boot in graphical mode and provides full feature support."

LICENSE = "MIT"
PR = "r0"

IMAGE_FEATURES += " \
    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base', '', d)} \
"

inherit central-image

repository: lipro-yocto/lpn-central

repo_name: lipro-yocto/lpn-central


text:
package command

import "strconv"

type WrongArgCountError struct {
	Min int
	Max int
}

func (WrongArgCountError) Code() int {
	return 3
}

func (e WrongArgCountError) Error() string {
	if e.Min != 0 && e.Max != 0 {
		if e.Min == e.Max {
			return "You need " + strconv.Itoa(e.Min) + " args"
		}
		return "You need between " + strconv.Itoa(e.Min) + " and " + strconv.Itoa(e.Max) + " args"
	} else if e.Min != 0 {
		return "You need min " + strconv.Itoa(e.Min) + " args"
	} else if e.Max != 0 {
		return "You need max " + strconv.Itoa(e.Max) + " args"
	}
	return "Wrong arg count"
}

repository: LeLuxNet/Shelly

repo_name: LeLuxNet/Shelly


text:
DESCRIPTION = "USB DVB driver for dib0700 chipset"
RDEPENDS_${PN} = " \
	v4l-dvb-module-dib0070 \
	v4l-dvb-module-dib0090 \
	v4l-dvb-module-dib3000mb \
	v4l-dvb-module-dib3000mc \
	v4l-dvb-module-dib7000m \
	v4l-dvb-module-dib7000p \
	v4l-dvb-module-dib8000 \
	v4l-dvb-module-dibx000-common \
	v4l-dvb-module-dvb-usb \
	v4l-dvb-module-dvb-usb-dib0700 \
	v4l-dvb-module-dvb-usb-dibusb-common \
	v4l-dvb-module-dvb-usb-dibusb-mb \
	v4l-dvb-module-dvb-usb-dibusb-mc \
	v4l-dvb-firmware \
	"

PV = "1.0"
PR = "r0"

ALLOW_EMPTY_${PN} = "1"

repository: libo/openembedded

repo_name: libo/openembedded

branch_name: HEAD