text:
// Copyright 2010 The Walk Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package walk

import (
	"os"
)

import . "walk/winapi"

type ColorMode int16

const (
	colorUnspecified ColorMode = 0
	ColorMonochrome  ColorMode = DMCOLOR_MONOCHROME
	ColorColor       ColorMode = DMCOLOR_COLOR
)

type PageOrientation int16

const (
	orientUnspecified PageOrientation = 0
	OrientPortrait    PageOrientation = DMORIENT_PORTRAIT
	OrientLandscape   PageOrientation = DMORIENT_LANDSCAPE
)

type PageMargins struct {
	Left, Top, Right, Bottom int
}

type PageInfo struct {
	printerInfo *PrinterInfo
	paperSize   *PaperSize
	paperSource *PaperSource
	resolution  *Resolution
	colorMode   ColorMode
	orientation PageOrientation
	margins     PageMargins
}

func NewPageInfo() *PageInfo {
	return &PageInfo{}
}

func (p *PageInfo) Bounds() (val Rectangle, err os.Error) {
	defer func() {
		if x := recover(); x != nil {
			err = toError(x)
		}
	}()

	hDevMode := p.printerInfo.hDevMode()
	defer GlobalFree(hDevMode)

	return p.boundsFromHDevMode(hDevMode), nil
}

func (p *PageInfo) ColorMode() (val ColorMode, err os.Error) {
	defer func() {
		if x := recover(); x != nil {
			err = toError(x)
		}
	}()

	if p.colorMode != colorUnspecified {
		return p.colorMode, nil
	}

	return ColorMode(p.printerInfo.valueFromDevMode(dmColor, 1)), nil
}

func (p *PageInfo) SetColorMode(value ColorMode) {
	p.colorMode = value
}

func (p *PageInfo) Orientation() (val PageOrientation, err os.Error) {
	defer func() {
		if x := recover(); x != nil {
			err = toError(x)
		}
	}()

	if p.orientation == orientUnspecified {
		return p.orientation, nil
	}

	return PageOrientation(p.printerInfo.valueFromDevMode(dmOrientation, DMORIENT_PORTRAIT)), nil
}

func (p *PageInfo) SetOrientation(value PageOrientation) (err os.Error) {
	orientation, err := p.Orientation()
	if err != nil {
		return
	}

	if value != orientation {
		m := p.margins

		l := m.Left
		t := m.Top
		r := m.Right
		b := m.Bottom

		if value == OrientLandscape {
			m.Left = t
			m.Top = r
			m.Right = b
			m.Bottom = l
		} else {
			m.Left = b
			m.Top = l
			m.Right = t
			m.Bottom = r
		}
	}

	p.orientation = value

	return
}

func (p *PageInfo) Margins() PageMargins {
	return p.margins
}

func (p *PageInfo) SetMargins(value PageMargins) {
	p.margins = value
}

func (p *PageInfo) PaperSize() (val *PaperSize, err os.Error) {
	defer func() {
		if x := recover(); x != nil {
			err = toError(x)
		}
	}()

	return p.paperSizeFallbackHDevMode(0), nil
}

func (p *PageInfo) SetPaperSize(value *PaperSize) {
	p.paperSize = value
}

func (p *PageInfo) PaperSource() (val *PaperSource, err os.Error) {
	defer func() {
		if x := recover(); x != nil {
			err = toError(x)
		}
	}()

	if p.paperSource != nil {
		return p.paperSource, nil
	}

	hDevMode := p.printerInfo.hDevMode()
	defer GlobalFree(hDevMode)

	devMode := (*DEVMODE)(GlobalLock(hDevMode))
	defer GlobalUnlock(hDevMode)

	return p.paperSourceFromDevMode(devMode), nil
}

func (p *PageInfo) SetPaperSource(value *PaperSource) {
	p.paperSource = value
}

func (p *PageInfo) Resolution() (val *Resolution, err os.Error) {
	defer func() {
		if x := recover(); x != nil {
			err = toError(x)
		}
	}()

	if p.resolution != nil {
		return p.resolution, nil
	}

	hDevMode := p.printerInfo.hDevMode()
	defer GlobalFree(hDevMode)

	devMode := (*DEVMODE)(GlobalLock(hDevMode))
	defer GlobalUnlock(hDevMode)

	return p.resolutionFromDevMode(devMode), nil
}

func (p *PageInfo) SetResolution(value *Resolution) {
	p.resolution = value
}

func (p *PageInfo) PrinterInfo() *PrinterInfo {
	return p.printerInfo
}

func (p *PageInfo) SetPrinterInfo(value *PrinterInfo) {
	if value == nil {
		value = NewPrinterInfo()
	}

	p.printerInfo = value
}

func (p *PageInfo) SetCustomPaperSize(name string, width, height int) {
	p.paperSize = &PaperSize{typ: PaperCustom, name: name, width: width, height: height}
}

func (p *PageInfo) SetPaperSizeFromType(typ PaperSizeType) os.Error {
	if typ == PaperCustom {
		return newError("call SetCustomPaperSize to set a custom paper size")
	}

	sizes, err := p.printerInfo.PaperSizes()
	if err != nil {
		return err
	}

	for _, size := range sizes {
		if size.typ == typ {
			p.paperSize = size
			return nil
		}
	}

	return newError("invalid paper size")
}

func (p *PageInfo) SetCustomResolution(x, y int) {
	p.resolution = &Resolution{typ: ResCustom, x: x, y: y}
}

func (p *PageInfo) SetResolutionFromType(typ ResolutionType) os.Error {
	if typ == ResCustom {
		return newError("call SetCustomResolution to set a custom resolution")
	}

	resolutions, err := p.printerInfo.Resolutions()
	if err != nil {
		return err
	}

	for _, res := range resolutions {
		if res.typ == typ {
			p.resolution = res
			return nil
		}
	}

	return newError("invalid resolution")
}

func (p *PageInfo) SetPaperSourceFromType(typ PaperSourceType) os.Error {
	sources, err := p.printerInfo.PaperSources()
	if err != nil {
		return err
	}

	for _, source := range sources {
		if source.typ == typ {
			p.paperSource = source
			return nil
		}
	}

	return newError("invalid paper source")
}

func (p *PageInfo) mergeHDevMode(hDevMode HGLOBAL) {
	devMode := (*DEVMODE)(GlobalLock(hDevMode))
	defer GlobalUnlock(hDevMode)

	if p.colorMode != colorUnspecified {
		devMode.DmColor = int16(p.colorMode)
	}

	if p.orientation != orientUnspecified {
		devMode.DmOrientation = int16(p.orientation)
	}

	if p.paperSize != nil {
		devMode.DmPaperSize = int16(p.paperSize.typ)
		devMode.DmPaperLength = int16(p.paperSize.height)
		devMode.DmPaperWidth = int16(p.paperSize.width)
	}

	if p.paperSource != nil {
		devMode.DmDefaultSource = int16(p.paperSource.typ)
	}

	if p.resolution != nil {
		if p.resolution.typ == ResCustom {
			devMode.DmPrintQuality = int16(p.resolution.x)
			devMode.DmYResolution = int16(p.resolution.y)
		} else {
			devMode.DmPrintQuality = int16(p.resolution.typ)
		}
	}
}

func (p *PageInfo) boundsFromHDevMode(hDevMode HGLOBAL) Rectangle {
	size := p.paperSizeFallbackHDevMode(hDevMode)

	if p.orientationFallbackHDevMode(hDevMode) == OrientLandscape {
		return Rectangle{Width: size.height, Height: size.width}
	}

	return Rectangle{Width: size.width, Height: size.height}
}

func (p *PageInfo) orientationFallbackHDevMode(hDevMode HGLOBAL) PageOrientation {
	if p.orientation != orientUnspecified {
		return p.orientation
	}

	return PageOrientation(p.printerInfo.valueFromHDevMode(dmOrientation, DMORIENT_PORTRAIT, hDevMode))
}

func (p *PageInfo) paperSizeFromDevMode(devMode *DEVMODE) *PaperSize {
	sizes := p.printerInfo.paperSizes()

	for _, size := range sizes {
		if int16(size.typ) == devMode.DmPaperSize {
			return size
		}
	}

	return &PaperSize{
		typ:    PaperCustom,
		name:   "Custom",
		width:  int(devMode.DmPaperWidth),
		height: int(devMode.DmPaperLength),
	}
}

func (p *PageInfo) paperSizeFallbackHDevMode(hDevMode HGLOBAL) *PaperSize {
	if p.paperSize != nil {
		return p.paperSize
	}

	if hDevMode == 0 {
		hDevMode := p.printerInfo.hDevMode()
		defer GlobalFree(hDevMode)
	}

	devMode := (*DEVMODE)(GlobalLock(hDevMode))
	defer GlobalUnlock(hDevMode)

	return p.paperSizeFromDevMode(devMode)
}

func (p *PageInfo) paperSourceFromDevMode(devMode *DEVMODE) *PaperSource {
	sources := p.printerInfo.paperSources()

	for _, source := range sources {
		if int16(source.typ) == devMode.DmDefaultSource {
			return source
		}
	}

	return &PaperSource{typ: PaperSourceType(devMode.DmDefaultSource), name: "Unknown"}
}

func (p *PageInfo) resolutionFromDevMode(devMode *DEVMODE) *Resolution {
	resolutions := p.printerInfo.resolutions()

	for _, res := range resolutions {
		if devMode.DmPrintQuality >= 0 {
			if res.x == int(devMode.DmPrintQuality) &&
				res.y == int(devMode.DmYResolution) {
				return res
			}
		}

		if int16(res.typ) == devMode.DmPrintQuality {
			return res
		}
	}

	return &Resolution{
		typ: ResCustom,
		x:   int(devMode.DmPrintQuality),
		y:   int(devMode.DmYResolution),
	}
}

func (p *PageInfo) initFromHDevMode(hDevMode HGLOBAL) (err os.Error) {
	if hDevMode == 0 {
		panic("invalid hDevMode")
	}

	devMode := (*DEVMODE)(GlobalLock(hDevMode))
	defer GlobalUnlock(hDevMode)

	p.colorMode = ColorMode(devMode.DmColor)
	p.orientation = PageOrientation(devMode.DmOrientation)
	p.paperSize = p.paperSizeFromDevMode(devMode)
	p.paperSource = p.paperSourceFromDevMode(devMode)
	p.resolution = p.resolutionFromDevMode(devMode)

	return nil
}

func (p *PageInfo) createDC() HDC {
	hDevMode := p.printerInfo.hDevMode()
	defer GlobalFree(hDevMode)

	p.mergeHDevMode(hDevMode)

	return p.printerInfo.createDCFromHDevMode(hDevMode)
}

func (p *PageInfo) resetDC(hdc HDC) {
	hDevMode := p.printerInfo.hDevMode()
	defer GlobalFree(hDevMode)

	p.mergeHDevMode(hDevMode)

	devMode := (*DEVMODE)(GlobalLock(hDevMode))
	defer GlobalUnlock(hDevMode)

	if hdcOrig := ResetDC(hdc, devMode); hdcOrig == 0 {
		panic("ResetDC failed")
	}
}

repository: wiloe/walk

repo_name: wiloe/walk


text:
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using Dapper;
using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Interfaces.Repositories;
using ErsatzTV.Infrastructure.Extensions;
using LanguageExt;
using Microsoft.EntityFrameworkCore;
using static LanguageExt.Prelude;

namespace ErsatzTV.Infrastructure.Data.Repositories
{
    public class SearchRepository : ISearchRepository
    {
        private readonly IDbConnection _dbConnection;
        private readonly IDbContextFactory<TvContext> _dbContextFactory;

