text:
package model

// https://m.blog.naver.com/PostView.nhn?blogId=s0215hc&logNo=221475878207&proxyReferer=https:%2F%2Fwww.google.com%2F
// https://blog.lael.be/post/917
import (
	"github.com/go-playground/validator"
	"github.com/jinzhu/gorm"
)

type TradeMarkInfo struct {
	gorm.Model

	SerialNumber TrimString `xml:"SerialNumber" json:"serialNumber"`

	ApplicationNumber  string     `xml:"ApplicationNumber" json:"applicationNumber" gorm:"application_number;unique;not null" validate:"required"`
	AppReferenceNumber TrimString `xml:"AppReferenceNumber" json:"appReferenceNumber" gorm:"app_reference_number"`
	ApplicationDate    TrimString `xml:"ApplicationDate" json:"applicationDate"`
	PublicNumber       TrimString `xml:"PublicNumber" json:"publicNumber"`

	PublicDate               TrimString `xml:"PublicDate" json:"publicDate"`
	RegistrationPublicNumber TrimString `xml:"RegistrationPublicNumber" json:"registrationPublicNumber"`
	RegistrationPublicDate   TrimString `xml:"RegistrationPublicDate" json:"registrationPublicDate"`
	RegistrationNumber       TrimString `xml:"RegistrationNumber" json:"registrationNumber"`
	RegReferenceNumber       TrimString `xml:"RegReferenceNumber" json:"regReferenceNumber"`

	RegistrationDate       TrimString `xml:"RegistrationDate" json:"registrationDate"`
	PriorityClaimNumber    TrimString `xml:"PriorityClaimNumber" json:"priorityClaimNumber"`
	PriorityClaimDate      TrimString `xml:"PriorityClaimDate" json:"priorityClaimDate"`
	ApplicationStatus      TrimString `xml:"ApplicationStatus" json:"applicationStatus"`
	GoodClassificationCode TrimString `xml:"GoodClassificationCode" json:"goodClassificationCode"`

	ViennaCode                  TrimString `xml:"ViennaCode" json:"viennaCode"`
	ApplicantName               TrimString `xml:"ApplicantName" json:"applicantName"`
	AgentName                   TrimString `xml:"AgentName" json:"agentName"`
	RegistrationRightholderName TrimString `xml:"RegistrationRightholderName" json:"registrationRightholderName"`
	Title                       TrimString `xml:"Title" json:"title"`

	FulltextExistFlag TrimString `xml:"FulltextExistFlag" json:"fulltextExistFlag"`
	ImagePath         TrimString `xml:"ImagePath" json:"imagePath"`
	ThumbnailPath     TrimString `xml:"ThumbnailPath" json:"thumbnailPath"`

	TrademarkDesignationGoodstInfos []TrademarkDesignationGoodstInfo `json:"trademarkDesignationGoodstInfos"`
}

func (data *TradeMarkInfo) Valid() bool {
	validate = validator.New()
	err := validate.Struct(data)

	if err != nil {

		// this check is only needed when your code could produce
		// an invalid value for validation such as interface with nil
		// value most including myself do not usually have code like this.
		// if _, ok := err.(*validator.InvalidValidationError); ok {
		// 	// fmt.Println(err)
		// 	return false
		// }

		// for _, err := range err.(validator.ValidationErrors) {
		// 	fmt.Println(err.Namespace())
		// 	fmt.Println(err.Field())
		// 	fmt.Println(err.StructNamespace())
		// 	fmt.Println(err.StructField())
		// 	fmt.Println(err.Tag())
		// 	fmt.Println(err.ActualTag())
		// 	fmt.Println(err.Kind())
		// 	fmt.Println(err.Type())
		// 	fmt.Println(err.Value())
		// 	fmt.Println(err.Param())
		// }

		// from here you can create your own error messages in whatever language you wish
		return false
	}
	return true
}

type TotalSearchCount TrimString

repository: jiwoniy/otmk-kipris-collector

repo_name: jiwoniy/otmk-kipris-collector


text:
//
// Created by Simon Akpoveso on 14/12/2020.
//

#ifndef LINKEDLISTS_SINGLYLINKEDLISTS_H
#define LINKEDLISTS_SINGLYLINKEDLISTS_H

template <class T>
struct Node{
    T data;
    Node *next;
};

template <class T>
class SinglyLinkedList{
private:
    Node<T> *head_node;
    int size = 0;
    void delete_nodes();
    void update_list_size(bool increase); //A true flag adds to size and vice versa
public:
    void add_first(T data);
    void add_last(T data);
    Node<T>* get_head_pointer();
    int get_list_size();
    void add_at_position(int position, T data); //0 indexed
    void remove_first();
    void remove_last();
    void remove_at_position(int position); //0 indexed
public:
    SinglyLinkedList();

    virtual ~SinglyLinkedList();
};
/*
 * Have to include this because I am using templates link for more description
 * https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file
 * */
#include "SinglyLinkedLists.tpp"

#endif //LINKEDLISTS_SINGLYLINKEDLISTS_H

license: MIT

repository: iamveso/data-structures-all-langs

license_type: permissive

repo_name: iamveso/data-structures-all-langs

branch_name: refs/heads/main

gha_license_id: MIT

extension: h


text:
@article{Boozer2012,
author = {Boozer, Allen H},
doi = {10.1063/1.3703327},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Boozer - 2012 - Theory of tokamak disruptions.pdf:pdf},
journal = {Phys. Plasmas},
title = {{Theory of tokamak disruptions}},
volume = {19},
year = {2012}
}
@article{Hollmann2005,
author = {Hollmann, E M and Jernigan, T C and Hollmann, E M and Humphreys, D A and Parks, P B and Hender, T C and Wesley, J C and Granetz, R S and Hollmann, E M and Control, Plasma and Hollmann, E M and Austin, M E and Lehnen, M and Alonso, A and Pautasso, G and Fuchs, C J and Pautasso, G and Mlynek, A},
doi = {10.1088/0029-5515/45/9/003},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Hollmann et al. - 2005 - Measurements of impurity and heat dynamics during noble gas jet-initiated fast plasma shutdown for disruption m.pdf:pdf},
journal = {Nucl. Fusion},
title = {{Measurements of impurity and heat dynamics during noble gas jet-initiated fast plasma shutdown for disruption mitigation in DIII-D}},
year = {2005}
}
@article{Kasada2015,
author = {Kasada, Ryuta and Ishii, Daiki and Ando, Masami and Tanigawa, Hiroyasu and Ohata, Mitsuru},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Kasada et al. - 2015 - Dynamic tensile properties of reduced-activation ferritic steel F82H.pdf:pdf},
keywords = {dynamic tensile properties,high-speed tensile test,reduced-activation ferritic steel},
pages = {146--151},
title = {{Dynamic tensile properties of reduced-activation ferritic steel F82H}},
volume = {100},
year = {2015}
}
@article{Kotulski2010,
author = {Kotulski, Joseph D and Coats, Rebecca S and Pasik, Michael F and Ulrickson, Michael},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Kotulski et al. - 2010 - Electromagnetic Analysis of Forces and Torques on the Baseline and Enhanced ITER Shield Modules due to Plasma D.pdf:pdf},
journal = {IEEE Trans. Plasma Sci.},
number = {4},
pages = {1047--1051},
title = {{Electromagnetic Analysis of Forces and Torques on the Baseline and Enhanced ITER Shield Modules due to Plasma Disruption}},
volume = {38},
year = {2010}
}
@article{Kotulski2011,
author = {Kotulski, Joseph D and Ulrickson, Mike},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Kotulski, Ulrickson - 2011 - The Analysis of the Electromagnetic Loads on Selected ITER Blanket Shield Modules due to Induced Eddy and H.pdf:pdf},
isbn = {9781457706684},
journal = {IEEE/NPSS 24th Symp. Fusion Eng.},
keywords = {-iter blanket modules,eddy currents,electromagnetic loads,halo currents},
pages = {0--4},
title = {{The Analysis of the Electromagnetic Loads on Selected ITER Blanket Shield Modules due to Induced Eddy and Halo currents}},
year = {2011}
}
@article{Lehnen,
author = {Lehnen, M and Aleynikova, K and Aleynikov, P B and Campbell, D J and Drewelow, P and Eidietis, N W and Granetz, R S and Gribov, Y and Hartmann, N and Hollmann, E M and Izzo, V A and Jachmich, S and Kocan, M and Koslowski, H R and Kovalenko, D and Kruezi, U and Loarte, A and Maruyama, S and Matthews, G F and Parks, P B and Pautasso, G and Pitts, R A and Reux, C and Riccardo, V and Roccella, R and Snipes, J A and Thornton, A J and Vries, P C De},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/MHD/Lehnen et al. - Unknown - Disruptions in ITER and Strategies for their Control and Mitigation.pdf:pdf},
number = {14},
title = {{Disruptions in ITER and Strategies for their Control and Mitigation}},
year = {2016}
}
@article{Liu2016,
author = {Liu, Yueqiang and Ryan, D and Kirk, A and Liu, Yueqiang and Ham, C J and Kirk, A and Li, Li and Loarte, A and Ryan, D A},
doi = {10.1088/0741-3335/58/11/114005},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Liu et al. - 2016 - ELM control with RMP, plasma response models and the role of edge peeling response.pdf:pdf},
journal = {Plasma Phys. Control. Fusion},
title = {{ELM control with RMP, plasma response models and the role of edge peeling response}},
volume = {58},
year = {2016}
}
@article{Schuller1995,
author = {Schuller, F.C.},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA PHYSICS/Schuller - 1995 - Disruptions in tokamaks.pdf:pdf},
journal = {Plasma Phys. Control. Fusion},
title = {{Disruptions in tokamaks}},
year = {1995}
}
@article{Sheffield1994,
author = {Sheffield, John},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/FUSION ENERGY TECHNOLOGY/Sheffield - 1994 - The physics of magnetic fusion reactors.pdf:pdf},
number = {3},
title = {{The physics of magnetic fusion reactors}},
volume = {66},
year = {1994}
}
@article{Turner1988,
author = {Turner, L.R.},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Turner - 1988 - Eddy Current Analysis in Fusion Devices.pdf:pdf},
title = {{Eddy Current Analysis in Fusion Devices}},
year = {1988}
}
@article{Turner1990,
author = {Turner, Larry R},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Turner - 1990 - Electromagnetic computations for fusion devices.pdf:pdf},
journal = {IEEE Trans. Magn.},
number = {2},
title = {{Electromagnetic computations for fusion devices}},
volume = {26},
year = {1990}
}
@article{Gribov2007,
author = {Y., Gribov. and Humphreys, D. and Kajiwara, K.},
doi = {10.1088/0029-5515/47/6/S08},
file = {:C$\backslash$:/Users/Charlie/Dropbox/UCLA/RESEARCH/{\_}{\_}SCIENTIFIC{\_}LITERATURE/PLASMA DISRUPTIONS/Y., Humphreys, Kajiwara - 2007 - Chapter 8 Plasma operation and control.pdf:pdf},
journal = {Nucl. Fusion},
title = {{Chapter 8: Plasma operation and control}},
volume = {47},
year = {2007}
}

repository: charleskawczynski/handybelt

repo_name: charleskawczynski/handybelt

branch_name: refs/heads/master

extension: bib


text:
// Copyright 2020-Present VMware, Inc.
// SPDX-License-Identifier: Apache-2.0

package clusterstack

