text:
package main

import (
	"context"
	"encoding/json"
	"flag"
	"log"
	"os"
	"strings"
	"time"

	"github.com/adamwg/elastiquery"
	"github.com/adamwg/elastiquery/v2"
	"github.com/adamwg/elastiquery/v5"
	"github.com/adamwg/elastiquery/v6"
	"github.com/ianschenck/envflag"
)

func main() {
	// Global options can be set by either envvar or flag, with the flag taking
	// precedence.
	var esURL string
	envflag.StringVar(&esURL, "ES_URL", "", "ElasticSearch server URL")
	flag.StringVar(&esURL, "es-url", "", "ElasticSearch server URL")
	var esIndex string
	envflag.StringVar(&esIndex, "ES_INDEX", "", "ElasticSearch index")
	flag.StringVar(&esIndex, "index", "", "ElasticSearch index")

	timeout := flag.Duration("timeout", 30*time.Second, "Timeout for ElasticSearch queries")
	offset := flag.Int("offset", 0, "Number of results to skip")
	limit := flag.Int("limit", 0, "Number of results to return")
	sortField := flag.String("sort-by", "", "Field name to sort results by")
	sortReverse := flag.Bool("reverse", false, "Sort in reverse order")
	or := flag.Bool("or", false, "Require only one of the given queries to match, rather than all of them")

	rawQuery := flag.String("raw", "", "Raw ElasticSearch JSON query")
	termQueries := flag.String("terms", "", "Semicolon-separated ElasticSearch term queries in the form field=term")
	prefixQueries := flag.String("prefixes", "", "Semicolon-separated ElasticSearch term queries in the form field=term")
	rangeQueries := flag.String("ranges", "", "Semi-colon-separated ElasticSearch range queries in the form field=from~to")

	timeField := flag.String("time-field", "@timestamp", "Field name for record timestamps")
	timeFrom := flag.String("time-start", "", "Start time for search, in RFC3339 format")
	timeTo := flag.String("time-end", "", "End time for search, in RFC3339 format")

	quiet := flag.Bool("quiet", false, "Silent or quiet mode. Makes elastiquery mute. It will still output the data you ask for")

	envflag.Parse()
	flag.Parse()

	if esURL == "" {
		log.Fatal("ElasticSearch server address must be provided via flag or environment")
	}
	if esIndex == "" {
		log.Fatal("ElasticSearch index must be provided via flag or environment")
	}

	esVersion, err := elastiquery.GetServerVersion(esURL)
	if err != nil {
		log.Fatalf("Could not determine ES server version: %v", err)
	}
	if !*quiet {
		log.Printf("ES server version is %s", esVersion)
	}

	var client elastiquery.ESClient
	if strings.HasPrefix(esVersion, "2.") {
		client, err = v2.NewClient(esURL)
	} else if strings.HasPrefix(esVersion, "5.") {
		client, err = v5.NewClient(esURL)
	} else if strings.HasPrefix(esVersion, "6.") {
		client, err = v6.NewClient(esURL)
	}
	if err != nil {
		log.Fatalf("Error creating ElasticSearch client: %v", err)
	}
	if client == nil {
		log.Fatalf("Could not create client for ES version %s", esVersion)
	}

	var queries []elastiquery.ESQuery
	if *rawQuery != "" {
		queries = append(queries, client.RawQuery(*rawQuery))
	}
	if *termQueries != "" {
		qs := strings.Split(*termQueries, ";")
		for _, q := range qs {
			parts := strings.SplitN(q, "=", 2)
			if len(parts) != 2 {
				log.Fatalf("Invalid term query %q", q)
			}
			queries = append(queries, client.TermQuery(parts[0], parts[1]))
		}
	}
	if *prefixQueries != "" {
		qs := strings.Split(*prefixQueries, ";")
		for _, q := range qs {
			parts := strings.SplitN(q, "=", 2)
			if len(parts) != 2 {
				log.Fatalf("Invalid prefix query %q", q)
			}
			queries = append(queries, client.PrefixQuery(parts[0], parts[1]))
		}
	}
	if *rangeQueries != "" {
		qs := strings.Split(*rangeQueries, ";")
		for _, q := range qs {
			parts := strings.SplitN(q, "=", 2)
			if len(parts) != 2 {
				log.Fatalf("Invalid range query %q", q)
			}
			fromto := strings.SplitN(parts[1], "~", 2)
			if len(fromto) != 2 {
				log.Fatalf("Invalid range %q", fromto)
			}
			queries = append(queries, client.RangeQuery(parts[0], fromto[0], fromto[1]))
		}
	}

	if len(queries) == 0 {
		log.Fatal("No queries specified")
	}

	var timeRangeQuery elastiquery.ESQuery
	if *timeFrom != "" || *timeTo != "" {
		// Use interface{} here so that we get nil for unspecified start or end.
		var from, to interface{}

		if *timeFrom != "" {
			from, err = time.Parse(time.RFC3339, *timeFrom)
			if err != nil {
				log.Fatalf("Invalid time %q", *timeFrom)
			}
		}
		if *timeTo != "" {
			to, err = time.Parse(time.RFC3339, *timeTo)
			if err != nil {
				log.Fatalf("Invalid time %q", *timeTo)
			}
		}
		timeRangeQuery = client.RangeQuery(*timeField, from, to)
	}

	var compositeQuery elastiquery.ESQuery
	if len(queries) == 1 {
		compositeQuery = queries[0]
	} else if *or {
		compositeQuery = client.OrQuery(queries...)
	} else {
		compositeQuery = client.AndQuery(queries...)
	}
	if timeRangeQuery != nil {
		compositeQuery = client.AndQuery(compositeQuery, timeRangeQuery)
	}

	opts := parseQueryOpts(*offset, *limit, *sortField, *sortReverse)
	ctx, cancel := context.WithTimeout(context.Background(), *timeout)
	defer cancel()
	var result elastiquery.ESResult
	result, err = compositeQuery.Do(ctx, esIndex, opts...)

	if err != nil {
		log.Fatalf("Query failed: %v", err)
	}
	if result.TotalHits() == 0 {
		log.Fatalf("Query returned no results")
	}

	enc := json.NewEncoder(os.Stdout)
	enc.SetIndent("", "  ")
	enc.Encode(result.RawHits())
}

func parseQueryOpts(offset, limit int, sortField string, sortReverse bool) []elastiquery.QueryOpt {
	var ret []elastiquery.QueryOpt

	if offset != 0 {
		ret = append(ret, elastiquery.WithOffset(offset))
	}
	if limit != 0 {
		ret = append(ret, elastiquery.WithLimit(limit))
	}
	if sortField != "" {
		ret = append(ret, elastiquery.WithSortField(sortField))
	}
	if sortReverse {
		ret = append(ret, elastiquery.WithReverseSort())
	}

	return ret
}

repository: adamwg/elastiquery

repo_name: adamwg/elastiquery


text:
/// <reference path="../references.ts"/>
/// <reference path="../../defs/mysql.d.ts"/>
/// <reference path="../../../vineyard-metahub/metahub.d.ts"/>

var when = require('when')
var mysql = require('mysql')
var sequence:any = require('when/sequence')

module Ground {
	export class Database {
		settings
		log_queries:boolean = false
		private database:string
		private pool
		private script_pool = null
		private active:boolean = false
		private active_query_count = 0
		private on_final_query:()=> void = null

		constructor(settings, database:string) {
			this.settings = settings
			this.database = database
			this.start()
		}

		add_table_to_database(table:Table, ground:Core):Promise {
			var sql = table.create_sql(ground)
			return this.query(sql)
				.then(()=>table)
		}

		add_non_trellis_tables_to_database(tables:Table[], ground:Core):Promise {
			var non_trellises = MetaHub.filter(tables, (x)=> !x.trellis)
			var promises = MetaHub.map_to_array(non_trellises, (table:Table)=> this.add_table_to_database(table, ground));
			return when.all(promises)
		}

		start() {
			if (this.active)
				return

			this.pool = mysql.createPool(this.settings[this.database])
			this.active = true
			console.log('DB connection pool created.')
		}

		close(immediate = false):Promise {
			var actions = []
			if (!immediate)
				actions.push(() => this.wait_for_remaining_queries())

			return sequence(actions.concat([
				() => this.close_all_pools(),
				()=> {
					this.active = false
					console.log('Ground DB successfully shut down.')
				}
			]))
		}

		// This function is used to avoid closing the db while connections are still being fired during tests.
		// Eventually this may need to also hook into new db queries and have a some timing
		// mechanism to see if no queries are fired after active_query_count hits zero.
		// That case might be possible with promise chains.
		private wait_for_remaining_queries():Promise {
			if (this.active_query_count == 0)
				return when.resolve()

			var def = when.defer()

			// Eventually this may be supported, but for now I don't know what would
			// cause this and if it does happen I want it analyzed before allowed.
			if (this.on_final_query)
				throw new Error("wait_for_remaining_queries was called twice.")

			this.on_final_query = ()=> {
				this.on_final_query = null
				def.resolve()
			}

			return def.promise
		}

		private close_all_pools():Promise {
			var promises = []
			if (this.pool) {
				promises.push(this.close_pool(this.pool, 'main'))
				this.pool = null
			}
			if (this.script_pool) {
				promises.push(this.close_pool(this.script_pool, 'script'))
				this.script_pool = null
			}

			return when.all(promises)
		}

		private close_pool(pool, name):Promise {
			var def = when.defer()
			pool.end((error)=> {
				if (error) {
					console.error('Error closing ' + name + ' pool:', error)
					def.reject(error)
				}

				def.resolve()
			})

			return def.promise
		}

		create_table(trellis:landscape.Trellis):Promise {
			if (!trellis)
				throw new Error('Empty object was passed to create_table().')

			var table = Table.create_from_trellis(trellis);
			var sql = table.create_sql_from_trellis(trellis);
			return this.query(sql)
				.then(()=>table)
		}

		create_trellis_tables(trellises:{[key: string]: landscape.Trellis}):Promise {
			var promises = MetaHub.map_to_array(trellises, (trellis:landscape.Trellis)=>this.create_table(trellis));
			return when.all(promises)
		}

		drop_all_tables():Promise {
			return when.map(this.get_tables(), (table) => {
				return this.query('DROP TABLE IF EXISTS `' + table + '`');
			});
		}

		get_tables():Promise {
			return when.map(this.query('SHOW TABLES'), (row) => {
				for (var i in row)
					return row[i];

				return null;
			});
		}

		is_active():boolean {
			return this.active
		}

		query(sql:string, args:any[] = undefined, pool = undefined):Promise {
			if (!pool)
				pool = this.pool

			var def = when.defer()
			if (this.log_queries)
				console.log('start', sql)

			this.pool.query(sql, args, (err, rows, fields) => {
				this.active_query_count--
				if (this.on_final_query) {
					console.log('remaining-queries:', this.active_query_count)
					if (this.active_query_count == 0)
						this.on_final_query()
				}

				if (err) {
					console.error('error', sql)
					def.reject(err)
				}
//        console.log('sql', sql)
				def.resolve(rows, fields)

				return null
			});

			this.active_query_count++

			return def.promise
		}