        public SearchRepository(IDbContextFactory<TvContext> dbContextFactory, IDbConnection dbConnection)
        {
            _dbContextFactory = dbContextFactory;
            _dbConnection = dbConnection;
        }

        public Task<List<int>> GetItemIdsToIndex() =>
            _dbConnection.QueryAsync<int>(@"SELECT Id FROM MediaItem")
                .Map(result => result.ToList());

        public async Task<Option<MediaItem>> GetItemToIndex(int id)
        {
            await using TvContext dbContext = _dbContextFactory.CreateDbContext();
            return await dbContext.MediaItems
                .AsNoTracking()
                .Include(mi => mi.LibraryPath)
                .ThenInclude(lp => lp.Library)
                .Include(mi => (mi as Movie).MovieMetadata)
                .ThenInclude(mm => mm.Genres)
                .Include(mi => (mi as Movie).MovieMetadata)
                .ThenInclude(mm => mm.Tags)
                .Include(mi => (mi as Movie).MovieMetadata)
                .ThenInclude(mm => mm.Studios)
                .Include(mi => (mi as Movie).MovieMetadata)
                .ThenInclude(mm => mm.Actors)
                .Include(mi => (mi as Movie).MovieMetadata)
                .ThenInclude(mm => mm.Directors)
                .Include(mi => (mi as Movie).MovieMetadata)
                .ThenInclude(mm => mm.Writers)
                .Include(mi => (mi as Movie).MediaVersions)
                .ThenInclude(mm => mm.Streams)
                .Include(mi => (mi as Episode).EpisodeMetadata)
                .ThenInclude(em => em.Genres)
                .Include(mi => (mi as Episode).EpisodeMetadata)
                .ThenInclude(em => em.Tags)
                .Include(mi => (mi as Episode).EpisodeMetadata)
                .ThenInclude(em => em.Studios)
                .Include(mi => (mi as Episode).EpisodeMetadata)
                .ThenInclude(em => em.Actors)
                .Include(mi => (mi as Episode).EpisodeMetadata)
                .ThenInclude(em => em.Directors)
                .Include(mi => (mi as Episode).EpisodeMetadata)
                .ThenInclude(em => em.Writers)
                .Include(mi => (mi as Episode).EpisodeMetadata)
                .ThenInclude(em => em.Guids)
                .Include(mi => (mi as Episode).MediaVersions)
                .ThenInclude(em => em.Streams)
                .Include(mi => (mi as Episode).Season)
                .Include(mi => (mi as Season).SeasonMetadata)
                .ThenInclude(sm => sm.Genres)
                .Include(mi => (mi as Season).SeasonMetadata)
                .ThenInclude(sm => sm.Tags)
                .Include(mi => (mi as Season).SeasonMetadata)
                .ThenInclude(sm => sm.Studios)
                .Include(mi => (mi as Season).SeasonMetadata)
                .ThenInclude(sm => sm.Actors)
                .Include(mi => (mi as Season).Show)
                .ThenInclude(sm => sm.ShowMetadata)
                .Include(mi => (mi as Show).ShowMetadata)
                .ThenInclude(mm => mm.Genres)
                .Include(mi => (mi as Show).ShowMetadata)
                .ThenInclude(mm => mm.Tags)
                .Include(mi => (mi as Show).ShowMetadata)
                .ThenInclude(mm => mm.Studios)
                .Include(mi => (mi as Show).ShowMetadata)
                .ThenInclude(mm => mm.Actors)
                .Include(mi => (mi as MusicVideo).MusicVideoMetadata)
                .ThenInclude(mm => mm.Genres)
                .Include(mi => (mi as MusicVideo).MusicVideoMetadata)
                .ThenInclude(mm => mm.Tags)
                .Include(mi => (mi as MusicVideo).MusicVideoMetadata)
                .ThenInclude(mm => mm.Studios)
                .Include(mi => (mi as MusicVideo).MediaVersions)
                .ThenInclude(mm => mm.Streams)
                .Include(mi => (mi as Artist).ArtistMetadata)
                .ThenInclude(mm => mm.Genres)
                .Include(mi => (mi as Artist).ArtistMetadata)
                .ThenInclude(mm => mm.Styles)
                .Include(mi => (mi as Artist).ArtistMetadata)
                .ThenInclude(mm => mm.Moods)
                .Include(mi => mi.TraktListItems)
                .ThenInclude(tli => tli.TraktList)
                .OrderBy(mi => mi.Id)
                .SingleOrDefaultAsync(mi => mi.Id == id)
                .Map(Optional);
        }

        public Task<List<string>> GetLanguagesForShow(Show show) =>
            _dbConnection.QueryAsync<string>(
                @"SELECT DISTINCT Language
                    FROM MediaStream
                    INNER JOIN MediaVersion MV ON MediaStream.MediaVersionId = MV.Id
                    INNER JOIN Episode E ON MV.EpisodeId = E.Id
                    INNER JOIN Season S ON E.SeasonId = S.Id
                    WHERE MediaStreamKind = 2 AND S.ShowId = @ShowId",
                new { ShowId = show.Id }).Map(result => result.ToList());

        public Task<List<string>> GetLanguagesForSeason(Season season) =>
            _dbConnection.QueryAsync<string>(
                @"SELECT DISTINCT Language
                    FROM MediaStream
                    INNER JOIN MediaVersion MV ON MediaStream.MediaVersionId = MV.Id
                    INNER JOIN Episode E ON MV.EpisodeId = E.Id
                    WHERE MediaStreamKind = 2 AND E.SeasonId = @SeasonId",
                new { SeasonId = season.Id }).Map(result => result.ToList());

        public Task<List<string>> GetLanguagesForArtist(Artist artist) =>
            _dbConnection.QueryAsync<string>(
                @"SELECT DISTINCT Language
                    FROM MediaStream
                    INNER JOIN MediaVersion V ON MediaStream.MediaVersionId = V.Id
                    INNER JOIN MusicVideo MV ON V.MusicVideoId = MV.Id
                    INNER JOIN Artist A on MV.ArtistId = A.Id
                    WHERE MediaStreamKind = 2 AND A.Id = @ArtistId",
                new { ArtistId = artist.Id }).Map(result => result.ToList());

        public async Task<List<string>> GetAllLanguageCodes(List<string> mediaCodes)
        {
            await using TvContext dbContext = _dbContextFactory.CreateDbContext();
            return await dbContext.LanguageCodes.GetAllLanguageCodes(mediaCodes);
        }
    }
}

license: Zlib

repository: Long-Man/ErsatzTV

license_type: permissive

repo_name: Long-Man/ErsatzTV

branch_name: refs/heads/main

gha_license_id: Zlib

extension: cs


text:
SUMMARY = "This is the web application launcher for the Luna Next webOS UI platform."
LICENSE = "GPL-3.0 & Apache-2.0"
LIC_FILES_CHKSUM = " \
    file://COPYING;md5=0f93d2cf04b94ac3f04a789a1fb11ead \
    file://COPYING-Apache-2.0;md5=3b83ef96387f14655fc854ddc3c6bd57 \
"

DEPENDS = "qtbase qtdeclarative qtwebkit luna-sysmgr-common libwebos-application"
RDEPENDS_${PN} += " \
    qtdeclarative-qmlplugins \
    qtwebkit-qmlplugins \
    libconnman-qt \
"

WEBOS_VERSION = "0.1.0-33_b3660ff2439274e3d68d48ddbd2b000502b46afe"

inherit webos_component
inherit webos_public_repo
inherit webos_enhanced_submissions
inherit webos_system_bus

SRC_URI = "git://github.com/webOS-ports/${PN};protocol=git;branch=master"

# only for builds with oe-core/master with systemd-210+
SRC_URI += "\
    file://0003-CMakeLists-check-only-for-libsystemd-pkg.patch \
"

S = "${WORKDIR}/git"

# We need to warrant the correct order for the following two inherits as webos_cmake is
# setting the build dir to be outside of the source dir which is overriden by cmake_qt5
# again if we inherit it afterwards.
inherit cmake_qt5
inherit webos_cmake

FILES_${PN} += "${webos_frameworksdir}"

license: MIT

repository: nizovn/meta-webos-ports

repo_name: nizovn/meta-webos-ports

branch_name: refs/heads/master

extension: bb


text:
package openapi

import (
	"github.com/emicklei/go-restful/v3"
	"k8s.io/kube-openapi/pkg/builder"
	"k8s.io/kube-openapi/pkg/common"
	"k8s.io/kube-openapi/pkg/common/restfuladapter"
	k8sspec "k8s.io/kube-openapi/pkg/validation/spec"
)

// code stolen/adapted from https://github.com/kubevirt/kubevirt/blob/main/pkg/util/openapi/openapi.go

func createConfig(getDefinitions common.GetOpenAPIDefinitions) *common.Config {
	return &common.Config{
		CommonResponses: map[int]k8sspec.Response{
			401: {
				ResponseProps: k8sspec.ResponseProps{
					Description: "Unauthorized",
				},
			},
		},
		Info: &k8sspec.Info{
			InfoProps: k8sspec.InfoProps{
				Title:       "KubeVirt Containerized Data Importer API",
				Description: "Containerized Data Importer for KubeVirt.",
				Contact: &k8sspec.ContactInfo{
					Name:  "kubevirt-dev",
					Email: "kubevirt-dev@googlegroups.com",
					URL:   "https://github.com/kubevirt/containerized-data-importer",
				},
				License: &k8sspec.License{
					Name: "Apache 2.0",
					URL:  "https://www.apache.org/licenses/LICENSE-2.0",
				},
			},
		},
		SecurityDefinitions: &k8sspec.SecurityDefinitions{
			"BearerToken": &k8sspec.SecurityScheme{
				SecuritySchemeProps: k8sspec.SecuritySchemeProps{
					Type:        "apiKey",
					Name:        "authorization",
					In:          "header",
					Description: "Bearer Token authentication",
				},
			},
		},
		GetDefinitions: getDefinitions,
	}
}

// LoadOpenAPISpec creates a swagger doc for given webservice(s)
func LoadOpenAPISpec(webServices []*restful.WebService, getDefinitions common.GetOpenAPIDefinitions) (*k8sspec.Swagger, error) {
	config := createConfig(getDefinitions)
	return builder.BuildOpenAPISpecFromRoutes(restfuladapter.AdaptWebServices(webServices), config)
}

repository: kubevirt/containerized-data-importer

repo_name: kubevirt/containerized-data-importer

gha_language: Go

extension: go