import (
	"io"
	"strings"

	"github.com/pivotal/kpack/pkg/apis/build/v1alpha1"
	corev1alpha1 "github.com/pivotal/kpack/pkg/apis/core/v1alpha1"
	"github.com/spf13/cobra"
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

	"github.com/vmware-tanzu/kpack-cli/pkg/commands"
	"github.com/vmware-tanzu/kpack-cli/pkg/k8s"
)

func NewStatusCommand(clientSetProvider k8s.ClientSetProvider) *cobra.Command {
	var (
		verbose bool
	)

	cmd := &cobra.Command{
		Use:          "status <name>",
		Short:        "Display cluster stack status",
		Long:         `Prints detailed information about the status of a specific cluster-scoped stack.`,
		Example:      "kp clusterstack status my-stack",
		Args:         commands.ExactArgsWithUsage(1),
		SilenceUsage: true,
		RunE: func(cmd *cobra.Command, args []string) error {
			cs, err := clientSetProvider.GetClientSet("")
			if err != nil {
				return err
			}

			stack, err := cs.KpackClient.KpackV1alpha1().ClusterStacks().Get(cmd.Context(), args[0], metav1.GetOptions{})
			if err != nil {
				return err
			}

			return displayStackStatus(cmd.OutOrStdout(), stack, verbose)
		},
	}

	cmd.Flags().BoolVarP(&verbose, "verbose", "v", false, "display mixins")

	return cmd
}

func displayStackStatus(out io.Writer, s *v1alpha1.ClusterStack, verbose bool) error {
	writer := commands.NewStatusWriter(out)

	items := []string{
		"Status", getStatusText(s),
		"Id", s.Status.Id,
		"Run Image", s.Status.RunImage.LatestImage,
		"Build Image", s.Status.BuildImage.LatestImage,
	}

	if verbose {
		items = append(items, "Mixins", strings.Join(s.Status.Mixins, ", "))
	}

	if err := writer.AddBlock("", items...); err != nil {
		return err
	}

	return writer.Write()
}

func getStatusText(s *v1alpha1.ClusterStack) string {
	if cond := s.Status.GetCondition(corev1alpha1.ConditionReady); cond != nil {
		if cond.Status == corev1.ConditionTrue {
			return "Ready"
		} else if cond.Status == corev1.ConditionFalse {
			return "Not Ready - " + cond.Message
		}
	}
	return "Unknown"
}

repository: carlosonunez/kpack-cli

repo_name: carlosonunez/kpack-cli

extension: go


text:
require linux.inc
require linux-ixp4xx.inc

VANILLA_VERSION = "2.6.23"
KERNEL_RELEASE = "2.6.23.14"

# If you use a rc, you will need to use this:
#PV = "${VANILLA_VERSION}+${KERNEL_RELEASE}+svnr${SRCREV}"

PV = "${KERNEL_RELEASE}+svnr${SRCREV}"
PR = "r0"

SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
           ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-${KERNEL_RELEASE}.bz2;patch=1 \
	   svn://svn.nslu2-linux.org/svnroot/kernel/trunk/patches;module=${VANILLA_VERSION};proto=http \
	   file://defconfig-${KERNEL_RELEASE}"

S = "${WORKDIR}/linux-${VANILLA_VERSION}"

# Apply the patches from the nslu2-linux project (after the patches in SRC_URI)
do_postpatch() {
	# Move away OE patches which have been already applied.
	mv ${S}/patches ${S}/patches.oe
	mv .pc .pc.oe

	# Move the NSLU2 patches in place for quilt and apply them.
        mv ${WORKDIR}/${VANILLA_VERSION} ${S}/patches && cd ${S} && quilt push -av

	# Store the NSLU2 patches
        mv ${S}/patches ${S}/patches.ixp4xx
        mv .pc .pc.ixp4xx

 	# And move back the OE patches
	mv ${S}/patches.oe ${S}/patches
	mv .pc.oe .pc

	# Copy the defconfig into ${WORKDIR}
        mv ${WORKDIR}/defconfig-${KERNEL_RELEASE} ${WORKDIR}/defconfig
}

addtask postpatch after do_patch before do_configure

extension: bb


text:
@inproceedings{Ninness&Hjalmarsson:02b,
 address = {Barcelona, Spain},
 author = {B. Ninness and H. Hjalmarsson},
 booktitle = {15th World Congress on Automatic Control},
 month = {},
 organization = {},
 pages = {1055-1060},
 title = {Exact Quantification of variance error},
 year = {2002}
}

repository: hhjalmars/academic-kickstart

repo_name: hhjalmars/academic-kickstart


text:
package konnect

import (
	"context"
	"encoding/json"
)

type RuntimeGroupService service

// List fetches a list of Service packages.
func (s *RuntimeGroupService) List(ctx context.Context,
	opt *ListOpt,
) ([]*RuntimeGroup, *ListOpt, error) {
	data, next, err := s.client.list(ctx, "/konnect-api/api/runtime_groups", opt)
	if err != nil {
		return nil, nil, err
	}
	var runtimeGroups []*RuntimeGroup

	for _, object := range data {
		b, err := object.MarshalJSON()
		if err != nil {
			return nil, nil, err
		}
		var runtimeGroup RuntimeGroup
		err = json.Unmarshal(b, &runtimeGroup)
		if err != nil {
			return nil, nil, err
		}
		runtimeGroups = append(runtimeGroups, &runtimeGroup)
	}

	return runtimeGroups, next, nil
}

repository: Tieske/deck

repo_name: Tieske/deck


text:
package main

import (
	"crypto/sha1"
	"encoding/hex"
	"encoding/json"
	"fmt"
	"strings"
	"time"

	mqtt "github.com/eclipse/paho.mqtt.golang"
)

type Message struct {
	Wisdom string
	Secret string
	Team   string
}

type Result struct {
	One   string
	Two   string
	Three string
	Four  string
}

type Payload struct {
	Time   time.Time `json:"time"`
	Wisdom string    `json:"wisdom"`
	Secret string    `json:"secret"`
	Team   string    `json:"team"`
}

func parseMessage(data *Message, result *Result) {
	switch data.Wisdom[:1] {
	case "1":
		result.One = data.Wisdom
	case "2":
		result.Two = data.Wisdom
	case "3":
		result.Three = data.Wisdom
	case "4":
		result.Four = data.Wisdom
	}
}

func checkResult(result *Result) bool {
	if strings.HasPrefix(result.One, "1") &&
		strings.HasPrefix(result.Two, "2") &&
		strings.HasPrefix(result.Three, "3") &&
		strings.HasPrefix(result.Four, "4") {
		return true
	}
	return false
}

func hashResponse(data *Message, result *Result) []byte {
	var payload Payload
	payload.Wisdom = result.One[3:] + result.Two[2:] + result.Three[2:] + result.Four[2:]
	payload.Secret = hex.EncodeToString(sha1.New().Sum([]byte(data.Secret + "Za_stepuhu + Vlad")))
	payload.Time = time.Now()
	payload.Team = "Za_stepuhu + Vlad"
	hashed, _ := json.Marshal(&payload)
	return hashed
}

func main() {
	// rutine for parallel handling
	done := make(chan bool)
	// setting options
	host := "localhost"
	opts := mqtt.NewClientOptions().AddBroker(fmt.Sprintf("tcp://%s:1883", host))
	// creating instance of client
	client := mqtt.NewClient(opts)
	// awaiting for it connection
	client.Connect().Wait()
	// creating instance of final message
	var result Result
	go func() {
		// subscription
		client.Subscribe("/test/inception", 0, func(client mqtt.Client, message mqtt.Message) {
			// struct for parsing for message
			var data Message
			// from json to struct
			if err := json.Unmarshal(message.Payload(), &data); err != nil {
				return
			}
			fmt.Printf(data.Wisdom)
			fmt.Printf("\n")
			// parse message to special struct
			parseMessage(&data, &result)
			// if we have enough messages we send reponse
			if checkResult(&result) {
				// hashing answer
				hashed := hashResponse(&data, &result)
				// sending answer
				client.Publish("/test/result", 0, false, hashed)
				done <- true
			}
		})
	}()
	<-done // Awaiting for all requests
}

repository: KHYehor/go-practice

repo_name: KHYehor/go-practice


text:
@article{Huang-2021-Coupled,
    title = "Coupled model for water, vapour, heat, stress and strain fields in variably saturated freezing soils",
    author = "Huang, Xiang  and
      Rudolph, David L.",
    journal = "Advances in Water Resources, Volume 154",
    volume = "154",
    year = "2021",
    publisher = "Elsevier BV",
    url = "https://aclanthology.org/G21-89001",
    doi = "10.1016/j.advwatres.2021.103945",
    pages = "103945",
    abstract = "{\mbox{$\bullet$}} Coupled modelling of water flow, heat transfer, water-ice phase change and ice lens formation in deformable, variably saturated freezing soils. {\mbox{$\bullet$}} Moisture, vapour, temperature and stress-strain fields significantly interact with each other and should be fully accounted for within the modeling platform. {\mbox{$\bullet$}} The large increases in effective stress ahead of the freezing front causes substantial compaction in the unfrozen zone. Although many frost heave and freezing soil models have been developed in the past decades, saturated conditions are commonly assumed and/or the behavior of pore ice rather than ice lenses are conventionally predicted. This study presents a fully coupled thermal-hydraulic-mechanical (THM) model for variably saturated freezing soil, which examines a number of processes. These include heat conduction and convection, phase change, water (moisture) movement through cryosuction, and the development of independent ice lenses. Instead of directly solving for the pore pressure distributions, the void ratio is considered as a dependent variable related to the degree of water saturation. Both the stress-deformation and ice lens segregation are inextricably linked to the evolution of the void ratio as well. The coupled mechanism and performance of the model is first verified by comparison with laboratory freezing experiment observations obtained from literature and then is further evaluated by a series of parametric analyses. The results show that the calculated profiles of temperature, water content and frost heave are in good agreement with literature experimental data, demonstrating that the proposed THM coupling model appropriately represents the mechanisms of heat-moisture-deformation in variably saturated freezing soil. In addition, the sensitivity analysis illustrates that in the test cases considered, thermally-induced cryosuction due to phase change is the main driving force for water migrating towards the freezing front. Also, ahead of the freezing front, a significant increase in effective stress developed due to the elevated negative pore pressure and expansion of ice lenses causing substantial consolidation and reduction in porosity in the unfrozen zone. As the freezing front penetrated with time, the temperature, moisture, vapour and stress-strain fields interact with each other. The distribution of water vapour was mainly controlled by the temperature gradient and location of the freezing front. Both the initial degree of saturation and hydraulic conductivity affected the distribution of pore pressure and displacements. Higher compression moduli and lower overburden load led to greater frost heave but exerted little influence on the temperature field. Finally, the two-sided freezing scenario for soils underlain by permafrost made the middle ice-poor zone highly compacted with ice lenses accumulating near both freezing boundaries.",
}

repository: gwf-uwaterloo/gwf-publications

repo_name: gwf-uwaterloo/gwf-publications

gha_language: Python


text:
SUMMARY = "File manager application for webOS ports"
SECTION = "webos/apps"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984"

inherit webos_public_repo
inherit webos_arch_indep
inherit webos_enyojs_application
inherit webos_system_bus

PV = "1.0.0+gitr${SRCPV}"

SRCREV = "0b664e9e06c8381b84640c879b25b58a3a12aa84"
SRC_URI = "git://github.com/webOS-ports/${PN};protocol=git"
S = "${WORKDIR}/git"