		query_single(sql:string, args:any[] = undefined):Promise {
			return this.query(sql, args)
				.then((rows) => rows[0])
		}

		// Identical to query(), except that it uses a connection that allows
		// multiple SQL statements in one call.  (By default that is disabled in the main connection pool.)
		run_script(sql:string, args:any[] = undefined):Promise {
			if (!this.script_pool) {
				var settings = MetaHub.extend({}, this.settings[this.database])
				settings.multipleStatements = true
				this.script_pool = mysql.createPool(settings)
			}
			return this.query(sql, args, this.script_pool)
		}

	}
}

license: MIT

license_type: permissive

branch_name: refs/heads/master

extension: ts


text:
package main

import (
	"context"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"time"
	"go.opencensus.io/trace"
	"github.com/afiskon/golang-jaeger-example"
)

func main() {
	utils.InitJaeger("client")
	for {
		ctx, span := trace.StartSpan(context.Background(), "main")
		span.AddAttributes(
			trace.StringAttribute("method", "POST"),
		)
		log.Printf("TraceId: %s\n", span.SpanContext().TraceID.String())
		resp, err := sendPostRequest(ctx, "http://localhost:8080/api/v1/ping")
		if err != nil {
			log.Printf("sendPostRequest: %v\n", err)
		}
		fmt.Printf("Response: %s\n", resp)
		span.End()

		time.Sleep(5 * time.Second)
	}
}

func sendPostRequest(ctx context.Context, url string) (string, error) {
	_ /* ctx2 */, span := trace.StartSpan(ctx, "sendPostRequest")
	defer span.End()

	spanContextJson, err := json.Marshal(span.SpanContext())
	if err != nil {
		return "", err
	}

	req, err := http.NewRequest("POST", url,  nil)
	if err != nil {
		return "", err
	}
	req.Header.Add("X-Span-Context", string(spanContextJson))

	client := http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return "", err
	}
	defer resp.Body.Close()

	bytes, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		return "", err
	}

	return string(bytes), nil
}

repository: afiskon/golang-jaeger-example

repo_name: afiskon/golang-jaeger-example

extension: go


text:
<?xml version="1.0" encoding="UTF-8"?>
<drawing version="7">
    <attr value="spartan3e" name="DeviceFamilyName">
        <trait delete="all:0" />
        <trait editname="all:0" />
        <trait edittrait="all:0" />
    </attr>
    <netlist>
        <signal name="XLXN_1(7:0)" />
        <signal name="REG_OUT(7:0)" />
        <signal name="ZERO" />
        <signal name="LD_IR" />
        <signal name="CL_IR" />
        <signal name="D_IN(7:0)" />
        <signal name="CLK" />
        <signal name="LD_D" />
        <signal name="CL_D" />
        <signal name="LD_PC" />
        <signal name="COUNT" />
        <signal name="CL_PC" />
        <signal name="XLXN_22(7:0)" />
        <signal name="XLXN_25(7:0)" />
        <signal name="IR_OUT(7:0)" />
        <signal name="LD_AC" />
        <signal name="CL_AC" />
        <signal name="DORPC" />
        <signal name="A(7:0)" />
        <signal name="ADDORSUB" />
        <signal name="XLXN_26(7:0)" />
        <signal name="XLXN_27" />
        <port polarity="Output" name="REG_OUT(7:0)" />
        <port polarity="Output" name="ZERO" />
        <port polarity="Input" name="LD_IR" />
        <port polarity="Input" name="CL_IR" />
        <port polarity="Input" name="D_IN(7:0)" />
        <port polarity="Input" name="CLK" />
        <port polarity="Input" name="LD_D" />
        <port polarity="Input" name="CL_D" />
        <port polarity="Input" name="LD_PC" />
        <port polarity="Input" name="COUNT" />
        <port polarity="Input" name="CL_PC" />
        <port polarity="Output" name="IR_OUT(7:0)" />
        <port polarity="Input" name="LD_AC" />
        <port polarity="Input" name="CL_AC" />
        <port polarity="Input" name="DORPC" />
        <port polarity="Output" name="A(7:0)" />
        <port polarity="Input" name="ADDORSUB" />
        <blockdef name="register_8bit">
            <timestamp>2017-3-6T20:51:24</timestamp>
            <rect width="256" x="64" y="-256" height="256" />
            <line x2="0" y1="-224" y2="-224" x1="64" />
            <line x2="0" y1="-160" y2="-160" x1="64" />
            <line x2="0" y1="-96" y2="-96" x1="64" />
            <rect width="64" x="0" y="-44" height="24" />
            <line x2="0" y1="-32" y2="-32" x1="64" />
            <rect width="64" x="320" y="-236" height="24" />
            <line x2="384" y1="-224" y2="-224" x1="320" />
        </blockdef>
        <blockdef name="lab_counter">
            <timestamp>2017-3-7T18:3:5</timestamp>
            <rect width="320" x="64" y="-320" height="320" />
            <rect width="64" x="0" y="-300" height="24" />
            <line x2="0" y1="-288" y2="-288" x1="64" />
            <line x2="0" y1="-224" y2="-224" x1="64" />
            <line x2="0" y1="-160" y2="-160" x1="64" />
            <line x2="0" y1="-96" y2="-96" x1="64" />
            <line x2="0" y1="-32" y2="-32" x1="64" />
            <rect width="64" x="384" y="-300" height="24" />
            <line x2="448" y1="-288" y2="-288" x1="384" />
        </blockdef>
        <blockdef name="mux_2to1_8bit">
            <timestamp>2017-2-15T15:54:44</timestamp>
            <line x2="0" y1="-128" y2="-128" x1="64" />
            <line x2="64" y1="-160" y2="-8" x1="64" />
            <line x2="144" y1="-160" y2="-124" x1="64" />
            <line x2="144" y1="-124" y2="-40" x1="144" />
            <line x2="112" y1="4" y2="-28" x1="112" />
            <line x2="208" y1="-80" y2="-80" x1="144" />
            <line x2="144" y1="-8" y2="-40" x1="64" />
            <line x2="0" y1="-48" y2="-48" x1="64" />
        </blockdef>
        <blockdef name="test_zero">
            <timestamp>2017-2-15T15:54:44</timestamp>
            <rect width="256" x="64" y="-64" height="64" />
            <rect width="64" x="0" y="-44" height="24" />
            <line x2="0" y1="-32" y2="-32" x1="64" />
            <line x2="384" y1="-32" y2="-32" x1="320" />
        </blockdef>
        <blockdef name="full_adder_8bit">
            <timestamp>2017-3-29T18:39:23</timestamp>
            <rect width="256" x="64" y="-256" height="256" />
            <rect width="64" x="0" y="-236" height="24" />
            <line x2="0" y1="-224" y2="-224" x1="64" />
            <rect width="64" x="0" y="-140" height="24" />
            <line x2="0" y1="-128" y2="-128" x1="64" />
            <line x2="0" y1="-32" y2="-32" x1="64" />
            <rect width="64" x="320" y="-236" height="24" />
            <line x2="384" y1="-224" y2="-224" x1="320" />
            <line x2="384" y1="-160" y2="-160" x1="320" />
            <rect width="64" x="320" y="-108" height="24" />
            <line x2="384" y1="-96" y2="-96" x1="320" />
            <rect width="64" x="320" y="-44" height="24" />
            <line x2="384" y1="-32" y2="-32" x1="320" />
        </blockdef>
        <block symbolname="register_8bit" name="XLXI_1">
            <blockpin signalname="LD_D" name="Load" />
            <blockpin signalname="CLK" name="CLK" />
            <blockpin signalname="CL_D" name="Reset" />
            <blockpin signalname="D_IN(7:0)" name="R_in(7:0)" />
            <blockpin signalname="XLXN_22(7:0)" name="R_out(7:0)" />
        </block>
        <block symbolname="register_8bit" name="XLXI_2">
            <blockpin signalname="LD_IR" name="Load" />
            <blockpin signalname="CLK" name="CLK" />
            <blockpin signalname="CL_IR" name="Reset" />
            <blockpin signalname="D_IN(7:0)" name="R_in(7:0)" />
            <blockpin signalname="IR_OUT(7:0)" name="R_out(7:0)" />
        </block>
        <block symbolname="register_8bit" name="XLXI_3">
            <blockpin signalname="LD_AC" name="Load" />
            <blockpin signalname="CLK" name="CLK" />
            <blockpin signalname="CL_AC" name="Reset" />
            <blockpin signalname="XLXN_1(7:0)" name="R_in(7:0)" />
            <blockpin signalname="REG_OUT(7:0)" name="R_out(7:0)" />
        </block>
        <block symbolname="lab_counter" name="XLXI_8">
            <blockpin signalname="XLXN_22(7:0)" name="Count_in(7:0)" />
            <blockpin signalname="LD_PC" name="Load" />
            <blockpin signalname="COUNT" name="count" />
            <blockpin signalname="CLK" name="CLK" />
            <blockpin signalname="CL_PC" name="Reset" />
            <blockpin signalname="XLXN_25(7:0)" name="Count_out(7:0)" />
        </block>
        <block symbolname="mux_2to1_8bit" name="XLXI_9">
            <blockpin signalname="XLXN_22(7:0)" name="in0(7:0)" />
            <blockpin signalname="DORPC" name="sel" />
            <blockpin signalname="A(7:0)" name="mux_out(7:0)" />
            <blockpin signalname="XLXN_25(7:0)" name="in1(7:0)" />
        </block>
        <block symbolname="test_zero" name="XLXI_10">
            <blockpin signalname="REG_OUT(7:0)" name="n(7:0)" />
            <blockpin signalname="ZERO" name="is_zero" />
        </block>
        <block symbolname="full_adder_8bit" name="XLXI_12">
            <blockpin signalname="REG_OUT(7:0)" name="b(7:0)" />
            <blockpin signalname="XLXN_22(7:0)" name="a(7:0)" />
            <blockpin signalname="ADDORSUB" name="sub" />
            <blockpin signalname="XLXN_1(7:0)" name="sum(7:0)" />
            <blockpin name="c_out" />
            <blockpin name="g(7:0)" />
            <blockpin name="p(7:0)" />
        </block>
    </netlist>
    <sheet sheetnum="1" width="3520" height="2720">
        <instance x="832" y="880" name="XLXI_1" orien="R0">
        </instance>
        <instance x="832" y="1488" name="XLXI_2" orien="R0">
        </instance>
        <instance x="1408" y="1744" name="XLXI_8" orien="R0">
        </instance>
        <branch name="XLXN_1(7:0)">
            <wire x2="1968" y1="800" y2="800" x1="1888" />
            <wire x2="1968" y1="800" y2="960" x1="1968" />
            <wire x2="2096" y1="960" y2="960" x1="1968" />
        </branch>
        <instance x="2752" y="1056" name="XLXI_10" orien="R0">
        </instance>
        <instance x="2272" y="1328" name="XLXI_9" orien="R0" />
        <instance x="2096" y="992" name="XLXI_3" orien="R0">
        </instance>
        <branch name="REG_OUT(7:0)">
            <wire x2="2656" y1="720" y2="720" x1="1424" />
            <wire x2="2656" y1="720" y2="768" x1="2656" />
            <wire x2="3088" y1="768" y2="768" x1="2656" />
            <wire x2="2656" y1="768" y2="1024" x1="2656" />
            <wire x2="2752" y1="1024" y2="1024" x1="2656" />
            <wire x2="1424" y1="720" y2="800" x1="1424" />
            <wire x2="1504" y1="800" y2="800" x1="1424" />
            <wire x2="2656" y1="768" y2="768" x1="2480" />
        </branch>
        <branch name="ZERO">
            <wire x2="3312" y1="1024" y2="1024" x1="3136" />
        </branch>
        <branch name="LD_IR">
            <wire x2="832" y1="1264" y2="1264" x1="336" />
        </branch>
        <branch name="CL_IR">
            <wire x2="832" y1="1392" y2="1392" x1="368" />
        </branch>
        <branch name="D_IN(7:0)">
            <wire x2="576" y1="848" y2="848" x1="416" />
            <wire x2="832" y1="848" y2="848" x1="576" />
            <wire x2="576" y1="848" y2="1456" x1="576" />
            <wire x2="832" y1="1456" y2="1456" x1="576" />
        </branch>
        <branch name="CLK">
            <wire x2="752" y1="464" y2="464" x1="640" />
            <wire x2="752" y1="464" y2="720" x1="752" />
            <wire x2="832" y1="720" y2="720" x1="752" />
            <wire x2="752" y1="720" y2="1040" x1="752" />
            <wire x2="752" y1="1040" y2="1328" x1="752" />
            <wire x2="832" y1="1328" y2="1328" x1="752" />
            <wire x2="752" y1="1328" y2="1648" x1="752" />
            <wire x2="1408" y1="1648" y2="1648" x1="752" />
            <wire x2="1952" y1="1040" y2="1040" x1="752" />
            <wire x2="2096" y1="832" y2="832" x1="1952" />
            <wire x2="1952" y1="832" y2="1040" x1="1952" />
        </branch>
        <branch name="LD_D">
            <wire x2="832" y1="656" y2="656" x1="368" />
        </branch>
        <branch name="CL_D">
            <wire x2="832" y1="784" y2="784" x1="368" />
        </branch>
        <branch name="LD_PC">
            <wire x2="1408" y1="1520" y2="1520" x1="512" />
        </branch>
        <branch name="COUNT">
            <wire x2="1408" y1="1584" y2="1584" x1="528" />
        </branch>
        <branch name="CL_PC">
            <wire x2="1408" y1="1712" y2="1712" x1="528" />
        </branch>
        <branch name="XLXN_22(7:0)">
            <wire x2="1360" y1="656" y2="656" x1="1216" />
            <wire x2="1360" y1="656" y2="896" x1="1360" />
            <wire x2="1360" y1="896" y2="1200" x1="1360" />
            <wire x2="2272" y1="1200" y2="1200" x1="1360" />
            <wire x2="1360" y1="1200" y2="1456" x1="1360" />
            <wire x2="1408" y1="1456" y2="1456" x1="1360" />
            <wire x2="1504" y1="896" y2="896" x1="1360" />
        </branch>
        <branch name="XLXN_25(7:0)">
            <wire x2="2064" y1="1456" y2="1456" x1="1856" />
            <wire x2="2064" y1="1280" y2="1456" x1="2064" />
            <wire x2="2272" y1="1280" y2="1280" x1="2064" />
        </branch>
        <branch name="IR_OUT(7:0)">
            <wire x2="1952" y1="1264" y2="1264" x1="1216" />
            <wire x2="1952" y1="1264" y2="2000" x1="1952" />
            <wire x2="2688" y1="2000" y2="2000" x1="1952" />
        </branch>
        <branch name="LD_AC">
            <wire x2="2080" y1="288" y2="288" x1="672" />
            <wire x2="2080" y1="288" y2="768" x1="2080" />
            <wire x2="2096" y1="768" y2="768" x1="2080" />
        </branch>
        <branch name="CL_AC">
            <wire x2="1920" y1="400" y2="400" x1="672" />
            <wire x2="1920" y1="400" y2="896" x1="1920" />
            <wire x2="2096" y1="896" y2="896" x1="1920" />
        </branch>
        <branch name="DORPC">
            <wire x2="2384" y1="1408" y2="1408" x1="2224" />
            <wire x2="2384" y1="1328" y2="1408" x1="2384" />
        </branch>
        <branch name="A(7:0)">
            <wire x2="3312" y1="1248" y2="1248" x1="2480" />
        </branch>
        <iomarker fontsize="28" x="3088" y="768" name="REG_OUT(7:0)" orien="R0" />
        <iomarker fontsize="28" x="3312" y="1024" name="ZERO" orien="R0" />
        <iomarker fontsize="28" x="3312" y="1248" name="A(7:0)" orien="R0" />
        <iomarker fontsize="28" x="2688" y="2000" name="IR_OUT(7:0)" orien="R0" />
        <iomarker fontsize="28" x="528" y="1712" name="CL_PC" orien="R180" />
        <iomarker fontsize="28" x="528" y="1584" name="COUNT" orien="R180" />
        <iomarker fontsize="28" x="512" y="1520" name="LD_PC" orien="R180" />
        <iomarker fontsize="28" x="368" y="1392" name="CL_IR" orien="R180" />
        <iomarker fontsize="28" x="336" y="1264" name="LD_IR" orien="R180" />
        <iomarker fontsize="28" x="640" y="464" name="CLK" orien="R180" />
        <iomarker fontsize="28" x="672" y="400" name="CL_AC" orien="R180" />
        <branch name="ADDORSUB">
            <wire x2="464" y1="896" y2="896" x1="448" />
            <wire x2="464" y1="896" y2="992" x1="464" />
            <wire x2="1504" y1="992" y2="992" x1="464" />
        </branch>
        <iomarker fontsize="28" x="448" y="896" name="ADDORSUB" orien="R180" />
        <iomarker fontsize="28" x="2224" y="1408" name="DORPC" orien="R180" />
        <iomarker fontsize="28" x="416" y="848" name="D_IN(7:0)" orien="R180" />
        <iomarker fontsize="28" x="368" y="784" name="CL_D" orien="R180" />
        <iomarker fontsize="28" x="368" y="656" name="LD_D" orien="R180" />
        <iomarker fontsize="28" x="672" y="288" name="LD_AC" orien="R180" />
        <text style="fontsize:24;fontname:Arial" x="2172" y="1036">Accumulator Register</text>
        <text style="fontsize:24;fontname:Arial" x="1540" y="1780">Program Counter</text>
        <text style="fontsize:28;fontname:Arial" x="876" y="924">Branch (Data) Register</text>
        <text style="fontsize:28;fontname:Arial" x="1632" y="644">A+B Adder</text>
        <text style="fontsize:28;fontname:Arial" x="2096" y="1160">Branch Address</text>
        <text style="fontsize:28;fontname:Arial" x="1980" y="1236">Program Counter Address</text>
        <text style="fontsize:28;fontname:Arial" x="892" y="1136">Instruction Register</text>
        <text style="fontsize:28;fontname:Arial" x="2868" y="896">Reg A Zero?</text>
        <text style="fontsize:28;fontname:Arial" x="2512" y="1952">Instruction</text>
        <instance x="1504" y="1024" name="XLXI_12" orien="R0">
        </instance>
    </sheet>