text:
using DTO;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAL
{
    public class SERVICO_DAL
    {
        public string strConnection;

        public SERVICO_DAL(string conn)
        {
            this.strConnection = conn;
        }

        public int? Set_Servico(SERVICO_DTO DTO)
        {

            using (SqlConnection cn = new SqlConnection(strConnection))
            {

                try
                {
                    SqlDataReader dr = null;

                    StringBuilder SQL_ = new StringBuilder();

                    SQL_.Append("INSERT INTO ");
                    SQL_.Append("SERVICOS ");
                    SQL_.Append("( ");
                    SQL_.Append("NOME, ");
                    SQL_.Append("VALOR ");
                    SQL_.Append(") ");
                    SQL_.Append("VALUES ");
                    SQL_.Append("( ");
                    SQL_.Append("@NOME, ");
                    SQL_.Append("@VALOR ");
                    SQL_.Append("); SELECT SCOPE_IDENTITY(); ");
                    cn.Open();

                    SqlCommand cmd = new SqlCommand(SQL_.ToString(), cn);
                    cmd.Parameters.AddWithValue("@NOME", DTO.NOME);
                    cmd.Parameters.AddWithValue("@VALOR", DTO.VALOR);

                    if ((DTO.ID = Convert.ToInt32(cmd.ExecuteScalar())) > 0)
                    {
                        return DTO.ID;
                    }

                    return 0;
                }
                catch (SqlException ex)
                {
                    throw new Exception(ex.ToString());
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.ToString());

                }
                finally
                {
                    cn.Close();
                }
            }
        }

        public List<SERVICO_DTO> Lista_Servico(bool ContainsTodos = false)
        {
            DataTable dtt = new PesquisaGeralDAL(this.strConnection).Pesquisa("SELECT * FROM SERVICOS WHERE ATIVO = 1 ORDER BY NOME ");

            List<SERVICO_DTO> List = new List<SERVICO_DTO>();

            if (ContainsTodos)
            {
                List.Add(new SERVICO_DTO() { NOME = "Todos", ID = 0, VALOR = Convert.ToDecimal("0.00") });
            }

            foreach (DataRow row in dtt.Rows)
            {
                List.Add(new SERVICO_DTO() { NOME = row["NOME"] == DBNull.Value ? (string)null : char.ToUpper(row["NOME"].ToString()[0]) + row["NOME"].ToString().Substring(1), ID = row["ID"] == DBNull.Value ? 0 : Convert.ToInt32(row["ID"]), VALOR = row["VALOR"] == DBNull.Value? 0 : Convert.ToDecimal(row["VALOR"].ToString()) });
            }

            if (List.Count > 0)
            {
                return List;
            }
            else
            {
                List.Add(new SERVICO_DTO() { NOME = "Sem serviços.", ID = null, VALOR = Convert.ToDecimal("0.00") });
                return List;
            }
        }
        public List<ComboItemDTO> ListaServicoComboItemDTO(bool ContainsTodos = false)
        {
            DataTable dtt = new PesquisaGeralDAL(this.strConnection).Pesquisa("SELECT * FROM SERVICOS ORDER BY NOME ");

            List<ComboItemDTO> List = new List<ComboItemDTO>();

            if (ContainsTodos)
            {
                List.Add(new ComboItemDTO() { Text = "Todos", Value = "" });
            }

            foreach (DataRow row in dtt.Rows)
            {
                List.Add(new ComboItemDTO() { Text = row["NOME"] == DBNull.Value ? (string)null : char.ToUpper(row["NOME"].ToString()[0]) + row["NOME"].ToString().Substring(1), Value = row["ID"] == DBNull.Value ? 0 : Convert.ToInt32(row["ID"]) });
            }

            if (List.Count > 0)
            {
                return List;
            }
            else
            {
                List.Add(new ComboItemDTO() { Text = "Sem serviços.", Value = null });
                return List;
            }
        }

    }
}


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.4.0">
<drawing>
<settings>
<setting alwaysvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="no" active="no"/>
<layer number="2" name="Route2" color="1" fill="3" 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="no" active="no"/>
<layer number="17" name="Pads" color="2" fill="1" visible="no" active="no"/>
<layer number="18" name="Vias" color="2" fill="1" visible="no" active="no"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="no" active="no"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="no" active="no"/>
<layer number="21" name="tPlace" color="16" fill="1" visible="no" active="no"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="no" active="no"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="no" active="no"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="no"/>
<layer number="25" name="tNames" color="7" fill="1" visible="no" active="no"/>
<layer number="26" name="bNames" color="7" fill="1" visible="no" active="no"/>
<layer number="27" name="tValues" color="7" fill="1" visible="no" active="no"/>
<layer number="28" name="bValues" color="7" fill="1" visible="no" active="no"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="no"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="no"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="no"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="no"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="no"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="no"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="no"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="no"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="no"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="no"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="no"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="no"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="no"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="no"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="no"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="no"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="no"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="no"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="no"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="no"/>
<layer number="49" name="Reference" color="7" fill="1" visible="no" active="no"/>
<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="no"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="no"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="88" name="SimResults" color="9" fill="1" visible="yes" active="yes"/>
<layer number="89" name="SimProbes" color="9" fill="1" visible="yes" active="yes"/>
<layer number="90" name="Modules" color="5" fill="1" visible="yes" active="yes"/>
<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>
<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="yes"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>
<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>
<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>
<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>
<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="fp3" 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="Beschreib" color="9" fill="1" visible="no" active="yes"/>
<layer number="106" name="BGA-Top" color="4" fill="1" visible="no" active="yes"/>
<layer number="107" name="BD-Top" color="5" fill="1" visible="no" active="yes"/>
<layer number="108" name="fp8" color="7" fill="1" visible="no" active="yes"/>
<layer number="109" name="fp9" 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="ReferenceLS" color="7" fill="1" visible="no" active="no"/>
<layer number="114" name="Badge_Outline" color="7" fill="1" visible="yes" active="yes"/>
<layer number="115" name="ReferenceISLANDS" color="7" fill="1" visible="yes" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="117" name="BACKMAAT1" color="7" fill="1" visible="yes" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="no"/>
<layer number="119" name="KAP_TEKEN" color="7" fill="1" visible="yes" active="yes"/>
<layer number="120" name="KAP_MAAT1" color="7" fill="1" visible="yes" active="yes"/>
<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="129" name="Mask" color="7" fill="1" visible="yes" active="yes"/>
<layer number="130" name="SMDSTROOK" color="7" fill="1" visible="yes" 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="133" name="bottom_silk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="134" name="mbFinish" color="7" fill="1" visible="yes" active="yes"/>
<layer number="135" name="mtGlue" color="7" fill="1" visible="yes" active="yes"/>
<layer number="136" name="mbGlue" color="7" fill="1" visible="yes" active="yes"/>
<layer number="137" name="mtTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="138" name="mbTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="139" name="mtKeepout" color="7" fill="1" visible="yes" active="yes"/>
<layer number="140" name="mbKeepout" color="7" fill="1" visible="yes" active="yes"/>
<layer number="141" name="mtRestrict" color="7" fill="1" visible="yes" active="yes"/>
<layer number="142" name="mbRestrict" color="7" fill="1" visible="yes" active="yes"/>
<layer number="143" name="mvRestrict" color="7" fill="1" visible="yes" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="145" name="mHoles" color="7" fill="1" visible="yes" active="yes"/>
<layer number="146" name="mMilling" color="7" fill="1" visible="yes" active="yes"/>
<layer number="147" name="mMeasures" color="7" fill="1" visible="yes" active="yes"/>
<layer number="148" name="mDocument" color="7" fill="1" visible="yes" active="yes"/>
<layer number="149" name="mReference" color="7" fill="1" visible="yes" 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="6" fill="1" visible="no" active="no"/>
<layer number="154" name="FabDoc2" color="2" fill="1" visible="no" active="no"/>
<layer number="155" name="FabDoc3" color="7" fill="15" visible="no" active="no"/>
<layer number="166" name="AntennaArea" color="7" fill="1" visible="yes" active="yes"/>
<layer number="168" name="4mmHeightArea" color="7" fill="1" visible="yes" active="yes"/>
<layer number="191" name="mNets" color="7" fill="1" visible="yes" active="yes"/>
<layer number="192" name="mBusses" color="7" fill="1" visible="yes" active="yes"/>
<layer number="193" name="mPins" color="7" fill="1" visible="yes" active="yes"/>
<layer number="194" name="mSymbols" color="7" fill="1" visible="yes" active="yes"/>
<layer number="195" name="mNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="196" name="mValues" color="7" fill="1" visible="yes" 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="yes"/>
<layer number="201" name="201bmp" color="2" fill="1" visible="no" active="no"/>
<layer number="202" name="202bmp" color="3" fill="1" visible="no" active="no"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" 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="yes" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="231" name="Eagle3D_PG1" color="7" fill="1" visible="no" active="no"/>
<layer number="232" name="Eagle3D_PG2" color="7" fill="1" visible="no" active="no"/>
<layer number="233" name="Eagle3D_PG3" color="7" fill="1" visible="no" active="no"/>
<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="7" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="7" fill="1" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="no" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<schematic xreflabel="%F%N/%S.%C%R" xrefpart="/%S.%C%R">
<libraries>
<library name="rickk2">
<packages>
<package name="LED-RGB-CREE-SMD">
<smd name="2" x="0" y="0" dx="1" dy="0.8" layer="1"/>
<smd name="1" x="1.5" y="0" dx="1" dy="0.8" layer="1"/>
<smd name="4" x="1.5" y="1.1" dx="1" dy="0.8" layer="1"/>
<smd name="3" x="0" y="1.1" dx="1" dy="0.8" layer="1"/>
<wire x1="0.6" y1="1.6" x2="0.9" y2="1.6" width="0.127" layer="21"/>
<wire x1="0.6" y1="-0.5" x2="0.9" y2="-0.5" width="0.127" layer="21"/>
<wire x1="-0.6" y1="0.6" x2="-0.6" y2="0.5" width="0.127" layer="21"/>
<wire x1="2.1" y1="0.6" x2="2.1" y2="0.5" width="0.127" layer="21"/>
<wire x1="2" y1="-0.6" x2="2.1" y2="-0.5" width="0.127" layer="21"/>
</package>
<package name="0603-RES">
<wire x1="-1.473" y1="0.983" x2="1.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="1.473" y1="0.983" x2="1.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="1.473" y1="-0.983" x2="-1.473" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-1.473" y1="-0.983" x2="-1.473" y2="0.983" width="0.0508" layer="39"/>
<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
<text x="-0.889" y="0.762" size="0.4064" layer="51" font="vector">>NAME</text>
<text x="-1.016" y="-1.143" size="0.4064" layer="51" font="vector">>VALUE</text>
<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
<rectangle x1="-0.2286" y1="-0.381" x2="0.2286" y2="0.381" layer="21"/>
</package>
<package name="TACTILE-PTH-LED-12MM">
<wire x1="5" y1="-1.3" x2="5" y2="-0.7" width="0.2032" layer="51"/>
<wire x1="5" y1="-0.7" x2="4.5" y2="-0.2" width="0.2032" layer="51"/>
<wire x1="5" y1="0.2" x2="5" y2="1" width="0.2032" layer="51"/>
<wire x1="-6" y1="4" x2="-6" y2="4.85" width="0.2032" layer="21"/>
<wire x1="-4.85" y1="6" x2="4.85" y2="6" width="0.2032" layer="21"/>
<wire x1="6" y1="4.85" x2="6" y2="4" width="0.2032" layer="21"/>
<wire x1="6" y1="1" x2="6" y2="-1" width="0.2032" layer="21"/>
<wire x1="6" y1="-4" x2="6" y2="-4.85" width="0.2032" layer="21"/>
<wire x1="4.85" y1="-6" x2="-4.85" y2="-6" width="0.2032" layer="21"/>
<wire x1="-6" y1="-4.85" x2="-6" y2="-4" width="0.2032" layer="21"/>
<wire x1="-6" y1="-1" x2="-6" y2="1" width="0.2032" layer="21"/>
<wire x1="4.85" y1="6" x2="6" y2="4.85" width="0.2032" layer="21"/>
<wire x1="-6" y1="4.85" x2="-4.85" y2="6" width="0.2032" layer="21"/>
<wire x1="-4.85" y1="-6" x2="-6" y2="-4.85" width="0.2032" layer="21"/>
<wire x1="6" y1="-4.85" x2="4.85" y2="-6" width="0.2032" layer="21"/>
<wire x1="6" y1="1" x2="5" y2="1" width="0.2032" layer="21"/>
<wire x1="5" y1="1" x2="5" y2="4" width="0.2032" layer="21"/>
<wire x1="5" y1="4" x2="6" y2="4" width="0.2032" layer="21"/>
<wire x1="6" y1="-1" x2="5" y2="-1" width="0.2032" layer="21"/>
<wire x1="5" y1="-1" x2="5" y2="-4" width="0.2032" layer="21"/>
<wire x1="5" y1="-4" x2="6" y2="-4" width="0.2032" layer="21"/>
<wire x1="0.635" y1="0.635" x2="0" y2="0.635" width="0.3048" layer="21"/>
<wire x1="0" y1="0.635" x2="-0.635" y2="0.635" width="0.3048" layer="21"/>
<wire x1="-0.635" y1="0.635" x2="0" y2="-0.635" width="0.3048" layer="21"/>
<wire x1="0" y1="-0.635" x2="0.635" y2="0.635" width="0.3048" layer="21"/>
<wire x1="0.635" y1="-0.635" x2="0" y2="-0.635" width="0.3048" layer="21"/>
<wire x1="0" y1="-0.635" x2="-0.635" y2="-0.635" width="0.3048" layer="21"/>
<circle x="0" y="0" radius="3.5" width="0.2032" layer="21"/>
<circle x="-4" y="4" radius="0.4" width="0.9" layer="21"/>
<circle x="4" y="4" radius="0.4" width="0.9" layer="21"/>
<circle x="4" y="-4" radius="0.4" width="0.9" layer="21"/>
<circle x="-4" y="-4" radius="0.4" width="0.9" layer="21"/>
<pad name="1" x="-6.25" y="2.5" drill="1.2" diameter="2.159"/>
<pad name="2" x="6.25" y="2.5" drill="1.2" diameter="2.159"/>
<pad name="3" x="-6.25" y="-2.5" drill="1.2" diameter="2.159"/>
<pad name="4" x="6.25" y="-2.5" drill="1.2" diameter="2.159"/>
<pad name="A" x="0" y="6.75" drill="0.8" diameter="1.6764"/>
<pad name="C" x="0" y="-6.75" drill="0.8" diameter="1.6764"/>
<text x="-4.8" y="2" size="1.016" layer="21" font="vector" ratio="15">1</text>
<text x="4" y="2" size="1.016" layer="21" font="vector" ratio="15">2</text>
<text x="-4.8" y="-3" size="1.016" layer="21" font="vector" ratio="15">3</text>
<text x="4" y="-3" size="1.016" layer="21" font="vector" ratio="15">4</text>
<text x="1.2573" y="3.5052" size="2.1844" layer="21" font="vector" ratio="15" rot="R180">+</text>
<text x="1.2065" y="-1.2954" size="2.1844" layer="21" font="vector" ratio="15" rot="R180">-</text>
<hole x="0" y="4.5" drill="1.6"/>
<hole x="0" y="-4.5" drill="1.6"/>
</package>
<package name="TACTILE-PTH-LED-12MM-EZ">
<wire x1="5" y1="-1.3" x2="5" y2="-0.7" width="0.2032" layer="51"/>
<wire x1="5" y1="-0.7" x2="4.5" y2="-0.2" width="0.2032" layer="51"/>
<wire x1="5" y1="0.2" x2="5" y2="1" width="0.2032" layer="51"/>
<wire x1="-6" y1="4" x2="-6" y2="4.85" width="0.2032" layer="21"/>
<wire x1="-4.85" y1="6" x2="-1.27" y2="6" width="0.2032" layer="21"/>
<wire x1="-1.27" y1="6" x2="-1.27" y2="8.128" width="0.2032" layer="21"/>
<wire x1="-1.27" y1="8.128" x2="1.27" y2="8.128" width="0.2032" layer="21"/>
<wire x1="1.27" y1="8.128" x2="1.27" y2="6" width="0.2032" layer="21"/>
<wire x1="1.27" y1="6" x2="4.85" y2="6" width="0.2032" layer="21"/>
<wire x1="6" y1="4.85" x2="6" y2="4" width="0.2032" layer="21"/>
<wire x1="6" y1="1" x2="6" y2="-1" width="0.2032" layer="21"/>
<wire x1="6" y1="-4" x2="6" y2="-4.85" width="0.2032" layer="21"/>
<wire x1="4.85" y1="-6" x2="1.27" y2="-6" width="0.2032" layer="21"/>
<wire x1="1.27" y1="-6" x2="1.27" y2="-8.128" width="0.2032" layer="21"/>
<wire x1="1.27" y1="-8.128" x2="-1.27" y2="-8.128" width="0.2032" layer="21"/>
<wire x1="-1.27" y1="-8.128" x2="-1.27" y2="-6" width="0.2032" layer="21"/>
<wire x1="-1.27" y1="-6" x2="-4.85" y2="-6" width="0.2032" layer="21"/>
<wire x1="-6" y1="-4.85" x2="-6" y2="-4" width="0.2032" layer="21"/>
<wire x1="-6" y1="-1" x2="-6" y2="1" width="0.2032" layer="21"/>
<wire x1="4.85" y1="6" x2="6" y2="4.85" width="0.2032" layer="21"/>
<wire x1="-6" y1="4.85" x2="-4.85" y2="6" width="0.2032" layer="21"/>
<wire x1="-4.85" y1="-6" x2="-6" y2="-4.85" width="0.2032" layer="21"/>
<wire x1="6" y1="-4.85" x2="4.85" y2="-6" width="0.2032" layer="21"/>
<wire x1="6" y1="1" x2="5" y2="1" width="0.2032" layer="21"/>
<wire x1="5" y1="1" x2="5" y2="4" width="0.2032" layer="21"/>
<wire x1="5" y1="4" x2="6" y2="4" width="0.2032" layer="21"/>
<wire x1="6" y1="-1" x2="5" y2="-1" width="0.2032" layer="21"/>
<wire x1="5" y1="-1" x2="5" y2="-4" width="0.2032" layer="21"/>
<wire x1="5" y1="-4" x2="6" y2="-4" width="0.2032" layer="21"/>
<wire x1="0.635" y1="0.635" x2="-0.635" y2="0.635" width="0.3048" layer="21"/>
<wire x1="-0.635" y1="0.635" x2="0" y2="-0.635" width="0.3048" layer="21"/>
<wire x1="0" y1="-0.635" x2="0.635" y2="0.635" width="0.3048" layer="21"/>
<wire x1="0.635" y1="-0.635" x2="0" y2="-0.635" width="0.3048" layer="21"/>
<wire x1="0" y1="-0.635" x2="-0.635" y2="-0.635" width="0.3048" layer="21"/>
<circle x="0" y="0" radius="3.5" width="0.2032" layer="21"/>
<circle x="-4" y="4" radius="0.4" width="0.9" layer="21"/>
<circle x="4" y="4" radius="0.4" width="0.9" layer="21"/>
<circle x="4" y="-4" radius="0.4" width="0.9" layer="21"/>
<circle x="-4" y="-4" radius="0.4" width="0.9" layer="21"/>
<pad name="1" x="-6.25" y="2.5" drill="1.2" diameter="2.159" stop="no"/>
<pad name="2" x="6.25" y="2.5" drill="1.2" diameter="2.159" stop="no"/>
<pad name="3" x="-6.25" y="-2.5" drill="1.2" diameter="2.159" stop="no"/>
<pad name="4" x="6.25" y="-2.5" drill="1.2" diameter="2.159" stop="no"/>
<pad name="A" x="0" y="6.75" drill="0.8" diameter="1.6764" stop="no"/>
<pad name="C" x="0" y="-6.75" drill="0.8" diameter="1.6764" stop="no"/>
<text x="-4.8" y="2" size="1.016" layer="21" font="vector" ratio="15">1</text>
<text x="4" y="2" size="1.016" layer="21" font="vector" ratio="15">2</text>
<text x="-4.8" y="-3" size="1.016" layer="21" font="vector" ratio="15">3</text>
<text x="4" y="-3" size="1.016" layer="21" font="vector" ratio="15">4</text>
<text x="0.8573" y="3.5052" size="2.1844" layer="21" font="vector" ratio="15" rot="SR180">+</text>
<text x="0.8065" y="-1.6954" size="2.1844" layer="21" font="vector" ratio="15" rot="SR180">-</text>
<hole x="0" y="4.5" drill="1.6"/>
<hole x="0" y="-4.5" drill="1.6"/>
<polygon width="0.127" layer="30">
<vertex x="0" y="5.9182" curve="90"/>
<vertex x="0.8382" y="6.731" curve="90"/>
<vertex x="0" y="7.5946" curve="90"/>
<vertex x="-0.8382" y="6.731" curve="90"/>
</polygon>
<polygon width="0.127" layer="30">
<vertex x="0" y="-7.5946" curve="90"/>
<vertex x="0.8382" y="-6.7818" curve="90"/>
<vertex x="0" y="-5.9182" curve="90"/>
<vertex x="-0.8382" y="-6.7818" curve="90"/>
</polygon>
<polygon width="0.127" layer="30">
<vertex x="-6.2484" y="1.4478" curve="90"/>
<vertex x="-5.1816" y="2.5146" curve="90"/>
<vertex x="-6.2484" y="3.556" curve="90"/>
<vertex x="-7.3152" y="2.5146" curve="90"/>
</polygon>
<polygon width="0.127" layer="30">
<vertex x="-6.2484" y="-3.556" curve="90"/>
<vertex x="-5.1816" y="-2.4892" curve="90"/>
<vertex x="-6.2484" y="-1.4478" curve="90"/>
<vertex x="-7.3152" y="-2.4892" curve="90"/>
</polygon>
<polygon width="0.127" layer="30">
<vertex x="6.2484" y="1.4478" curve="90"/>
<vertex x="7.3152" y="2.5146" curve="90"/>
<vertex x="6.2484" y="3.556" curve="90"/>
<vertex x="5.1816" y="2.5146" curve="90"/>
</polygon>
<polygon width="0.127" layer="30">
<vertex x="6.2484" y="-3.556" curve="90"/>
<vertex x="7.3152" y="-2.4892" curve="90"/>
<vertex x="6.2484" y="-1.4478" curve="90"/>
<vertex x="5.1816" y="-2.4892" curve="90"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="0" y="6.4262" curve="90"/>
<vertex x="0.3302" y="6.7564" curve="90"/>
<vertex x="0" y="7.0866" curve="90"/>
<vertex x="-0.3302" y="6.731" curve="90"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="0" y="-7.07898125" curve="90"/>
<vertex x="0.3302" y="-6.74878125" curve="90"/>
<vertex x="0" y="-6.41858125" curve="90"/>
<vertex x="-0.3302" y="-6.77418125" curve="90"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="-6.25348125" y="-3.02514375" curve="90"/>
<vertex x="-5.7277" y="-2.47904375" curve="90"/>
<vertex x="-6.253478125" y="-1.968503125" curve="90"/>
<vertex x="-6.7818" y="-2.51968125" curve="90"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="-6.250940625" y="1.96595625" curve="90"/>
<vertex x="-5.725159375" y="2.51205625" curve="90"/>
<vertex x="-6.2509375" y="3.022596875" curve="90"/>
<vertex x="-6.779259375" y="2.47141875" curve="90"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="6.25601875" y="-3.030225" curve="90"/>
<vertex x="6.7818" y="-2.484125" curve="90"/>
<vertex x="6.256021875" y="-1.973584375" curve="90"/>
<vertex x="5.7277" y="-2.5247625" curve="90"/>
</polygon>
<polygon width="0.127" layer="29">
<vertex x="6.2509375" y="1.968496875" curve="90"/>
<vertex x="6.77671875" y="2.514596875" curve="90"/>
<vertex x="6.250940625" y="3.0251375" curve="90"/>
<vertex x="5.72261875" y="2.473959375" curve="90"/>
</polygon>
<text x="1.6427" y="5.9948" size="2.1844" layer="21" font="vector" ratio="15" rot="SR0">+</text>
</package>
<package name="USB-B-SMT-AMPHENOL">
<hole x="-2.5" y="0" drill="0.85"/>
<hole x="2.5" y="0" drill="0.85"/>
<hole x="-3.5" y="-2.7" drill="1.15"/>
<hole x="3.5" y="-2.7" drill="1.15"/>
<smd name="1" x="-1.3" y="0" dx="0.4" dy="1.35" layer="1"/>
<smd name="2" x="-0.65" y="0" dx="0.4" dy="1.35" layer="1"/>
<smd name="3" x="0" y="0" dx="0.4" dy="1.35" layer="1"/>
<smd name="4" x="0.65" y="0" dx="0.4" dy="1.35" layer="1"/>
<smd name="5" x="1.3" y="0" dx="0.4" dy="1.35" layer="1"/>
<smd name="P$6" x="-1" y="-2.7" dx="1.5" dy="1.55" layer="1"/>
<smd name="P$7" x="1" y="-2.7" dx="1.5" dy="1.55" layer="1"/>
<wire x1="-3.75" y1="-4.15" x2="3.75" y2="-4.15" width="0.127" layer="21"/>
<wire x1="-3.75" y1="0.85" x2="3.75" y2="0.85" width="0.127" layer="21"/>
<wire x1="-3.75" y1="-4.15" x2="-3.75" y2="0.85" width="0.127" layer="21"/>
<wire x1="3.75" y1="-4.15" x2="3.75" y2="0.85" width="0.127" layer="21"/>
</package>
<package name="SWITCH-MOM-4.5">
<smd name="1" x="0" y="0" dx="1.6" dy="1.4" layer="1"/>
<smd name="2" x="7.2" y="0" dx="1.6" dy="1.4" layer="1"/>
<smd name="3" x="0" y="3" dx="1.6" dy="1.4" layer="1"/>
<smd name="4" x="7.2" y="3" dx="1.6" dy="1.4" layer="1"/>
<wire x1="1.27" y1="3.81" x2="6.096" y2="3.81" width="0.127" layer="21"/>
<wire x1="1.27" y1="-0.635" x2="6.096" y2="-0.635" width="0.127" layer="21"/>
<wire x1="-0.7874" y1="1.9304" x2="-0.7874" y2="1.016" width="0.127" layer="21"/>
<wire x1="8.001" y1="1.9304" x2="8.001" y2="1.016" width="0.127" layer="21"/>
<circle x="1.3716" y="0" radius="0.127" width="0.127" layer="21"/>
<text x="1.2954" y="2.9972" size="0.6096" layer="48">>NAME</text>
</package>
<package name="JST-PH-2-SMT-RA">
<description>2-Pin JST PH Series Right-Angle Connector (+/- for batteries)</description>
<wire x1="-4" y1="3" x2="4" y2="3" width="0.2032" layer="51"/>
<wire x1="4" y1="3" x2="4" y2="-4.5" width="0.2032" layer="51"/>
<wire x1="-4" y1="-4.5" x2="-4" y2="3" width="0.2032" layer="51"/>
<wire x1="3.2" y1="-2" x2="-3.2" y2="-2" width="0.2032" layer="51"/>
<wire x1="-3.2" y1="-2" x2="-3.2" y2="-4.5" width="0.2032" layer="51"/>
<wire x1="-3.2" y1="-4.5" x2="-4" y2="-4.5" width="0.2032" layer="51"/>
<wire x1="4" y1="-4.5" x2="3.2" y2="-4.5" width="0.2032" layer="51"/>
<wire x1="3.2" y1="-4.5" x2="3.2" y2="-2" width="0.2032" layer="51"/>
<wire x1="-2.25" y1="3" x2="2.25" y2="3" width="0.127" layer="21"/>
<wire x1="4" y1="-0.5" x2="4" y2="-4.5" width="0.127" layer="21"/>
<wire x1="4" y1="-4.5" x2="3.15" y2="-4.5" width="0.127" layer="21"/>
<wire x1="3.15" y1="-4.5" x2="3.15" y2="-2" width="0.127" layer="21"/>
<wire x1="3.15" y1="-2" x2="1.75" y2="-2" width="0.127" layer="21"/>
<wire x1="-1.75" y1="-2" x2="-3.15" y2="-2" width="0.127" layer="21"/>
<wire x1="-3.15" y1="-2" x2="-3.15" y2="-4.5" width="0.127" layer="21"/>
<wire x1="-3.15" y1="-4.5" x2="-4" y2="-4.5" width="0.127" layer="21"/>
<wire x1="-4" y1="-4.5" x2="-4" y2="-0.5" width="0.127" layer="21"/>
<smd name="2" x="-1" y="-3.7" dx="1" dy="4.6" layer="1"/>
<smd name="1" x="1" y="-3.7" dx="1" dy="4.6" layer="1"/>
<smd name="NC1" x="-3.4" y="1.5" dx="3.4" dy="1.6" layer="1" rot="R90"/>
<smd name="NC2" x="3.4" y="1.5" dx="3.4" dy="1.6" layer="1" rot="R90"/>
<text x="-2.54" y="3.81" size="1.27" layer="25" font="vector">>Name</text>
<text x="-2.54" y="-7.62" size="1.27" layer="27" font="vector">>Value</text>
<text x="2.286" y="-6.096" size="1.4224" layer="21" ratio="12">+</text>
<text x="-3.429" y="-6.096" size="1.4224" layer="21" ratio="12">-</text>
</package>
<package name="JST-PH-2-THM">
<description>4UCon #01528
http://www.4uconnector.com/online/object/4udrawing/01528.pdf</description>
<wire x1="3" y1="-1.7" x2="0.5" y2="-1.7" width="0.127" layer="21"/>
<wire x1="0.5" y1="-1.7" x2="0.5" y2="-2.2" width="0.127" layer="21"/>
<wire x1="0.5" y1="-2.2" x2="-0.5" y2="-2.2" width="0.127" layer="21"/>
<wire x1="-0.5" y1="-2.2" x2="-0.5" y2="-1.7" width="0.127" layer="21"/>
<wire x1="-0.5" y1="-1.7" x2="-3" y2="-1.7" width="0.127" layer="21"/>
<wire x1="-3" y1="-1.7" x2="-3" y2="2.8" width="0.127" layer="21"/>
<wire x1="-3" y1="2.8" x2="3" y2="2.8" width="0.127" layer="21"/>
<wire x1="3" y1="2.8" x2="3" y2="-1.7" width="0.127" layer="21"/>
<pad name="1" x="1" y="0" drill="0.8" diameter="1.4224" rot="R180"/>
<pad name="2" x="-1" y="0" drill="0.8" diameter="1.4224" rot="R180"/>
<text x="-2.8" y="-3.5" size="1.27" layer="51" font="vector">>NAME</text>
<text x="4.064" y="0.762" size="1.27" layer="21" font="vector" rot="R180">+</text>
<text x="-3.302" y="0.762" size="1.27" layer="21" font="vector" rot="R180">-</text>
</package>
<package name="JST-PH-2-THM-RA">
<description><b>S2B-PH-K-S</b>
<p>
JST PH 2-pin thru-home side entry</description>
<wire x1="-3" y1="6.3" x2="3" y2="6.3" width="0.127" layer="51"/>
<wire x1="3" y1="6.3" x2="3" y2="-1.4" width="0.127" layer="51"/>
<wire x1="-3" y1="-1.4" x2="-3" y2="6.3" width="0.127" layer="51"/>
<wire x1="-2.2" y1="-1.4" x2="-3" y2="-1.4" width="0.127" layer="51"/>
<wire x1="3" y1="-1.4" x2="2.2" y2="-1.4" width="0.127" layer="51"/>
<wire x1="-2.2" y1="-1.4" x2="-2.2" y2="-0.3" width="0.127" layer="21"/>
<wire x1="-2.2" y1="-0.3" x2="2.1" y2="-0.3" width="0.127" layer="21"/>
<wire x1="2.1" y1="-0.3" x2="2.1" y2="-1.4" width="0.127" layer="21"/>
<wire x1="2.1" y1="-1.4" x2="2.2" y2="-1.4" width="0.127" layer="21"/>
<wire x1="-0.3" y1="6.3" x2="-0.3" y2="3.4" width="0.127" layer="21"/>
<wire x1="-0.3" y1="3.4" x2="0.3" y2="3.4" width="0.127" layer="21"/>
<wire x1="0.3" y1="3.4" x2="0.3" y2="6.3" width="0.127" layer="21"/>
<pad name="2" x="-1" y="0" drill="0.8" diameter="1.4224"/>
<pad name="1" x="1" y="0" drill="0.8" diameter="1.4224"/>
<text x="-2.7" y="-3.8" size="1.27" layer="25" font="vector">>NAME</text>
<text x="0.486" y="-2.096" size="1.4224" layer="21" ratio="12">+</text>
<text x="-1.429" y="-1.896" size="1.4224" layer="21" ratio="12">-</text>
</package>
<package name="JST-PH-2-SMT">
<wire x1="-4" y1="2.5" x2="4" y2="2.5" width="0.2032" layer="51"/>
<wire x1="4" y1="2.5" x2="4" y2="-2.5" width="0.2032" layer="51"/>
<wire x1="-4" y1="-2.5" x2="-4" y2="2.5" width="0.2032" layer="51"/>
<wire x1="4" y1="-2.5" x2="-4" y2="-2.5" width="0.2032" layer="51"/>
<wire x1="-2.25" y1="2.5" x2="2.25" y2="2.5" width="0.127" layer="21"/>
<wire x1="4" y1="-0.5" x2="4" y2="-2.5" width="0.127" layer="21"/>
<wire x1="4" y1="-2.5" x2="1.75" y2="-2.5" width="0.127" layer="21"/>
<wire x1="-1.75" y1="-2.5" x2="-4" y2="-2.5" width="0.127" layer="21"/>
<wire x1="-4" y1="-2.5" x2="-4" y2="-0.5" width="0.127" layer="21"/>
<smd name="1" x="-1" y="-1.8" dx="1" dy="5.5" layer="1"/>
<smd name="2" x="1" y="-1.8" dx="1" dy="5.5" layer="1"/>
<smd name="NC1" x="-3.4" y="0" dx="3.4" dy="1.6" layer="1" rot="R90"/>
<smd name="NC2" x="3.4" y="0" dx="3.4" dy="1.6" layer="1" rot="R90"/>
<text x="-2.54" y="3.81" size="1.27" layer="25" font="vector">>Name</text>
<text x="-2.54" y="-7.62" size="1.27" layer="27" font="vector">>Value</text>
<text x="-2.914" y="-6.096" size="1.4224" layer="21" ratio="12">+</text>
<text x="2.271" y="-6.096" size="1.4224" layer="21" ratio="12">-</text>
</package>
<package name="1X02">
<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="3.81" y1="0.635" x2="3.81" 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"/>
<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>
</packages>
<symbols>
<symbol name="LED-RGB">
<wire x1="6.35" y1="1.778" x2="5.08" y2="-0.254" width="0.254" layer="94"/>
<wire x1="5.08" y1="-0.254" x2="3.81" y2="1.778" width="0.254" layer="94"/>
<wire x1="6.35" y1="-0.254" x2="5.08" y2="-0.254" width="0.254" layer="94"/>
<wire x1="5.08" y1="-0.254" x2="3.81" y2="-0.254" width="0.254" layer="94"/>
<wire x1="6.35" y1="1.778" x2="3.81" y2="1.778" width="0.254" layer="94"/>
<wire x1="3.048" y1="1.524" x2="2.159" y2="0.635" width="0.1524" layer="94"/>
<wire x1="3.81" y1="0.762" x2="2.921" y2="-0.127" width="0.1524" layer="94"/>
<wire x1="1.27" y1="1.778" x2="0" y2="-0.254" width="0.254" layer="94"/>
<wire x1="0" y1="-0.254" x2="-1.27" y2="1.778" width="0.254" layer="94"/>
<wire x1="1.27" y1="-0.254" x2="0" y2="-0.254" width="0.254" layer="94"/>
<wire x1="0" y1="-0.254" x2="-1.27" y2="-0.254" width="0.254" layer="94"/>
<wire x1="1.27" y1="1.778" x2="-1.27" y2="1.778" width="0.254" layer="94"/>
<wire x1="-2.032" y1="1.524" x2="-2.921" y2="0.635" width="0.1524" layer="94"/>
<wire x1="-1.27" y1="0.762" x2="-2.159" y2="-0.127" width="0.1524" layer="94"/>
<wire x1="-3.81" y1="1.778" x2="-5.08" y2="-0.254" width="0.254" layer="94"/>
<wire x1="-5.08" y1="-0.254" x2="-6.35" y2="1.778" width="0.254" layer="94"/>
<wire x1="-3.81" y1="-0.254" x2="-5.08" y2="-0.254" width="0.254" layer="94"/>
<wire x1="-5.08" y1="-0.254" x2="-6.35" y2="-0.254" width="0.254" layer="94"/>
<wire x1="-3.81" y1="1.778" x2="-6.35" y2="1.778" width="0.254" layer="94"/>
<wire x1="-7.112" y1="1.524" x2="-8.001" y2="0.635" width="0.1524" layer="94"/>
<wire x1="-6.35" y1="0.762" x2="-7.239" y2="-0.127" width="0.1524" layer="94"/>
<wire x1="-5.08" y1="2.54" x2="0" y2="2.54" width="0.1524" layer="94"/>
<wire x1="0" y1="2.54" x2="0" y2="0" width="0.1524" layer="94"/>
<wire x1="0" y1="2.54" x2="5.08" y2="2.54" width="0.1524" layer="94"/>
<wire x1="5.08" y1="2.54" x2="5.08" y2="0" width="0.1524" layer="94"/>
<circle x="-5.08" y="2.54" radius="0.1796" width="0.254" layer="94"/>
<circle x="0" y="2.54" radius="0.1796" width="0.254" layer="94"/>
<text x="-2.54" y="3.302" size="1.778" layer="95">>NAME</text>
<pin name="B" x="5.08" y="-2.54" visible="off" length="short" direction="pas" rot="R90"/>
<pin name="G" x="0" y="-2.54" visible="off" length="short" direction="pas" rot="R90"/>
<pin name="R" x="-5.08" y="-2.54" visible="off" length="short" direction="pas" rot="R90"/>
<pin name="A" x="-5.08" y="5.08" visible="pad" length="middle" direction="pas" rot="R270"/>
<polygon width="0.1524" layer="94">
<vertex x="2.032" y="1.016"/>
<vertex x="1.778" y="0.254"/>
<vertex x="2.54" y="0.508"/>
</polygon>
<polygon width="0.1524" layer="94">
<vertex x="2.794" y="0.254"/>
<vertex x="2.54" y="-0.508"/>
<vertex x="3.302" y="-0.254"/>
</polygon>
<polygon width="0.1524" layer="94">
<vertex x="-3.048" y="1.016"/>
<vertex x="-3.302" y="0.254"/>
<vertex x="-2.54" y="0.508"/>
</polygon>
<polygon width="0.1524" layer="94">
<vertex x="-2.286" y="0.254"/>
<vertex x="-2.54" y="-0.508"/>
<vertex x="-1.778" y="-0.254"/>
</polygon>
<polygon width="0.1524" layer="94">
<vertex x="-8.128" y="1.016"/>
<vertex x="-8.382" y="0.254"/>
<vertex x="-7.62" y="0.508"/>
</polygon>
<polygon width="0.1524" layer="94">
<vertex x="-7.366" y="0.254"/>
<vertex x="-7.62" y="-0.508"/>
<vertex x="-6.858" y="-0.254"/>
</polygon>
<text x="-7.62" y="-2.54" size="1.778" layer="97">R</text>
<text x="-2.54" y="-2.54" size="1.778" layer="97">G</text>
<text x="2.54" y="-2.54" size="1.778" layer="97">B</text>
</symbol>
<symbol name="RESISTOR">
<wire x1="-2.54" y1="0" x2="-2.159" y2="1.016" width="0.1524" layer="94"/>
<wire x1="-2.159" y1="1.016" x2="-1.524" y2="-1.016" width="0.1524" layer="94"/>
<wire x1="-1.524" y1="-1.016" x2="-0.889" y2="1.016" width="0.1524" layer="94"/>
<wire x1="-0.889" y1="1.016" x2="-0.254" y2="-1.016" width="0.1524" layer="94"/>
<wire x1="-0.254" y1="-1.016" x2="0.381" y2="1.016" width="0.1524" layer="94"/>
<wire x1="0.381" y1="1.016" x2="1.016" y2="-1.016" width="0.1524" layer="94"/>
<wire x1="1.016" y1="-1.016" x2="1.651" y2="1.016" width="0.1524" layer="94"/>
<wire x1="1.651" y1="1.016" x2="2.286" y2="-1.016" width="0.1524" layer="94"/>
<wire x1="2.286" y1="-1.016" x2="2.54" y2="0" width="0.1524" layer="94"/>
<text x="-3.81" y="1.4986" size="1.778" layer="95">>NAME</text>
<text x="-3.81" y="-3.302" size="1.778" layer="96">>VALUE</text>
<pin name="2" x="5.08" y="0" visible="off" length="short" direction="pas" swaplevel="1" rot="R180"/>
<pin name="1" x="-5.08" y="0" visible="off" length="short" direction="pas" swaplevel="1"/>
</symbol>
<symbol name="SWITCH-MOMENTARY-LED">
<wire x1="1.905" y1="0" x2="2.54" y2="0" width="0.254" layer="94"/>
<wire x1="-2.54" y1="0" x2="1.905" y2="1.27" width="0.254" layer="94"/>
<wire x1="-1.27" y1="-1.27" x2="1.27" y2="-2.54" width="0.254" layer="94"/>
<wire x1="1.27" y1="-2.54" x2="-1.27" y2="-3.81" width="0.254" layer="94"/>
<wire x1="1.27" y1="-1.27" x2="1.27" y2="-2.54" width="0.254" layer="94"/>
<wire x1="1.27" y1="-2.54" x2="1.27" y2="-3.81" width="0.254" layer="94"/>
<wire x1="-1.27" y1="-1.27" x2="-1.27" y2="-2.54" width="0.254" layer="94"/>
<wire x1="-1.27" y1="-2.54" x2="-1.27" y2="-3.81" width="0.254" layer="94"/>
<wire x1="-1.27" y1="-2.54" x2="1.27" y2="-2.54" width="0.1524" layer="94"/>
<wire x1="-0.508" y1="-4.572" x2="0.889" y2="-5.969" width="0.1524" layer="94"/>
<wire x1="0.635" y1="-4.445" x2="2.032" y2="-5.842" width="0.1524" layer="94"/>
<wire x1="-2.54" y1="-2.54" x2="-1.27" y2="-2.54" width="0.1524" layer="94"/>
<wire x1="1.27" y1="-2.54" x2="2.54" y2="-2.54" width="0.1524" layer="94"/>
<circle x="-2.54" y="0" radius="0.127" width="0.4064" layer="94"/>
<circle x="2.54" y="0" radius="0.127" width="0.4064" layer="94"/>
<text x="-4.064" y="2.032" size="1.778" layer="95">>NAME</text>
<text x="-4.572" y="-8.382" size="1.778" layer="96">>VALUE</text>
<pin name="1" x="-5.08" y="0" visible="off" length="short" direction="pas" swaplevel="2"/>
<pin name="2" x="5.08" y="0" visible="off" length="short" direction="pas" swaplevel="1" rot="R180"/>
<pin name="A" x="-5.08" y="-2.54" visible="off" length="short" direction="pas"/>
<pin name="C" x="5.08" y="-2.54" visible="off" length="short" direction="pas" rot="R180"/>
<polygon width="0.1524" layer="94">
<vertex x="0.889" y="-5.969"/>
<vertex x="0" y="-5.588"/>
<vertex x="0.508" y="-5.08"/>
</polygon>
<polygon width="0.1524" layer="94">
<vertex x="2.032" y="-5.842"/>
<vertex x="1.143" y="-5.461"/>
<vertex x="1.651" y="-4.953"/>
</polygon>
</symbol>
<symbol name="DGND">
<wire x1="-1.905" y1="0" x2="1.905" y2="0" width="0.254" layer="94"/>
<text x="-2.54" y="-2.54" size="1.778" layer="96">>VALUE</text>
<pin name="GND" x="0" y="2.54" visible="off" length="short" direction="sup" rot="R270"/>
</symbol>
<symbol name="3V3">
<wire x1="0.762" y1="1.27" x2="0" y2="2.54" width="0.254" layer="94"/>
<wire x1="0" y1="2.54" x2="-0.762" y2="1.27" width="0.254" layer="94"/>
<text x="-1.016" y="3.556" size="1.778" layer="96">>VALUE</text>
<pin name="3V3" x="0" y="0" visible="off" length="short" direction="sup" rot="R90"/>
</symbol>
<symbol name="USB-WITH-ID">
<pin name="VBUS" x="-7.62" y="7.62" length="middle" direction="pas"/>
<pin name="D-" x="-7.62" y="5.08" length="middle" direction="pas"/>
<pin name="D+" x="-7.62" y="2.54" length="middle" direction="pas"/>
<pin name="ID" x="-7.62" y="0" length="middle" direction="pas"/>
<pin name="GND" x="-7.62" y="-2.54" length="middle" direction="pas"/>
<wire x1="-2.54" y1="-5.08" x2="-2.54" y2="10.16" width="0.254" layer="94"/>
<wire x1="-2.54" y1="10.16" x2="7.62" y2="10.16" width="0.254" layer="94"/>
<wire x1="7.62" y1="10.16" x2="7.62" y2="-5.08" width="0.254" layer="94"/>
<wire x1="7.62" y1="-5.08" x2="-2.54" y2="-5.08" width="0.254" layer="94"/>
</symbol>
<symbol name="SWITCH-MOM-4.5">
<pin name="1" x="-10.16" y="-2.54" visible="pin" length="middle" direction="pas"/>
<pin name="2" x="10.16" y="-2.54" visible="pin" length="middle" direction="pas" rot="R180"/>
<pin name="4" x="10.16" y="5.08" visible="pin" length="middle" direction="pas" rot="R180"/>
<pin name="3" x="-10.16" y="5.08" visible="pin" length="middle" direction="pas"/>
<wire x1="-5.08" y1="5.08" x2="-3.81" y2="5.08" width="0.254" layer="94"/>
<wire x1="-3.81" y1="5.08" x2="-3.81" y2="3.81" width="0.254" layer="94"/>
<wire x1="-3.81" y1="3.81" x2="0" y2="3.81" width="0.254" layer="94"/>
<wire x1="0" y1="3.81" x2="3.81" y2="3.81" width="0.254" layer="94"/>
<wire x1="3.81" y1="3.81" x2="3.81" y2="5.08" width="0.254" layer="94"/>
<wire x1="3.81" y1="5.08" x2="5.08" y2="5.08" width="0.254" layer="94"/>
<wire x1="-5.08" y1="-2.54" x2="-3.81" y2="-2.54" width="0.254" layer="94"/>
<wire x1="-3.81" y1="-2.54" x2="-3.81" y2="-1.27" width="0.254" layer="94"/>
<wire x1="-3.81" y1="-1.27" x2="0" y2="-1.27" width="0.254" layer="94"/>
<wire x1="0" y1="-1.27" x2="3.81" y2="-1.27" width="0.254" layer="94"/>
<wire x1="3.81" y1="-1.27" x2="3.81" y2="-2.54" width="0.254" layer="94"/>
<wire x1="3.81" y1="-2.54" x2="5.08" y2="-2.54" width="0.254" layer="94"/>
<wire x1="0" y1="3.81" x2="0" y2="2.54" width="0.254" layer="94"/>
<wire x1="0" y1="-1.27" x2="0" y2="0" width="0.254" layer="94"/>
<wire x1="1.27" y1="2.54" x2="1.27" y2="1.27" width="0.254" layer="94"/>
<wire x1="1.27" y1="0" x2="1.27" y2="1.27" width="0.254" layer="94"/>
<wire x1="1.27" y1="1.27" x2="2.54" y2="1.27" width="0.254" layer="94"/>
<circle x="0" y="2.54" radius="0.567959375" width="0.254" layer="94"/>
<circle x="0" y="0" radius="0.567959375" width="0.254" layer="94"/>
<wire x1="-5.08" y1="-5.08" x2="-5.08" y2="7.62" width="0.254" layer="94"/>
<wire x1="-5.08" y1="7.62" x2="5.08" y2="7.62" width="0.254" layer="94"/>
<wire x1="5.08" y1="7.62" x2="5.08" y2="-5.08" width="0.254" layer="94"/>
<wire x1="5.08" y1="-5.08" x2="-5.08" y2="-5.08" width="0.254" layer="94"/>
<text x="-5.08" y="7.62" size="1.778" layer="94">>NAME</text>
<text x="-5.08" y="-7.62" size="1.778" layer="94">>VALUE</text>
</symbol>
<symbol name="PINHD2">
<wire x1="-6.35" y1="-2.54" x2="1.27" y2="-2.54" width="0.4064" layer="94"/>
<wire x1="1.27" y1="-2.54" x2="1.27" y2="5.08" width="0.4064" layer="94"/>
<wire x1="1.27" y1="5.08" x2="-6.35" y2="5.08" width="0.4064" layer="94"/>
<wire x1="-6.35" y1="5.08" x2="-6.35" y2="-2.54" width="0.4064" layer="94"/>
<text x="-6.35" y="5.715" size="1.778" layer="95">>NAME</text>
<text x="-6.35" y="-5.08" size="1.778" layer="96">>VALUE</text>
<pin name="1" x="-2.54" y="2.54" visible="pad" length="short" direction="pas" function="dot"/>
<pin name="2" x="-2.54" y="0" visible="pad" length="short" direction="pas" function="dot"/>
</symbol>
<symbol name="M02">
<wire x1="3.81" y1="-2.54" x2="-2.54" y2="-2.54" width="0.4064" layer="94"/>
<wire x1="1.27" y1="2.54" x2="2.54" y2="2.54" width="0.6096" layer="94"/>
<wire x1="1.27" y1="0" x2="2.54" y2="0" width="0.6096" layer="94"/>
<wire x1="-2.54" y1="5.08" x2="-2.54" y2="-2.54" width="0.4064" layer="94"/>
<wire x1="3.81" y1="-2.54" x2="3.81" y2="5.08" width="0.4064" layer="94"/>
<wire x1="-2.54" y1="5.08" x2="3.81" y2="5.08" width="0.4064" layer="94"/>
<text x="-2.54" y="5.842" size="1.778" layer="95">>NAME</text>
<pin name="1" x="7.62" y="0" visible="pad" length="middle" direction="pas" swaplevel="1" rot="R180"/>
<pin name="2" x="7.62" y="2.54" visible="pad" length="middle" direction="pas" swaplevel="1" rot="R180"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="LED-RGB-CREE-SMD" prefix="LED">
<description>LED RGB DIFFUSED 4SMD $ 0.35<br>
Cree CLMVB-FKA-CFHEHLCBB7A363<br>
2mm 4-PLCC common anode RGB LED<br>
https://www.digikey.com/product-detail/en/cree-inc/CLMVB-FKA-CFHEHLCBB7A363/CLMVB-FKA-CFHEHLCBB7A363CT-ND/6138627<br>
Red=68 ohm, Green/Blue=33 ohm @ 3.3V</description>
<gates>
<gate name="G$1" symbol="LED-RGB" x="0" y="0"/>
</gates>
<devices>
<device name="" package="LED-RGB-CREE-SMD">
<connects>
<connect gate="G$1" pin="A" pad="1"/>
<connect gate="G$1" pin="B" pad="2"/>
<connect gate="G$1" pin="G" pad="3"/>
<connect gate="G$1" pin="R" pad="4"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="RES-68-0603.DEV" prefix="R">
<description>https://www.digikey.com/product-detail/en/panasonic-electronic-components/ERJ-3EKF68R0V/P68.0HCT-ND/1746805<br>
Panasonic SMD 0603 1% 1/10W</description>
<gates>
<gate name="G$1" symbol="RESISTOR" x="0" y="0"/>
</gates>
<devices>
<device name="" package="0603-RES">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<technologies>
<technology name="">
<attribute name="VALUE" value="68" constant="no"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="RES-33-0603.DEV" prefix="R">
<description>https://www.digikey.com/product-detail/en/panasonic-electronic-components/ERJ-3EKF33R0V/P33.0HCT-ND/1746765<br>
Panasonic SMD 0603 1% 1/10W</description>
<gates>
<gate name="G$1" symbol="RESISTOR" x="0" y="0"/>
</gates>
<devices>
<device name="" package="0603-RES">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<technologies>
<technology name="">
<attribute name="VALUE" value="33" constant="no"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="SWITCH-MOMENTARY-LED" prefix="S">
<description>EZ is for Kits. There is no tStop (covering up the top side of the pads with mask). This helps the beginner see which side they should be soldering too.<br>
Red $2.10 https://www.sparkfun.com/products/10442<br>
Also green, blue, and white<br>
Available in orange but I don't have that one<br></description>
<gates>
<gate name="G$1" symbol="SWITCH-MOMENTARY-LED" x="0" y="0"/>
</gates>
<devices>
<device name="PTH" package="TACTILE-PTH-LED-12MM">
<connects>
<connect gate="G$1" pin="1" pad="4"/>
<connect gate="G$1" pin="2" pad="2"/>
<connect gate="G$1" pin="A" pad="A"/>
<connect gate="G$1" pin="C" pad="C"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
<device name="EZ" package="TACTILE-PTH-LED-12MM-EZ">
<connects>
<connect gate="G$1" pin="1" pad="4"/>
<connect gate="G$1" pin="2" pad="2"/>
<connect gate="G$1" pin="A" pad="A"/>
<connect gate="G$1" pin="C" pad="C"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="GND" prefix="GND">
<description><b>SUPPLY SYMBOL</b></description>
<gates>
<gate name="1" symbol="DGND" x="0" y="0"/>
</gates>
<devices>
<device name="">
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="3V3" prefix="SUPPLY">
<description>3.3V supply symbol</description>
<gates>
<gate name="G$1" symbol="3V3" x="0" y="0"/>
</gates>
<devices>
<device name="">
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="RES-10K-0603" prefix="R" uservalue="yes">
<description>RES SMD 10K OHM 5% 1/4W 0603 $ 0.10<br>
https://www.digikey.com/product-detail/en/panasonic-electronic-components/ERJ-PA3J103V/P10KBZCT-ND/5036237</description>
<gates>
<gate name="G$1" symbol="RESISTOR" x="0" y="0"/>
</gates>
<devices>
<device name="0603" package="0603-RES">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<technologies>
<technology name="">
<attribute name="PROD_ID" value=""/>
<attribute name="VALUE" value="10K" constant="no"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="RES-1K-0603" prefix="R">
<description>RES SMD 1K OHM 0.5% 1/5W 0603 $ 0.17<br>
https://www.digikey.com/product-detail/en/panasonic-electronic-components/ERJ-PB3D1001V/P20283CT-ND/6214538<br>
Panasonic</description>
<gates>
<gate name="G$1" symbol="RESISTOR" x="0" y="0"/>
</gates>
<devices>
<device name="" package="0603-RES">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<technologies>
<technology name="">
<attribute name="VALUE" value="1K" constant="no"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="USB-MICRO-B-SOCKET-AMPHENOL">
<description>CONN USB MICRO B RECPT SMT R/A $0.42<br>
Amphenol FCI 10118194-0001LF<br>
https://www.digikey.com/products/en?keywords=609-4618-1-nd</description>
<gates>
<gate name="G$1" symbol="USB-WITH-ID" x="0" y="-2.54"/>
</gates>
<devices>
<device name="" package="USB-B-SMT-AMPHENOL">
<connects>
<connect gate="G$1" pin="D+" pad="3"/>
<connect gate="G$1" pin="D-" pad="2"/>
<connect gate="G$1" pin="GND" pad="5"/>
<connect gate="G$1" pin="ID" pad="4"/>
<connect gate="G$1" pin="VBUS" pad="1"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="SWITCH-MOM-4.5" prefix="S">
<description>Manufacturer: E-Switch
Manufacturer Part Number: TL3305AF160QG
Description: SWITCH TACTILE SPST-NO 50MA 12V
Detailed Description: Tactile Switch SPST-NO Top Actuated Surface Mount
$0.20
https://www.digikey.com/product-detail/en/e-switch/TL3305AF160QG/EG5350CT-ND/5816195</description>
<gates>
<gate name="G$1" symbol="SWITCH-MOM-4.5" x="0" y="0"/>
</gates>
<devices>
<device name="" package="SWITCH-MOM-4.5">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
<connect gate="G$1" pin="3" pad="3"/>
<connect gate="G$1" pin="4" pad="4"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="JST_2PIN" prefix="CN" uservalue="yes">
<description><b>JST 2-Pin Connectors of various flavors</b>