WEBOS_SYSTEM_BUS_FILES_LOCATION = "${S}/service/dbus"

do_install_append() {
    install -d ${D}${webos_servicesdir}/org.webosports.app.filemanager.service
    cp -r ${S}/service/* ${D}${webos_servicesdir}/org.webosports.app.filemanager.service/
}

FILES_${PN} += "${webos_servicesdir}/org.webosports.app.filemanager.service"

repository: nizovn/meta-webos-ports

repo_name: nizovn/meta-webos-ports


text:
using Floreview.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace Floreview.ViewModels.CMS
{
    public class StoreVM
    {
        #region Fields & Props
        [Required(ErrorMessage = "Godverdomme wa is me da nu?")]
        public Company Company { get; set; }

        public HttpPostedFileBase CompanyAvatar { get; set; }

        public HttpPostedFileBase FloristAvatar { get; set; }

        public HttpPostedFileBase[] CompanyImages { get; set; }
        #endregion
    }
}

repository: mammoetsaus/Floreview

repo_name: mammoetsaus/Floreview

extension: cs


text:
package esiv3

import (
	"net/http"
	"time"

	"github.com/gorilla/mux"
)

var _ time.Time
var _ = mux.NewRouter

func GetAlliancesAllianceId(w http.ResponseWriter, r *http.Request) {

	var (
		localV     interface{}
		err        error
		allianceId int32
		datasource string
	)
	// shut up warnings
	localV = localV
	err = err

	j := `{
  "creator_corporation_id" : 45678,
  "creator_id" : 12345,
  "date_founded" : "2016-06-26T21:00:00Z",
  "executor_corporation_id" : 98356193,
  "name" : "C C P Alliance",
  "ticker" : "<C C P>"
}`
	vars := mux.Vars(r)
	localV, err = processParameters(allianceId, vars["alliance_id"])
	if err != nil {
		errorOut(w, r, err)
		return
	}
	allianceId = localV.(int32)
	if err := r.ParseForm(); err != nil {
		errorOut(w, r, err)
		return
	}
	if r.Form.Get("datasource") != "" {
		localV, err = processParameters(datasource, r.Form.Get("datasource"))
		if err != nil {
			errorOut(w, r, err)
			return
		}
		datasource = localV.(string)
	}

	if r.Form.Get("page") != "" {
		var (
			localPage    int32
			localIntPage interface{}
		)
		localIntPage, err := processParameters(localPage, r.Form.Get("page"))
		if err != nil {
			errorOut(w, r, err)
			return
		}
		localPage = localIntPage.(int32)
		if localPage > 1 {
			w.Header().Set("Content-Type", "application/json")
			w.WriteHeader(http.StatusOK)
			w.Write([]byte("[]"))
			return
		}
	}

	w.Header().Set("Content-Type", "application/json")
	w.WriteHeader(http.StatusOK)

	w.Write([]byte(j))
}

repository: antihax/mock-esi

repo_name: antihax/mock-esi


text:
package solve0449

import (
	"fmt"
	"strconv"
	"strings"

	. "github.com/zcong1993/algo-go/pkg/tree"
)

/**
@index 449
@title 序列化和反序列化二叉搜索树
@difficulty 中等
@tags tree
@draft false
@link https://leetcode-cn.com/problems/serialize-and-deserialize-bst/
*/

type Codec struct {
}

func Constructor() Codec {
	return Codec{}
}

// Serializes a tree to a single string.
func (c *Codec) serialize(root *TreeNode) string {
	if root == nil {
		return EMPTY
	}
	sb := strings.Builder{}
	var preorder func(root *TreeNode)
	preorder = func(root *TreeNode) {
		if root == nil {
			sb.WriteString(EMPTY)
			sb.WriteString(STEP)
			return
		}
		sb.WriteString(int2string(root.Val))
		sb.WriteString(STEP)
		preorder(root.Left)
		preorder(root.Right)
	}
	preorder(root)
	return strings.TrimSuffix(sb.String(), STEP)
}

// Deserializes your encoded data to tree.
func (c *Codec) deserialize(str string) *TreeNode {
	if str == "" || str == EMPTY {
		return nil
	}
	nodes := strings.Split(str, STEP)
	index := 0
	var helper func() *TreeNode
	helper = func() *TreeNode {
		if index > len(nodes)-1 {
			return nil
		}
		last := nodes[index]
		index++
		if last == EMPTY {
			return nil
		}
		root := &TreeNode{Val: mustAtoi(last)}
		root.Left = helper()
		root.Right = helper()
		return root
	}
	return helper()
}

func int2string(i int) string {
	return fmt.Sprintf("%d", i)
}

func mustAtoi(str string) int {
	i, err := strconv.Atoi(str)
	if err != nil {
		panic(err)
	}
	return i
}


text:
#pragma once

namespace fast_io
{

namespace details
{

template<char8_t base,bool uppercase,bool point=false,char32_t dec=u8'.',std::random_access_iterator Iter,typename U>
requires (!std::signed_integral<U>)
inline constexpr auto output_base_number_impl(Iter iter,U a)
{
//number: 0:48 9:57
//upper: 65 :A 70: F
//lower: 97 :a 102 :f
	constexpr auto &table(details::shared_static_base_table<base,uppercase>::table);
	constexpr std::uint32_t pw(static_cast<std::uint32_t>(table.size()));
	constexpr std::size_t chars(table.front().size());
	for(;pw<=a;)
	{
		auto const rem(a%pw);
		a/=pw;
		my_copy_n(table[rem].data(),chars,iter-=chars);
	}
	if constexpr(chars==2)
	{
		if(base<=a)
		{
			auto const& tm(table[a]);

			if constexpr(point)
			{
				*--iter=tm[1];
				*--iter=dec;
				*--iter=tm.front();
			}
			else
			{
				my_copy_n(tm.data(),chars,iter-=chars);
			}
		}
		else
		{
			if constexpr(point)
				*--iter=dec;
			if constexpr(10 < base)
			{
				if(a<10)
					*--iter = a+0x30;
				else
				{
					if constexpr (uppercase)
						*--iter = a+55;
					else
						*--iter = a+87;
				}
			}
			else
				*--iter=a+0x30;
		}
	}
	else
	{
		if(base<=a)
		{
			auto const& tm(table[a]);
			auto i(tm.data());
			for(;*i==0x30;++i);
			auto const ed(tm.data()+chars);
			if constexpr(point)
			{
				my_copy(i+1,ed,iter-=ed-(i+1));
				*--iter=dec;
				*--iter=*i;
			}
			else
				my_copy(i,ed,iter-=ed-i);
		}
		else
		{
			if constexpr(point)
				*--iter=dec;
			if constexpr(10 < base)
			{
				if(a<10)
					*--iter = a+0x30;
				else
				{
					if constexpr (uppercase)
						*--iter = a+55;
					else
						*--iter = a+87;
				}
			}
			else
				*--iter=a+0x30;
		}
	}
	return iter;
}

template<bool sign,std::uint8_t base>
requires (0x2<base&&base<=0x36)
struct is_numerical
{
template<std::integral T>
inline constexpr bool operator()(T ch)
{
	std::make_unsigned_t<T> e(ch);
	if constexpr(sign)
	{
		if constexpr(base<=0xA)
			return (e==0x2d)||static_cast<std::uint8_t>(e-0x30)<base;
		else
		{
			constexpr std::uint8_t basem10(base-0xa);
			return (e==0x2d)||static_cast<std::uint8_t>((e-0x30)<0xA)||
				(static_cast<std::uint8_t>(e-0x41)<basem10)||
				(static_cast<std::uint8_t>(e-0x61)<basem10);
		}
	}
	else
	{
		if constexpr(base<=0xA)
			return static_cast<std::uint8_t>(e-0x30)<base;
		else
		{
			constexpr std::uint8_t basem10(base-0xa);
			return (static_cast<std::uint8_t>(e-0x30)<0xA)||
				(static_cast<std::uint8_t>(e-0x41)<basem10)||
				(static_cast<std::uint8_t>(e-0x61)<basem10);
		}
	}
}
};
template<std::integral T>
inline constexpr bool is_space(T const u)
{
	if constexpr(std::unsigned_integral<std::remove_cvref_t<T>>)
	{
		return u==0x20||(u-0x9)<0x4;
	}
	else
	{
		std::make_unsigned_t<T> const e(u);
		return e==0x20||(e-0x9)<0x4;
	}
}

namespace twodigits
{
template<char8_t base=10,bool uppercase=false,std::random_access_iterator Iter,my_unsigned_integral U>
inline constexpr std::size_t output_unsigned(Iter str,U value)
{
	std::size_t const len{chars_len<base>(value)};
	output_base_number_impl<base,uppercase>(str+=len,value);
	return len;
}

}

}
}

gha_license_id: NOASSERTION


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.6.2">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.5" unitdist="mm" unit="mm" style="lines" multiple="1" display="yes" altdistance="5" altunitdist="mil" altunit="mil"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="16" fill="1" visible="no" active="no"/>
<layer number="15" name="Route15" color="23" fill="1" 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="24" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="yes" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="yes" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="yes" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="yes" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="yes" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="yes" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="yes" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="yes" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="yes" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="yes" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="yes" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="yes" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="88" name="SimResults" color="9" fill="1" visible="no" active="no"/>
<layer number="89" name="SimProbes" color="9" fill="1" visible="no" active="no"/>
<layer number="90" name="Modules" color="5" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="yes" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="yes" active="yes"/>
<layer number="103" name="fp3" color="7" fill="1" visible="yes" active="yes"/>
<layer number="104" name="Name" color="7" fill="1" visible="yes" active="yes"/>
<layer number="105" name="Beschreib" color="9" fill="1" visible="yes" active="yes"/>
<layer number="106" name="BGA-Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="107" name="BD-Top" color="5" fill="1" visible="yes" active="yes"/>
<layer number="108" name="fp8" color="7" fill="1" visible="yes" active="yes"/>
<layer number="109" name="fp9" color="7" fill="1" visible="yes" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="yes" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="yes" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="yes" 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="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="yes" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="yes" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="yes" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="yes" 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="199" name="Contour" color="7" fill="1" visible="yes" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="yes" 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="yes" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="yes" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="yes" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="yes" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="yes" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="yes" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="yes" 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="yes" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="yes" 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="yes" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<board>
<fusionsync huburn="a.YnVzaW5lc3M6eWFob282MzcwOQ" projecturn="a.YnVzaW5lc3M6eWFob282MzcwOSNEMjAyMDAyMjQyNjg1MTk1ODE" f3durn="urn:adsk.wipprod:dm.lineage:OhoPzLbyQ5mLohFogi1TDA" pcbguid="fab327ae-6f6e-4222-b557-02a27c006fa5" lastpulledtime="" lastsyncedchangeguid="235bfd66-b9fe-0271-ee45-4d6f6e754462" latestrevisionid="" lastsyncedrevisionid="" lastboardhashguid="" lastpushedtime="" linktopcb3d="false"/>
<plain>
<hole x="18" y="35.8656" drill="2.2"/>
<hole x="6" y="35.8656" drill="2.2"/>
<wire x1="4.045421875" y1="42.2146" x2="2.807465625" y2="42.2146" width="0.1524" layer="20"/>
<wire x1="2.807465625" y1="42.2146" x2="2.807465625" y2="27.92805" width="0.1524" layer="20"/>
<wire x1="19.93574375" y1="42.2146" x2="21.192534375" y2="42.2146" width="0.1524" layer="20"/>
<wire x1="21.192534375" y1="42.2146" x2="21.192534375" y2="27.92805" width="0.1524" layer="20"/>
<wire x1="4.045421875" y1="42.2146" x2="19.93574375" y2="42.2146" width="0.1524" layer="20" curve="82.92"/>
<hole x="12" y="2.7536" drill="2.2"/>
<wire x1="18" y1="9.82229375" x2="18" y2="6" width="0.1524" layer="20"/>
<wire x1="6" y1="9.82229375" x2="6" y2="6" width="0.1524" layer="20"/>
<wire x1="18" y1="6" x2="6" y2="6" width="0.1524" layer="20" curve="-180"/>
<wire x1="2.807465625" y1="27.92805" x2="6" y2="9.82229375" width="0.1524" layer="20" curve="100"/>
<wire x1="21.192534375" y1="27.92805" x2="18" y2="9.82229375" width="0.1524" layer="20" curve="-100"/>
</plain>
<libraries>
<library name="adafruit" urn="urn:adsk.eagle:library:420">
<packages>
<package name="C0603" urn="urn:adsk.eagle:footprint:6239685/1" library_version="2">
<description>CAPACITOR

chip</description>
<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="1.27" layer="25">>NAME</text>
<text x="-0.889" y="-2.032" size="1.27" layer="27">>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"/>
</package>
<package name="KMR2" urn="urn:adsk.eagle:footprint:6240242/1" library_version="2">
<wire x1="-2.1" y1="1.4" x2="2.1" y2="1.4" width="0.127" layer="21"/>
<wire x1="2.1" y1="1.4" x2="2.1" y2="-1.4" width="0.127" layer="21"/>
<wire x1="2.1" y1="-1.4" x2="-2.1" y2="-1.4" width="0.127" layer="21"/>
<wire x1="-2.1" y1="-1.4" x2="-2.1" y2="1.4" width="0.127" layer="21"/>
<wire x1="-0.5" y1="-0.8" x2="-1.1" y2="-0.2" width="0.127" layer="21" curve="-90"/>
<wire x1="-1.1" y1="-0.2" x2="-1.1" y2="0.2" width="0.127" layer="21"/>
<wire x1="-1.1" y1="0.2" x2="-0.5" y2="0.8" width="0.127" layer="21" curve="-90"/>
<wire x1="-0.5" y1="0.8" x2="0.5" y2="0.8" width="0.127" layer="21"/>
<wire x1="0.5" y1="0.8" x2="1.1" y2="0.2" width="0.127" layer="21" curve="-90"/>
<wire x1="1.1" y1="0.2" x2="1.1" y2="-0.2" width="0.127" layer="21"/>
<wire x1="1.1" y1="-0.2" x2="0.5" y2="-0.8" width="0.127" layer="21" curve="-90"/>
<wire x1="0.5" y1="-0.8" x2="-0.5" y2="-0.8" width="0.127" layer="21"/>
<smd name="1" x="2" y="0.8" dx="1" dy="1" layer="1"/>
<smd name="2" x="2" y="-0.8" dx="1" dy="1" layer="1"/>
<smd name="4" x="-2" y="-0.8" dx="1" dy="1" layer="1"/>
<smd name="3" x="-2" y="0.8" dx="1" dy="1" layer="1"/>
</package>
<package name="R0603" urn="urn:adsk.eagle:footprint:6239919/1" library_version="2">
<description>RESISTOR

chip</description>
<wire x1="-0.432" y1="-0.356" x2="0.432" y2="-0.356" width="0.1524" layer="51"/>
<wire x1="0.432" y1="0.356" x2="-0.432" y2="0.356" width="0.1524" layer="51"/>
<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"/>
<smd name="1" x="-0.85" y="0" dx="1" dy="1.1" layer="1"/>
<smd name="2" x="0.85" y="0" dx="1" dy="1.1" layer="1"/>
<text x="-0.889" y="0.889" size="1.27" layer="25">>NAME</text>
<text x="-0.889" y="-2.032" size="1.27" layer="27">>VALUE</text>
<rectangle x1="0.4318" y1="-0.4318" x2="0.8382" y2="0.4318" layer="51"/>
<rectangle x1="-0.8382" y1="-0.4318" x2="-0.4318" y2="0.4318" layer="51"/>
<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
</package>
</packages>
<packages3d>
<package3d name="C0603" urn="urn:adsk.eagle:package:6240338/1" type="box" library_version="2">
<description>CAPACITOR

chip</description>
<packageinstances>
<packageinstance name="C0603"/>
</packageinstances>
</package3d>
<package3d name="KMR2" urn="urn:adsk.eagle:package:6240885/1" type="box" library_version="2">
<packageinstances>
<packageinstance name="KMR2"/>
</packageinstances>
</package3d>
<package3d name="R0603" urn="urn:adsk.eagle:package:6240565/1" type="box" library_version="2">
<description>RESISTOR

chip</description>
<packageinstances>
<packageinstance name="R0603"/>
</packageinstances>
</package3d>
</packages3d>
</library>
<library name="debra">
<packages>
<package name="CONN_DF23C-10DP-0.5V(92)_HIR">
<smd name="1" x="-1" y="1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="2" x="-1" y="-1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="3" x="-0.5" y="1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="4" x="-0.5" y="-1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="5" x="0" y="1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="6" x="0" y="-1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="7" x="0.5" y="1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="8" x="0.5" y="-1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="9" x="1" y="1.95" dx="0.2794" dy="1.0414" layer="1"/>
<smd name="10" x="1" y="-1.95" dx="0.2794" dy="1.0414" layer="1"/>
<wire x1="-2.4384" y1="1.9558" x2="-3.2004" y2="1.9558" width="0.508" layer="21" curve="-180"/>
<wire x1="-3.2004" y1="1.9558" x2="-2.4384" y2="1.9558" width="0.508" layer="21" curve="-180"/>
<text x="-1.7272" y="-0.635" size="1.27" layer="21" ratio="6" rot="SR0">>Value</text>
<wire x1="-0.6096" y1="3.8608" x2="-1.3716" y2="3.8608" width="0.508" layer="51" curve="-180"/>
<wire x1="-1.3716" y1="3.8608" x2="-0.6096" y2="3.8608" width="0.508" layer="51" curve="-180"/>
<wire x1="-2.4384" y1="1.9558" x2="-3.2004" y2="1.9558" width="0.508" layer="22" curve="-180"/>
<wire x1="-3.2004" y1="1.9558" x2="-2.4384" y2="1.9558" width="0.508" layer="22" curve="-180"/>
<polygon width="0.0254" layer="41">
<vertex x="-1.1397" y="-1.4293"/>
<vertex x="-1.1397" y="-0.8197"/>
<vertex x="1.1397" y="-0.8197"/>
<vertex x="1.1397" y="-1.4293"/>
</polygon>
<polygon width="0.0254" layer="41">
<vertex x="-1.1397" y="1.4293"/>
<vertex x="-1.1397" y="0.8197"/>
<vertex x="1.1397" y="0.8197"/>
<vertex x="1.1397" y="1.4293"/>
</polygon>
<text x="-3.2766" y="-0.635" size="1.27" layer="25" ratio="6" rot="SR0">>Name</text>
<wire x1="-2.1844" y1="-2.3876" x2="-1.4732" y2="-2.3876" width="0.1524" layer="21"/>
<wire x1="2.1844" y1="-2.3876" x2="2.1844" y2="2.3876" width="0.1524" layer="21"/>
<wire x1="2.1844" y1="2.3876" x2="1.4732" y2="2.3876" width="0.1524" layer="21"/>
<wire x1="-2.1844" y1="2.3876" x2="-2.1844" y2="-2.3876" width="0.1524" layer="21"/>
<wire x1="-1.4732" y1="2.3876" x2="-2.1844" y2="2.3876" width="0.1524" layer="21"/>
<wire x1="1.4732" y1="-2.3876" x2="2.1844" y2="-2.3876" width="0.1524" layer="21"/>
<wire x1="-2.4384" y1="1.9558" x2="-3.2004" y2="1.9558" width="0.508" layer="21" curve="-180"/>
<wire x1="-3.2004" y1="1.9558" x2="-2.4384" y2="1.9558" width="0.508" layer="21" curve="-180"/>
<text x="-1.7272" y="-0.635" size="1.27" layer="21" ratio="6" rot="SR0">>Value</text>
<wire x1="-2.0828" y1="-2.2352" x2="2.0828" y2="-2.2352" width="0.1524" layer="51"/>
<wire x1="2.0828" y1="-2.2352" x2="2.0828" y2="2.2352" width="0.1524" layer="51"/>
<wire x1="2.0828" y1="2.2352" x2="-2.0828" y2="2.2352" width="0.1524" layer="51"/>
<wire x1="-2.0828" y1="2.2352" x2="-2.0828" y2="-2.2352" width="0.1524" layer="51"/>
<wire x1="-0.6096" y1="3.8608" x2="-1.3716" y2="3.8608" width="0.508" layer="51" curve="-180"/>
<wire x1="-1.3716" y1="3.8608" x2="-0.6096" y2="3.8608" width="0.508" layer="51" curve="-180"/>
<wire x1="-2.4384" y1="1.9558" x2="-3.2004" y2="1.9558" width="0.508" layer="22" curve="-180"/>
<wire x1="-3.2004" y1="1.9558" x2="-2.4384" y2="1.9558" width="0.508" layer="22" curve="-180"/>
<polygon width="0.0254" layer="41">
<vertex x="-1.1397" y="-1.4293"/>
<vertex x="-1.1397" y="-0.8197"/>
<vertex x="1.1397" y="-0.8197"/>
<vertex x="1.1397" y="-1.4293"/>
</polygon>
<polygon width="0.0254" layer="41">
<vertex x="-1.1397" y="1.4293"/>
<vertex x="-1.1397" y="0.8197"/>
<vertex x="1.1397" y="0.8197"/>
<vertex x="1.1397" y="1.4293"/>
</polygon>
<text x="-3.2766" y="-0.635" size="1.27" layer="25" ratio="6" rot="SR0">>Name</text>
</package>
<package name="ATTINY_SERIES_1_PROGRAMMING_PADS">
<smd name="GND" x="0" y="-2.54" dx="1.524" dy="1.524" layer="1" roundness="100"/>
<smd name="UDPI" x="0" y="0" dx="1.524" dy="1.524" layer="1" roundness="100"/>
<smd name="VCC" x="0" y="2.54" dx="1.524" dy="1.524" layer="1" roundness="100"/>
<text x="1.905" y="-4.064" size="0.8128" layer="21" rot="R90">GND</text>
<text x="1.905" y="1.905" size="0.8128" layer="21" rot="SR90">VCC</text>
<text x="1.905" y="-1.27" size="0.8128" layer="21" rot="SR90">UDPI</text>
</package>
</packages>
</library>
<library name="WS2812-2020">
<packages>
<package name="LED_WS2812-2020">
<text x="-1.998490625" y="1.45621875" size="1.270140625" layer="25">>NAME</text>
<text x="-2.17548125" y="-2.478090625" size="1.27075" layer="27">>VALUE</text>
<wire x1="-1.1" y1="1" x2="1.1" y2="1" width="0.127" layer="51"/>
<wire x1="1.1" y1="1" x2="1.1" y2="-1" width="0.127" layer="51"/>
<wire x1="1.1" y1="-1" x2="-1.1" y2="-1" width="0.127" layer="51"/>
<wire x1="-1.1" y1="-1" x2="-1.1" y2="1" width="0.127" layer="51"/>
<wire x1="-1.515" y1="-1.25" x2="1.515" y2="-1.25" width="0.05" layer="39"/>
<wire x1="1.515" y1="-1.25" x2="1.515" y2="1.25" width="0.05" layer="39"/>
<wire x1="1.515" y1="1.25" x2="-1.515" y2="1.25" width="0.05" layer="39"/>
<wire x1="-1.515" y1="1.25" x2="-1.515" y2="-1.25" width="0.05" layer="39"/>
<circle x="-1.77" y="0.63" radius="0.10295625" width="0.2" layer="51"/>
<wire x1="-0.3" y1="1" x2="0.3" y2="1" width="0.127" layer="21"/>
<wire x1="-0.3" y1="-1" x2="0.3" y2="-1" width="0.127" layer="21"/>
<circle x="-1.77" y="0.63" radius="0.10295625" width="0.2" layer="21"/>
<smd name="3" x="0.915" y="-0.55" dx="0.7" dy="0.7" layer="1" rot="R180"/>
<smd name="4" x="0.915" y="0.55" dx="0.7" dy="0.7" layer="1" rot="R180"/>
<smd name="1" x="-0.915" y="0.55" dx="0.7" dy="0.7" layer="1"/>
<smd name="2" x="-0.915" y="-0.55" dx="0.7" dy="0.7" layer="1"/>
</package>
</packages>
</library>
<library name="ATTINY1614-SSNR">
<packages>
<package name="SOIC127P600X175-14N">
<circle x="-4.43" y="4.4" radius="0.2" width="0.15" layer="21"/>
<circle x="-4.43" y="4.4" radius="0.2" width="0.17" layer="51"/>
<wire x1="-1.95" y1="4.325" x2="1.95" y2="4.325" width="0.127" layer="51"/>
<wire x1="-1.95" y1="-4.325" x2="1.95" y2="-4.325" width="0.127" layer="51"/>
<wire x1="-1.95" y1="4.325" x2="1.95" y2="4.325" width="0.127" layer="21"/>
<wire x1="-1.95" y1="-4.325" x2="1.95" y2="-4.325" width="0.127" layer="21"/>
<wire x1="-1.95" y1="4.325" x2="-1.95" y2="-4.325" width="0.127" layer="51"/>
<wire x1="1.95" y1="4.325" x2="1.95" y2="-4.325" width="0.127" layer="51"/>
<wire x1="-3.705" y1="4.575" x2="3.705" y2="4.575" width="0.05" layer="39"/>
<wire x1="-3.705" y1="-4.575" x2="3.705" y2="-4.575" width="0.05" layer="39"/>
<wire x1="-3.705" y1="4.575" x2="-3.705" y2="-4.575" width="0.05" layer="39"/>
<wire x1="3.705" y1="4.575" x2="3.705" y2="-4.575" width="0.05" layer="39"/>
<text x="-3.5785" y="4.8663" size="1.27" layer="25">>NAME</text>
<text x="-3.2435" y="-5.5995" size="1.27" layer="27" align="top-left">>VALUE</text>
<smd name="1" x="-2.48" y="3.81" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="2" x="-2.48" y="2.54" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="3" x="-2.48" y="1.27" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="4" x="-2.48" y="0" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="5" x="-2.48" y="-1.27" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="6" x="-2.48" y="-2.54" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="7" x="-2.48" y="-3.81" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="8" x="2.48" y="-3.81" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="9" x="2.48" y="-2.54" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="10" x="2.48" y="-1.27" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="11" x="2.48" y="0" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="12" x="2.48" y="1.27" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="13" x="2.48" y="2.54" dx="1.95" dy="0.59" layer="1" roundness="50"/>
<smd name="14" x="2.48" y="3.81" dx="1.95" dy="0.59" layer="1" roundness="50"/>
</package>
</packages>
</library>
<library name="BH800S">
<packages>
<package name="BAT_BH800S">
<wire x1="-11.555" y1="11.555" x2="11.555" y2="11.555" width="0.05" layer="39"/>
<wire x1="11.555" y1="11.555" x2="11.555" y2="-16.255" width="0.05" layer="39"/>
<wire x1="11.555" y1="-16.255" x2="-11.555" y2="-16.255" width="0.05" layer="39"/>
<wire x1="-11.555" y1="-16.255" x2="-11.555" y2="11.555" width="0.05" layer="39"/>
<text x="-0.762" y="-18.415" size="1.778" layer="51">+</text>
<text x="-0.762" y="-18.415" size="1.778" layer="21">+</text>
<text x="-0.381" y="12.065" size="1.778" layer="21">-</text>
<text x="-0.381" y="12.065" size="1.778" layer="51">-</text>
<text x="-10.16" y="11.938" size="1.27" layer="25">>NAME</text>
<text x="-10.16" y="-17.78" size="1.27" layer="27">>VALUE</text>
<wire x1="0" y1="11.305" x2="3.265" y2="-10.825" width="0.127" layer="51" curve="-163.216"/>
<wire x1="0" y1="11.305" x2="-3.265" y2="-10.825" width="0.127" layer="51" curve="163.216"/>
<wire x1="-3.265" y1="-10.825" x2="-3.265" y2="-16.005" width="0.127" layer="51"/>
<wire x1="-3.265" y1="-16.005" x2="3.265" y2="-16.005" width="0.127" layer="51"/>
<wire x1="3.265" y1="-16.005" x2="3.265" y2="-10.825" width="0.127" layer="51"/>
<wire x1="0" y1="11.305" x2="3.265" y2="-10.825" width="0.127" layer="21" curve="-163.216"/>
<wire x1="0" y1="11.305" x2="-3.265" y2="-10.825" width="0.127" layer="21" curve="163.216"/>
<wire x1="-3.265" y1="-10.825" x2="-3.265" y2="-16.005" width="0.127" layer="21"/>
<wire x1="-3.265" y1="-16.005" x2="3.265" y2="-16.005" width="0.127" layer="21"/>
<wire x1="3.265" y1="-16.005" x2="3.265" y2="-10.825" width="0.127" layer="21"/>
<pad name="-" x="0" y="6.5" drill="1.0668"/>
<pad name="+" x="0" y="-14" drill="1.0668"/>
</package>
</packages>
</library>
<library name="StefansLib" urn="urn:adsk.eagle:library:1738404">
<packages>
<package name="PCM12SMTR" urn="urn:adsk.eagle:footprint:1964196/1" library_version="9">
<hole x="-1.5" y="0" drill="0.9"/>
<hole x="1.5" y="0" drill="0.9"/>
<smd name="P$10" x="-3.6449" y="0.9779" dx="0.9906" dy="0.8128" layer="1"/>
<smd name="P$11" x="-3.6449" y="-0.9779" dx="0.9906" dy="0.8128" layer="1"/>
<smd name="P$12" x="3.6449" y="0.9779" dx="0.9906" dy="0.8128" layer="1"/>
<smd name="P$13" x="3.6449" y="-0.9779" dx="0.9906" dy="0.8128" layer="1"/>
<smd name="P$2" x="0.762" y="1.7399" dx="0.7112" dy="1.4986" layer="1"/>
<smd name="P$3" x="2.2606" y="1.7399" dx="0.7112" dy="1.4986" layer="1"/>
<smd name="P$1" x="-2.2352" y="1.7399" dx="0.7112" dy="1.4986" layer="1"/>
</package>
</packages>
<packages3d>
<package3d name="PCM12SMTR" urn="urn:adsk.eagle:package:1964197/2" type="model" library_version="14">
<packageinstances>
<packageinstance name="PCM12SMTR"/>
</packageinstances>
</package3d>
</packages3d>
</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="6mil"/>
<param name="mdWirePad" value="6mil"/>
<param name="mdWireVia" value="6mil"/>
<param name="mdPadPad" value="6mil"/>
<param name="mdPadVia" value="6mil"/>
<param name="mdViaVia" value="6mil"/>
<param name="mdSmdPad" value="6mil"/>
<param name="mdSmdVia" value="6mil"/>
<param name="mdSmdSmd" value="6mil"/>
<param name="mdViaViaSameLayer" value="6mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="40mil"/>
<param name="mdDrill" value="6mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="6mil"/>
<param name="msDrill" value="0.35mm"/>
<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="6mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="6mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="6mil"/>
<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="16mil"/>
<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="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="checkStop" value="0"/>
<param name="checkValues" value="0"/>
<param name="checkNames" value="1"/>
<param name="checkWireStubs" value="1"/>
<param name="checkPolygonWidth" value="0"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="50mil"/>
<param name="AutoGrid" value="1"/>
<param name="Efforts" value="0"/>
<param name="TopRouterVariant" value="1"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="a"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="a"/>
<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>
<groups>
<board_group name="OUTLINE"/>
</groups>
<elements>
<element name="C1" library="adafruit" library_urn="urn:adsk.eagle:library:420" package="C0603" package3d_urn="urn:adsk.eagle:package:6240338/1" value="" x="17.629165625" y="23.4646" smashed="yes" rot="R120">
<attribute name="VALUE" x="19.833425" y="23.7107125" size="1.27" layer="27" rot="R120"/>
</element>
<element name="C2" library="adafruit" library_urn="urn:adsk.eagle:library:420" package="C0603" package3d_urn="urn:adsk.eagle:package:6240338/1" value="" x="12" y="13.7146" smashed="yes">
<attribute name="VALUE" x="11.111" y="11.68260625" size="1.27" layer="27"/>
</element>
<element name="C3" library="adafruit" library_urn="urn:adsk.eagle:library:420" package="C0603" package3d_urn="urn:adsk.eagle:package:6240338/1" value="" x="6.370834375" y="23.4646" smashed="yes" rot="R240">
<attribute name="VALUE" x="5.055578125" y="25.250490625" size="1.27" layer="27" rot="R240"/>
</element>
<element name="1" library="WS2812-2020" package="LED_WS2812-2020" value="WS2812-2020" x="19.794228125" y="24.7146" smashed="yes" rot="R120">
<attribute name="AVAILABILITY" value="Unavailable" x="19.794228125" y="24.7146" size="1.778" layer="27" rot="R120" display="off"/>
<attribute name="DESCRIPTION" value=" " x="19.794228125" y="24.7146" size="1.778" layer="27" rot="R120" display="off"/>
<attribute name="MF" value="Worldsemi" x="19.794228125" y="24.7146" size="1.778" layer="27" rot="R120" display="off"/>
<attribute name="MP" value="WS2812-2020" x="19.794228125" y="24.7146" size="1.778" layer="27" rot="R120" display="off"/>
<attribute name="NAME" x="20.335353125" y="24.24874375" size="1.270140625" layer="26" rot="MR0"/>
<attribute name="PACKAGE" value="Package Analog Devices" x="19.794228125" y="24.7146" size="1.778" layer="27" rot="R120" display="off"/>
<attribute name="PRICE" value="None" x="19.794228125" y="24.7146" size="1.778" layer="27" rot="R120" display="off"/>
</element>
<element name="2" library="WS2812-2020" package="LED_WS2812-2020" value="WS2812-2020" x="12" y="11.2146" smashed="yes">
<attribute name="AVAILABILITY" value="Unavailable" x="12" y="11.2146" size="1.778" layer="27" display="off"/>
<attribute name="DESCRIPTION" value=" " x="12" y="11.2146" size="1.778" layer="27" display="off"/>
<attribute name="MF" value="Worldsemi" x="12" y="11.2146" size="1.778" layer="27" display="off"/>
<attribute name="MP" value="WS2812-2020" x="12" y="11.2146" size="1.778" layer="27" display="off"/>
<attribute name="NAME" x="12.5445125" y="10.740815625" size="1.270140625" layer="26" rot="MR0"/>
<attribute name="PACKAGE" value="Package Analog Devices" x="12" y="11.2146" size="1.778" layer="27" display="off"/>
<attribute name="PRICE" value="None" x="12" y="11.2146" size="1.778" layer="27" display="off"/>
</element>
<element name="3" library="WS2812-2020" package="LED_WS2812-2020" value="WS2812-2020" x="4.205771875" y="24.7146" smashed="yes" rot="R240">
<attribute name="AVAILABILITY" value="Unavailable" x="4.205771875" y="24.7146" size="1.778" layer="27" rot="R240" display="off"/>
<attribute name="DESCRIPTION" value=" " x="4.205771875" y="24.7146" size="1.778" layer="27" rot="R240" display="off"/>
<attribute name="MF" value="Worldsemi" x="4.205771875" y="24.7146" size="1.778" layer="27" rot="R240" display="off"/>
<attribute name="MP" value="WS2812-2020" x="4.205771875" y="24.7146" size="1.778" layer="27" rot="R240" display="off"/>
<attribute name="NAME" x="4.443403125" y="24.289971875" size="1.270140625" layer="26" rot="MR0"/>
<attribute name="PACKAGE" value="Package Analog Devices" x="4.205771875" y="24.7146" size="1.778" layer="27" rot="R240" display="off"/>
<attribute name="PRICE" value="None" x="4.205771875" y="24.7146" size="1.778" layer="27" rot="R240" display="off"/>
</element>
<element name="J2" library="debra" package="CONN_DF23C-10DP-0.5V(92)_HIR" value="DF23C-10DP-0.5V(92)" x="12" y="35.8656" smashed="yes" rot="MR270">
<attribute name="BUILT_BY" value="EMA_Cory" x="12" y="35.8656" size="1.778" layer="28" rot="MR270" display="off"/>
<attribute name="COPYRIGHT" value="Copyright (C) 2018 Accelerated Designs. All rights reserved" x="12" y="35.8656" size="1.778" layer="28" rot="MR270" display="off"/>
<attribute name="DATASHEET" value="https://www.hirose.com/product/download/?distributor=digikey&type=2d&lang=en&num=DF23C-10DP-0.5V(92)" x="12" y="35.8656" size="1.778" layer="28" rot="MR270" display="off"/>
<attribute name="MANUFACTURER_PART_NUMBER" value="DF23C-10DP-0.5V(92)" x="12" y="35.8656" size="1.778" layer="28" rot="MR270" display="off"/>
<attribute name="SOURCELIBRARY" value="Hirose_2020-05-07" x="12" y="35.8656" size="1.778" layer="28" rot="MR270" display="off"/>
<attribute name="VENDOR" value="Hirose" x="12" y="35.8656" size="1.778" layer="28" rot="MR270" display="off"/>
</element>
<element name="U3" library="ATTINY1614-SSNR" package="SOIC127P600X175-14N" value="ATTINY1614-SSNR" x="12" y="33" smashed="yes" rot="R180">
<attribute name="ARROW_ELECTRONICS-PURCHASE-URL" value="https://snapeda.com/shop?store=Arrow+Electronics&id=4817174" x="21" y="18.5" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="AVAILABILITY" value="Good" x="21" y="18.5" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="DESCRIPTION" value=" IC MCU 8BIT 16KB FLASH 14SOIC " x="21" y="18.5" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MF" value="Microchip Technology" x="21" y="18.5" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MOUSER-PURCHASE-URL" value="https://snapeda.com/shop?store=Mouser&id=4817174" x="21" y="18.5" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MP" value="ATTINY1614-SSNR" x="21" y="18.5" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="PACKAGE" value="None" x="21" y="18.5" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="PRICE" value="None" x="21" y="18.5" size="1.778" layer="27" rot="R180" display="off"/>
</element>
<element name="BT1" library="BH800S" package="BAT_BH800S" value="BH800S" x="12" y="20.25" smashed="yes" rot="MR0">
<attribute name="DESCRIPTION" value=" Battery Holder (Open) Coin, 20.0mm 2 Cell PC Pin " x="12" y="20.25" size="1.778" layer="28" rot="MR0" display="off"/>
<attribute name="DIGI-KEY_PART_NUMBER" value="BH800S-ABS-BULK-ND" x="12" y="20.25" size="1.778" layer="28" rot="MR0" display="off"/>
<attribute name="MF" value="MPD" x="12" y="20.25" size="1.778" layer="28" rot="MR0" display="off"/>
<attribute name="MP" value="BH800S" x="12" y="20.25" size="1.778" layer="28" rot="MR0" display="off"/>
<attribute name="PACKAGE" value="None" x="12" y="20.25" size="1.778" layer="28" rot="MR0" display="off"/>
<attribute name="PURCHASE-URL" value="https://pricing.snapeda.com/search/part/BH800S/?ref=eda" x="12" y="20.25" size="1.778" layer="28" rot="MR0" display="off"/>
</element>
<element name="SW1" library="adafruit" library_urn="urn:adsk.eagle:library:420" package="KMR2" package3d_urn="urn:adsk.eagle:package:6240885/1" value="SPST_TACT-KMR2" x="20.193" y="16.002" smashed="yes" rot="R60"/>
<element name="R1" library="adafruit" library_urn="urn:adsk.eagle:library:420" package="R0603" package3d_urn="urn:adsk.eagle:package:6240565/1" value="4.7K" x="17.653" y="17.272" smashed="yes" rot="R240">
<attribute name="VALUE" x="16.174025" y="16.222815625" size="1.27" layer="28" rot="MR125.6"/>
</element>
<element name="U$1" library="debra" package="ATTINY_SERIES_1_PROGRAMMING_PADS" value="ATTINY_SERIES_1_PROGRAMMING_PADS" x="3.81" y="17.018" smashed="yes" rot="R201.2"/>
<element name="U$15" library="StefansLib" library_urn="urn:adsk.eagle:library:1738404" package="PCM12SMTR" package3d_urn="urn:adsk.eagle:package:1964197/2" value="PCM12SMTR" x="7.5" y="9" smashed="yes" rot="R270"/>
</elements>
<signals>
<signal name="GND">
<contactref element="C1" pad="1"/>
<contactref element="C2" pad="1"/>
<contactref element="C3" pad="1"/>
<contactref element="1" pad="2"/>
<contactref element="2" pad="2"/>
<contactref element="3" pad="2"/>
<contactref element="J2" pad="8"/>
<contactref element="J2" pad="9"/>
<contactref element="J2" pad="10"/>
<contactref element="J2" pad="7"/>
<polygon width="0.3048" layer="1">
<vertex x="-0.762" y="41.7426"/>
<vertex x="-0.762" y="-0.0866"/>
<vertex x="25.607" y="-0.0866"/>
<vertex x="25.607" y="41.7426"/>
</polygon>
<contactref element="U3" pad="14"/>
<contactref element="BT1" pad="-"/>
<via x="11.938" y="34.036" extent="1-16" drill="0.35"/>
<wire x1="10.304" y1="34.18" x2="10.414" y2="33.909" width="0.4064" layer="16"/>
<wire x1="10.304" y1="34.18" x2="10.05" y2="34.8656" width="0.4064" layer="16"/>
<wire x1="10.05" y1="34.8656" x2="10.05" y2="35.3656" width="0.4064" layer="16"/>
<wire x1="11.938" y1="34.036" x2="13.5214" y2="33.9766" width="0.4064" layer="16"/>
<wire x1="13.5214" y1="33.9766" x2="13.95" y2="34.8656" width="0.4064" layer="16"/>
<contactref element="SW1" pad="4"/>
<contactref element="SW1" pad="2"/>
<wire x1="13.95" y1="34.8656" x2="13.95" y2="35.3656" width="0.4064" layer="16"/>
<wire x1="10.414" y1="33.909" x2="11.938" y2="34.036" width="0.4064" layer="16"/>
<contactref element="U$1" pad="GND"/>
</signal>
<signal name="VCC">
<contactref element="1" pad="4"/>
<contactref element="C1" pad="2"/>
<contactref element="2" pad="4"/>
<contactref element="C2" pad="2"/>
<contactref element="3" pad="4"/>
<contactref element="C3" pad="2"/>
<contactref element="J2" pad="1"/>
<contactref element="J2" pad="2"/>
<contactref element="J2" pad="3"/>
<contactref element="J2" pad="4"/>
<polygon width="0.3048" layer="16">
<vertex x="-0.762" y="41.6156"/>
<vertex x="-0.762" y="-0.2136"/>
<vertex x="25.48" y="-0.2136"/>
<vertex x="25.48" y="41.7426"/>
<vertex x="-0.635" y="41.7426"/>
</polygon>
<via x="11.938" y="20.7876" extent="1-16" drill="0.35"/>
<wire x1="4.224584375" y1="23.647184375" x2="5.91309375" y2="22.497184375" width="0.3048" layer="1"/>
<wire x1="5.91309375" y1="22.497184375" x2="5.945834375" y2="22.728478125" width="0.3048" layer="1"/>
<wire x1="12.915" y1="12.0226" x2="12.85" y2="13.422809375" width="0.3048" layer="1"/>
<wire x1="12.85" y1="13.7146" x2="12.85" y2="13.422809375" width="0.3048" layer="1"/>
<wire x1="12.915" y1="12.0226" x2="12.915" y2="11.7646" width="0.3048" layer="1"/>
<wire x1="18.8604125" y1="25.2320125" x2="18.7334125" y2="25.1050125" width="0.3048" layer="1"/>
<wire x1="18.7334125" y1="25.1050125" x2="18.489459375" y2="24.9780125" width="0.3048" layer="1"/>
<wire x1="18.489459375" y1="24.9780125" x2="17.331165625" y2="24.20071875" width="0.3048" layer="1"/>
<wire x1="17.331165625" y1="24.20071875" x2="17.204165625" y2="24.20071875" width="0.3048" layer="1"/>
<wire x1="11.938" y1="20.7876" x2="14.692" y2="22.2876" width="0.3048" layer="1"/>
<wire x1="14.692" y1="22.2876" x2="16.307046875" y2="23.4546" width="0.3048" layer="1"/>
<wire x1="16.307046875" y1="23.4546" x2="17.204165625" y2="24.20071875" width="0.3048" layer="1"/>
<contactref element="U3" pad="1"/>
<via x="7.017" y="14.525" extent="1-16" drill="0.35"/>
<contactref element="R1" pad="2"/>
<via x="15.621" y="14.605" extent="1-16" drill="0.35"/>
<contactref element="U$1" pad="VCC"/>
<wire x1="14.07335" y1="14.097" x2="15.621" y2="14.605" width="0.3048" layer="1"/>
<wire x1="12.85" y1="13.7146" x2="13.2324" y2="13.843" width="0.3048" layer="1"/>
<wire x1="13.2324" y1="13.843" x2="14.07335" y2="14.097" width="0.3048" layer="1"/>
<wire x1="5.945834375" y1="22.728478125" x2="8.997121875" y2="21.728478125" width="0.3048" layer="1"/>
<wire x1="8.997121875" y1="21.728478125" x2="11.938" y2="20.7876" width="0.3048" layer="1"/>
<wire x1="14.48" y1="29.19" x2="14.48" y2="28.0756" width="0.4064" layer="1"/>
<wire x1="14.48" y1="28.0756" x2="14.692" y2="22.2876" width="0.4064" layer="1"/>
<wire x1="15.621" y1="14.605" x2="15.621" y2="15.072703125" width="0.2032" layer="1"/>
<wire x1="15.621" y1="15.072703125" x2="17.228" y2="16.535878125" width="0.2032" layer="1"/>
<contactref element="U$15" pad="P$2"/>
<wire x1="7.017" y1="14.525" x2="4.853421875" y2="14.525" width="0.4064" layer="1"/>
<wire x1="4.853421875" y1="14.525" x2="4.728525" y2="14.649896875" width="0.4064" layer="1"/>
<via x="12" y="8.5" extent="1-16" drill="0.35"/>
<wire x1="9.2399" y1="8.238" x2="11.738" y2="8.238" width="0.4064" layer="1"/>
<wire x1="11.738" y1="8.238" x2="12" y2="8.5" width="0.4064" layer="1"/>
</signal>
<signal name="N$1">
<contactref element="1" pad="1"/>
<contactref element="2" pad="3"/>
<wire x1="21.709765625" y1="18.60518125" x2="20.955" y2="17.229828125" width="0.2032" layer="1"/>
<wire x1="13.272" y1="11.0216" x2="12.915" y2="10.6646" width="0.2032" layer="1"/>
<wire x1="19.7754125" y1="23.647184375" x2="21.201765625" y2="20.56983125" width="0.2032" layer="1"/>
<wire x1="20.422228125" y1="16.292859375" x2="19.53544375" y2="14.771075" width="0.2032" layer="1"/>
<wire x1="19.53544375" y1="14.771075" x2="19.10191875" y2="14.0201875" width="0.2032" layer="1"/>
<wire x1="19.10191875" y1="14.0201875" x2="16.10333125" y2="11.0216" width="0.2032" layer="1"/>
<wire x1="16.10333125" y1="11.0216" x2="13.272" y2="11.0216" width="0.2032" layer="1"/>
<wire x1="21.201765625" y1="20.56983125" x2="21.709765625" y2="18.60518125" width="0.2032" layer="1"/>
<wire x1="20.955" y1="17.229828125" x2="20.930228125" y2="17.20505625" width="0.2032" layer="1"/>
<wire x1="20.930228125" y1="17.20505625" x2="20.422228125" y2="16.292859375" width="0.2032" layer="1"/>
</signal>
<signal name="N$4">
<contactref element="2" pad="1"/>
<contactref element="3" pad="3"/>
<wire x1="6.073" y1="17.811" x2="7.073" y2="16.5306" width="0.2032" layer="1"/>
<wire x1="7.073" y1="16.5306" x2="10.085" y2="13.0186" width="0.2032" layer="1"/>
<wire x1="10.085" y1="13.0186" x2="11.085" y2="11.7646" width="0.2032" layer="1"/>
<wire x1="3.27195625" y1="24.197184375" x2="3.27195625" y2="21.11204375" width="0.2032" layer="1"/>
<wire x1="3.27195625" y1="21.11204375" x2="6.073" y2="17.811" width="0.2032" layer="1"/>
</signal>
<signal name="SIG_OUT">
<contactref element="3" pad="1"/>
<contactref element="J2" pad="5"/>
<contactref element="J2" pad="6"/>
<wire x1="5.139584375" y1="25.2320125" x2="6.663584375" y2="27.999584375" width="0.2032" layer="1"/>
<via x="6.663584375" y="27.999584375" extent="1-16" drill="0.35"/>
<wire x1="5.461" y1="31.242" x2="8.636" y2="34.417" width="0.2032" layer="16"/>
<wire x1="8.636" y1="34.417" x2="8.9416" y2="35.8656" width="0.2032" layer="16"/>
<wire x1="10.05" y1="35.8656" x2="8.9416" y2="35.8656" width="0.2032" layer="16"/>
<wire x1="6.663584375" y1="27.999584375" x2="5.461" y2="31.242" width="0.2032" layer="16"/>
<via x="11.684" y="29.845" extent="1-16" drill="0.35"/>
<wire x1="10.981584375" y1="27.999584375" x2="6.663584375" y2="27.999584375" width="0.2032" layer="1"/>
<wire x1="11.684" y1="29.845" x2="10.981584375" y2="27.999584375" width="0.2032" layer="1"/>
<wire x1="13.95" y1="35.8656" x2="14.4696125" y2="35.8656" width="0.2032" layer="16"/>
<wire x1="14.4696125" y1="35.8656" x2="14.7247" y2="35.6105125" width="0.2032" layer="16"/>
<wire x1="14.7247" y1="35.6105125" x2="14.7247" y2="32.3777" width="0.2032" layer="16"/>
<wire x1="14.7247" y1="32.3777" x2="11.684" y2="29.845" width="0.2032" layer="16"/>
</signal>
<signal name="VBAT">
<contactref element="BT1" pad="+"/>
<wire x1="11.43" y1="6.35" x2="11.657" y2="6.25" width="0.4064" layer="1"/>
<wire x1="11.657" y1="6.25" x2="12" y2="6.25" width="0.4064" layer="1"/>
<wire x1="9.85423125" y1="6.6049875" x2="11.43" y2="6.35" width="0.4064" layer="1"/>
<contactref element="U$15" pad="P$3"/>
<wire x1="9.2399" y1="6.7394" x2="9.71981875" y2="6.7394" width="0.4064" layer="1"/>
<wire x1="9.71981875" y1="6.7394" x2="9.85423125" y2="6.6049875" width="0.4064" layer="1"/>
</signal>
<signal name="SIG">
<contactref element="U3" pad="5"/>
<contactref element="1" pad="3"/>
<wire x1="14.48" y1="34.27" x2="16.114" y2="33.543" width="0.2032" layer="1"/>
<wire x1="16.114" y1="33.543" x2="18.415" y2="31.496" width="0.2032" layer="1"/>
<wire x1="18.415" y1="31.496" x2="19.685" y2="25.910053125" width="0.2032" layer="1"/>
<wire x1="19.685" y1="25.910053125" x2="19.813040625" y2="25.7820125" width="0.2032" layer="1"/>
</signal>
<signal name="UDPI">
<contactref element="U3" pad="10"/>
<contactref element="U$1" pad="UDPI"/>
<wire x1="2.32418125" y1="24.5073625" x2="3.698071875" y2="26.876359375" width="0.2032" layer="1"/>
<wire x1="3.698071875" y1="26.876359375" x2="5.539821875" y2="29.718109375" width="0.2032" layer="1"/>
<wire x1="3.81" y1="17.018" x2="3.70475" y2="17.018" width="0.2032" layer="1"/>
<wire x1="3.70475" y1="17.018" x2="1.792046875" y2="18.930703125" width="0.2032" layer="1"/>
<wire x1="5.539821875" y1="29.718109375" x2="8.039821875" y2="34.062628125" width="0.2032" layer="1"/>
<wire x1="8.039821875" y1="34.062628125" x2="9.24719375" y2="34.27" width="0.2032" layer="1"/>
<wire x1="9.24719375" y1="34.27" x2="9.52" y2="34.27" width="0.2032" layer="1"/>
<wire x1="1.792046875" y1="18.930703125" x2="1.792046875" y2="23.475228125" width="0.2032" layer="1"/>
<wire x1="1.792046875" y1="23.475228125" x2="2.32418125" y2="24.5073625" width="0.2032" layer="1"/>
</signal>
<signal name="BUTTON">
<contactref element="U3" pad="4"/>
<contactref element="SW1" pad="1"/>
<contactref element="R1" pad="1"/>
<contactref element="SW1" pad="3"/>
<wire x1="18.500178125" y1="14.669946875" x2="19.61471875" y2="16.5314375" width="0.2032" layer="1"/>
<wire x1="19.61471875" y1="16.5314375" x2="20.500178125" y2="18.13405" width="0.2032" layer="1"/>
<wire x1="19.744603125" y1="18.0778375" x2="18.078" y2="18.00811875" width="0.2032" layer="1"/>
<wire x1="19.744603125" y1="18.0778375" x2="20.500178125" y2="18.13405" width="0.2032" layer="1"/>
<wire x1="18.078" y1="18.00811875" x2="17.526" y2="20.113378125" width="0.2032" layer="1"/>
<via x="17.526" y="20.113378125" extent="1-16" drill="0.35"/>
<wire x1="15.494" y1="32.893" x2="16.256" y2="30.734" width="0.2032" layer="1"/>
<wire x1="16.891" y1="28.956" x2="16.256" y2="30.734" width="0.2032" layer="1"/>
<wire x1="17.526" y1="20.113378125" x2="17.145" y2="26.273125" width="0.2032" layer="16"/>
<wire x1="17.145" y1="26.273125" x2="16.891" y2="28.956" width="0.2032" layer="16"/>
<via x="16.891" y="28.956" extent="1-16" drill="0.35"/>
<wire x1="14.48" y1="33" x2="14.413625" y2="33" width="0.2032" layer="1"/>
<wire x1="14.413625" y1="33" x2="15.494" y2="32.893" width="0.2032" layer="1"/>
</signal>
</signals>
<mfgpreviewcolors>
<mfgpreviewcolor name="soldermaskcolor" color="0xC8008000"/>
<mfgpreviewcolor name="silkscreencolor" color="0xFFFEFEFE"/>
<mfgpreviewcolor name="backgroundcolor" color="0xFF282828"/>
<mfgpreviewcolor name="coppercolor" color="0xFFFFBF00"/>
<mfgpreviewcolor name="substratecolor" color="0xFF786E46"/>
</mfgpreviewcolors>
</board>
</drawing>
<compatibility>
<note version="8.2" severity="warning">
Since Version 8.2, EAGLE supports online libraries. The ids
of those online libraries will not be understood (or retained)
with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports Fusion synchronisation.
This feature will not be available in this version and saving
the document will break the link to the Fusion PCB feature.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports the association of 3D packages
with devices in libraries, schematics, and board files. Those 3D
packages will not be understood (or retained) with this version.
</note>
<note version="9.5" severity="warning">
Since Version 9.5, EAGLE supports persistent groups with
schematics, and board files. Those persistent groups
will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>

repository: geekmomprojects/ArticulatedPCBs

repo_name: geekmomprojects/ArticulatedPCBs

extension: brd


text:
// Copyright 2021 CloudJ Company Limited. All rights reserved.

package vcsrv

import (
	"cloudiac/configs"
	"cloudiac/portal/consts"
	"cloudiac/portal/consts/e"
	"cloudiac/portal/libs/db"
	"cloudiac/portal/models"
	"fmt"
	"path"

	"github.com/pkg/errors"
)

/*
version control service 接口
*/

const (
	WebhookUrlGitlab = "/webhooks/gitlab"
	WebhookUrlGitea  = "/webhooks/gitea"
	WebhookUrlGitee  = "/webhooks/gitee"
	WebhookUrlGithub = "/webhooks/github"
)

type VcsIfaceOptions struct {
	Ref       string
	Path      string
	Search    string
	Recursive bool
	Limit     int
	Offset    int
}

type VcsIface interface {
	// GetRepo 列出仓库
	// param idOrPath: 仓库id或者路径
	GetRepo(idOrPath string) (RepoIface, error)

	// ListRepos 列出仓库列表
	// param namespace: namespace 可用于表示用户、组织等
	// param search: 搜索字符串
	// param limit: 限制返回的文件数，传 0 表示无限制
	// return in64(分页total数量)
	ListRepos(namespace, search string, limit, offset int) ([]RepoIface, int64, error)
}

type RepoIface interface {
	// ListBranches 获取分支列表
	ListBranches() ([]string, error)
	ListTags() ([]string, error)

	// BranchCommitId
	//param branch: 分支
	BranchCommitId(branch string) (string, error)

	// ListFiles 列出指定路径下的文件
	// param ref: 分支或者 commit id
	// param filename: 文件名称部分的点
	// param path: 路径
	// param search: 搜索字符串
	// param recursive: 是否递归遍历子目录
	// param limit: 限制返回的文件数，传 0 表示无限制
	// return: 返回文件路径列表，路径为完整路径(即包含传入的 path 部分)
	ListFiles(option VcsIfaceOptions) ([]string, error)

	// ReadFileContent
	// param path: 路径
	// param branch: 分支
	ReadFileContent(branch, path string) (content []byte, err error)

	// FormatRepoSearch 格式化输出前端需要的内容
	FormatRepoSearch() (project *Projects, err e.Error)

	// DefaultBranch 获取默认分支
	DefaultBranch() string

	//ListWebhook 查询Webhook列表
	ListWebhook() ([]ProjectsHook, error)

	//DeleteWebhook 查询Webhook列表
	DeleteWebhook(id int) error

	//AddWebhook 查询Webhook列表
	AddWebhook(url string) error
}

func GetVcsInstance(vcs *models.Vcs) (VcsIface, error) {
	switch vcs.VcsType {
	case consts.GitTypeLocal:
		return newLocalVcs(vcs.Address), nil
	case consts.GitTypeGitLab:
		return newGitlabInstance(vcs)
	case consts.GitTypeGitEA:
		return newGiteaInstance(vcs)
	case consts.GitTypeGithub:
		return newGithubInstance(vcs)
	case consts.GitTypeGitee:
		return newGiteeInstance(vcs)
	default:
		return nil, errors.New("vcs type doesn't exist")
	}
}

func GetRepo(vcs *models.Vcs, repoId string) (RepoIface, error) {
	v, err := GetVcsInstance(vcs)
	if err != nil {
		return nil, err
	}
	return v.GetRepo(repoId)
}

func matchGlob(search, name string) bool {
	if search == "" {
		return true
	}

	pattern := fmt.Sprintf("*%s*", search)
	matched, err := path.Match(pattern, name)
	if err != nil {
		return false
	}
	return matched
}

//校验ref是否为空 空则返回默认分支
func getBranch(repo RepoIface, ref string) string {
	if ref == "" {
		return repo.DefaultBranch()
	}
	return ref
}

func GetRepoAddress(repo RepoIface) (string, error) {
	p, err := repo.FormatRepoSearch()
	if err != nil {
		return "", err
	}
	return p.HTTPURLToRepo, nil
}

func SetWebhook(vcs *models.Vcs, repoId string, triggers []string) error {
	webhookUrl := configs.Get().Portal.Address + "/api/v1"
	switch vcs.VcsType {
	case models.VcsGitlab:
		webhookUrl += WebhookUrlGitlab
	case models.VcsGitea:
		webhookUrl += WebhookUrlGitea
	case models.VcsGitee:
		webhookUrl += WebhookUrlGitee
	case models.VcsGithub:
		webhookUrl += WebhookUrlGithub
	}
	webhookUrl += fmt.Sprintf("/%s", vcs.Id.String())
	repo, err := GetRepo(vcs, repoId)
	if err != nil {
		return err
	}
	webhooks, err := repo.ListWebhook()
	if err != nil {
		return err
	}
	var webhookId int
	isExist := false
	for _, webhook := range webhooks {
		// 如果url相同，证明仓库中存在webhook；
		if webhook.URL == webhookUrl {
			isExist = true
			webhookId = webhook.ID
			break
		}
	}
	//空值时删除
	if len(triggers) == 0 {
		// 判断同vcs、仓库的环境是否存在
		exist, err := db.Get().Table(models.Env{}.TableName()).
			Joins("left join iac_template as tpl on iac_env.tpl_id = tpl.id").
			Where("tpl.vcs_id = ?",vcs.Id).
			Where("iac_env.triggers IS NOT NULL or iac_env.triggers != '{}'").Exists()
		if err != nil {
			return err
		}
		//如果同vcs、仓库的环境不存在，则删除代码仓库中的webhook
		if !exist {
			if err := repo.DeleteWebhook(webhookId); err != nil {
				return err
			}
		}
		return nil
	} else {
		// 存在则忽略，不存在则添加
		if !isExist {
			if err := repo.AddWebhook(webhookUrl); err != nil {
				return err
			}
		}
		return nil
	}
}

repository: PhantomMaa/CloudIaC

repo_name: PhantomMaa/CloudIaC


text:
package gqlrelay_test

import (
	"github.com/chris-ramon/graphql-go"
	"github.com/chris-ramon/graphql-go/testutil"
	"github.com/chris-ramon/graphql-go/types"
	"github.com/sogko/graphql-relay-go"
	"reflect"
	"testing"
)

var connectionTestAllUsers = []interface{}{
	&user{Name: "Dan"},
	&user{Name: "Nick"},
	&user{Name: "Lee"},
	&user{Name: "Joe"},
	&user{Name: "Tim"},
}
var connectionTestUserType *types.GraphQLObjectType
var connectionTestQueryType *types.GraphQLObjectType
var connectionTestSchema types.GraphQLSchema
var connectionTestConnectionDef *gqlrelay.GraphQLConnectionDefinitions

func init() {
	connectionTestUserType = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
		Name: "User",
		Fields: types.GraphQLFieldConfigMap{
			"name": &types.GraphQLFieldConfig{
				Type: types.GraphQLString,
			},
			// re-define `friends` field later because `connectionTestUserType` has `connectionTestConnectionDef` has `connectionTestUserType` (cyclic-reference)
			"friends": &types.GraphQLFieldConfig{},
		},
	})

	connectionTestConnectionDef = gqlrelay.ConnectionDefinitions(gqlrelay.ConnectionConfig{
		Name:     "Friend",
		NodeType: connectionTestUserType,
		EdgeFields: types.GraphQLFieldConfigMap{
			"friendshipTime": &types.GraphQLFieldConfig{
				Type: types.GraphQLString,
				Resolve: func(p types.GQLFRParams) interface{} {
					return "Yesterday"
				},
			},
		},
		ConnectionFields: types.GraphQLFieldConfigMap{
			"totalCount": &types.GraphQLFieldConfig{
				Type: types.GraphQLInt,
				Resolve: func(p types.GQLFRParams) interface{} {
					return len(connectionTestAllUsers)
				},
			},
		},
	})

	// define `friends` field here after getting connection definition
	connectionTestUserType.AddFieldConfig("friends", &types.GraphQLFieldConfig{
		Type: connectionTestConnectionDef.ConnectionType,
		Args: gqlrelay.ConnectionArgs,
		Resolve: func(p types.GQLFRParams) interface{} {
			arg := gqlrelay.NewConnectionArguments(p.Args)
			res := gqlrelay.ConnectionFromArray(connectionTestAllUsers, arg)
			return res
		},
	})

	connectionTestQueryType = types.NewGraphQLObjectType(types.GraphQLObjectTypeConfig{
		Name: "Query",
		Fields: types.GraphQLFieldConfigMap{
			"user": &types.GraphQLFieldConfig{
				Type: connectionTestUserType,
				Resolve: func(p types.GQLFRParams) interface{} {
					return connectionTestAllUsers[0]
				},
			},
		},
	})
	var err error
	connectionTestSchema, err = types.NewGraphQLSchema(types.GraphQLSchemaConfig{
		Query: connectionTestQueryType,
	})
	if err != nil {
		panic(err)
	}

}