</drawing>

extension: sch


text:
package main

import (
	"fmt"
)

func main() {
	fmt.Printf("Hello world!")

	fmt.Printf(sampleFunc())

	pointerFunc()

	sampleGoroutine()
}

func sampleFunc() string {
	return "string"
}

func pointerFunc() {
	var a1 int
	var p1 *int

	p1 = &a1
	*p1 = 123
	fmt.Println(a1)
}

func defineVar() {
	var (
		a1 int = 123
		//a2 int = 456
	)
	fmt.Printf(string(rune(a1)))
	//fmt.Printf(string(rune(a2)))
}

func defineMap() {
	p1 := map[string]interface{}{
		"name": "Yamada",
		"age":  26,
	}
	name := p1["name"]
	fmt.Printf(name.(string))
}

func sampleGoroutine() {
	// channel の生成
	ch1 := make(chan int)
	f := func() {
		defer close(ch1)
		a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
		for _, v := range a {
			fmt.Printf("add channel: %d\n", v)
			// channel への書き込み
			ch1 <- v
		}
		//close(ch1)
	}
	go f()
	//time.Sleep(time.Second * 1)
	// channel から読み出し
	for c := range ch1 {
		fmt.Printf("read channel: %d\n", c)
	}
	fmt.Printf("go out\n")
	//value := <-ch1
	//fmt.Printf("%d", value)
}


text:
package api

import (
	"bytes"
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"io/ioutil"
	"math/rand"
	"net/http"
	"strconv"
	"strings"
	"time"
)

type Browser struct {
	Browser        string `json:"browser"`
	BrowserVersion string `json:"browser_version"`
	Device         string `json:"device"`
	OS             string `json:"os"`
	OSVersion      string `json:"os_version"`
	RealMobile     bool   `json:"real_mobile"`
}

func (x Browser) ResultKey() string {
	if x.Device != "" {
		return fmt.Sprintf("%s/%s", x.OS, x.OSVersion)
	}

	return fmt.Sprintf("%s/%s", x.Browser, x.BrowserVersion)
}

func (x Browser) ResultFilename() string {
	if x.Device != "" {
		return fmt.Sprintf("%s:%s", x.OS, x.OSVersion)
	}

	return fmt.Sprintf("%s:%s", x.Browser, x.BrowserVersion)
}

func (x *Client) ReducedBrowsers(ctx context.Context) ([]Browser, error) {
	browsers, err := x.Browsers(ctx)
	if err != nil {
		return nil, err
	}

	rand.Seed(time.Now().UnixNano())
	rand.Shuffle(len(browsers), func(i, j int) {
		browsers[i], browsers[j] = browsers[j], browsers[i]
	})

	browsersMap := map[string]Browser{}

	for _, b := range browsers {
		if b.BrowserVersion == "insider preview" {
			continue // not an official release
		}

		if strings.Contains(b.BrowserVersion, "beta") {
			continue // not an official release
		}

		if b.Browser == "edge" {
			parts := strings.Split(b.BrowserVersion, ".")
			if len(parts) > 0 {
				v, err := strconv.ParseInt(parts[0], 10, 64)
				if err == nil && v >= 79 {
					continue // Edge >= 79 is just Chrome
				}
			}
		}

		key, b := browserForReducedSet(b)
		switch key {
		case "ie/6.0":
			continue // too old
		case "ie/7.0":
			continue // too old
		default:

			browsersMap[key] = b
		}
	}

	out := []Browser{}
	for _, b := range browsersMap {
		out = append(out, b)
	}

	return out, nil
}