<ul>
<li>SMT-RA (S2B-PH-SM4) 4UConnector #17311</li>
<li>SMT  (B2B-PH-SM4)</li>
<li>THM-RA (S2B-PH)</li>
<li>THM  (B2B-PH)</li>
</ul>

1=+<br>
2=-<br>
THM: CONN HEADER PH TOP 2POS 2MM $0.17<br>
B2B-PH-K-S(LF)(SN)<br>
https://www.digikey.com/product-detail/en/jst-sales-america-inc/B2B-PH-K-S-LF-SN/455-1704-ND/926611<br></description>
<gates>
<gate name="G$1" symbol="PINHD2" x="2.54" y="0"/>
</gates>
<devices>
<device name="-SMT-RA" package="JST-PH-2-SMT-RA">
<connects>
<connect gate="G$1" pin="1" pad="2"/>
<connect gate="G$1" pin="2" pad="1"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
<device name="-THM" package="JST-PH-2-THM">
<connects>
<connect gate="G$1" pin="1" pad="2"/>
<connect gate="G$1" pin="2" pad="1"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
<device name="-THM-RA" package="JST-PH-2-THM-RA">
<connects>
<connect gate="G$1" pin="1" pad="2"/>
<connect gate="G$1" pin="2" pad="1"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
<device name="-SMT" package="JST-PH-2-SMT">
<connects>
<connect gate="G$1" pin="1" pad="2"/>
<connect gate="G$1" pin="2" pad="1"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
<deviceset name="M02" prefix="JP">
<description>Standard 2-pin 0.1" header. Use with <br>
- straight break away headers ( PRT-00116)<br>
- right angle break away headers (PRT-00553)<br>
- swiss pins (PRT-00743)<br>
- machine pins (PRT-00117)<br>
- female headers (PRT-00115)<br><br>

 Molex polarized connector foot print use with: PRT-08233 with associated crimp pins and housings.<br><br>