func TestConnectionDefinition_IncludesConnectionAndEdgeFields(t *testing.T) {
	query := `
      query FriendsQuery {
        user {
          friends(first: 2) {
            totalCount
            edges {
              friendshipTime
              node {
                name
              }
            }
          }
        }
      }
    `
	expected := &types.GraphQLResult{
		Data: map[string]interface{}{
			"user": map[string]interface{}{
				"friends": map[string]interface{}{
					"totalCount": 5,
					"edges": []interface{}{
						map[string]interface{}{
							"friendshipTime": "Yesterday",
							"node": map[string]interface{}{
								"name": "Dan",
							},
						},
						map[string]interface{}{
							"friendshipTime": "Yesterday",
							"node": map[string]interface{}{
								"name": "Nick",
							},
						},
					},
				},
			},
		},
	}
	result := graphql(t, gql.GraphqlParams{
		Schema:        connectionTestSchema,
		RequestString: query,
	})
	if !reflect.DeepEqual(result, expected) {
		t.Fatalf("wrong result, graphql result diff: %v", testutil.Diff(expected, result))
	}
}

repository: TribeMedia/graphql-relay-go

repo_name: TribeMedia/graphql-relay-go


text:
package main

import (
	"image/color"
	"strconv"

	"github.com/oakmound/oak/v3/alg/range/floatrange"

	"image"

	oak "github.com/oakmound/oak/v3"
	"github.com/oakmound/oak/v3/render"
	"github.com/oakmound/oak/v3/scene"
)