func browserForReducedSet(b Browser) (string, Browser) {
	if b.Device != "" {
		bb := Browser{
			Device:         b.Device,
			Browser:        b.Browser,
			BrowserVersion: b.BrowserVersion,
			OS:             b.OS,
			OSVersion:      b.OSVersion,
		}

		return bb.ResultKey(), bb
	}

	bb := Browser{
		Browser:        b.Browser,
		BrowserVersion: b.BrowserVersion,
	}

	return bb.ResultKey(), bb
}

func (x *Client) Browsers(parentCtx context.Context) ([]Browser, error) {
	ctx, cancel := context.WithTimeout(parentCtx, time.Second*15)
	defer cancel()

	req, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://api.browserstack.com/automate/browsers.json", nil)
	if err != nil {
		return nil, err
	}

	resp, err := x.http.Do(req)
	if err != nil {
		return nil, err
	}

	defer resp.Body.Close()

	b, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		return nil, err
	}

	if strings.Contains(string(b), "HTTP Basic: Access denied.") {
		return nil, errors.New("Access denied")
	}

	buf := bytes.NewBuffer(b)

	decoder := json.NewDecoder(buf)

	if resp.StatusCode != 200 {
		apiErr := &Error{}
		err := decoder.Decode(apiErr)
		if err != nil {
			return nil, err
		}

		return nil, apiErr
	}

	apiResp := []Browser{}
	err = decoder.Decode(&apiResp)
	if err != nil {
		return nil, err
	}

	return apiResp, nil
}

repository: romainmenke/web-tests

repo_name: romainmenke/web-tests

branch_name: refs/heads/main

gha_language: JavaScript


text:
package icbu

import (
	"github.com/bububa/opentaobao/core"
	"github.com/bububa/opentaobao/model/icbu"
)

// AlibabaIcbuPhotobankList 国际站图片银行查询接口
// alibaba.icbu.photobank.list
//
// 国际站图片银行查询接口
func AlibabaIcbuPhotobankList(clt *core.SDKClient, req *icbu.AlibabaIcbuPhotobankListAPIRequest, session string) (*icbu.AlibabaIcbuPhotobankListAPIResponse, error) {
	var resp icbu.AlibabaIcbuPhotobankListAPIResponse
	err := clt.Post(req, &resp, session)
	if err != nil {
		return nil, err
	}
	return &resp, nil
}

repository: bububa/opentaobao

repo_name: bububa/opentaobao