2.54_SCREWTERM for use with  PRT-10571.<br><br>

3.5mm Screw Terminal footprints for  PRT-08084<br><br>

5mm Screw Terminal footprints for use with PRT-08432</description>
<gates>
<gate name="G$1" symbol="M02" x="-2.54" y="0"/>
</gates>
<devices>
<device name="PTH" package="1X02">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<technologies>
<technology name=""/>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
<library name="Particle-Devices">
<description><h3>Reference foot prints for Particle devices</h3>
In this library you'll find foot prints to make circuit boards using the Particle devices: Spark Core, Photon and Electron.<br><br>
There are for reference and you may need to adjust them for your application. See https://docs.particle.io for more details on the recommended layouts for Particle devices.
<br><br>
<b>Licensing:</b> Designed by Particle. Distributed under a Creative Commons Attribution, Share-Alike license. Development kits based on this library should be distributed under a similar license. Commercial products using this library as a reference design need not comply with this license; further questions can be sent to hello@particle.io. Check license.txt for more information.</description>
<packages>
<package name="E0" urn="urn:adsk.eagle:footprint:5952893/1">
<smd name="1" x="-0.008" y="2" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="2" x="-0.008" y="4" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="3" x="-0.008" y="6" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="4" x="-0.008" y="8" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="5" x="-0.008" y="10" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="6" x="-0.008" y="12" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="7" x="-0.008" y="14" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="8" x="-0.008" y="16" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="9" x="-0.008" y="18" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="10" x="-0.008" y="20" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="11" x="-0.008" y="22" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="12" x="-0.008" y="24" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="13" x="-0.008" y="26" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="14" x="-0.008" y="28" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="15" x="-0.008" y="30" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="16" x="-0.008" y="32" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="17" x="-0.008" y="34" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="18" x="-0.008" y="36" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="19" x="-0.008" y="38" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="20" x="-0.008" y="40" dx="2.5" dy="1.4" layer="1" roundness="15"/>
<smd name="21" x="2" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="22" x="4" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="23" x="6" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="24" x="8" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="25" x="10" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="26" x="12" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="27" x="14" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="28" x="16" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="29" x="18" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="30" x="20" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="31" x="22" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="32" x="24" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="33" x="26" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="34" x="28" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="35" x="30" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="36" x="32" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="37" x="34" y="43.008" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R270"/>
<smd name="38" x="36.008" y="40" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="39" x="36.008" y="38" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="40" x="36.008" y="36" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="41" x="36.008" y="34" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="42" x="36.008" y="32" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="43" x="36.008" y="30" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="44" x="36.008" y="28" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="45" x="36.008" y="26" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="46" x="36.008" y="24" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="47" x="36.008" y="22" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="48" x="36.008" y="20" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="49" x="36.008" y="18" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="50" x="36.008" y="16" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="51" x="36.008" y="14" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="52" x="36.008" y="12" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="53" x="36.008" y="10" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="54" x="36.008" y="8" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="55" x="36.008" y="6" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="56" x="36.008" y="4" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="57" x="36.008" y="2" dx="2.5" dy="1.4" layer="1" roundness="15" rot="R180"/>
<smd name="58" x="32" y="3" dx="2" dy="2" layer="1" roundness="15"/>
<smd name="60" x="4" y="39" dx="2" dy="2" layer="1" roundness="15"/>
<smd name="59" x="32" y="39" dx="2" dy="2" layer="1" roundness="15"/>
<smd name="61" x="24" y="29" dx="1" dy="1" layer="1"/>
<smd name="62" x="26" y="29" dx="1" dy="1" layer="1"/>
<smd name="63" x="28" y="29" dx="1" dy="1" layer="1"/>
<wire x1="0" y1="0" x2="0" y2="43" width="0.127" layer="51"/>
<wire x1="0" y1="43" x2="36" y2="43" width="0.127" layer="51"/>
<wire x1="36" y1="43" x2="36" y2="0" width="0.127" layer="51"/>
<wire x1="36" y1="0" x2="0" y2="0" width="0.127" layer="51"/>
<wire x1="0" y1="1" x2="0" y2="0" width="0.127" layer="21"/>
<wire x1="0" y1="0" x2="36" y2="0" width="0.127" layer="21"/>
<wire x1="36" y1="0" x2="36" y2="1" width="0.127" layer="21"/>
<wire x1="35" y1="43" x2="36" y2="43" width="0.127" layer="21"/>
<wire x1="36" y1="43" x2="36" y2="41" width="0.127" layer="21"/>
<wire x1="0" y1="41" x2="0" y2="43" width="0.127" layer="21"/>
<wire x1="0" y1="43" x2="1" y2="43" width="0.127" layer="21"/>
</package>
</packages>
<packages3d>
<package3d name="E0" urn="urn:adsk.eagle:package:5952915/1" type="box">
<packageinstances>
<packageinstance name="E0"/>
</packageinstances>
</package3d>
</packages3d>
<symbols>
<symbol name="E0" urn="urn:adsk.eagle:symbol:5952907/1">
<pin name="DAC" x="-19.05" y="26.67" length="short"/>
<pin name="WKP" x="-19.05" y="29.21" length="short"/>
<pin name="GND@18" x="0" y="-34.29" length="short" rot="R90"/>
<pin name="RX" x="-19.05" y="33.02" length="short"/>
<pin name="TX" x="-19.05" y="35.56" length="short"/>
<pin name="GND@15" x="-2.54" y="-34.29" length="short" rot="R90"/>
<pin name="USB+" x="-19.05" y="-10.16" length="short"/>
<pin name="USB-" x="-19.05" y="-12.7" length="short"/>
<pin name="GND@12" x="-5.08" y="-34.29" length="short" rot="R90"/>
<pin name="VBAT" x="7.62" y="41.91" length="short" rot="R270"/>
<pin name="VDDA" x="5.08" y="41.91" length="short" rot="R270"/>
<pin name="NC@6" x="19.05" y="35.56" length="short" rot="R180"/>
<pin name="PMID" x="-2.54" y="41.91" length="short" rot="R270"/>
<pin name="GND@7" x="-7.62" y="-34.29" length="short" rot="R90"/>
<pin name="3V3" x="2.54" y="41.91" length="short" rot="R270"/>
<pin name="LIPO" x="-5.08" y="41.91" length="short" rot="R270"/>
<pin name="VBUS" x="-19.05" y="-7.62" length="short"/>
<pin name="GND@2" x="-12.7" y="-34.29" length="short" rot="R90"/>
<pin name="VIN" x="-7.62" y="41.91" length="short" rot="R270"/>
<pin name="D4" x="19.05" y="21.59" length="short" rot="R180"/>
<pin name="D3" x="19.05" y="19.05" length="short" rot="R180"/>
<pin name="D2" x="19.05" y="16.51" length="short" rot="R180"/>
<pin name="D1" x="19.05" y="13.97" length="short" rot="R180"/>
<pin name="D0" x="19.05" y="11.43" length="short" rot="R180"/>
<pin name="GND@51" x="10.16" y="-34.29" length="short" rot="R90"/>
<pin name="C5" x="19.05" y="8.89" length="short" rot="R180"/>
<pin name="C4" x="19.05" y="6.35" length="short" rot="R180"/>
<pin name="C3" x="19.05" y="3.81" length="short" rot="R180"/>
<pin name="C2" x="19.05" y="1.27" length="short" rot="R180"/>
<pin name="C1" x="19.05" y="-1.27" length="short" rot="R180"/>
<pin name="C0" x="19.05" y="-3.81" length="short" rot="R180"/>
<pin name="NC@50" x="19.05" y="33.02" length="short" rot="R180"/>
<pin name="GND@34" x="5.08" y="-34.29" length="short" rot="R90"/>
<pin name="BLUE" x="19.05" y="-12.7" length="short" rot="R180"/>
<pin name="GREEN" x="19.05" y="-10.16" length="short" rot="R180"/>
<pin name="RED" x="19.05" y="-7.62" length="short" rot="R180"/>
<pin name="!MODE" x="19.05" y="-16.51" length="short" rot="R180"/>
<pin name="!RESET" x="19.05" y="-19.05" length="short" rot="R180"/>
<pin name="STAT" x="19.05" y="-21.59" length="short" rot="R180"/>
<pin name="A5" x="-19.05" y="24.13" length="short"/>
<pin name="A4" x="-19.05" y="21.59" length="short"/>
<pin name="A3" x="-19.05" y="19.05" length="short"/>
<pin name="A2" x="-19.05" y="16.51" length="short"/>
<pin name="A1" x="-19.05" y="13.97" length="short"/>
<pin name="A0" x="-19.05" y="11.43" length="short"/>
<pin name="GND@27" x="2.54" y="-34.29" length="short" rot="R90"/>
<pin name="B5" x="-19.05" y="8.89" length="short"/>
<pin name="B4" x="-19.05" y="6.35" length="short"/>
<pin name="B3" x="-19.05" y="3.81" length="short"/>
<pin name="B2" x="-19.05" y="1.27" length="short"/>
<pin name="B1" x="-19.05" y="-1.27" length="short"/>
<pin name="B0" x="-19.05" y="-3.81" length="short"/>
<pin name="GND@43" x="7.62" y="-34.29" length="short" rot="R90"/>
<pin name="D7" x="19.05" y="29.21" length="short" rot="R180"/>
<pin name="D6" x="19.05" y="26.67" length="short" rot="R180"/>
<pin name="D5" x="19.05" y="24.13" length="short" rot="R180"/>
<pin name="GND@PADS" x="12.7" y="-34.29" length="short" rot="R90"/>
<pin name="UB_VUSB_DET" x="-19.05" y="-21.59" length="short"/>
<pin name="UB_USB-" x="-19.05" y="-19.05" length="short"/>
<pin name="UB_USB+" x="-19.05" y="-16.51" length="short"/>
<pin name="GND@4" x="-10.16" y="-34.29" length="short" rot="R90"/>
<wire x1="-16.51" y1="39.37" x2="16.51" y2="39.37" width="0.254" layer="94"/>
<wire x1="16.51" y1="39.37" x2="16.51" y2="-31.75" width="0.254" layer="94"/>
<wire x1="16.51" y1="-31.75" x2="-16.51" y2="-31.75" width="0.254" layer="94"/>
<wire x1="-16.51" y1="-31.75" x2="-16.51" y2="39.37" width="0.254" layer="94"/>
<text x="0" y="0" size="1.778" layer="94" align="center">PARTICLE
E0</text>
</symbol>
</symbols>
<devicesets>
<deviceset name="E0" urn="urn:adsk.eagle:component:5952928/1" prefix="U">
<description>Particle’s E Series module platform is the World’s simplest
solution for developing

extension: sch