var (
	font       *render.Font
	r, g, b, a float64
	diff       = floatrange.NewSpread(0, 10)
	limit      = floatrange.NewLinear(0, 255)
)

type floatStringer struct {
	f *float64
}

func (fs floatStringer) String() string {
	return strconv.Itoa(int(*fs.f))
}

func main() {
	oak.AddScene("demo",
		// Init
		scene.Scene{Start: func(*scene.Context) {
			render.Draw(render.NewDrawFPS(0.25, nil, 10, 10))
			// We use the font at ./assets/font/luxisbi.ttf
			// The /assets/font structure is determined by
			// oak.SetupConfig.Assets
			fg := render.FontGenerator{
				File:    "luxisbi.ttf",
				Color:   image.NewUniform(color.RGBA{255, 0, 0, 255}),
				Size:    400,
				Hinting: "",
				DPI:     10,
			}
			r = 255
			font, _ = fg.Generate()
			txts := []*render.Text{
				font.NewText("Rainbow", 200, 200),
				font.NewStringerText(floatStringer{&r}, 200, 250),
				font.NewStringerText(floatStringer{&g}, 320, 250),
				font.NewStringerText(floatStringer{&b}, 440, 250),
			}
			for _, txt := range txts {
				txt.SetFont(font)
				render.Draw(txt, 0)
			}
			font2 := font.Copy()
			font2.Color = image.NewUniform(color.RGBA{255, 255, 255, 255})
			font2, _ = font2.Generate()
			// Could give each r,g,b a color which is just the r,g,b value
			render.Draw(font2.NewText("r", 170, 250), 0)
			render.Draw(font2.NewText("g", 290, 250), 0)
			render.Draw(font2.NewText("b", 410, 250), 0)
		},
			Loop: func() bool {
				r = limit.EnforceRange(r + diff.Poll())
				g = limit.EnforceRange(g + diff.Poll())
				b = limit.EnforceRange(b + diff.Poll())
				// This should be a function in oak to just set color source
				// (or texture source)
				font.Drawer.Src = image.NewUniform(
					color.RGBA{
						uint8(r),
						uint8(g),
						uint8(b),
						255,
					},
				)
				return true
			},
		})
	render.SetDrawStack(
		render.NewDynamicHeap(),
	)
	oak.Init("demo")
}

repository: shizonic/oak

repo_name: shizonic/oak