gha_language: Go


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.4.2">
<drawing>
<settings>
<setting alwaysvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.1" unitdist="mm" unit="mm" style="lines" multiple="1" display="yes" altdistance="0.025" altunitdist="mm" altunit="mm"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="no"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="no"/>
<layer number="4" name="Route4" color="1" fill="4" visible="no" active="no"/>
<layer number="5" name="Route5" color="4" fill="4" visible="no" active="no"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="no"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="no"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="no"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="no"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="no"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="no"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="no"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="no"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="no"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="no"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="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="no" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="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="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="no" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="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="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="no" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="4" fill="1" visible="no" active="yes"/>
<layer number="114" name="Badge_Outline" color="7" fill="1" visible="no" active="yes"/>
<layer number="115" name="ReferenceISLANDS" color="7" fill="1" visible="no" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="no" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="145" name="DrillLegend_01-02" color="7" fill="1" visible="yes" active="yes"/>
<layer number="146" name="DrillLegend_01-15" color="7" fill="1" visible="yes" active="yes"/>
<layer number="147" name="DrillLegend_01-16" color="7" fill="1" visible="yes" active="yes"/>
<layer number="148" name="DrillLegend_01-20" color="7" fill="1" visible="yes" active="yes"/>
<layer number="149" name="DrillLegend_02-15" color="7" fill="1" visible="yes" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="no" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="no" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="no" active="yes"/>
<layer number="160" name="O_Dim" color="12" fill="11" visible="no" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="no" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="no" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="232" name="Eagle3D_PG2" color="7" fill="1" visible="no" active="yes"/>
<layer number="233" name="Eagle3D_PG3" color="7" fill="1" visible="no" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="no" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="no" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="no" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="no" active="yes"/>
</layers>
<board>
<fusionsync huburn="a.cGVyc29uYWw6dWUyYTNhOTM1" projecturn="a.cGVyc29uYWw6dWUyYTNhOTM1IzIwMTgwMzMwMTI1MzQ5NDI2" f3durn="urn:adsk.wipprod:dm.lineage:J3SrBv-hSvuwP_Tn8DnPXA" pcbguid="3259ba38-a52e-4c87-9564-f1324ec8f363" lastpulledtime="" lastsyncedchangeguid="1f7ced38-c3eb-12de-cdae-c9a5b55157a8"/>
<plain>
<wire x1="0" y1="83" x2="0" y2="72.5" width="0.1524" layer="20"/>
<wire x1="0" y1="72.5" x2="1.5" y2="71" width="0.1524" layer="20" curve="90"/>
<wire x1="0" y1="83" x2="3" y2="86" width="0.1524" layer="20" curve="-90"/>
<wire x1="3" y1="86" x2="23.5" y2="86" width="0.1524" layer="20"/>
<wire x1="23.5" y1="86" x2="25" y2="84.5" width="0.1524" layer="20" curve="-90"/>
<wire x1="25" y1="84.5" x2="26.5" y2="83" width="0.1524" layer="20" curve="90"/>
<wire x1="26.5" y1="83" x2="59.5" y2="83" width="0.1524" layer="20"/>
<wire x1="59.5" y1="83" x2="61" y2="84.5" width="0.1524" layer="20" curve="90"/>
<wire x1="61" y1="84.5" x2="62.5" y2="86" width="0.1524" layer="20" curve="-90"/>
<wire x1="62.5" y1="86" x2="83" y2="86" width="0.1524" layer="20"/>
<wire x1="83" y1="86" x2="86" y2="83" width="0.1524" layer="20" curve="-90"/>
<wire x1="86" y1="83" x2="86" y2="72.5" width="0.1524" layer="20"/>
<wire x1="86" y1="72.5" x2="84.5" y2="71" width="0.1524" layer="20" curve="-90"/>
<wire x1="1.5" y1="71" x2="3" y2="69.5" width="0.1524" layer="20" curve="-90"/>
<wire x1="3" y1="69.5" x2="3" y2="16.5" width="0.1524" layer="20"/>
<wire x1="3" y1="16.5" x2="1.5" y2="15" width="0.1524" layer="20" curve="-90"/>
<wire x1="1.5" y1="15" x2="0" y2="13.5" width="0.1524" layer="20" curve="90"/>
<wire x1="0" y1="13.5" x2="0" y2="3" width="0.1524" layer="20"/>
<wire x1="0" y1="3" x2="3" y2="0" width="0.1524" layer="20" curve="90"/>
<wire x1="3" y1="0" x2="22" y2="0" width="0.1524" layer="20"/>
<wire x1="84.5" y1="71" x2="83" y2="69.5" width="0.1524" layer="20" curve="90"/>
<wire x1="83" y1="69.5" x2="83" y2="16.5" width="0.1524" layer="20"/>
<wire x1="83" y1="16.5" x2="84.5" y2="15" width="0.1524" layer="20" curve="90"/>
<wire x1="84.5" y1="15" x2="86" y2="13.5" width="0.1524" layer="20" curve="-90"/>
<wire x1="86" y1="13.5" x2="86" y2="3" width="0.1524" layer="20"/>
<wire x1="86" y1="3" x2="83" y2="0" width="0.1524" layer="20" curve="-90"/>
<wire x1="83" y1="0" x2="64" y2="0" width="0.1524" layer="20"/>
<wire x1="22" y1="0" x2="25" y2="3" width="0.1524" layer="20" curve="90"/>
<wire x1="25" y1="3" x2="28" y2="6" width="0.1524" layer="20" curve="-90"/>
<wire x1="28" y1="6" x2="58" y2="6" width="0.1524" layer="20"/>
<wire x1="58" y1="6" x2="61" y2="3" width="0.1524" layer="20" curve="-90"/>
<wire x1="61" y1="3" x2="64" y2="0" width="0.1524" layer="20" curve="90"/>
<hole x="5" y="5" drill="3.2"/>
<hole x="81" y="5" drill="3.2"/>
<hole x="81" y="81" drill="3.2"/>
<hole x="5" y="81" drill="3.2"/>
<circle x="5" y="5" radius="3.026546875" width="0.1524" layer="25"/>
<circle x="81" y="5" radius="3" width="0.1524" layer="25"/>
<circle x="5" y="81" radius="3.001665625" width="0.1524" layer="25"/>
<text x="77.6556" y="33.9428" size="1.016" layer="25" font="vector" rot="R90">Varella Std. - v.2.0 - 2020</text>
<circle x="81" y="81" radius="3.001665625" width="0.1524" layer="25"/>
<text x="0" y="-0.127" size="0.0508" layer="21" font="vector">C:/Users/marcu/Desktop/Ensino Superior/Graduação - Eng Elétrica/Zenith/zenith-v2.bmp</text>
<rectangle x1="75.6691" y1="36.5023" x2="75.8977" y2="36.5277" layer="21" rot="R90"/>
<rectangle x1="75.6437" y1="36.5023" x2="75.8723" y2="36.5277" layer="21" rot="R90"/>
<rectangle x1="75.1738" y1="36.4896" x2="76.2914" y2="36.515" layer="21" rot="R90"/>
<rectangle x1="75.1484" y1="36.4896" x2="76.266" y2="36.515" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="36.4515" x2="76.3803" y2="36.4769" layer="21" rot="R90"/>
<rectangle x1="74.742" y1="36.4388" x2="76.5708" y2="36.4642" layer="21" rot="R90"/>
<rectangle x1="74.7166" y1="36.4388" x2="76.5454" y2="36.4642" layer="21" rot="R90"/>
<rectangle x1="74.615" y1="36.4388" x2="76.5962" y2="36.4642" layer="21" rot="R90"/>
<rectangle x1="74.4372" y1="36.4134" x2="76.7232" y2="36.4388" layer="21" rot="R90"/>
<rectangle x1="74.4118" y1="36.4134" x2="76.6978" y2="36.4388" layer="21" rot="R90"/>
<rectangle x1="74.2975" y1="36.4261" x2="76.7613" y2="36.4515" layer="21" rot="R90"/>
<rectangle x1="74.2721" y1="36.4261" x2="76.7359" y2="36.4515" layer="21" rot="R90"/>
<rectangle x1="74.1451" y1="36.4007" x2="76.8121" y2="36.4261" layer="21" rot="R90"/>
<rectangle x1="74.0308" y1="36.388" x2="76.8756" y2="36.4134" layer="21" rot="R90"/>
<rectangle x1="74.0054" y1="36.388" x2="76.8502" y2="36.4134" layer="21" rot="R90"/>
<rectangle x1="73.8911" y1="36.4007" x2="76.9137" y2="36.4261" layer="21" rot="R90"/>
<rectangle x1="73.7895" y1="36.4007" x2="76.9645" y2="36.4261" layer="21" rot="R90"/>
<rectangle x1="73.7641" y1="36.4007" x2="76.9391" y2="36.4261" layer="21" rot="R90"/>
<rectangle x1="73.6625" y1="36.3753" x2="76.9899" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.2881" y1="44.3001" x2="75.3643" y2="44.3255" layer="21" rot="R90"/>
<rectangle x1="75.2373" y1="44.4779" x2="75.4151" y2="44.5033" layer="21" rot="R90"/>
<rectangle x1="75.3008" y1="44.6176" x2="75.3516" y2="44.643" layer="21" rot="R90"/>
<rectangle x1="75.3135" y1="46.2559" x2="75.3389" y2="46.2813" layer="21" rot="R90"/>
<rectangle x1="75.3135" y1="46.3321" x2="75.3389" y2="46.3575" layer="21" rot="R90"/>
<rectangle x1="75.2754" y1="47.056" x2="75.377" y2="47.0814" layer="21" rot="R90"/>
<rectangle x1="75.2373" y1="47.2719" x2="75.4151" y2="47.2973" layer="21" rot="R90"/>
<rectangle x1="75.25" y1="50.0532" x2="75.4024" y2="50.0786" layer="21" rot="R90"/>
<rectangle x1="75.2754" y1="50.739" x2="75.377" y2="50.7644" layer="21" rot="R90"/>
<rectangle x1="75.2754" y1="50.9168" x2="75.377" y2="50.9422" layer="21" rot="R90"/>
<rectangle x1="73.6371" y1="36.3753" x2="76.9645" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.2627" y1="44.3001" x2="75.3389" y2="44.3255" layer="21" rot="R90"/>
<rectangle x1="75.2119" y1="44.4779" x2="75.3897" y2="44.5033" layer="21" rot="R90"/>
<rectangle x1="75.2754" y1="44.6176" x2="75.3262" y2="44.643" layer="21" rot="R90"/>
<rectangle x1="75.2881" y1="46.2559" x2="75.3135" y2="46.2813" layer="21" rot="R90"/>
<rectangle x1="75.2881" y1="46.3321" x2="75.3135" y2="46.3575" layer="21" rot="R90"/>
<rectangle x1="75.25" y1="47.056" x2="75.3516" y2="47.0814" layer="21" rot="R90"/>
<rectangle x1="75.2119" y1="47.2719" x2="75.3897" y2="47.2973" layer="21" rot="R90"/>
<rectangle x1="75.2246" y1="50.0532" x2="75.377" y2="50.0786" layer="21" rot="R90"/>
<rectangle x1="75.25" y1="50.739" x2="75.3516" y2="50.7644" layer="21" rot="R90"/>
<rectangle x1="75.25" y1="50.9168" x2="75.3516" y2="50.9422" layer="21" rot="R90"/>
<rectangle x1="73.5355" y1="36.3753" x2="77.0153" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.2246" y1="43.2206" x2="75.3262" y2="43.246" layer="21" rot="R90"/>
<rectangle x1="75.2119" y1="43.7667" x2="75.3389" y2="43.7921" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="44.4525" x2="75.5167" y2="44.4779" layer="21" rot="R90"/>
<rectangle x1="75.2119" y1="45.0621" x2="75.3389" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="75.2373" y1="45.5447" x2="75.3135" y2="45.5701" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="46.2813" x2="75.4913" y2="46.3067" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="47.2592" x2="75.5548" y2="47.2846" layer="21" rot="R90"/>
<rectangle x1="75.2373" y1="47.9323" x2="75.3135" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="75.2246" y1="48.7832" x2="75.3262" y2="48.8086" layer="21" rot="R90"/>
<rectangle x1="75.2246" y1="49.3166" x2="75.3262" y2="49.342" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="49.9643" x2="75.4913" y2="49.9897" layer="21" rot="R90"/>
<rectangle x1="75.0468" y1="50.7898" x2="75.504" y2="50.8152" layer="21" rot="R90"/>
<rectangle x1="73.4593" y1="36.3753" x2="77.0407" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.1992" y1="43.2206" x2="75.3008" y2="43.246" layer="21" rot="R90"/>
<rectangle x1="75.1611" y1="43.7413" x2="75.3389" y2="43.7667" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="44.4271" x2="75.5167" y2="44.4525" layer="21" rot="R90"/>
<rectangle x1="75.1865" y1="45.0621" x2="75.3135" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="75.1865" y1="45.5193" x2="75.3135" y2="45.5447" layer="21" rot="R90"/>
<rectangle x1="75.0087" y1="46.3067" x2="75.4913" y2="46.3321" layer="21" rot="R90"/>
<rectangle x1="74.9706" y1="47.2592" x2="75.5294" y2="47.2846" layer="21" rot="R90"/>
<rectangle x1="75.2119" y1="47.9323" x2="75.2881" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="75.1865" y1="48.7959" x2="75.3135" y2="48.8213" layer="21" rot="R90"/>
<rectangle x1="75.1992" y1="49.3166" x2="75.3008" y2="49.342" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="49.9516" x2="75.4786" y2="49.977" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="50.7898" x2="75.4786" y2="50.8152" layer="21" rot="R90"/>
<rectangle x1="73.4339" y1="36.3753" x2="77.0153" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.1738" y1="43.2206" x2="75.2754" y2="43.246" layer="21" rot="R90"/>
<rectangle x1="75.1357" y1="43.7413" x2="75.3135" y2="43.7667" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="44.4271" x2="75.4913" y2="44.4525" layer="21" rot="R90"/>
<rectangle x1="75.1611" y1="45.0621" x2="75.2881" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="75.1611" y1="45.5193" x2="75.2881" y2="45.5447" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="46.3067" x2="75.4659" y2="46.3321" layer="21" rot="R90"/>
<rectangle x1="74.9452" y1="47.2592" x2="75.504" y2="47.2846" layer="21" rot="R90"/>
<rectangle x1="75.1865" y1="47.9323" x2="75.2627" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="75.1611" y1="48.7959" x2="75.2881" y2="48.8213" layer="21" rot="R90"/>
<rectangle x1="75.1738" y1="49.3166" x2="75.2754" y2="49.342" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="49.9516" x2="75.4532" y2="49.977" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="50.7898" x2="75.4532" y2="50.8152" layer="21" rot="R90"/>
<rectangle x1="73.3323" y1="36.3753" x2="77.0661" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.1484" y1="43.2714" x2="75.25" y2="43.2968" layer="21" rot="R90"/>
<rectangle x1="75.1865" y1="43.5127" x2="75.2119" y2="43.5381" layer="21" rot="R90"/>
<rectangle x1="75.1357" y1="43.7159" x2="75.2627" y2="43.7413" layer="21" rot="R90"/>
<rectangle x1="75.1357" y1="44.2239" x2="75.2627" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="75.1357" y1="45.0621" x2="75.2627" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="45.4685" x2="75.2881" y2="45.4939" layer="21" rot="R90"/>
<rectangle x1="75.123" y1="46.0654" x2="75.2754" y2="46.0908" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="46.5099" x2="75.2881" y2="46.5353" layer="21" rot="R90"/>
<rectangle x1="75.1484" y1="47.4878" x2="75.25" y2="47.5132" layer="21" rot="R90"/>
<rectangle x1="75.1611" y1="47.9323" x2="75.2373" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="75.1357" y1="48.8467" x2="75.2627" y2="48.8721" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="49.2785" x2="75.2881" y2="49.3039" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="49.7611" x2="75.2881" y2="49.7865" layer="21" rot="R90"/>
<rectangle x1="75.1484" y1="50.612" x2="75.25" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="73.2561" y1="36.3753" x2="77.0915" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.0976" y1="43.2968" x2="75.25" y2="43.3222" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="43.6016" x2="75.3262" y2="43.627" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="44.2239" x2="75.2373" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="45.0621" x2="75.2373" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="45.405" x2="75.3262" y2="45.4304" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="46.0527" x2="75.2373" y2="46.0781" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="46.5353" x2="75.2373" y2="46.5607" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="47.5005" x2="75.2373" y2="47.5259" layer="21" rot="R90"/>
<rectangle x1="75.1357" y1="47.9323" x2="75.2119" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="75.0468" y1="48.2244" x2="75.3008" y2="48.2498" layer="21" rot="R90"/>
<rectangle x1="75.1357" y1="48.8721" x2="75.2119" y2="48.8975" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="49.1769" x2="75.3135" y2="49.2023" layer="21" rot="R90"/>
<rectangle x1="75.0849" y1="49.7103" x2="75.2627" y2="49.7357" layer="21" rot="R90"/>
<rectangle x1="75.123" y1="50.612" x2="75.2246" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="73.2307" y1="36.3753" x2="77.0661" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.0722" y1="43.2968" x2="75.2246" y2="43.3222" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="43.6016" x2="75.3008" y2="43.627" layer="21" rot="R90"/>
<rectangle x1="75.0849" y1="44.2239" x2="75.2119" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="75.0849" y1="45.0621" x2="75.2119" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="45.405" x2="75.3008" y2="45.4304" layer="21" rot="R90"/>
<rectangle x1="75.0849" y1="46.0527" x2="75.2119" y2="46.0781" layer="21" rot="R90"/>
<rectangle x1="75.0849" y1="46.5353" x2="75.2119" y2="46.5607" layer="21" rot="R90"/>
<rectangle x1="75.0849" y1="47.5005" x2="75.2119" y2="47.5259" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="47.9323" x2="75.1865" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="48.2244" x2="75.2754" y2="48.2498" layer="21" rot="R90"/>
<rectangle x1="75.1103" y1="48.8721" x2="75.1865" y2="48.8975" layer="21" rot="R90"/>
<rectangle x1="75.0087" y1="49.1769" x2="75.2881" y2="49.2023" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="49.7103" x2="75.2373" y2="49.7357" layer="21" rot="R90"/>
<rectangle x1="75.0976" y1="50.612" x2="75.1992" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="73.1291" y1="36.3753" x2="77.1169" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.0722" y1="43.3222" x2="75.1738" y2="43.3476" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="43.627" x2="75.25" y2="43.6524" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="44.2239" x2="75.1865" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="45.0621" x2="75.1865" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.9452" y1="45.3796" x2="75.3008" y2="45.405" layer="21" rot="R90"/>
<rectangle x1="75.0849" y1="46.0273" x2="75.1611" y2="46.0527" layer="21" rot="R90"/>
<rectangle x1="75.0722" y1="46.548" x2="75.1738" y2="46.5734" layer="21" rot="R90"/>
<rectangle x1="75.0722" y1="47.4878" x2="75.1738" y2="47.5132" layer="21" rot="R90"/>
<rectangle x1="75.0849" y1="47.9323" x2="75.1611" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="48.2371" x2="75.3135" y2="48.2625" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="48.8975" x2="75.1865" y2="48.9229" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="49.1642" x2="75.2246" y2="49.1896" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="49.6849" x2="75.1865" y2="49.7103" layer="21" rot="R90"/>
<rectangle x1="75.0722" y1="50.612" x2="75.1738" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="73.1037" y1="36.3753" x2="77.0915" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.0468" y1="43.3222" x2="75.1484" y2="43.3476" layer="21" rot="R90"/>
<rectangle x1="74.9706" y1="43.627" x2="75.2246" y2="43.6524" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="44.2239" x2="75.1611" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="45.0621" x2="75.1611" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.9198" y1="45.3796" x2="75.2754" y2="45.405" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="46.0273" x2="75.1357" y2="46.0527" layer="21" rot="R90"/>
<rectangle x1="75.0468" y1="46.548" x2="75.1484" y2="46.5734" layer="21" rot="R90"/>
<rectangle x1="75.0468" y1="47.4878" x2="75.1484" y2="47.5132" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="47.9323" x2="75.1357" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="48.2371" x2="75.2881" y2="48.2625" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="48.8975" x2="75.1611" y2="48.9229" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="49.1642" x2="75.1992" y2="49.1896" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="49.6849" x2="75.1611" y2="49.7103" layer="21" rot="R90"/>
<rectangle x1="75.0468" y1="50.612" x2="75.1484" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="73.0275" y1="36.3753" x2="77.1169" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="43.3222" x2="75.123" y2="43.3476" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="43.6143" x2="75.1611" y2="43.6397" layer="21" rot="R90"/>
<rectangle x1="75.0087" y1="44.2239" x2="75.1357" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="44.4779" x2="75.1103" y2="44.5033" layer="21" rot="R90"/>
<rectangle x1="75.0087" y1="45.0621" x2="75.1357" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="45.5066" x2="75.1484" y2="45.532" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="46.0273" x2="75.1103" y2="46.0527" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="46.548" x2="75.123" y2="46.5734" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="47.2973" x2="75.3135" y2="47.3227" layer="21" rot="R90"/>
<rectangle x1="75.0341" y1="47.9323" x2="75.1103" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="48.2879" x2="75.2119" y2="48.3133" layer="21" rot="R90"/>
<rectangle x1="75.0087" y1="48.9229" x2="75.1357" y2="48.9483" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="49.1769" x2="75.1611" y2="49.2023" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="49.6722" x2="75.123" y2="49.6976" layer="21" rot="R90"/>
<rectangle x1="75.0214" y1="50.612" x2="75.123" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="75.0595" y1="50.8025" x2="75.0849" y2="50.8279" layer="21" rot="R90"/>
<rectangle x1="75.0468" y1="50.8914" x2="75.0976" y2="50.9168" layer="21" rot="R90"/>
<rectangle x1="72.9386" y1="36.3626" x2="77.155" y2="36.388" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="43.3349" x2="75.1103" y2="43.3603" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="43.5889" x2="75.1103" y2="43.6143" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="44.2239" x2="75.1103" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="74.9198" y1="44.516" x2="75.1738" y2="44.5414" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="45.0621" x2="75.1103" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="75.0087" y1="45.5447" x2="75.0849" y2="45.5701" layer="21" rot="R90"/>
<rectangle x1="75.0087" y1="46.0273" x2="75.0849" y2="46.0527" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="46.5607" x2="75.1103" y2="46.5861" layer="21" rot="R90"/>
<rectangle x1="74.8055" y1="47.2465" x2="75.2881" y2="47.2719" layer="21" rot="R90"/>
<rectangle x1="75.0087" y1="47.9323" x2="75.0849" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="48.4149" x2="75.1103" y2="48.4403" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="48.9229" x2="75.1103" y2="48.9483" layer="21" rot="R90"/>
<rectangle x1="74.9706" y1="49.1642" x2="75.123" y2="49.1896" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="49.6722" x2="75.0976" y2="49.6976" layer="21" rot="R90"/>
<rectangle x1="74.996" y1="50.612" x2="75.0976" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="50.8787" x2="75.1865" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="72.9132" y1="36.3626" x2="77.1296" y2="36.388" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="43.3349" x2="75.0849" y2="43.3603" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="43.5889" x2="75.0849" y2="43.6143" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="44.2239" x2="75.0849" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="74.8944" y1="44.516" x2="75.1484" y2="44.5414" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="45.0621" x2="75.0849" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="45.5447" x2="75.0595" y2="45.5701" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="46.0273" x2="75.0595" y2="46.0527" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="46.5607" x2="75.0849" y2="46.5861" layer="21" rot="R90"/>
<rectangle x1="74.7801" y1="47.2465" x2="75.2627" y2="47.2719" layer="21" rot="R90"/>
<rectangle x1="74.9833" y1="47.9323" x2="75.0595" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="48.4149" x2="75.0849" y2="48.4403" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="48.9229" x2="75.0849" y2="48.9483" layer="21" rot="R90"/>
<rectangle x1="74.9452" y1="49.1642" x2="75.0976" y2="49.1896" layer="21" rot="R90"/>
<rectangle x1="74.9706" y1="49.6722" x2="75.0722" y2="49.6976" layer="21" rot="R90"/>
<rectangle x1="74.9706" y1="50.612" x2="75.0722" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="74.8817" y1="50.8787" x2="75.1611" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="72.8243" y1="36.3753" x2="77.1677" y2="36.4007" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="43.3857" x2="75.0595" y2="43.4111" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="43.5889" x2="75.0595" y2="43.6143" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="44.2239" x2="75.0595" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="45.0621" x2="75.0595" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="45.5447" x2="75.0341" y2="45.5701" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="46.0273" x2="75.0341" y2="46.0527" layer="21" rot="R90"/>
<rectangle x1="74.9452" y1="46.548" x2="75.0468" y2="46.5734" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="47.0433" x2="75.0595" y2="47.0687" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="47.9323" x2="75.0341" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="48.4149" x2="75.0595" y2="48.4403" layer="21" rot="R90"/>
<rectangle x1="74.9579" y1="48.9483" x2="75.0341" y2="48.9737" layer="21" rot="R90"/>
<rectangle x1="74.9198" y1="49.1642" x2="75.0722" y2="49.1896" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="49.6849" x2="75.0595" y2="49.7103" layer="21" rot="R90"/>
<rectangle x1="74.9452" y1="50.612" x2="75.0468" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="72.7354" y1="36.3626" x2="77.2058" y2="36.388" layer="21" rot="R90"/>
<rectangle x1="74.8436" y1="43.5" x2="75.0976" y2="43.5254" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="44.2239" x2="75.0341" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="45.0621" x2="75.0341" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="45.5701" x2="75.0341" y2="45.5955" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="46.0527" x2="75.0341" y2="46.0781" layer="21" rot="R90"/>
<rectangle x1="74.9198" y1="46.548" x2="75.0214" y2="46.5734" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="46.9925" x2="75.0341" y2="47.0179" layer="21" rot="R90"/>
<rectangle x1="74.9325" y1="47.9323" x2="75.0087" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="48.4149" x2="75.0341" y2="48.4403" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="49.0499" x2="75.1103" y2="49.0753" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="49.6849" x2="75.0341" y2="49.7103" layer="21" rot="R90"/>
<rectangle x1="74.9198" y1="50.612" x2="75.0214" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="72.71" y1="36.3626" x2="77.1804" y2="36.388" layer="21" rot="R90"/>
<rectangle x1="74.8182" y1="43.5" x2="75.0722" y2="43.5254" layer="21" rot="R90"/>
<rectangle x1="74.8817" y1="44.2239" x2="75.0087" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="74.8817" y1="45.0621" x2="75.0087" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.8817" y1="45.5701" x2="75.0087" y2="45.5955" layer="21" rot="R90"/>
<rectangle x1="74.8817" y1="46.0527" x2="75.0087" y2="46.0781" layer="21" rot="R90"/>
<rectangle x1="74.8944" y1="46.548" x2="74.996" y2="46.5734" layer="21" rot="R90"/>
<rectangle x1="74.8817" y1="46.9925" x2="75.0087" y2="47.0179" layer="21" rot="R90"/>
<rectangle x1="74.9071" y1="47.9323" x2="74.9833" y2="47.9577" layer="21" rot="R90"/>
<rectangle x1="74.8817" y1="48.4149" x2="75.0087" y2="48.4403" layer="21" rot="R90"/>
<rectangle x1="74.8055" y1="49.0499" x2="75.0849" y2="49.0753" layer="21" rot="R90"/>
<rectangle x1="74.8817" y1="49.6849" x2="75.0087" y2="49.7103" layer="21" rot="R90"/>
<rectangle x1="74.8944" y1="50.612" x2="74.996" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="73.853" y1="35.1688" x2="75.9866" y2="35.1942" layer="21" rot="R90"/>
<rectangle x1="74.3356" y1="38.0136" x2="75.504" y2="38.039" layer="21" rot="R90"/>
<rectangle x1="74.7928" y1="43.5" x2="75.0468" y2="43.5254" layer="21" rot="R90"/>
<rectangle x1="74.8563" y1="44.2239" x2="74.9833" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="74.8563" y1="45.0621" x2="74.9833" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.8563" y1="45.5193" x2="74.9833" y2="45.5447" layer="21" rot="R90"/>
<rectangle x1="74.8436" y1="46.0654" x2="74.996" y2="46.0908" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="46.5099" x2="75.0087" y2="46.5353" layer="21" rot="R90"/>
<rectangle x1="74.8563" y1="47.0433" x2="74.9833" y2="47.0687" layer="21" rot="R90"/>
<rectangle x1="74.8563" y1="47.9577" x2="74.9833" y2="47.9831" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="48.3895" x2="75.0087" y2="48.4149" layer="21" rot="R90"/>
<rectangle x1="74.8055" y1="49.0753" x2="75.0341" y2="49.1007" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="49.7611" x2="75.0087" y2="49.7865" layer="21" rot="R90"/>
<rectangle x1="74.869" y1="50.612" x2="74.9706" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="73.8276" y1="35.1688" x2="75.9612" y2="35.1942" layer="21" rot="R90"/>
<rectangle x1="74.3102" y1="38.0136" x2="75.4786" y2="38.039" layer="21" rot="R90"/>
<rectangle x1="74.7674" y1="43.5" x2="75.0214" y2="43.5254" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="44.2239" x2="74.9579" y2="44.2493" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="45.0621" x2="74.9579" y2="45.0875" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="45.5193" x2="74.9579" y2="45.5447" layer="21" rot="R90"/>
<rectangle x1="74.8182" y1="46.0654" x2="74.9706" y2="46.0908" layer="21" rot="R90"/>
<rectangle x1="74.8055" y1="46.5099" x2="74.9833" y2="46.5353" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="47.0433" x2="74.9579" y2="47.0687" layer="21" rot="R90"/>
<rectangle x1="74.8309" y1="47.9577" x2="74.9579" y2="47.9831" layer="21" rot="R90"/>
<rectangle x1="74.8055" y1="48.3895" x2="74.9833" y2="48.4149" layer="21" rot="R90"/>
<rectangle x1="74.7801" y1="49.0753" x2="75.0087" y2="49.1007" layer="21" rot="R90"/>
<rectangle x1="74.8055" y1="49.7611" x2="74.9833" y2="49.7865" layer="21" rot="R90"/>
<rectangle x1="74.8436" y1="50.612" x2="74.9452" y2="50.6374" layer="21" rot="R90"/>
<rectangle x1="73.9038" y1="35.0418" x2="75.8342" y2="35.0672" layer="21" rot="R90"/>
<rectangle x1="74.3737" y1="38.1533" x2="75.3643" y2="38.1787" layer="21" rot="R90"/>
<rectangle x1="74.7801" y1="43.4873" x2="74.9579" y2="43.5127" layer="21" rot="R90"/>
<rectangle x1="74.6277" y1="44.4017" x2="75.1103" y2="44.4271" layer="21" rot="R90"/>
<rectangle x1="74.5769" y1="45.2907" x2="75.1611" y2="45.3161" layer="21" rot="R90"/>
<rectangle x1="74.6023" y1="46.2813" x2="75.1357" y2="46.3067" layer="21" rot="R90"/>
<rectangle x1="74.615" y1="47.2338" x2="75.123" y2="47.2592" layer="21" rot="R90"/>
<rectangle x1="74.6023" y1="48.1609" x2="75.1357" y2="48.1863" layer="21" rot="R90"/>
<rectangle x1="74.7928" y1="49.0626" x2="74.9452" y2="49.088" layer="21" rot="R90"/>
<rectangle x1="74.6404" y1="49.9516" x2="75.0976" y2="49.977" layer="21" rot="R90"/>
<rectangle x1="74.6404" y1="50.7898" x2="75.0976" y2="50.8152" layer="21" rot="R90"/>
<rectangle x1="73.9292" y1="34.9402" x2="75.758" y2="34.9656" layer="21" rot="R90"/>
<rectangle x1="74.4372" y1="38.2676" x2="75.25" y2="38.293" layer="21" rot="R90"/>
<rectangle x1="74.8055" y1="43.4873" x2="74.8817" y2="43.5127" layer="21" rot="R90"/>
<rectangle x1="74.6023" y1="44.4525" x2="75.0849" y2="44.4779" layer="21" rot="R90"/>
<rectangle x1="74.5642" y1="45.278" x2="75.123" y2="45.3034" layer="21" rot="R90"/>
<rectangle x1="74.6531" y1="46.3067" x2="75.0341" y2="46.3321" layer="21" rot="R90"/>
<rectangle x1="74.5769" y1="47.2719" x2="75.1103" y2="47.2973" layer="21" rot="R90"/>
<rectangle x1="74.5896" y1="48.1482" x2="75.0976" y2="48.1736" layer="21" rot="R90"/>
<rectangle x1="74.7928" y1="49.0372" x2="74.8944" y2="49.0626" layer="21" rot="R90"/>
<rectangle x1="74.6277" y1="49.9643" x2="75.0595" y2="49.9897" layer="21" rot="R90"/>
<rectangle x1="74.615" y1="50.7898" x2="75.0722" y2="50.8152" layer="21" rot="R90"/>
<rectangle x1="73.9038" y1="34.9402" x2="75.7326" y2="34.9656" layer="21" rot="R90"/>
<rectangle x1="74.4118" y1="38.2676" x2="75.2246" y2="38.293" layer="21" rot="R90"/>
<rectangle x1="74.7801" y1="43.4873" x2="74.8563" y2="43.5127" layer="21" rot="R90"/>
<rectangle x1="74.5769" y1="44.4525" x2="75.0595" y2="44.4779" layer="21" rot="R90"/>
<rectangle x1="74.5388" y1="45.278" x2="75.0976" y2="45.3034" layer="21" rot="R90"/>
<rectangle x1="74.6277" y1="46.3067" x2="75.0087" y2="46.3321" layer="21" rot="R90"/>
<rectangle x1="74.5515" y1="47.2719" x2="75.0849" y2="47.2973" layer="21" rot="R90"/>
<rectangle x1="74.5642" y1="48.1482" x2="75.0722" y2="48.1736" layer="21" rot="R90"/>
<rectangle x1="74.7674" y1="49.0372" x2="74.869" y2="49.0626" layer="21" rot="R90"/>
<rectangle x1="74.6023" y1="49.9643" x2="75.0341" y2="49.9897" layer="21" rot="R90"/>
<rectangle x1="74.5896" y1="50.7898" x2="75.0468" y2="50.8152" layer="21" rot="R90"/>
<rectangle x1="73.9165" y1="34.8513" x2="75.6691" y2="34.8767" layer="21" rot="R90"/>
<rectangle x1="74.4372" y1="38.3438" x2="75.1484" y2="38.3692" layer="21" rot="R90"/>
<rectangle x1="74.5515" y1="44.4525" x2="75.0341" y2="44.4779" layer="21" rot="R90"/>
<rectangle x1="74.5896" y1="45.2526" x2="74.996" y2="45.278" layer="21" rot="R90"/>
<rectangle x1="74.6531" y1="46.2813" x2="74.9325" y2="46.3067" layer="21" rot="R90"/>
<rectangle x1="74.5769" y1="47.2719" x2="75.0087" y2="47.2973" layer="21" rot="R90"/>
<rectangle x1="74.5769" y1="48.1355" x2="75.0087" y2="48.1609" layer="21" rot="R90"/>
<rectangle x1="74.6277" y1="50.0151" x2="74.9579" y2="50.0405" layer="21" rot="R90"/>
<rectangle x1="74.5896" y1="50.8152" x2="74.996" y2="50.8406" layer="21" rot="R90"/>
<rectangle x1="73.8911" y1="34.8513" x2="75.6437" y2="34.8767" layer="21" rot="R90"/>
<rectangle x1="74.4118" y1="38.3438" x2="75.123" y2="38.3692" layer="21" rot="R90"/>
<rectangle x1="74.5261" y1="44.4525" x2="75.0087" y2="44.4779" layer="21" rot="R90"/>
<rectangle x1="74.5642" y1="45.2526" x2="74.9706" y2="45.278" layer="21" rot="R90"/>
<rectangle x1="74.6277" y1="46.2813" x2="74.9071" y2="46.3067" layer="21" rot="R90"/>
<rectangle x1="74.5515" y1="47.2719" x2="74.9833" y2="47.2973" layer="21" rot="R90"/>
<rectangle x1="74.5515" y1="48.1355" x2="74.9833" y2="48.1609" layer="21" rot="R90"/>
<rectangle x1="74.6023" y1="50.0151" x2="74.9325" y2="50.0405" layer="21" rot="R90"/>
<rectangle x1="74.5642" y1="50.8152" x2="74.9706" y2="50.8406" layer="21" rot="R90"/>
<rectangle x1="73.9165" y1="34.7497" x2="75.5675" y2="34.7751" layer="21" rot="R90"/>
<rectangle x1="74.4499" y1="38.4581" x2="75.0341" y2="38.4835" layer="21" rot="R90"/>
<rectangle x1="73.9038" y1="34.7116" x2="75.5294" y2="34.737" layer="21" rot="R90"/>
<rectangle x1="74.4626" y1="38.547" x2="74.9706" y2="38.5724" layer="21" rot="R90"/>
<rectangle x1="73.8784" y1="34.7116" x2="75.504" y2="34.737" layer="21" rot="R90"/>
<rectangle x1="74.4372" y1="38.547" x2="74.9452" y2="38.5724" layer="21" rot="R90"/>
<rectangle x1="73.8657" y1="34.5973" x2="75.4659" y2="34.6227" layer="21" rot="R90"/>
<rectangle x1="74.4626" y1="38.6232" x2="74.869" y2="38.6486" layer="21" rot="R90"/>
<rectangle x1="73.8784" y1="34.5592" x2="75.4024" y2="34.5846" layer="21" rot="R90"/>
<rectangle x1="74.4753" y1="38.7121" x2="74.8055" y2="38.7375" layer="21" rot="R90"/>
<rectangle x1="73.853" y1="34.5592" x2="75.377" y2="34.5846" layer="21" rot="R90"/>
<rectangle x1="74.4499" y1="38.7121" x2="74.7801" y2="38.7375" layer="21" rot="R90"/>
<rectangle x1="73.8657" y1="34.4957" x2="75.3135" y2="34.5211" layer="21" rot="R90"/>
<rectangle x1="74.4245" y1="38.7629" x2="74.7547" y2="38.7883" layer="21" rot="R90"/>
<rectangle x1="73.8403" y1="34.4957" x2="75.2881" y2="34.5211" layer="21" rot="R90"/>
<rectangle x1="74.3991" y1="38.7629" x2="74.7293" y2="38.7883" layer="21" rot="R90"/>
<rectangle x1="73.8276" y1="34.4322" x2="75.25" y2="34.4576" layer="21" rot="R90"/>
<rectangle x1="74.3864" y1="38.8264" x2="74.6912" y2="38.8518" layer="21" rot="R90"/>
<rectangle x1="73.8022" y1="34.3814" x2="75.2246" y2="34.4068" layer="21" rot="R90"/>
<rectangle x1="74.4118" y1="38.9026" x2="74.615" y2="38.928" layer="21" rot="R90"/>
<rectangle x1="73.7768" y1="34.3814" x2="75.1992" y2="34.4068" layer="21" rot="R90"/>
<rectangle x1="74.3864" y1="38.9026" x2="74.5896" y2="38.928" layer="21" rot="R90"/>
<rectangle x1="73.7768" y1="34.3306" x2="75.1484" y2="34.356" layer="21" rot="R90"/>
<rectangle x1="74.3737" y1="38.9661" x2="74.5515" y2="38.9915" layer="21" rot="R90"/>
<rectangle x1="73.7641" y1="34.2671" x2="75.1103" y2="34.2925" layer="21" rot="R90"/>
<rectangle x1="74.3991" y1="39.0169" x2="74.4753" y2="39.0423" layer="21" rot="R90"/>
<rectangle x1="73.7387" y1="34.2671" x2="75.0849" y2="34.2925" layer="21" rot="R90"/>
<rectangle x1="74.3737" y1="39.0169" x2="74.4499" y2="39.0423" layer="21" rot="R90"/>
<rectangle x1="73.7133" y1="34.2163" x2="75.0595" y2="34.2417" layer="21" rot="R90"/>
<rectangle x1="73.6879" y1="34.2163" x2="75.0341" y2="34.2417" layer="21" rot="R90"/>
<rectangle x1="73.6625" y1="34.2163" x2="75.0087" y2="34.2417" layer="21" rot="R90"/>
<rectangle x1="73.6625" y1="34.2417" x2="74.9579" y2="34.2671" layer="21" rot="R90"/>
<rectangle x1="73.6371" y1="34.2417" x2="74.9325" y2="34.2671" layer="21" rot="R90"/>
<rectangle x1="73.6244" y1="34.3052" x2="74.8944" y2="34.3306" layer="21" rot="R90"/>
<rectangle x1="73.5863" y1="34.3687" x2="74.8817" y2="34.3941" layer="21" rot="R90"/>
<rectangle x1="73.5609" y1="34.3687" x2="74.8563" y2="34.3941" layer="21" rot="R90"/>
<rectangle x1="73.5355" y1="34.4195" x2="74.8309" y2="34.4449" layer="21" rot="R90"/>
<rectangle x1="73.5101" y1="34.4195" x2="74.8055" y2="34.4449" layer="21" rot="R90"/>
<rectangle x1="73.5101" y1="34.4703" x2="74.7547" y2="34.4957" layer="21" rot="R90"/>
<rectangle x1="73.4847" y1="34.5211" x2="74.7293" y2="34.5465" layer="21" rot="R90"/>
<rectangle x1="73.4593" y1="34.5211" x2="74.7039" y2="34.5465" layer="21" rot="R90"/>
<rectangle x1="73.4085" y1="34.5719" x2="74.7039" y2="34.5973" layer="21" rot="R90"/>
<rectangle x1="73.3831" y1="34.6227" x2="74.6785" y2="34.6481" layer="21" rot="R90"/>
<rectangle x1="73.98" y1="45.2526" x2="74.0816" y2="45.278" layer="21" rot="R90"/>
<rectangle x1="73.3577" y1="34.6227" x2="74.6531" y2="34.6481" layer="21" rot="R90"/>
<rectangle x1="73.9546" y1="45.2526" x2="74.0562" y2="45.278" layer="21" rot="R90"/>
<rectangle x1="73.3577" y1="34.6989" x2="74.6023" y2="34.7243" layer="21" rot="R90"/>
<rectangle x1="72.8751" y1="40.8711" x2="75.0849" y2="40.8965" layer="21" rot="R90"/>
<rectangle x1="73.7768" y1="43.0682" x2="74.1832" y2="43.0936" layer="21" rot="R90"/>
<rectangle x1="73.853" y1="45.2526" x2="74.107" y2="45.278" layer="21" rot="R90"/>
<rectangle x1="73.7641" y1="46.5861" x2="74.1959" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.7895" y1="48.7705" x2="74.1705" y2="48.7959" layer="21" rot="R90"/>
<rectangle x1="73.7768" y1="50.8914" x2="74.1832" y2="50.9168" layer="21" rot="R90"/>
<rectangle x1="73.7641" y1="52.9361" x2="74.1959" y2="52.9615" layer="21" rot="R90"/>
<rectangle x1="73.3323" y1="34.6989" x2="74.5769" y2="34.7243" layer="21" rot="R90"/>
<rectangle x1="72.8497" y1="40.8711" x2="75.0595" y2="40.8965" layer="21" rot="R90"/>
<rectangle x1="73.7514" y1="43.0682" x2="74.1578" y2="43.0936" layer="21" rot="R90"/>
<rectangle x1="73.8276" y1="45.2526" x2="74.0816" y2="45.278" layer="21" rot="R90"/>
<rectangle x1="73.7387" y1="46.5861" x2="74.1705" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.7641" y1="48.7705" x2="74.1451" y2="48.7959" layer="21" rot="R90"/>
<rectangle x1="73.7514" y1="50.8914" x2="74.1578" y2="50.9168" layer="21" rot="R90"/>
<rectangle x1="73.7387" y1="52.9361" x2="74.1705" y2="52.9615" layer="21" rot="R90"/>
<rectangle x1="73.3069" y1="34.7243" x2="74.5515" y2="34.7497" layer="21" rot="R90"/>
<rectangle x1="72.7989" y1="40.8965" x2="75.0595" y2="40.9219" layer="21" rot="R90"/>
<rectangle x1="73.7133" y1="43.0555" x2="74.1451" y2="43.0809" layer="21" rot="R90"/>
<rectangle x1="73.7387" y1="45.2399" x2="74.1197" y2="45.2653" layer="21" rot="R90"/>
<rectangle x1="73.7133" y1="46.5861" x2="74.1451" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.7006" y1="48.7578" x2="74.1578" y2="48.7832" layer="21" rot="R90"/>
<rectangle x1="73.7133" y1="50.8787" x2="74.1451" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="73.7006" y1="52.9234" x2="74.1578" y2="52.9488" layer="21" rot="R90"/>
<rectangle x1="73.2434" y1="34.7878" x2="74.5642" y2="34.8132" layer="21" rot="R90"/>
<rectangle x1="72.7735" y1="40.8965" x2="75.0341" y2="40.9219" layer="21" rot="R90"/>
<rectangle x1="73.6879" y1="43.0555" x2="74.1197" y2="43.0809" layer="21" rot="R90"/>
<rectangle x1="73.6752" y1="45.2272" x2="74.1324" y2="45.2526" layer="21" rot="R90"/>
<rectangle x1="73.6879" y1="46.5861" x2="74.1197" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.6752" y1="48.7578" x2="74.1324" y2="48.7832" layer="21" rot="R90"/>
<rectangle x1="73.6879" y1="50.8787" x2="74.1197" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="73.6752" y1="52.9234" x2="74.1324" y2="52.9488" layer="21" rot="R90"/>
<rectangle x1="73.218" y1="34.7878" x2="74.5388" y2="34.8132" layer="21" rot="R90"/>
<rectangle x1="72.7481" y1="40.8965" x2="75.0087" y2="40.9219" layer="21" rot="R90"/>
<rectangle x1="73.6625" y1="43.0555" x2="74.0943" y2="43.0809" layer="21" rot="R90"/>
<rectangle x1="73.6498" y1="45.2272" x2="74.107" y2="45.2526" layer="21" rot="R90"/>
<rectangle x1="73.6625" y1="46.5861" x2="74.0943" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.6498" y1="48.7578" x2="74.107" y2="48.7832" layer="21" rot="R90"/>
<rectangle x1="73.6625" y1="50.8787" x2="74.0943" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="73.6498" y1="52.9234" x2="74.107" y2="52.9488" layer="21" rot="R90"/>
<rectangle x1="73.2053" y1="34.8513" x2="74.5007" y2="34.8767" layer="21" rot="R90"/>
<rectangle x1="72.7227" y1="40.8965" x2="74.9833" y2="40.9219" layer="21" rot="R90"/>
<rectangle x1="73.6371" y1="43.0555" x2="74.0689" y2="43.0809" layer="21" rot="R90"/>
<rectangle x1="73.599" y1="45.2018" x2="74.107" y2="45.2272" layer="21" rot="R90"/>
<rectangle x1="73.6117" y1="46.6115" x2="74.0943" y2="46.6369" layer="21" rot="R90"/>
<rectangle x1="73.6244" y1="48.7578" x2="74.0816" y2="48.7832" layer="21" rot="R90"/>
<rectangle x1="73.6371" y1="50.8787" x2="74.0689" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="73.6244" y1="52.9234" x2="74.0816" y2="52.9488" layer="21" rot="R90"/>
<rectangle x1="73.1926" y1="34.8894" x2="74.4626" y2="34.9148" layer="21" rot="R90"/>
<rectangle x1="72.6973" y1="40.8965" x2="74.9579" y2="40.9219" layer="21" rot="R90"/>
<rectangle x1="73.6117" y1="43.0555" x2="74.0435" y2="43.0809" layer="21" rot="R90"/>
<rectangle x1="73.5609" y1="45.1891" x2="74.0943" y2="45.2145" layer="21" rot="R90"/>
<rectangle x1="73.6117" y1="46.5861" x2="74.0435" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.599" y1="48.7578" x2="74.0562" y2="48.7832" layer="21" rot="R90"/>
<rectangle x1="73.6117" y1="50.8787" x2="74.0435" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="73.599" y1="52.9234" x2="74.0562" y2="52.9488" layer="21" rot="R90"/>
<rectangle x1="73.1672" y1="34.8894" x2="74.4372" y2="34.9148" layer="21" rot="R90"/>
<rectangle x1="72.6719" y1="40.8965" x2="74.9325" y2="40.9219" layer="21" rot="R90"/>
<rectangle x1="73.5863" y1="43.0555" x2="74.0181" y2="43.0809" layer="21" rot="R90"/>
<rectangle x1="73.5355" y1="45.1891" x2="74.0689" y2="45.2145" layer="21" rot="R90"/>
<rectangle x1="73.5863" y1="46.5861" x2="74.0181" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.5736" y1="48.7578" x2="74.0308" y2="48.7832" layer="21" rot="R90"/>
<rectangle x1="73.5863" y1="50.8787" x2="74.0181" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="73.5736" y1="52.9234" x2="74.0308" y2="52.9488" layer="21" rot="R90"/>
<rectangle x1="73.1418" y1="34.9402" x2="74.4118" y2="34.9656" layer="21" rot="R90"/>
<rectangle x1="72.6465" y1="40.8965" x2="74.9071" y2="40.9219" layer="21" rot="R90"/>
<rectangle x1="73.5609" y1="43.0555" x2="73.9927" y2="43.0809" layer="21" rot="R90"/>
<rectangle x1="73.4847" y1="45.1637" x2="74.0689" y2="45.1891" layer="21" rot="R90"/>
<rectangle x1="73.5609" y1="46.5861" x2="73.9927" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.5482" y1="48.7578" x2="74.0054" y2="48.7832" layer="21" rot="R90"/>
<rectangle x1="73.5609" y1="50.8787" x2="73.9927" y2="50.9041" layer="21" rot="R90"/>
<rectangle x1="73.5482" y1="52.9234" x2="74.0054" y2="52.9488" layer="21" rot="R90"/>
<rectangle x1="73.1164" y1="34.9402" x2="74.3864" y2="34.9656" layer="21" rot="R90"/>
<rectangle x1="72.6211" y1="40.8965" x2="74.8817" y2="40.9219" layer="21" rot="R90"/>
<rectangle x1="73.5355" y1="43.0555" x2="73.9673" y2="43.0809" layer="21" rot="R90"/>
<rectangle x1="73.4593" y1="45.1637" x2="74.0435" y2="45.1891" layer="21" rot="R90"/>
<rectangle x1="73.5355" y1="46.5861" x2="73.9673" y2="46.6115" layer="21" rot="R90"/>
<rectangle x1="73.5228" y1="48.7578" x2="73.98" y2="48.7832" layer="21" rot="R90"/>
<rectangle x1="73.5355" y1="50.8787" x2="73.9673" y2="50.9041"

repository: camaralcesao/Genus

path: /PLACAS/Varella_Std v.2.0/Varella_Std - v.2.0.brd

repo_name: camaralcesao/Genus

extension: brd

filename: Varella_Std - v.2.0.brd