mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Compare commits
	
		
			64 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9b942086f7 | ||
| 
						 | 
					93cd47822f | ||
| 
						 | 
					ea3e79a631 | ||
| 
						 | 
					0af9a35ff1 | ||
| 
						 | 
					44048c9ba8 | ||
| 
						 | 
					e51b5ec9b7 | ||
| 
						 | 
					a47008ea00 | ||
| 
						 | 
					a0b38e8207 | ||
| 
						 | 
					10dfe9f296 | ||
| 
						 | 
					0b9c05f989 | ||
| 
						 | 
					95dca67e2b | ||
| 
						 | 
					e98728595b | ||
| 
						 | 
					4cd558c374 | ||
| 
						 | 
					adf6206ef5 | ||
| 
						 | 
					c2d558b71d | ||
| 
						 | 
					78c58f956e | ||
| 
						 | 
					fc1404985a | ||
| 
						 | 
					5d48ccd757 | ||
| 
						 | 
					3530a18e46 | ||
| 
						 | 
					ae8f4f9228 | ||
| 
						 | 
					7c34d38786 | ||
| 
						 | 
					38bc5fd336 | ||
| 
						 | 
					6b06e47c67 | ||
| 
						 | 
					061712ff78 | ||
| 
						 | 
					7707585d5e | ||
| 
						 | 
					fa7d433886 | ||
| 
						 | 
					998e24cf36 | ||
| 
						 | 
					63ff51e2ed | ||
| 
						 | 
					b541b53b78 | ||
| 
						 | 
					a878620a8e | ||
| 
						 | 
					5633fd3668 | ||
| 
						 | 
					9d0af0da40 | ||
| 
						 | 
					edabdc75a5 | ||
| 
						 | 
					6db7736860 | ||
| 
						 | 
					dd3d8586c5 | ||
| 
						 | 
					f1daf6192c | ||
| 
						 | 
					2c41df376f | ||
| 
						 | 
					3391dcce6a | ||
| 
						 | 
					f75c5707a6 | ||
| 
						 | 
					25de4e0ae2 | ||
| 
						 | 
					7451424f12 | ||
| 
						 | 
					b94e018c3a | ||
| 
						 | 
					4dcf223c8e | ||
| 
						 | 
					329f80d245 | ||
| 
						 | 
					085604948e | ||
| 
						 | 
					e60384b018 | ||
| 
						 | 
					470a82d9f5 | ||
| 
						 | 
					37979b26b0 | ||
| 
						 | 
					1a6df12902 | ||
| 
						 | 
					24e196df4e | ||
| 
						 | 
					8d178bfaed | ||
| 
						 | 
					e9ec699931 | ||
| 
						 | 
					9a6c3f2c4d | ||
| 
						 | 
					648720301d | ||
| 
						 | 
					c552e25bd7 | ||
| 
						 | 
					d5c8db3fb9 | ||
| 
						 | 
					632bcdc1ad | ||
| 
						 | 
					6b221172c0 | ||
| 
						 | 
					6f0d801375 | ||
| 
						 | 
					128abe3533 | ||
| 
						 | 
					9312353d20 | ||
| 
						 | 
					b6460f8ed6 | ||
| 
						 | 
					60f864a138 | ||
| 
						 | 
					ca6121e3ea | 
							
								
								
									
										55
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										55
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -400,10 +400,6 @@
 | 
			
		||||
[submodule "vendor/grammars/sublime_cobol"]
 | 
			
		||||
	path = vendor/grammars/sublime_cobol
 | 
			
		||||
	url = https://bitbucket.org/bitlang/sublime_cobol
 | 
			
		||||
[submodule "vendor/grammars/ruby.tmbundle"]
 | 
			
		||||
	path = vendor/grammars/ruby.tmbundle
 | 
			
		||||
	url = https://github.com/aroben/ruby.tmbundle
 | 
			
		||||
	branch = pl
 | 
			
		||||
[submodule "vendor/grammars/IDL-Syntax"]
 | 
			
		||||
	path = vendor/grammars/IDL-Syntax
 | 
			
		||||
	url = https://github.com/andik/IDL-Syntax
 | 
			
		||||
@@ -569,9 +565,6 @@
 | 
			
		||||
[submodule "vendor/grammars/sublime-aspectj"]
 | 
			
		||||
	path = vendor/grammars/sublime-aspectj
 | 
			
		||||
	url = https://github.com/pchaigno/sublime-aspectj
 | 
			
		||||
[submodule "vendor/grammars/sublime-typescript"]
 | 
			
		||||
	path = vendor/grammars/sublime-typescript
 | 
			
		||||
	url = https://github.com/Microsoft/TypeScript-Sublime-Plugin
 | 
			
		||||
[submodule "vendor/grammars/sublime-pony"]
 | 
			
		||||
	path = vendor/grammars/sublime-pony
 | 
			
		||||
	url = https://github.com/CausalityLtd/sublime-pony
 | 
			
		||||
@@ -794,9 +787,6 @@
 | 
			
		||||
[submodule "vendor/grammars/atom-language-perl6"]
 | 
			
		||||
	path = vendor/grammars/atom-language-perl6
 | 
			
		||||
	url = https://github.com/perl6/atom-language-perl6
 | 
			
		||||
[submodule "vendor/grammars/reason"]
 | 
			
		||||
	path = vendor/grammars/reason
 | 
			
		||||
	url = https://github.com/chenglou/sublime-reason
 | 
			
		||||
[submodule "vendor/grammars/language-xcompose"]
 | 
			
		||||
	path = vendor/grammars/language-xcompose
 | 
			
		||||
	url = https://github.com/samcv/language-xcompose
 | 
			
		||||
@@ -836,6 +826,9 @@
 | 
			
		||||
[submodule "vendor/grammars/language-jolie"]
 | 
			
		||||
	path = vendor/grammars/language-jolie
 | 
			
		||||
	url = https://github.com/fmontesi/language-jolie
 | 
			
		||||
[submodule "vendor/grammars/language-typelanguage"]
 | 
			
		||||
	path = vendor/grammars/language-typelanguage
 | 
			
		||||
	url = https://github.com/goodmind/language-typelanguage
 | 
			
		||||
[submodule "vendor/grammars/sublime-shen"]
 | 
			
		||||
	path = vendor/grammars/sublime-shen
 | 
			
		||||
	url = https://github.com/rkoeninger/sublime-shen
 | 
			
		||||
@@ -848,3 +841,45 @@
 | 
			
		||||
[submodule "vendor/grammars/language-closure-templates"]
 | 
			
		||||
	path = vendor/grammars/language-closure-templates
 | 
			
		||||
	url = https://github.com/mthadley/language-closure-templates
 | 
			
		||||
[submodule "vendor/grammars/language-webassembly"]
 | 
			
		||||
	path = vendor/grammars/language-webassembly
 | 
			
		||||
	url = https://github.com/Alhadis/language-webassembly
 | 
			
		||||
[submodule "vendor/grammars/language-ring"]
 | 
			
		||||
	path = vendor/grammars/language-ring
 | 
			
		||||
	url = https://github.com/MahmoudFayed/atom-language-ring
 | 
			
		||||
[submodule "vendor/grammars/sublime-fantom"]
 | 
			
		||||
	path = vendor/grammars/sublime-fantom
 | 
			
		||||
	url = https://github.com/rkoeninger/sublime-fantom
 | 
			
		||||
[submodule "vendor/grammars/language-pan"]
 | 
			
		||||
	path = vendor/grammars/language-pan
 | 
			
		||||
	url = https://github.com/quattor/language-pan
 | 
			
		||||
[submodule "vendor/grammars/language-pcb"]
 | 
			
		||||
	path = vendor/grammars/language-pcb
 | 
			
		||||
	url = https://github.com/Alhadis/language-pcb
 | 
			
		||||
[submodule "vendor/grammars/language-reason"]
 | 
			
		||||
	path = vendor/grammars/language-reason
 | 
			
		||||
	url = https://github.com/reasonml-editor/language-reason
 | 
			
		||||
[submodule "vendor/grammars/sublime-nearley"]
 | 
			
		||||
	path = vendor/grammars/sublime-nearley
 | 
			
		||||
	url = https://github.com/Hardmath123/sublime-nearley
 | 
			
		||||
[submodule "vendor/grammars/data-weave-tmLanguage"]
 | 
			
		||||
	path = vendor/grammars/data-weave-tmLanguage
 | 
			
		||||
	url = https://github.com/mulesoft-labs/data-weave-tmLanguage
 | 
			
		||||
[submodule "vendor/grammars/squirrel-language"]
 | 
			
		||||
	path = vendor/grammars/squirrel-language
 | 
			
		||||
	url = https://github.com/mathewmariani/squirrel-language
 | 
			
		||||
[submodule "vendor/grammars/language-ballerina"]
 | 
			
		||||
	path = vendor/grammars/language-ballerina
 | 
			
		||||
	url = https://github.com/ballerinalang/plugin-vscode
 | 
			
		||||
[submodule "vendor/grammars/language-ruby"]
 | 
			
		||||
	path = vendor/grammars/language-ruby
 | 
			
		||||
	url = https://github.com/atom/language-ruby
 | 
			
		||||
[submodule "vendor/grammars/sublime-angelscript"]
 | 
			
		||||
	path = vendor/grammars/sublime-angelscript
 | 
			
		||||
	url = https://github.com/wronex/sublime-angelscript
 | 
			
		||||
[submodule "vendor/grammars/TypeScript-TmLanguage"]
 | 
			
		||||
	path = vendor/grammars/TypeScript-TmLanguage
 | 
			
		||||
	url = https://github.com/Microsoft/TypeScript-TmLanguage
 | 
			
		||||
[submodule "vendor/grammars/wdl-sublime-syntax-highlighter"]
 | 
			
		||||
	path = vendor/grammars/wdl-sublime-syntax-highlighter
 | 
			
		||||
	url = https://github.com/broadinstitute/wdl-sublime-syntax-highlighter
 | 
			
		||||
 
 | 
			
		||||
@@ -31,3 +31,6 @@ git:
 | 
			
		||||
  depth: 3
 | 
			
		||||
 | 
			
		||||
cache: bundler
 | 
			
		||||
dist: precise
 | 
			
		||||
 | 
			
		||||
bundler_args: --without debug
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ To add support for a new extension:
 | 
			
		||||
In addition, if this extension is already listed in [`languages.yml`][languages] then sometimes a few more steps will need to be taken:
 | 
			
		||||
 | 
			
		||||
1. Make sure that example `.yourextension` files are present in the [samples directory][samples] for each language that uses `.yourextension`.
 | 
			
		||||
1. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping **@bkeepers** to help with this) to ensure we're not misclassifying files.
 | 
			
		||||
1. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping **@lildude** to help with this) to ensure we're not misclassifying files.
 | 
			
		||||
1. If the Bayesian classifier does a bad job with the sample `.yourextension` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -36,7 +36,7 @@ To add support for a new language:
 | 
			
		||||
In addition, if your new language defines an extension that's already listed in [`languages.yml`][languages] (such as `.foo`) then sometimes a few more steps will need to be taken:
 | 
			
		||||
 | 
			
		||||
1. Make sure that example `.foo` files are present in the [samples directory][samples] for each language that uses `.foo`.
 | 
			
		||||
1. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.foo` files. (ping **@bkeepers** to help with this) to ensure we're not misclassifying files.
 | 
			
		||||
1. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.foo` files. (ping **@lildude** to help with this) to ensure we're not misclassifying files.
 | 
			
		||||
1. If the Bayesian classifier does a bad job with the sample `.foo` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help.
 | 
			
		||||
 | 
			
		||||
Remember, the goal here is to try and avoid false positives!
 | 
			
		||||
@@ -67,6 +67,16 @@ For development you are going to want to checkout out the source. To get it, clo
 | 
			
		||||
    cd linguist/
 | 
			
		||||
    script/bootstrap
 | 
			
		||||
 | 
			
		||||
To run Linguist from the cloned repository, you will need to generate the code samples first:
 | 
			
		||||
 | 
			
		||||
    bundle exec rake samples
 | 
			
		||||
 | 
			
		||||
Run this command each time a [sample][samples] has been modified.
 | 
			
		||||
 | 
			
		||||
To run Linguist from the cloned repository:
 | 
			
		||||
 | 
			
		||||
    bundle exec bin/linguist --breakdown
 | 
			
		||||
 | 
			
		||||
To run the tests:
 | 
			
		||||
 | 
			
		||||
    bundle exec rake test
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Gemfile
									
									
									
									
									
								
							@@ -1,3 +1,6 @@
 | 
			
		||||
source 'https://rubygems.org'
 | 
			
		||||
gemspec :name => "github-linguist"
 | 
			
		||||
gem 'byebug' if RUBY_VERSION >= '2.0'
 | 
			
		||||
 | 
			
		||||
group :debug do
 | 
			
		||||
  gem 'byebug' if RUBY_VERSION >= '2.2'
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
 | 
			
		||||
  s.files = Dir['lib/**/*'] + Dir['grammars/*'] + ['LICENSE']
 | 
			
		||||
  s.executables = ['linguist', 'git-linguist']
 | 
			
		||||
 | 
			
		||||
  s.add_dependency 'charlock_holmes', '~> 0.7.3'
 | 
			
		||||
  s.add_dependency 'charlock_holmes', '~> 0.7.5'
 | 
			
		||||
  s.add_dependency 'escape_utils',    '~> 1.1.0'
 | 
			
		||||
  s.add_dependency 'mime-types',      '>= 1.19'
 | 
			
		||||
  s.add_dependency 'rugged',          '>= 0.25.1'
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								grammars.yml
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								grammars.yml
									
									
									
									
									
								
							@@ -138,6 +138,11 @@ vendor/grammars/Terraform.tmLanguage:
 | 
			
		||||
- source.terraform
 | 
			
		||||
vendor/grammars/Textmate-Gosu-Bundle:
 | 
			
		||||
- source.gosu.2
 | 
			
		||||
vendor/grammars/TypeScript-TmLanguage:
 | 
			
		||||
- source.ts
 | 
			
		||||
- source.tsx
 | 
			
		||||
- text.error-list
 | 
			
		||||
- text.find-refs
 | 
			
		||||
vendor/grammars/UrWeb-Language-Definition:
 | 
			
		||||
- source.ur
 | 
			
		||||
vendor/grammars/VBDotNetSyntax:
 | 
			
		||||
@@ -252,6 +257,8 @@ vendor/grammars/d.tmbundle:
 | 
			
		||||
vendor/grammars/dartlang:
 | 
			
		||||
- source.dart
 | 
			
		||||
- source.yaml-ext
 | 
			
		||||
vendor/grammars/data-weave-tmLanguage:
 | 
			
		||||
- source.data-weave
 | 
			
		||||
vendor/grammars/desktop.tmbundle:
 | 
			
		||||
- source.desktop
 | 
			
		||||
vendor/grammars/diff.tmbundle:
 | 
			
		||||
@@ -350,6 +357,8 @@ vendor/grammars/language-asn1:
 | 
			
		||||
vendor/grammars/language-babel:
 | 
			
		||||
- source.js.jsx
 | 
			
		||||
- source.regexp.babel
 | 
			
		||||
vendor/grammars/language-ballerina:
 | 
			
		||||
- source.ballerina
 | 
			
		||||
vendor/grammars/language-batchfile:
 | 
			
		||||
- source.batchfile
 | 
			
		||||
vendor/grammars/language-blade:
 | 
			
		||||
@@ -380,6 +389,7 @@ vendor/grammars/language-css:
 | 
			
		||||
vendor/grammars/language-emacs-lisp:
 | 
			
		||||
- source.emacs.lisp
 | 
			
		||||
vendor/grammars/language-fontforge:
 | 
			
		||||
- source.afm
 | 
			
		||||
- source.fontforge
 | 
			
		||||
- source.opentype
 | 
			
		||||
- text.sfd
 | 
			
		||||
@@ -393,6 +403,7 @@ vendor/grammars/language-haml:
 | 
			
		||||
- text.haml
 | 
			
		||||
- text.hamlc
 | 
			
		||||
vendor/grammars/language-haskell:
 | 
			
		||||
- annotation.liquidhaskell.haskell
 | 
			
		||||
- hint.haskell
 | 
			
		||||
- hint.message.haskell
 | 
			
		||||
- hint.type.haskell
 | 
			
		||||
@@ -400,6 +411,7 @@ vendor/grammars/language-haskell:
 | 
			
		||||
- source.cabal
 | 
			
		||||
- source.haskell
 | 
			
		||||
- source.hsc2hs
 | 
			
		||||
- source.hsig
 | 
			
		||||
- text.tex.latex.haskell
 | 
			
		||||
vendor/grammars/language-inform7:
 | 
			
		||||
- source.inform7
 | 
			
		||||
@@ -427,8 +439,18 @@ vendor/grammars/language-ncl:
 | 
			
		||||
- source.ncl
 | 
			
		||||
vendor/grammars/language-ninja:
 | 
			
		||||
- source.ninja
 | 
			
		||||
vendor/grammars/language-pan:
 | 
			
		||||
- source.pan
 | 
			
		||||
vendor/grammars/language-pcb:
 | 
			
		||||
- source.gerber
 | 
			
		||||
- source.pcb.board
 | 
			
		||||
- source.pcb.schematic
 | 
			
		||||
- source.pcb.sexp
 | 
			
		||||
vendor/grammars/language-povray:
 | 
			
		||||
- source.pov-ray sdl
 | 
			
		||||
vendor/grammars/language-reason:
 | 
			
		||||
- source.reason
 | 
			
		||||
- source.reason.hover.type
 | 
			
		||||
vendor/grammars/language-regexp:
 | 
			
		||||
- source.regexp
 | 
			
		||||
- source.regexp.extended
 | 
			
		||||
@@ -436,6 +458,8 @@ vendor/grammars/language-renpy:
 | 
			
		||||
- source.renpy
 | 
			
		||||
vendor/grammars/language-restructuredtext:
 | 
			
		||||
- text.restructuredtext
 | 
			
		||||
vendor/grammars/language-ring:
 | 
			
		||||
- source.ring
 | 
			
		||||
vendor/grammars/language-roff:
 | 
			
		||||
- source.ditroff
 | 
			
		||||
- source.ditroff.desc
 | 
			
		||||
@@ -446,6 +470,10 @@ vendor/grammars/language-roff:
 | 
			
		||||
vendor/grammars/language-rpm-spec:
 | 
			
		||||
- source.changelogs.rpm-spec
 | 
			
		||||
- source.rpm-spec
 | 
			
		||||
vendor/grammars/language-ruby:
 | 
			
		||||
- source.ruby
 | 
			
		||||
- source.ruby.gemfile
 | 
			
		||||
- text.html.erb
 | 
			
		||||
vendor/grammars/language-shellscript:
 | 
			
		||||
- source.shell
 | 
			
		||||
- text.shell-session
 | 
			
		||||
@@ -455,11 +483,15 @@ vendor/grammars/language-toc-wow:
 | 
			
		||||
- source.toc
 | 
			
		||||
vendor/grammars/language-turing:
 | 
			
		||||
- source.turing
 | 
			
		||||
vendor/grammars/language-typelanguage:
 | 
			
		||||
- source.tl
 | 
			
		||||
vendor/grammars/language-viml:
 | 
			
		||||
- source.viml
 | 
			
		||||
vendor/grammars/language-wavefront:
 | 
			
		||||
- source.wavefront.mtl
 | 
			
		||||
- source.wavefront.obj
 | 
			
		||||
vendor/grammars/language-webassembly:
 | 
			
		||||
- source.webassembly
 | 
			
		||||
vendor/grammars/language-xbase:
 | 
			
		||||
- source.harbour
 | 
			
		||||
vendor/grammars/language-xcompose:
 | 
			
		||||
@@ -569,13 +601,8 @@ vendor/grammars/r.tmbundle:
 | 
			
		||||
- text.tex.latex.rd
 | 
			
		||||
vendor/grammars/rascal-syntax-highlighting:
 | 
			
		||||
- source.rascal
 | 
			
		||||
vendor/grammars/reason:
 | 
			
		||||
- source.reason
 | 
			
		||||
vendor/grammars/ruby-slim.tmbundle:
 | 
			
		||||
- text.slim
 | 
			
		||||
vendor/grammars/ruby.tmbundle:
 | 
			
		||||
- source.ruby
 | 
			
		||||
- text.html.erb
 | 
			
		||||
vendor/grammars/sas.tmbundle:
 | 
			
		||||
- source.SASLog
 | 
			
		||||
- source.sas
 | 
			
		||||
@@ -601,6 +628,8 @@ vendor/grammars/sourcepawn:
 | 
			
		||||
- source.sp
 | 
			
		||||
vendor/grammars/sql.tmbundle:
 | 
			
		||||
- source.sql
 | 
			
		||||
vendor/grammars/squirrel-language:
 | 
			
		||||
- source.nut
 | 
			
		||||
vendor/grammars/st2-zonefile:
 | 
			
		||||
- text.zone_file
 | 
			
		||||
vendor/grammars/standard-ml.tmbundle:
 | 
			
		||||
@@ -608,6 +637,8 @@ vendor/grammars/standard-ml.tmbundle:
 | 
			
		||||
- source.ml
 | 
			
		||||
vendor/grammars/sublime-MuPAD:
 | 
			
		||||
- source.mupad
 | 
			
		||||
vendor/grammars/sublime-angelscript:
 | 
			
		||||
- source.angelscript
 | 
			
		||||
vendor/grammars/sublime-aspectj:
 | 
			
		||||
- source.aspectj
 | 
			
		||||
vendor/grammars/sublime-autoit:
 | 
			
		||||
@@ -620,6 +651,8 @@ vendor/grammars/sublime-cirru:
 | 
			
		||||
- source.cirru
 | 
			
		||||
vendor/grammars/sublime-clips:
 | 
			
		||||
- source.clips
 | 
			
		||||
vendor/grammars/sublime-fantom:
 | 
			
		||||
- source.fan
 | 
			
		||||
vendor/grammars/sublime-glsl:
 | 
			
		||||
- source.essl
 | 
			
		||||
- source.glsl
 | 
			
		||||
@@ -627,6 +660,8 @@ vendor/grammars/sublime-golo:
 | 
			
		||||
- source.golo
 | 
			
		||||
vendor/grammars/sublime-mask:
 | 
			
		||||
- source.mask
 | 
			
		||||
vendor/grammars/sublime-nearley:
 | 
			
		||||
- source.ne
 | 
			
		||||
vendor/grammars/sublime-netlinx:
 | 
			
		||||
- source.netlinx
 | 
			
		||||
- source.netlinx.erb
 | 
			
		||||
@@ -652,11 +687,6 @@ vendor/grammars/sublime-terra:
 | 
			
		||||
- source.terra
 | 
			
		||||
vendor/grammars/sublime-text-ox:
 | 
			
		||||
- source.ox
 | 
			
		||||
vendor/grammars/sublime-typescript:
 | 
			
		||||
- source.ts
 | 
			
		||||
- source.tsx
 | 
			
		||||
- text.error-list
 | 
			
		||||
- text.find-refs
 | 
			
		||||
vendor/grammars/sublime-varnish:
 | 
			
		||||
- source.varnish.vcl
 | 
			
		||||
vendor/grammars/sublime_cobol:
 | 
			
		||||
@@ -689,6 +719,8 @@ vendor/grammars/vhdl:
 | 
			
		||||
- source.vhdl
 | 
			
		||||
vendor/grammars/vue-syntax-highlight:
 | 
			
		||||
- text.html.vue
 | 
			
		||||
vendor/grammars/wdl-sublime-syntax-highlighter:
 | 
			
		||||
- source.wdl
 | 
			
		||||
vendor/grammars/xc.tmbundle:
 | 
			
		||||
- source.xc
 | 
			
		||||
vendor/grammars/xml.tmbundle:
 | 
			
		||||
 
 | 
			
		||||
@@ -81,7 +81,8 @@ module Linguist
 | 
			
		||||
      generated_grammarkit? ||
 | 
			
		||||
      generated_roxygen2? ||
 | 
			
		||||
      generated_jison? ||
 | 
			
		||||
      generated_yarn_lock?
 | 
			
		||||
      generated_yarn_lock? ||
 | 
			
		||||
      generated_grpc_cpp?
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Internal: Is the blob an Xcode file?
 | 
			
		||||
@@ -243,7 +244,11 @@ module Linguist
 | 
			
		||||
    #
 | 
			
		||||
    # Returns true or false.
 | 
			
		||||
    def generated_postscript?
 | 
			
		||||
      return false unless ['.ps', '.eps'].include? extname
 | 
			
		||||
      return false unless ['.ps', '.eps', '.pfa'].include? extname
 | 
			
		||||
 | 
			
		||||
      # Type 1 and Type 42 fonts converted to PostScript are stored as hex-encoded byte streams; these
 | 
			
		||||
      # streams are always preceded the `eexec` operator (if Type 1), or the `/sfnts` key (if Type 42).
 | 
			
		||||
      return true if data =~ /(\n|\r\n|\r)\s*(?:currentfile eexec\s+|\/sfnts\s+\[\1<)\h{8,}\1/
 | 
			
		||||
 | 
			
		||||
      # We analyze the "%%Creator:" comment, which contains the author/generator
 | 
			
		||||
      # of the file. If there is one, it should be in one of the first few lines.
 | 
			
		||||
@@ -253,10 +258,12 @@ module Linguist
 | 
			
		||||
      # Most generators write their version number, while human authors' or companies'
 | 
			
		||||
      # names don't contain numbers. So look if the line contains digits. Also
 | 
			
		||||
      # look for some special cases without version numbers.
 | 
			
		||||
      return creator =~ /[0-9]/ ||
 | 
			
		||||
        creator.include?("mpage") ||
 | 
			
		||||
        creator.include?("draw") ||
 | 
			
		||||
        creator.include?("ImageMagick")
 | 
			
		||||
      return true if creator =~ /[0-9]|draw|mpage|ImageMagick|inkscape|MATLAB/ ||
 | 
			
		||||
        creator =~ /PCBNEW|pnmtops|\(Unknown\)|Serif Affinity|Filterimage -tops/
 | 
			
		||||
 | 
			
		||||
      # EAGLE doesn't include a version number when it generates PostScript.
 | 
			
		||||
      # However, it does prepend its name to the document's "%%Title" field.
 | 
			
		||||
      !!creator.include?("EAGLE") and lines[0..4].find {|line| line =~ /^%%Title: EAGLE Drawing /}
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def generated_go?
 | 
			
		||||
@@ -489,5 +496,18 @@ module Linguist
 | 
			
		||||
      return false unless lines.count > 0
 | 
			
		||||
      return lines[0].include?("# THIS IS AN AUTOGENERATED FILE")
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Internal: Is this a protobuf/grpc-generated C++ file?
 | 
			
		||||
    #
 | 
			
		||||
    # A generated file contains:
 | 
			
		||||
    # // Generated by the gRPC C++ plugin.
 | 
			
		||||
    # on the first line.
 | 
			
		||||
    #
 | 
			
		||||
    # Return true or false
 | 
			
		||||
    def generated_grpc_cpp?
 | 
			
		||||
      return false unless %w{.cpp .hpp .h .cc}.include? extname
 | 
			
		||||
      return false unless lines.count > 1
 | 
			
		||||
      return lines[0].start_with?("// Generated by the gRPC")
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -17,9 +17,8 @@ module Linguist
 | 
			
		||||
      data = blob.data
 | 
			
		||||
 | 
			
		||||
      @heuristics.each do |heuristic|
 | 
			
		||||
        if heuristic.matches?(blob.name)
 | 
			
		||||
          languages = Array(heuristic.call(data))
 | 
			
		||||
          return languages if languages.any? || languages.all? { |l| candidates.include?(l) }
 | 
			
		||||
        if heuristic.matches?(blob.name, candidates)
 | 
			
		||||
          return Array(heuristic.call(data))
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
@@ -28,7 +27,8 @@ module Linguist
 | 
			
		||||
 | 
			
		||||
    # Internal: Define a new heuristic.
 | 
			
		||||
    #
 | 
			
		||||
    # languages - String names of languages to disambiguate.
 | 
			
		||||
    # exts_and_langs - String names of file extensions and languages to
 | 
			
		||||
    #                  disambiguate.
 | 
			
		||||
    # heuristic - Block which takes data as an argument and returns a Language or nil.
 | 
			
		||||
    #
 | 
			
		||||
    # Examples
 | 
			
		||||
@@ -41,23 +41,28 @@ module Linguist
 | 
			
		||||
    #       end
 | 
			
		||||
    #     end
 | 
			
		||||
    #
 | 
			
		||||
    def self.disambiguate(*extensions, &heuristic)
 | 
			
		||||
      @heuristics << new(extensions, &heuristic)
 | 
			
		||||
    def self.disambiguate(*exts_and_langs, &heuristic)
 | 
			
		||||
      @heuristics << new(exts_and_langs, &heuristic)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Internal: Array of defined heuristics
 | 
			
		||||
    @heuristics = []
 | 
			
		||||
 | 
			
		||||
    # Internal
 | 
			
		||||
    def initialize(extensions, &heuristic)
 | 
			
		||||
      @extensions = extensions
 | 
			
		||||
    def initialize(exts_and_langs, &heuristic)
 | 
			
		||||
      @exts_and_langs, @candidates = exts_and_langs.partition {|e| e =~ /\A\./}
 | 
			
		||||
      @heuristic = heuristic
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Internal: Check if this heuristic matches the candidate languages.
 | 
			
		||||
    def matches?(filename)
 | 
			
		||||
    # Internal: Check if this heuristic matches the candidate filenames or
 | 
			
		||||
    # languages.
 | 
			
		||||
    def matches?(filename, candidates)
 | 
			
		||||
      filename = filename.downcase
 | 
			
		||||
      @extensions.any? { |ext| filename.end_with?(ext) }
 | 
			
		||||
      candidates = candidates.compact.map(&:name)
 | 
			
		||||
      @exts_and_langs.any? { |ext| filename.end_with?(ext) } ||
 | 
			
		||||
        (candidates.any? &&
 | 
			
		||||
         (@candidates - candidates == [] &&
 | 
			
		||||
          candidates - @candidates == []))
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Internal: Perform the heuristic
 | 
			
		||||
@@ -68,6 +73,14 @@ module Linguist
 | 
			
		||||
    # Common heuristics
 | 
			
		||||
    ObjectiveCRegex = /^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])/
 | 
			
		||||
 | 
			
		||||
    disambiguate ".as" do |data|
 | 
			
		||||
      if /^\s*(package\s+[a-z0-9_\.]+|import\s+[a-zA-Z0-9_\.]+;|class\s+[A-Za-z0-9_]+\s+extends\s+[A-Za-z0-9_]+)/.match(data)
 | 
			
		||||
        Language["ActionScript"]
 | 
			
		||||
      else
 | 
			
		||||
        Language["AngelScript"]
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    disambiguate ".asc" do |data|
 | 
			
		||||
      if /^(----[- ]BEGIN|ssh-(rsa|dss)) /.match(data)
 | 
			
		||||
        Language["Public Key"]
 | 
			
		||||
@@ -297,7 +310,7 @@ module Linguist
 | 
			
		||||
    disambiguate ".ms" do |data|
 | 
			
		||||
      if /^[.'][a-z][a-z](\s|$)/i.match(data)
 | 
			
		||||
        Language["Roff"]
 | 
			
		||||
      elsif /(?<!\S)\.(include|globa?l)\s/.match(data) || /(?<!\/\*)(\A|\n)\s*\.[A-Za-z]/.match(data.gsub(/"([^\\"]|\\.)*"|'([^\\']|\\.)*'|\\\s*(?:--.*)?\n/, ""))
 | 
			
		||||
      elsif /(?<!\S)\.(include|globa?l)\s/.match(data) || /(?<!\/\*)(\A|\n)\s*\.[A-Za-z][_A-Za-z0-9]*:/.match(data.gsub(/"([^\\"]|\\.)*"|'([^\\']|\\.)*'|\\\s*(?:--.*)?\n/, ""))
 | 
			
		||||
        Language["Unix Assembly"]
 | 
			
		||||
      else
 | 
			
		||||
        Language["MAXScript"]
 | 
			
		||||
@@ -340,23 +353,17 @@ module Linguist
 | 
			
		||||
      elsif /use strict|use\s+v?5\./.match(data)
 | 
			
		||||
        Language["Perl"]
 | 
			
		||||
      elsif /^(use v6|(my )?class|module)/.match(data)
 | 
			
		||||
        Language["Perl6"]
 | 
			
		||||
        Language["Perl 6"]
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    disambiguate ".pm" do |data|
 | 
			
		||||
      if /^\s*(?:use\s+v6\s*;|(?:\bmy\s+)?class|module)\b/.match(data)
 | 
			
		||||
        Language["Perl6"]
 | 
			
		||||
        Language["Perl 6"]
 | 
			
		||||
      elsif /\buse\s+(?:strict\b|v?5\.)/.match(data)
 | 
			
		||||
        Language["Perl"]
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    disambiguate ".pod" do |data|
 | 
			
		||||
      if /^=\w+\b/.match(data)
 | 
			
		||||
        Language["Pod"]
 | 
			
		||||
      else
 | 
			
		||||
        Language["Perl"]
 | 
			
		||||
      elsif /^\s*\/\* XPM \*\//.match(data)
 | 
			
		||||
        Language["XPM"]
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@@ -446,7 +453,7 @@ module Linguist
 | 
			
		||||
      if /^\s*%[ \t]+|^\s*var\s+\w+\s*:=\s*\w+/.match(data)
 | 
			
		||||
        Language["Turing"]
 | 
			
		||||
      elsif /^\s*(?:use\s+v6\s*;|\bmodule\b|\b(?:my\s+)?class\b)/.match(data)
 | 
			
		||||
        Language["Perl6"]
 | 
			
		||||
        Language["Perl 6"]
 | 
			
		||||
      elsif /\buse\s+(?:strict\b|v?5\.)/.match(data)
 | 
			
		||||
        Language["Perl"]
 | 
			
		||||
      end
 | 
			
		||||
@@ -484,5 +491,14 @@ module Linguist
 | 
			
		||||
        Language["XML"]
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  
 | 
			
		||||
    disambiguate ".w" do |data|
 | 
			
		||||
      if (data.include?("&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS"))
 | 
			
		||||
        Language["OpenEdge ABL"]
 | 
			
		||||
      elsif /^@(<|\w+\.)/.match(data)
 | 
			
		||||
        Language["CWeb"]
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -109,7 +109,7 @@ module Linguist
 | 
			
		||||
    #
 | 
			
		||||
    # Returns the Language or nil if none was found.
 | 
			
		||||
    def self.find_by_name(name)
 | 
			
		||||
      return nil if name.to_s.empty?
 | 
			
		||||
      return nil if !name.is_a?(String) || name.to_s.empty?
 | 
			
		||||
      name && (@name_index[name.downcase] || @name_index[name.split(',').first.downcase])
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@@ -124,7 +124,7 @@ module Linguist
 | 
			
		||||
    #
 | 
			
		||||
    # Returns the Language or nil if none was found.
 | 
			
		||||
    def self.find_by_alias(name)
 | 
			
		||||
      return nil if name.to_s.empty?
 | 
			
		||||
      return nil if !name.is_a?(String) || name.to_s.empty?
 | 
			
		||||
      name && (@alias_index[name.downcase] || @alias_index[name.split(',').first.downcase])
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@@ -214,7 +214,7 @@ module Linguist
 | 
			
		||||
    #
 | 
			
		||||
    # Returns the Language or nil if none was found.
 | 
			
		||||
    def self.[](name)
 | 
			
		||||
      return nil if name.to_s.empty?
 | 
			
		||||
      return nil if !name.is_a?(String) || name.to_s.empty?
 | 
			
		||||
 | 
			
		||||
      lang = @index[name.downcase]
 | 
			
		||||
      return lang if lang
 | 
			
		||||
 
 | 
			
		||||
@@ -171,6 +171,18 @@ Ada:
 | 
			
		||||
  - ada2005
 | 
			
		||||
  ace_mode: ada
 | 
			
		||||
  language_id: 11
 | 
			
		||||
Adobe Font Metrics:
 | 
			
		||||
  type: data
 | 
			
		||||
  tm_scope: source.afm
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".afm"
 | 
			
		||||
  aliases:
 | 
			
		||||
  - acfm
 | 
			
		||||
  - adobe composite font metrics
 | 
			
		||||
  - adobe multiple font metrics
 | 
			
		||||
  - amfm
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 147198098
 | 
			
		||||
Agda:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#315665"
 | 
			
		||||
@@ -198,6 +210,17 @@ Alpine Abuild:
 | 
			
		||||
  codemirror_mode: shell
 | 
			
		||||
  codemirror_mime_type: text/x-sh
 | 
			
		||||
  language_id: 14
 | 
			
		||||
AngelScript:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#C7D7DC"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".as"
 | 
			
		||||
  - ".angelscript"
 | 
			
		||||
  tm_scope: source.angelscript
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  codemirror_mode: clike
 | 
			
		||||
  codemirror_mime_type: text/x-c++src
 | 
			
		||||
  language_id: 389477596
 | 
			
		||||
Ant Build System:
 | 
			
		||||
  type: data
 | 
			
		||||
  tm_scope: text.xml.ant
 | 
			
		||||
@@ -209,7 +232,7 @@ Ant Build System:
 | 
			
		||||
  codemirror_mime_type: application/xml
 | 
			
		||||
  language_id: 15
 | 
			
		||||
ApacheConf:
 | 
			
		||||
  type: markup
 | 
			
		||||
  type: data
 | 
			
		||||
  aliases:
 | 
			
		||||
  - aconf
 | 
			
		||||
  - apache
 | 
			
		||||
@@ -342,6 +365,14 @@ Awk:
 | 
			
		||||
  - nawk
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 28
 | 
			
		||||
Ballerina:
 | 
			
		||||
  type: programming
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".bal"
 | 
			
		||||
  tm_scope: source.ballerina
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  color: "#FF5000"
 | 
			
		||||
  language_id: 720859680
 | 
			
		||||
Batchfile:
 | 
			
		||||
  type: programming
 | 
			
		||||
  aliases:
 | 
			
		||||
@@ -613,8 +644,10 @@ CartoCSS:
 | 
			
		||||
  language_id: 53
 | 
			
		||||
Ceylon:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#dfa535"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".ceylon"
 | 
			
		||||
  tm_scope: source.ceylon
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 54
 | 
			
		||||
Chapel:
 | 
			
		||||
@@ -843,7 +876,7 @@ Csound:
 | 
			
		||||
  - ".orc"
 | 
			
		||||
  - ".udo"
 | 
			
		||||
  tm_scope: source.csound
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  ace_mode: csound_orchestra
 | 
			
		||||
  language_id: 73
 | 
			
		||||
Csound Document:
 | 
			
		||||
  type: programming
 | 
			
		||||
@@ -852,7 +885,7 @@ Csound Document:
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".csd"
 | 
			
		||||
  tm_scope: source.csound-document
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  ace_mode: csound_document
 | 
			
		||||
  language_id: 74
 | 
			
		||||
Csound Score:
 | 
			
		||||
  type: programming
 | 
			
		||||
@@ -861,7 +894,7 @@ Csound Score:
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".sco"
 | 
			
		||||
  tm_scope: source.csound-score
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  ace_mode: csound_score
 | 
			
		||||
  language_id: 75
 | 
			
		||||
Cuda:
 | 
			
		||||
  type: programming
 | 
			
		||||
@@ -974,6 +1007,14 @@ Dart:
 | 
			
		||||
  codemirror_mode: dart
 | 
			
		||||
  codemirror_mime_type: application/dart
 | 
			
		||||
  language_id: 87
 | 
			
		||||
DataWeave:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#003a52"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".dwl"
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  tm_scope: source.data-weave
 | 
			
		||||
  language_id: 974514097
 | 
			
		||||
Diff:
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
@@ -1074,8 +1115,7 @@ EQ:
 | 
			
		||||
  codemirror_mime_type: text/x-csharp
 | 
			
		||||
  language_id: 96
 | 
			
		||||
Eagle:
 | 
			
		||||
  type: markup
 | 
			
		||||
  color: "#814C05"
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".sch"
 | 
			
		||||
  - ".brd"
 | 
			
		||||
@@ -1084,6 +1124,16 @@ Eagle:
 | 
			
		||||
  codemirror_mode: xml
 | 
			
		||||
  codemirror_mime_type: text/xml
 | 
			
		||||
  language_id: 97
 | 
			
		||||
Easybuild:
 | 
			
		||||
  type: data
 | 
			
		||||
  group: Python
 | 
			
		||||
  ace_mode: python
 | 
			
		||||
  codemirror_mode: python
 | 
			
		||||
  codemirror_mime_type: text/x-python
 | 
			
		||||
  tm_scope: source.python
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".eb"
 | 
			
		||||
  language_id: 342840477
 | 
			
		||||
Ecere Projects:
 | 
			
		||||
  type: data
 | 
			
		||||
  group: JavaScript
 | 
			
		||||
@@ -1231,10 +1281,10 @@ Fancy:
 | 
			
		||||
  language_id: 109
 | 
			
		||||
Fantom:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#dbded5"
 | 
			
		||||
  color: "#14253c"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".fan"
 | 
			
		||||
  tm_scope: none
 | 
			
		||||
  tm_scope: source.fan
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 110
 | 
			
		||||
Filebench WML:
 | 
			
		||||
@@ -1447,6 +1497,29 @@ Gentoo Eclass:
 | 
			
		||||
  codemirror_mode: shell
 | 
			
		||||
  codemirror_mime_type: text/x-sh
 | 
			
		||||
  language_id: 128
 | 
			
		||||
Gerber Image:
 | 
			
		||||
  type: data
 | 
			
		||||
  aliases:
 | 
			
		||||
  - rs-274x
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".gbr"
 | 
			
		||||
  - ".gbl"
 | 
			
		||||
  - ".gbo"
 | 
			
		||||
  - ".gbp"
 | 
			
		||||
  - ".gbs"
 | 
			
		||||
  - ".gko"
 | 
			
		||||
  - ".gpb"
 | 
			
		||||
  - ".gpt"
 | 
			
		||||
  - ".gtl"
 | 
			
		||||
  - ".gto"
 | 
			
		||||
  - ".gtp"
 | 
			
		||||
  - ".gts"
 | 
			
		||||
  interpreters:
 | 
			
		||||
  - gerbv
 | 
			
		||||
  - gerbview
 | 
			
		||||
  tm_scope: source.gerber
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 404627610
 | 
			
		||||
Gettext Catalog:
 | 
			
		||||
  type: prose
 | 
			
		||||
  searchable: false
 | 
			
		||||
@@ -1560,6 +1633,7 @@ GraphQL:
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".graphql"
 | 
			
		||||
  - ".gql"
 | 
			
		||||
  tm_scope: source.graphql
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 139
 | 
			
		||||
@@ -1757,7 +1831,7 @@ Harbour:
 | 
			
		||||
  language_id: 156
 | 
			
		||||
Haskell:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#29b544"
 | 
			
		||||
  color: "#5e5086"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".hs"
 | 
			
		||||
  - ".hsc"
 | 
			
		||||
@@ -1823,6 +1897,8 @@ INI:
 | 
			
		||||
  - ".prefs"
 | 
			
		||||
  - ".pro"
 | 
			
		||||
  - ".properties"
 | 
			
		||||
  filenames:
 | 
			
		||||
  - buildozer.spec
 | 
			
		||||
  tm_scope: source.ini
 | 
			
		||||
  aliases:
 | 
			
		||||
  - dosini
 | 
			
		||||
@@ -2033,6 +2109,7 @@ JavaScript:
 | 
			
		||||
  - ".jsfl"
 | 
			
		||||
  - ".jsm"
 | 
			
		||||
  - ".jss"
 | 
			
		||||
  - ".mjs"
 | 
			
		||||
  - ".njs"
 | 
			
		||||
  - ".pac"
 | 
			
		||||
  - ".sjs"
 | 
			
		||||
@@ -2104,15 +2181,37 @@ KRL:
 | 
			
		||||
  tm_scope: none
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 186
 | 
			
		||||
KiCad:
 | 
			
		||||
  type: programming
 | 
			
		||||
KiCad Layout:
 | 
			
		||||
  type: data
 | 
			
		||||
  aliases:
 | 
			
		||||
  - pcbnew
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".kicad_pcb"
 | 
			
		||||
  - ".kicad_mod"
 | 
			
		||||
  - ".kicad_wks"
 | 
			
		||||
  filenames:
 | 
			
		||||
  - fp-lib-table
 | 
			
		||||
  tm_scope: source.pcb.sexp
 | 
			
		||||
  ace_mode: lisp
 | 
			
		||||
  codemirror_mode: commonlisp
 | 
			
		||||
  codemirror_mime_type: text/x-common-lisp
 | 
			
		||||
  language_id: 187
 | 
			
		||||
KiCad Legacy Layout:
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".brd"
 | 
			
		||||
  tm_scope: source.pcb.board
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 140848857
 | 
			
		||||
KiCad Schematic:
 | 
			
		||||
  type: data
 | 
			
		||||
  aliases:
 | 
			
		||||
  - eeschema schematic
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".sch"
 | 
			
		||||
  - ".brd"
 | 
			
		||||
  - ".kicad_pcb"
 | 
			
		||||
  tm_scope: none
 | 
			
		||||
  tm_scope: source.pcb.schematic
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 187
 | 
			
		||||
  language_id: 622447435
 | 
			
		||||
Kit:
 | 
			
		||||
  type: markup
 | 
			
		||||
  ace_mode: html
 | 
			
		||||
@@ -2469,6 +2568,7 @@ Makefile:
 | 
			
		||||
  - Makefile.frag
 | 
			
		||||
  - Makefile.in
 | 
			
		||||
  - Makefile.inc
 | 
			
		||||
  - Makefile.wat
 | 
			
		||||
  - makefile
 | 
			
		||||
  - makefile.sco
 | 
			
		||||
  - mkfile
 | 
			
		||||
@@ -2546,7 +2646,7 @@ Mathematica:
 | 
			
		||||
  language_id: 224
 | 
			
		||||
Matlab:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#bb92ac"
 | 
			
		||||
  color: "#e16737"
 | 
			
		||||
  aliases:
 | 
			
		||||
  - octave
 | 
			
		||||
  extensions:
 | 
			
		||||
@@ -2673,6 +2773,7 @@ Monkey:
 | 
			
		||||
  type: programming
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".monkey"
 | 
			
		||||
  - ".monkey2"
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  tm_scope: source.monkey
 | 
			
		||||
  language_id: 236
 | 
			
		||||
@@ -2722,6 +2823,15 @@ NSIS:
 | 
			
		||||
  codemirror_mode: nsis
 | 
			
		||||
  codemirror_mime_type: text/x-nsis
 | 
			
		||||
  language_id: 242
 | 
			
		||||
Nearley:
 | 
			
		||||
  type: programming
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  color: "#990000"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".ne"
 | 
			
		||||
  - ".nearley"
 | 
			
		||||
  tm_scope: source.ne
 | 
			
		||||
  language_id: 521429430
 | 
			
		||||
Nemerle:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#3d3c6e"
 | 
			
		||||
@@ -2773,7 +2883,7 @@ NewLisp:
 | 
			
		||||
  codemirror_mime_type: text/x-common-lisp
 | 
			
		||||
  language_id: 247
 | 
			
		||||
Nginx:
 | 
			
		||||
  type: markup
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".nginxconf"
 | 
			
		||||
  - ".vhost"
 | 
			
		||||
@@ -2785,7 +2895,6 @@ Nginx:
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  codemirror_mode: nginx
 | 
			
		||||
  codemirror_mime_type: text/x-nginx-conf
 | 
			
		||||
  color: "#9469E9"
 | 
			
		||||
  language_id: 248
 | 
			
		||||
Nim:
 | 
			
		||||
  type: programming
 | 
			
		||||
@@ -2960,6 +3069,7 @@ OpenEdge ABL:
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".p"
 | 
			
		||||
  - ".cls"
 | 
			
		||||
  - ".w"
 | 
			
		||||
  tm_scope: source.abl
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 264
 | 
			
		||||
@@ -3119,7 +3229,7 @@ Pan:
 | 
			
		||||
  color: "#cc0000"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".pan"
 | 
			
		||||
  tm_scope: none
 | 
			
		||||
  tm_scope: source.pan
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 276
 | 
			
		||||
Papyrus:
 | 
			
		||||
@@ -3203,13 +3313,14 @@ Perl:
 | 
			
		||||
  - ".ph"
 | 
			
		||||
  - ".plx"
 | 
			
		||||
  - ".pm"
 | 
			
		||||
  - ".pod"
 | 
			
		||||
  - ".psgi"
 | 
			
		||||
  - ".t"
 | 
			
		||||
  filenames:
 | 
			
		||||
  - cpanfile
 | 
			
		||||
  interpreters:
 | 
			
		||||
  - perl
 | 
			
		||||
  language_id: 282
 | 
			
		||||
Perl6:
 | 
			
		||||
Perl 6:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#0000fb"
 | 
			
		||||
  extensions:
 | 
			
		||||
@@ -3287,6 +3398,8 @@ Pod:
 | 
			
		||||
  wrap: true
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".pod"
 | 
			
		||||
  interpreters:
 | 
			
		||||
  - perl
 | 
			
		||||
  tm_scope: none
 | 
			
		||||
  language_id: 288
 | 
			
		||||
PogoScript:
 | 
			
		||||
@@ -3310,6 +3423,7 @@ PostScript:
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".ps"
 | 
			
		||||
  - ".eps"
 | 
			
		||||
  - ".pfa"
 | 
			
		||||
  tm_scope: source.postscript
 | 
			
		||||
  aliases:
 | 
			
		||||
  - postscr
 | 
			
		||||
@@ -3369,7 +3483,7 @@ Propeller Spin:
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 296
 | 
			
		||||
Protocol Buffer:
 | 
			
		||||
  type: markup
 | 
			
		||||
  type: data
 | 
			
		||||
  aliases:
 | 
			
		||||
  - protobuf
 | 
			
		||||
  - Protocol Buffers
 | 
			
		||||
@@ -3414,8 +3528,7 @@ Puppet:
 | 
			
		||||
  tm_scope: source.puppet
 | 
			
		||||
  language_id: 299
 | 
			
		||||
Pure Data:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#91de79"
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".pd"
 | 
			
		||||
  tm_scope: none
 | 
			
		||||
@@ -3735,6 +3848,14 @@ RenderScript:
 | 
			
		||||
  tm_scope: none
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 323
 | 
			
		||||
Ring:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#0e60e3"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".ring"
 | 
			
		||||
  tm_scope: source.ring
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 431
 | 
			
		||||
RobotFramework:
 | 
			
		||||
  type: programming
 | 
			
		||||
  extensions:
 | 
			
		||||
@@ -4035,6 +4156,7 @@ Scheme:
 | 
			
		||||
  color: "#1e4aec"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".scm"
 | 
			
		||||
  - ".sch"
 | 
			
		||||
  - ".sld"
 | 
			
		||||
  - ".sls"
 | 
			
		||||
  - ".sps"
 | 
			
		||||
@@ -4101,7 +4223,12 @@ Shell:
 | 
			
		||||
  - PKGBUILD
 | 
			
		||||
  - gradlew
 | 
			
		||||
  interpreters:
 | 
			
		||||
  - ash
 | 
			
		||||
  - bash
 | 
			
		||||
  - dash
 | 
			
		||||
  - ksh
 | 
			
		||||
  - mksh
 | 
			
		||||
  - pdksh
 | 
			
		||||
  - rc
 | 
			
		||||
  - sh
 | 
			
		||||
  - zsh
 | 
			
		||||
@@ -4487,6 +4614,15 @@ Twig:
 | 
			
		||||
  codemirror_mode: twig
 | 
			
		||||
  codemirror_mime_type: text/x-twig
 | 
			
		||||
  language_id: 377
 | 
			
		||||
Type Language:
 | 
			
		||||
  type: data
 | 
			
		||||
  aliases:
 | 
			
		||||
  - tl
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".tl"
 | 
			
		||||
  tm_scope: source.tl
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 632765617
 | 
			
		||||
TypeScript:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#2b7489"
 | 
			
		||||
@@ -4564,8 +4700,8 @@ UrWeb:
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 383
 | 
			
		||||
VCL:
 | 
			
		||||
  group: Perl
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#0298c3"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".vcl"
 | 
			
		||||
  tm_scope: source.varnish.vcl
 | 
			
		||||
@@ -4677,13 +4813,26 @@ Wavefront Object:
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 393
 | 
			
		||||
Web Ontology Language:
 | 
			
		||||
  type: markup
 | 
			
		||||
  color: "#9cc9dd"
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".owl"
 | 
			
		||||
  tm_scope: text.xml
 | 
			
		||||
  ace_mode: xml
 | 
			
		||||
  language_id: 394
 | 
			
		||||
WebAssembly:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#04133b"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".wast"
 | 
			
		||||
  - ".wat"
 | 
			
		||||
  aliases:
 | 
			
		||||
  - wast
 | 
			
		||||
  - wasm
 | 
			
		||||
  tm_scope: source.webassembly
 | 
			
		||||
  ace_mode: lisp
 | 
			
		||||
  codemirror_mode: commonlisp
 | 
			
		||||
  codemirror_mime_type: text/x-common-lisp
 | 
			
		||||
  language_id: 956556503
 | 
			
		||||
WebIDL:
 | 
			
		||||
  type: programming
 | 
			
		||||
  extensions:
 | 
			
		||||
@@ -4745,12 +4894,16 @@ XML:
 | 
			
		||||
  - ".ant"
 | 
			
		||||
  - ".axml"
 | 
			
		||||
  - ".builds"
 | 
			
		||||
  - ".ccproj"
 | 
			
		||||
  - ".ccxml"
 | 
			
		||||
  - ".clixml"
 | 
			
		||||
  - ".cproject"
 | 
			
		||||
  - ".cscfg"
 | 
			
		||||
  - ".csdef"
 | 
			
		||||
  - ".csl"
 | 
			
		||||
  - ".csproj"
 | 
			
		||||
  - ".ct"
 | 
			
		||||
  - ".depproj"
 | 
			
		||||
  - ".dita"
 | 
			
		||||
  - ".ditamap"
 | 
			
		||||
  - ".ditaval"
 | 
			
		||||
@@ -4773,6 +4926,8 @@ XML:
 | 
			
		||||
  - ".mm"
 | 
			
		||||
  - ".mod"
 | 
			
		||||
  - ".mxml"
 | 
			
		||||
  - ".natvis"
 | 
			
		||||
  - ".ndproj"
 | 
			
		||||
  - ".nproj"
 | 
			
		||||
  - ".nuspec"
 | 
			
		||||
  - ".odd"
 | 
			
		||||
@@ -4780,6 +4935,7 @@ XML:
 | 
			
		||||
  - ".pkgproj"
 | 
			
		||||
  - ".plist"
 | 
			
		||||
  - ".pluginspec"
 | 
			
		||||
  - ".proj"
 | 
			
		||||
  - ".props"
 | 
			
		||||
  - ".ps1xml"
 | 
			
		||||
  - ".psc1"
 | 
			
		||||
@@ -4790,6 +4946,7 @@ XML:
 | 
			
		||||
  - ".sch"
 | 
			
		||||
  - ".scxml"
 | 
			
		||||
  - ".sfproj"
 | 
			
		||||
  - ".shproj"
 | 
			
		||||
  - ".srdf"
 | 
			
		||||
  - ".storyboard"
 | 
			
		||||
  - ".stTheme"
 | 
			
		||||
@@ -4828,6 +4985,7 @@ XML:
 | 
			
		||||
  - ".xml.dist"
 | 
			
		||||
  - ".xproj"
 | 
			
		||||
  - ".xsd"
 | 
			
		||||
  - ".xspec"
 | 
			
		||||
  - ".xul"
 | 
			
		||||
  - ".zcml"
 | 
			
		||||
  filenames:
 | 
			
		||||
@@ -4841,12 +4999,20 @@ XML:
 | 
			
		||||
  - Web.config
 | 
			
		||||
  - packages.config
 | 
			
		||||
  language_id: 399
 | 
			
		||||
XPM:
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".xpm"
 | 
			
		||||
  - ".pm"
 | 
			
		||||
  ace_mode: c_cpp
 | 
			
		||||
  tm_scope: source.c
 | 
			
		||||
  language_id: 781846279
 | 
			
		||||
XPages:
 | 
			
		||||
  type: programming
 | 
			
		||||
  type: data
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".xsp-config"
 | 
			
		||||
  - ".xsp.metadata"
 | 
			
		||||
  tm_scope: none
 | 
			
		||||
  tm_scope: text.xml
 | 
			
		||||
  ace_mode: xml
 | 
			
		||||
  codemirror_mode: xml
 | 
			
		||||
  codemirror_mime_type: text/xml
 | 
			
		||||
@@ -4931,6 +5097,7 @@ YAML:
 | 
			
		||||
  - ".yml.mysql"
 | 
			
		||||
  filenames:
 | 
			
		||||
  - ".clang-format"
 | 
			
		||||
  - ".clang-tidy"
 | 
			
		||||
  ace_mode: yaml
 | 
			
		||||
  codemirror_mode: yaml
 | 
			
		||||
  codemirror_mime_type: text/x-yaml
 | 
			
		||||
@@ -5040,6 +5207,14 @@ reStructuredText:
 | 
			
		||||
  codemirror_mode: rst
 | 
			
		||||
  codemirror_mime_type: text/x-rst
 | 
			
		||||
  language_id: 419
 | 
			
		||||
wdl:
 | 
			
		||||
  type: programming
 | 
			
		||||
  color: "#42f1f4"
 | 
			
		||||
  extensions:
 | 
			
		||||
  - ".wdl"
 | 
			
		||||
  tm_scope: source.wdl
 | 
			
		||||
  ace_mode: text
 | 
			
		||||
  language_id: 374521672
 | 
			
		||||
wisp:
 | 
			
		||||
  type: programming
 | 
			
		||||
  ace_mode: clojure
 | 
			
		||||
 
 | 
			
		||||
@@ -72,6 +72,9 @@
 | 
			
		||||
# Normalize.css
 | 
			
		||||
- (^|/)normalize\.(css|less|scss|styl)$
 | 
			
		||||
 | 
			
		||||
# Skeleton.css
 | 
			
		||||
- (^|/)skeleton\.(css|less|scss|styl)$
 | 
			
		||||
 | 
			
		||||
# Bourbon css
 | 
			
		||||
- (^|/)[Bb]ourbon/.*\.(css|less|scss|styl)$
 | 
			
		||||
 | 
			
		||||
@@ -132,6 +135,9 @@
 | 
			
		||||
- .sublime-project
 | 
			
		||||
- .sublime-workspace
 | 
			
		||||
 | 
			
		||||
# VS Code workspace files
 | 
			
		||||
- .vscode
 | 
			
		||||
 | 
			
		||||
# Prototype
 | 
			
		||||
- (^|/)prototype(.*)\.js$
 | 
			
		||||
- (^|/)effects\.js$
 | 
			
		||||
@@ -188,6 +194,9 @@
 | 
			
		||||
# React
 | 
			
		||||
- (^|/)react(-[^.]*)?\.js$
 | 
			
		||||
 | 
			
		||||
# flow-typed
 | 
			
		||||
- (^|/)flow-typed/.*\.js$
 | 
			
		||||
 | 
			
		||||
# Modernizr
 | 
			
		||||
- (^|/)modernizr\-\d\.\d+(\.\d+)?\.js$
 | 
			
		||||
- (^|/)modernizr\.custom\.\d+\.js$
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
module Linguist
 | 
			
		||||
  VERSION = "5.0.11"
 | 
			
		||||
  VERSION = "5.3.1"
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								samples/ActionScript/FooBar.as
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								samples/ActionScript/FooBar.as
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
// A sample for Actionscript.
 | 
			
		||||
 | 
			
		||||
package foobar
 | 
			
		||||
{
 | 
			
		||||
	import flash.display.MovieClip;
 | 
			
		||||
 | 
			
		||||
	class Bar
 | 
			
		||||
	{
 | 
			
		||||
		public function getNumber():Number
 | 
			
		||||
		{
 | 
			
		||||
			return 10;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	class Foo extends Bar
 | 
			
		||||
	{
 | 
			
		||||
		private var ourNumber:Number = 25;
 | 
			
		||||
 | 
			
		||||
		override public function getNumber():Number
 | 
			
		||||
		{
 | 
			
		||||
			return ourNumber;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	class Main extends MovieClip
 | 
			
		||||
	{
 | 
			
		||||
		public function Main()
 | 
			
		||||
		{
 | 
			
		||||
			var x:Bar = new Bar();
 | 
			
		||||
			var y:Foo = new Foo();
 | 
			
		||||
			trace(x.getNumber());
 | 
			
		||||
			trace(y.getNumber());
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								samples/ActionScript/HelloWorld.as
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								samples/ActionScript/HelloWorld.as
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
package mypackage
 | 
			
		||||
{
 | 
			
		||||
	public class Hello
 | 
			
		||||
	{
 | 
			
		||||
		/* Let's say hello!
 | 
			
		||||
		 * This is just a test script for Linguist's Actionscript detection.
 | 
			
		||||
		 */
 | 
			
		||||
		public function sayHello():void
 | 
			
		||||
		{
 | 
			
		||||
			trace("Hello, world");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										69
									
								
								samples/Adobe Font Metrics/OpenSansCondensed-Bold.afm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								samples/Adobe Font Metrics/OpenSansCondensed-Bold.afm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
StartFontMetrics 2.0
 | 
			
		||||
Comment Generated by FontForge 20170719
 | 
			
		||||
Comment Creation Date: Sun Jul 23 19:47:25 2017
 | 
			
		||||
FontName OpenSansCondensed-Bold
 | 
			
		||||
FullName Open Sans Condensed Bold
 | 
			
		||||
FamilyName Open Sans Condensed
 | 
			
		||||
Weight Bold
 | 
			
		||||
Notice (Digitized data copyright (c) 2010-2011, Google Corporation.)
 | 
			
		||||
ItalicAngle 0
 | 
			
		||||
IsFixedPitch false
 | 
			
		||||
UnderlinePosition -205
 | 
			
		||||
UnderlineThickness 102
 | 
			
		||||
Version 1.11
 | 
			
		||||
EncodingScheme ISO10646-1
 | 
			
		||||
FontBBox -667 -290 1046 1062
 | 
			
		||||
CapHeight 714
 | 
			
		||||
XHeight 544
 | 
			
		||||
Ascender 760
 | 
			
		||||
Descender -240
 | 
			
		||||
StartCharMetrics 939
 | 
			
		||||
C 32 ; WX 247 ; N space ; B 0 0 0 0 ;
 | 
			
		||||
C 33 ; WX 270 ; N exclam ; B 54 -14 216 714 ;
 | 
			
		||||
C 34 ; WX 445 ; N quotedbl ; B 59 456 388 714 ;
 | 
			
		||||
C 35 ; WX 543 ; N numbersign ; B 20 0 525 714 ;
 | 
			
		||||
C 36 ; WX 462 ; N dollar ; B 36 -59 427 760 ;
 | 
			
		||||
C 37 ; WX 758 ; N percent ; B 30 -9 729 725 ;
 | 
			
		||||
C 38 ; WX 581 ; N ampersand ; B 28 -10 572 725 ;
 | 
			
		||||
C 39 ; WX 246 ; N quotesingle ; B 59 456 188 714 ;
 | 
			
		||||
C -1 ; WX 462 ; N six.os ; B 36 -10 427 724 ;
 | 
			
		||||
C -1 ; WX 420 ; N seven.os ; B 19 -170 402 544 ;
 | 
			
		||||
C -1 ; WX 462 ; N eight.os ; B 35 -10 429 724 ;
 | 
			
		||||
C -1 ; WX 461 ; N nine.os ; B 33 -182 424 564 ;
 | 
			
		||||
C -1 ; WX 496 ; N g.alt ; B 36 -241 442 555 ;
 | 
			
		||||
C -1 ; WX 496 ; N gcircumflex.alt ; B 36 -241 442 767 ;
 | 
			
		||||
C -1 ; WX 496 ; N gbreve.alt ; B 36 -241 442 766 ;
 | 
			
		||||
C -1 ; WX 496 ; N gdot.alt ; B 36 -241 442 756 ;
 | 
			
		||||
C -1 ; WX 496 ; N gcommaaccent.alt ; B 36 -241 442 767 ;
 | 
			
		||||
C -1 ; WX 0 ; N cyrotmarkcomb ; B -203 591 203 714 ;
 | 
			
		||||
EndCharMetrics
 | 
			
		||||
StartKernData
 | 
			
		||||
StartKernPairs 15878
 | 
			
		||||
KPX quotedbl uni1ECA 20
 | 
			
		||||
KPX quotedbl uni1EC8 20
 | 
			
		||||
KPX quotedbl Idotaccent 20
 | 
			
		||||
KPX quotedbl Iogonek 20
 | 
			
		||||
KPX quotedbl Imacron 20
 | 
			
		||||
KPX quotedbl Idieresis 20
 | 
			
		||||
KPX quotedbl Icircumflex 20
 | 
			
		||||
KPX quotedbl Iacute 20
 | 
			
		||||
KPX quotedbl Igrave 20
 | 
			
		||||
KPX quotedbl I 20
 | 
			
		||||
KPX quotedbl uni1EF9 20
 | 
			
		||||
KPX quoteleft q -20
 | 
			
		||||
KPX quoteleft o -20
 | 
			
		||||
KPX quoteleft g -9
 | 
			
		||||
KPX quoteleft e -20
 | 
			
		||||
KPX quoteleft d -20
 | 
			
		||||
KPX quoteleft c -20
 | 
			
		||||
KPX quoteleft Z 20
 | 
			
		||||
KPX Delta C -9
 | 
			
		||||
KPX Delta A -20
 | 
			
		||||
KPX Delta question 20
 | 
			
		||||
KPX Delta period -41
 | 
			
		||||
KPX Delta comma -41
 | 
			
		||||
KPX Delta quotesingle 41
 | 
			
		||||
KPX Delta quotedbl 41
 | 
			
		||||
EndKernPairs
 | 
			
		||||
EndKernData
 | 
			
		||||
EndFontMetrics
 | 
			
		||||
							
								
								
									
										464
									
								
								samples/Adobe Font Metrics/SpecialElite.afm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										464
									
								
								samples/Adobe Font Metrics/SpecialElite.afm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,464 @@
 | 
			
		||||
StartFontMetrics 2.0
 | 
			
		||||
Comment Generated by FontForge 20170719
 | 
			
		||||
Comment Creation Date: Sun Jul 23 19:52:19 2017
 | 
			
		||||
FontName SpecialElite-Regular
 | 
			
		||||
FullName Special Elite
 | 
			
		||||
FamilyName Special Elite
 | 
			
		||||
Weight Book
 | 
			
		||||
Notice (Copyright (c) 2010 by Brian J. Bonislawsky DBA Astigmatic (AOETI). All rights reserved. Available under the Apache 2.0 licence.http://www.apache.org/licenses/LICENSE-2.0.html)
 | 
			
		||||
ItalicAngle 0
 | 
			
		||||
IsFixedPitch false
 | 
			
		||||
UnderlinePosition -133
 | 
			
		||||
UnderlineThickness 20
 | 
			
		||||
Version 1.000
 | 
			
		||||
EncodingScheme ISO10646-1
 | 
			
		||||
FontBBox -33 -322 1052 959
 | 
			
		||||
CapHeight 714
 | 
			
		||||
XHeight 487
 | 
			
		||||
Ascender 688
 | 
			
		||||
Descender -225
 | 
			
		||||
StartCharMetrics 371
 | 
			
		||||
C 32 ; WX 292 ; N space ; B 0 0 0 0 ;
 | 
			
		||||
C 33 ; WX 276 ; N exclam ; B 73 0 207 702 ;
 | 
			
		||||
C 34 ; WX 352 ; N quotedbl ; B 48 449 295 704 ;
 | 
			
		||||
C 35 ; WX 554 ; N numbersign ; B 31 -2 524 713 ;
 | 
			
		||||
C 36 ; WX 526 ; N dollar ; B 31 -201 498 919 ;
 | 
			
		||||
C 37 ; WX 666 ; N percent ; B 32 -186 642 872 ;
 | 
			
		||||
C 38 ; WX 676 ; N ampersand ; B 31 -5 645 705 ;
 | 
			
		||||
C 39 ; WX 196 ; N quotesingle ; B 48 449 143 703 ;
 | 
			
		||||
C 40 ; WX 279 ; N parenleft ; B 55 -71 243 757 ;
 | 
			
		||||
C 41 ; WX 281 ; N parenright ; B 37 -59 229 770 ;
 | 
			
		||||
C 42 ; WX 522 ; N asterisk ; B 32 276 493 707 ;
 | 
			
		||||
C 43 ; WX 496 ; N plus ; B 29 131 465 560 ;
 | 
			
		||||
C 44 ; WX 336 ; N comma ; B 39 -197 290 251 ;
 | 
			
		||||
C 45 ; WX 636 ; N hyphen ; B 63 273 573 397 ;
 | 
			
		||||
C 46 ; WX 349 ; N period ; B 52 -3 298 245 ;
 | 
			
		||||
C 47 ; WX 557 ; N slash ; B 23 -41 536 760 ;
 | 
			
		||||
C 48 ; WX 610 ; N zero ; B 55 0 560 720 ;
 | 
			
		||||
C 49 ; WX 569 ; N one ; B 27 -12 572 712 ;
 | 
			
		||||
C 50 ; WX 573 ; N two ; B 50 -25 541 680 ;
 | 
			
		||||
C 51 ; WX 557 ; N three ; B 44 -25 514 694 ;
 | 
			
		||||
C 52 ; WX 612 ; N four ; B 15 4 584 708 ;
 | 
			
		||||
C 53 ; WX 537 ; N five ; B 47 0 505 690 ;
 | 
			
		||||
C 54 ; WX 588 ; N six ; B 48 -10 548 707 ;
 | 
			
		||||
C 55 ; WX 555 ; N seven ; B 15 -34 549 734 ;
 | 
			
		||||
C 56 ; WX 598 ; N eight ; B 51 1 551 720 ;
 | 
			
		||||
C 57 ; WX 584 ; N nine ; B 48 -2 539 715 ;
 | 
			
		||||
C 58 ; WX 343 ; N colon ; B 51 -3 297 518 ;
 | 
			
		||||
C 59 ; WX 328 ; N semicolon ; B 45 -197 297 518 ;
 | 
			
		||||
C 60 ; WX 463 ; N less ; B 31 120 401 565 ;
 | 
			
		||||
C 61 ; WX 636 ; N equal ; B 63 186 573 513 ;
 | 
			
		||||
C 62 ; WX 463 ; N greater ; B 62 120 433 565 ;
 | 
			
		||||
C 63 ; WX 470 ; N question ; B 34 2 442 729 ;
 | 
			
		||||
C 64 ; WX 665 ; N at ; B 46 -4 618 680 ;
 | 
			
		||||
C 65 ; WX 549 ; N A ; B -1 -16 550 703 ;
 | 
			
		||||
C 66 ; WX 604 ; N B ; B 29 -6 557 704 ;
 | 
			
		||||
C 67 ; WX 579 ; N C ; B 46 -13 531 700 ;
 | 
			
		||||
C 68 ; WX 622 ; N D ; B 36 -17 579 713 ;
 | 
			
		||||
C 69 ; WX 638 ; N E ; B 38 -16 587 691 ;
 | 
			
		||||
C 70 ; WX 605 ; N F ; B 29 -9 595 709 ;
 | 
			
		||||
C 71 ; WX 615 ; N G ; B 45 -3 586 710 ;
 | 
			
		||||
C 72 ; WX 652 ; N H ; B 40 -20 622 690 ;
 | 
			
		||||
C 73 ; WX 495 ; N I ; B 26 -24 469 710 ;
 | 
			
		||||
C 74 ; WX 541 ; N J ; B 16 -3 539 703 ;
 | 
			
		||||
C 75 ; WX 582 ; N K ; B 28 -5 584 711 ;
 | 
			
		||||
C 76 ; WX 602 ; N L ; B 23 -14 583 718 ;
 | 
			
		||||
C 77 ; WX 697 ; N M ; B 46 -10 655 704 ;
 | 
			
		||||
C 78 ; WX 627 ; N N ; B 41 -15 595 700 ;
 | 
			
		||||
C 79 ; WX 616 ; N O ; B 42 -30 574 702 ;
 | 
			
		||||
C 80 ; WX 553 ; N P ; B 30 -12 527 689 ;
 | 
			
		||||
C 81 ; WX 602 ; N Q ; B 42 -98 571 711 ;
 | 
			
		||||
C 82 ; WX 636 ; N R ; B 14 -9 624 706 ;
 | 
			
		||||
C 83 ; WX 588 ; N S ; B 51 -13 547 690 ;
 | 
			
		||||
C 84 ; WX 594 ; N T ; B 25 1 564 707 ;
 | 
			
		||||
C 85 ; WX 621 ; N U ; B 24 -6 611 710 ;
 | 
			
		||||
C 86 ; WX 611 ; N V ; B -1 -15 614 726 ;
 | 
			
		||||
C 87 ; WX 643 ; N W ; B 8 0 614 689 ;
 | 
			
		||||
C 88 ; WX 582 ; N X ; B 3 -1 580 697 ;
 | 
			
		||||
C 89 ; WX 561 ; N Y ; B -21 -2 562 719 ;
 | 
			
		||||
C 90 ; WX 592 ; N Z ; B 49 -1 551 709 ;
 | 
			
		||||
C 91 ; WX 312 ; N bracketleft ; B 85 -72 297 754 ;
 | 
			
		||||
C 92 ; WX 557 ; N backslash ; B 21 -41 534 760 ;
 | 
			
		||||
C 249 ; WX 639 ; N ugrave ; B 5 -28 624 679 ;
 | 
			
		||||
C 250 ; WX 639 ; N uacute ; B 5 -28 624 682 ;
 | 
			
		||||
C 251 ; WX 639 ; N ucircumflex ; B 5 -28 624 691 ;
 | 
			
		||||
C 252 ; WX 639 ; N udieresis ; B 5 -28 624 649 ;
 | 
			
		||||
C 253 ; WX 592 ; N yacute ; B 0 -232 596 666 ;
 | 
			
		||||
C 254 ; WX 552 ; N thorn ; B -33 -221 512 699 ;
 | 
			
		||||
C 255 ; WX 592 ; N ydieresis ; B 0 -232 596 643 ;
 | 
			
		||||
C -1 ; WX 549 ; N Amacron ; B -1 -16 550 809 ;
 | 
			
		||||
C -1 ; WX 565 ; N amacron ; B 38 -6 561 619 ;
 | 
			
		||||
C -1 ; WX 549 ; N Abreve ; B -1 -16 550 890 ;
 | 
			
		||||
C -1 ; WX 565 ; N abreve ; B 38 -6 561 686 ;
 | 
			
		||||
C -1 ; WX 549 ; N Aogonek ; B -1 -138 589 703 ;
 | 
			
		||||
C -1 ; WX 565 ; N aogonek ; B 38 -118 624 502 ;
 | 
			
		||||
C -1 ; WX 579 ; N Cacute ; B 46 -13 531 900 ;
 | 
			
		||||
C -1 ; WX 547 ; N cacute ; B 39 -22 506 693 ;
 | 
			
		||||
C -1 ; WX 579 ; N Ccircumflex ; B 46 -13 531 890 ;
 | 
			
		||||
C -1 ; WX 547 ; N ccircumflex ; B 39 -22 506 689 ;
 | 
			
		||||
C -1 ; WX 579 ; N Cdotaccent ; B 46 -13 531 859 ;
 | 
			
		||||
C -1 ; WX 547 ; N cdotaccent ; B 39 -22 506 657 ;
 | 
			
		||||
C -1 ; WX 579 ; N Ccaron ; B 46 -13 531 918 ;
 | 
			
		||||
C -1 ; WX 547 ; N ccaron ; B 39 -22 506 710 ;
 | 
			
		||||
C -1 ; WX 622 ; N Dcaron ; B 36 -17 579 924 ;
 | 
			
		||||
C -1 ; WX 750 ; N dcaron ; B 40 -26 716 704 ;
 | 
			
		||||
C -1 ; WX 623 ; N Dcroat ; B 36 -17 580 713 ;
 | 
			
		||||
C -1 ; WX 603 ; N dcroat ; B 40 -26 597 714 ;
 | 
			
		||||
C -1 ; WX 638 ; N Emacron ; B 38 -16 587 798 ;
 | 
			
		||||
C -1 ; WX 543 ; N emacron ; B 40 -23 501 616 ;
 | 
			
		||||
C -1 ; WX 638 ; N Ebreve ; B 38 -16 587 876 ;
 | 
			
		||||
C -1 ; WX 543 ; N ebreve ; B 40 -23 501 683 ;
 | 
			
		||||
C -1 ; WX 638 ; N Edotaccent ; B 38 -16 587 848 ;
 | 
			
		||||
C -1 ; WX 543 ; N edotaccent ; B 40 -23 501 659 ;
 | 
			
		||||
C -1 ; WX 638 ; N Eogonek ; B 38 -113 610 691 ;
 | 
			
		||||
C -1 ; WX 543 ; N eogonek ; B 40 -145 501 499 ;
 | 
			
		||||
C -1 ; WX 638 ; N Ecaron ; B 38 -16 587 913 ;
 | 
			
		||||
C -1 ; WX 543 ; N ecaron ; B 40 -23 501 714 ;
 | 
			
		||||
C -1 ; WX 615 ; N Gcircumflex ; B 45 -3 586 906 ;
 | 
			
		||||
C -1 ; WX 583 ; N gcircumflex ; B 42 -224 562 676 ;
 | 
			
		||||
C -1 ; WX 615 ; N Gbreve ; B 45 -3 586 899 ;
 | 
			
		||||
C -1 ; WX 583 ; N gbreve ; B 42 -224 562 667 ;
 | 
			
		||||
C -1 ; WX 615 ; N Gdotaccent ; B 45 -3 586 871 ;
 | 
			
		||||
C -1 ; WX 583 ; N gdotaccent ; B 42 -224 562 637 ;
 | 
			
		||||
C -1 ; WX 615 ; N Gcommaaccent ; B 45 -253 586 710 ;
 | 
			
		||||
C -1 ; WX 583 ; N gcommaaccent ; B 42 -224 562 734 ;
 | 
			
		||||
C -1 ; WX 652 ; N Hcircumflex ; B 40 -20 622 897 ;
 | 
			
		||||
C -1 ; WX 616 ; N hcircumflex ; B 5 -29 601 688 ;
 | 
			
		||||
C -1 ; WX 652 ; N Hbar ; B 40 -20 622 690 ;
 | 
			
		||||
C -1 ; WX 616 ; N hbar ; B 5 -29 601 683 ;
 | 
			
		||||
C -1 ; WX 495 ; N Itilde ; B 26 -24 469 859 ;
 | 
			
		||||
C -1 ; WX 568 ; N itilde ; B 36 -42 568 615 ;
 | 
			
		||||
C -1 ; WX 495 ; N Imacron ; B 26 -24 469 819 ;
 | 
			
		||||
C -1 ; WX 568 ; N imacron ; B 36 -42 568 585 ;
 | 
			
		||||
C -1 ; WX 495 ; N Ibreve ; B 26 -24 469 901 ;
 | 
			
		||||
C -1 ; WX 568 ; N ibreve ; B 36 -42 568 661 ;
 | 
			
		||||
C -1 ; WX 495 ; N Iogonek ; B 26 -154 469 710 ;
 | 
			
		||||
C -1 ; WX 568 ; N iogonek ; B 36 -149 568 674 ;
 | 
			
		||||
C -1 ; WX 495 ; N Idotaccent ; B 26 -24 469 873 ;
 | 
			
		||||
C -1 ; WX 568 ; N dotlessi ; B 36 -42 568 468 ;
 | 
			
		||||
C -1 ; WX 1036 ; N IJ ; B 26 -24 1034 710 ;
 | 
			
		||||
C -1 ; WX 983 ; N ij ; B 36 -236 913 683 ;
 | 
			
		||||
C -1 ; WX 541 ; N Jcircumflex ; B 16 -3 539 913 ;
 | 
			
		||||
C -1 ; WX 415 ; N jcircumflex ; B -12 -236 405 699 ;
 | 
			
		||||
C -1 ; WX 582 ; N Kcommaaccent ; B 28 -253 584 711 ;
 | 
			
		||||
C -1 ; WX 620 ; N kcommaaccent ; B 11 -253 600 683 ;
 | 
			
		||||
C -1 ; WX 620 ; N kgreenlandic ; B 11 -28 600 482 ;
 | 
			
		||||
C -1 ; WX 602 ; N Lacute ; B 23 -14 583 923 ;
 | 
			
		||||
C -1 ; WX 540 ; N lacute ; B 4 -28 538 902 ;
 | 
			
		||||
C -1 ; WX 602 ; N Lcommaaccent ; B 23 -267 583 718 ;
 | 
			
		||||
C -1 ; WX 540 ; N lcommaaccent ; B 4 -267 538 682 ;
 | 
			
		||||
C -1 ; WX 602 ; N Lcaron ; B 23 -14 583 794 ;
 | 
			
		||||
C -1 ; WX 582 ; N lcaron ; B 4 -28 549 704 ;
 | 
			
		||||
C -1 ; WX 781 ; N Ldot ; B 23 -14 748 718 ;
 | 
			
		||||
C -1 ; WX 571 ; N ldotaccent ; B 4 -28 538 682 ;
 | 
			
		||||
C -1 ; WX 603 ; N Lslash ; B 24 -14 584 718 ;
 | 
			
		||||
C -1 ; WX 541 ; N lslash ; B 4 -28 538 682 ;
 | 
			
		||||
C -1 ; WX 627 ; N Nacute ; B 41 -15 595 894 ;
 | 
			
		||||
C -1 ; WX 632 ; N nacute ; B 32 -23 612 696 ;
 | 
			
		||||
C -1 ; WX 627 ; N Ncommaaccent ; B 41 -268 595 700 ;
 | 
			
		||||
C -1 ; WX 632 ; N ncommaaccent ; B 32 -268 612 491 ;
 | 
			
		||||
C -1 ; WX 627 ; N Ncaron ; B 41 -15 595 900 ;
 | 
			
		||||
C -1 ; WX 632 ; N ncaron ; B 32 -23 612 712 ;
 | 
			
		||||
C -1 ; WX 815 ; N napostrophe ; B 34 -23 795 704 ;
 | 
			
		||||
C -1 ; WX 627 ; N Eng ; B 41 -320 595 700 ;
 | 
			
		||||
C -1 ; WX 605 ; N eng ; B 32 -322 534 491 ;
 | 
			
		||||
C -1 ; WX 616 ; N Omacron ; B 42 -30 574 815 ;
 | 
			
		||||
C -1 ; WX 583 ; N omacron ; B 40 -34 543 598 ;
 | 
			
		||||
C -1 ; WX 616 ; N Obreve ; B 42 -30 574 891 ;
 | 
			
		||||
C -1 ; WX 583 ; N obreve ; B 40 -34 543 675 ;
 | 
			
		||||
C -1 ; WX 616 ; N Ohungarumlaut ; B 42 -30 574 907 ;
 | 
			
		||||
C -1 ; WX 583 ; N ohungarumlaut ; B 40 -34 545 693 ;
 | 
			
		||||
C -1 ; WX 1018 ; N OE ; B 42 -30 967 702 ;
 | 
			
		||||
C -1 ; WX 958 ; N oe ; B 40 -34 916 499 ;
 | 
			
		||||
C -1 ; WX 636 ; N Racute ; B 14 -9 624 910 ;
 | 
			
		||||
C -1 ; WX 579 ; N racute ; B 28 -16 566 693 ;
 | 
			
		||||
C -1 ; WX 636 ; N Rcommaaccent ; B 14 -268 624 706 ;
 | 
			
		||||
C -1 ; WX 579 ; N rcommaaccent ; B 28 -272 566 495 ;
 | 
			
		||||
C -1 ; WX 636 ; N Rcaron ; B 14 -9 624 927 ;
 | 
			
		||||
C -1 ; WX 579 ; N rcaron ; B 28 -16 566 698 ;
 | 
			
		||||
C -1 ; WX 588 ; N Sacute ; B 51 -13 547 900 ;
 | 
			
		||||
C -1 ; WX 519 ; N sacute ; B 48 -31 481 713 ;
 | 
			
		||||
C -1 ; WX 588 ; N Scircumflex ; B 51 -13 547 904 ;
 | 
			
		||||
C -1 ; WX 519 ; N scircumflex ; B 48 -31 481 710 ;
 | 
			
		||||
C -1 ; WX 588 ; N Scedilla ; B 51 -145 547 690 ;
 | 
			
		||||
C -1 ; WX 519 ; N scedilla ; B 48 -145 481 496 ;
 | 
			
		||||
C -1 ; WX 588 ; N Scaron ; B 51 -13 547 904 ;
 | 
			
		||||
C -1 ; WX 519 ; N scaron ; B 48 -31 481 710 ;
 | 
			
		||||
C -1 ; WX 594 ; N Tcommaaccent ; B 25 -263 564 707 ;
 | 
			
		||||
C -1 ; WX 510 ; N tcommaaccent ; B 0 -282 488 694 ;
 | 
			
		||||
C -1 ; WX 594 ; N Tcaron ; B 25 1 564 920 ;
 | 
			
		||||
C -1 ; WX 713 ; N tcaron ; B 0 -34 680 704 ;
 | 
			
		||||
C -1 ; WX 594 ; N Tbar ; B 25 1 564 707 ;
 | 
			
		||||
C -1 ; WX 510 ; N tbar ; B 0 -34 488 694 ;
 | 
			
		||||
C -1 ; WX 621 ; N Utilde ; B 24 -6 611 850 ;
 | 
			
		||||
C -1 ; WX 638 ; N utilde ; B 5 -28 624 636 ;
 | 
			
		||||
C -1 ; WX 621 ; N Umacron ; B 24 -6 611 811 ;
 | 
			
		||||
C -1 ; WX 638 ; N umacron ; B 5 -28 624 587 ;
 | 
			
		||||
C -1 ; WX 621 ; N Ubreve ; B 24 -6 611 888 ;
 | 
			
		||||
C -1 ; WX 638 ; N ubreve ; B 5 -28 624 665 ;
 | 
			
		||||
C -1 ; WX 621 ; N Uring ; B 24 -6 611 959 ;
 | 
			
		||||
C -1 ; WX 638 ; N uring ; B 5 -28 624 738 ;
 | 
			
		||||
C -1 ; WX 621 ; N Uhungarumlaut ; B 24 -6 611 918 ;
 | 
			
		||||
C -1 ; WX 638 ; N uhungarumlaut ; B 5 -28 624 691 ;
 | 
			
		||||
C -1 ; WX 621 ; N Uogonek ; B 24 -136 611 710 ;
 | 
			
		||||
C -1 ; WX 638 ; N uogonek ; B 5 -147 671 487 ;
 | 
			
		||||
C -1 ; WX 643 ; N Wcircumflex ; B 8 0 614 901 ;
 | 
			
		||||
C -1 ; WX 678 ; N wcircumflex ; B 5 -10 674 685 ;
 | 
			
		||||
C -1 ; WX 561 ; N Ycircumflex ; B -21 -2 562 934 ;
 | 
			
		||||
C -1 ; WX 592 ; N ycircumflex ; B 0 -232 596 691 ;
 | 
			
		||||
C -1 ; WX 561 ; N Ydieresis ; B -21 -2 562 885 ;
 | 
			
		||||
C -1 ; WX 592 ; N Zacute ; B 49 -1 551 905 ;
 | 
			
		||||
C -1 ; WX 528 ; N zacute ; B 45 -22 487 684 ;
 | 
			
		||||
C -1 ; WX 592 ; N Zdotaccent ; B 49 -1 551 866 ;
 | 
			
		||||
C -1 ; WX 528 ; N zdotaccent ; B 45 -22 487 632 ;
 | 
			
		||||
C -1 ; WX 592 ; N Zcaron ; B 49 -1 551 917 ;
 | 
			
		||||
C -1 ; WX 528 ; N zcaron ; B 45 -22 487 688 ;
 | 
			
		||||
C -1 ; WX 915 ; N AEacute ; B -11 -16 864 904 ;
 | 
			
		||||
C -1 ; WX 888 ; N aeacute ; B 38 -23 846 670 ;
 | 
			
		||||
C -1 ; WX 617 ; N Oslashacute ; B 43 -41 574 912 ;
 | 
			
		||||
C -1 ; WX 583 ; N oslashacute ; B 40 -73 543 697 ;
 | 
			
		||||
C -1 ; WX 415 ; N dotlessj ; B -12 -236 344 478 ;
 | 
			
		||||
C -1 ; WX 281 ; N circumflex ; B 0 558 282 746 ;
 | 
			
		||||
C -1 ; WX 281 ; N caron ; B 0 558 282 746 ;
 | 
			
		||||
C -1 ; WX 281 ; N breve ; B 0 585 282 746 ;
 | 
			
		||||
C -1 ; WX 132 ; N dotaccent ; B 0 600 133 729 ;
 | 
			
		||||
C -1 ; WX 214 ; N ring ; B 0 547 215 780 ;
 | 
			
		||||
C -1 ; WX 211 ; N ogonek ; B 0 -145 212 13 ;
 | 
			
		||||
C -1 ; WX 283 ; N tilde ; B 0 583 284 701 ;
 | 
			
		||||
C -1 ; WX 352 ; N hungarumlaut ; B 0 591 353 763 ;
 | 
			
		||||
C -1 ; WX 185 ; N uni0312 ; B 28 474 152 694 ;
 | 
			
		||||
C -1 ; WX 185 ; N uni0315 ; B 38 470 162 690 ;
 | 
			
		||||
C -1 ; WX 192 ; N uni0326 ; B 32 -253 156 -33 ;
 | 
			
		||||
C -1 ; WX 666 ; N mu ; B 24 -219 643 487 ;
 | 
			
		||||
C -1 ; WX 643 ; N Wgrave ; B 8 0 614 895 ;
 | 
			
		||||
C -1 ; WX 678 ; N wgrave ; B 5 -10 674 688 ;
 | 
			
		||||
C -1 ; WX 643 ; N Wacute ; B 8 0 614 898 ;
 | 
			
		||||
C -1 ; WX 678 ; N wacute ; B 5 -10 674 682 ;
 | 
			
		||||
C -1 ; WX 643 ; N Wdieresis ; B 8 0 614 868 ;
 | 
			
		||||
C -1 ; WX 678 ; N wdieresis ; B 5 -10 674 649 ;
 | 
			
		||||
C -1 ; WX 561 ; N Ygrave ; B -21 -2 562 900 ;
 | 
			
		||||
C -1 ; WX 592 ; N ygrave ; B 0 -232 596 666 ;
 | 
			
		||||
C -1 ; WX 611 ; N endash ; B 50 270 551 391 ;
 | 
			
		||||
C -1 ; WX 1113 ; N emdash ; B 51 270 1052 391 ;
 | 
			
		||||
C -1 ; WX 265 ; N quoteleft ; B 41 390 217 704 ;
 | 
			
		||||
C -1 ; WX 264 ; N quoteright ; B 54 390 230 704 ;
 | 
			
		||||
C -1 ; WX 274 ; N quotesinglbase ; B 46 -138 223 176 ;
 | 
			
		||||
C -1 ; WX 470 ; N quotedblleft ; B 41 390 422 704 ;
 | 
			
		||||
C -1 ; WX 469 ; N quotedblright ; B 54 390 436 704 ;
 | 
			
		||||
C -1 ; WX 479 ; N quotedblbase ; B 46 -138 428 176 ;
 | 
			
		||||
C -1 ; WX 389 ; N dagger ; B 30 -16 359 724 ;
 | 
			
		||||
C -1 ; WX 396 ; N daggerdbl ; B 35 -16 364 728 ;
 | 
			
		||||
C -1 ; WX 316 ; N bullet ; B 50 246 266 479 ;
 | 
			
		||||
C -1 ; WX 1063 ; N ellipsis ; B 52 -3 1016 245 ;
 | 
			
		||||
C -1 ; WX 897 ; N perthousand ; B 33 -230 873 828 ;
 | 
			
		||||
C -1 ; WX 296 ; N guilsinglleft ; B 44 149 232 434 ;
 | 
			
		||||
C -1 ; WX 295 ; N guilsinglright ; B 63 149 251 434 ;
 | 
			
		||||
C -1 ; WX 486 ; N fraction ; B -11 -53 501 748 ;
 | 
			
		||||
C -1 ; WX 732 ; N Euro ; B 31 71 683 590 ;
 | 
			
		||||
C -1 ; WX 757 ; N trademark ; B 60 303 703 693 ;
 | 
			
		||||
C -1 ; WX 585 ; N partialdiff ; B 36 -47 553 772 ;
 | 
			
		||||
C -1 ; WX 564 ; N product ; B 26 -17 534 707 ;
 | 
			
		||||
C -1 ; WX 577 ; N minus ; B 63 282 514 395 ;
 | 
			
		||||
C -1 ; WX 565 ; N approxequal ; B 59 137 513 522 ;
 | 
			
		||||
C -1 ; WX 593 ; N notequal ; B 44 71 554 644 ;
 | 
			
		||||
C -1 ; WX 1041 ; N fi ; B 20 -42 1041 702 ;
 | 
			
		||||
C -1 ; WX 1013 ; N fl ; B 20 -29 1011 702 ;
 | 
			
		||||
C -1 ; WX 292 ; N .notdef ; B 0 0 0 0 ;
 | 
			
		||||
C -1 ; WX 0 ; N .null ; B 0 0 0 0 ;
 | 
			
		||||
C -1 ; WX 292 ; N nonmarkingreturn ; B 0 0 0 0 ;
 | 
			
		||||
EndCharMetrics
 | 
			
		||||
StartKernData
 | 
			
		||||
StartKernPairs 6408
 | 
			
		||||
KPX quotedbl period -104
 | 
			
		||||
KPX quotedbl comma -103
 | 
			
		||||
KPX quotedbl Jcircumflex -34
 | 
			
		||||
KPX quotedbl Aogonek -31
 | 
			
		||||
KPX quotedbl Abreve -31
 | 
			
		||||
KPX quotedbl Amacron -31
 | 
			
		||||
KPX quotedbl AEacute -31
 | 
			
		||||
KPX quotedbl Aacute -31
 | 
			
		||||
KPX quotedbl Acircumflex -31
 | 
			
		||||
KPX quotedbl Atilde -31
 | 
			
		||||
KPX quotedbl Agrave -31
 | 
			
		||||
KPX quotedbl Aring -31
 | 
			
		||||
KPX quotedbl Adieresis -31
 | 
			
		||||
KPX quotedbl AE -31
 | 
			
		||||
KPX quotedbl J -34
 | 
			
		||||
KPX quotedbl A -31
 | 
			
		||||
KPX quotedbl quotedblbase -117
 | 
			
		||||
KPX quotedbl quotesinglbase -117
 | 
			
		||||
KPX quotedbl ellipsis -104
 | 
			
		||||
KPX quotedbl slash -73
 | 
			
		||||
KPX quotedbl ampersand -22
 | 
			
		||||
KPX quotedbl four -27
 | 
			
		||||
KPX ampersand Ycircumflex -40
 | 
			
		||||
KPX ampersand Ygrave -40
 | 
			
		||||
KPX ampersand Ydieresis -40
 | 
			
		||||
KPX ampersand Yacute -40
 | 
			
		||||
KPX ampersand Y -40
 | 
			
		||||
KPX ampersand V -36
 | 
			
		||||
KPX quotesingle period -97
 | 
			
		||||
KPX quotesingle comma -97
 | 
			
		||||
KPX quotesingle Jcircumflex -34
 | 
			
		||||
KPX quotesingle Aogonek -31
 | 
			
		||||
KPX quotesingle Abreve -31
 | 
			
		||||
KPX quotesingle Amacron -31
 | 
			
		||||
KPX hyphen T -28
 | 
			
		||||
KPX hyphen one -68
 | 
			
		||||
KPX hyphen B -25
 | 
			
		||||
KPX hyphen seven -56
 | 
			
		||||
KPX slash rcommaaccent -27
 | 
			
		||||
KPX slash ncommaaccent -29
 | 
			
		||||
KPX slash gcommaaccent -61
 | 
			
		||||
KPX slash Jcircumflex -29
 | 
			
		||||
KPX slash iogonek -26
 | 
			
		||||
KPX slash ibreve -26
 | 
			
		||||
KPX slash imacron -26
 | 
			
		||||
KPX slash itilde -26
 | 
			
		||||
KPX slash oslashacute -54
 | 
			
		||||
KPX slash nacute -29
 | 
			
		||||
KPX slash eng -29
 | 
			
		||||
KPX slash ncaron -29
 | 
			
		||||
KPX slash racute -27
 | 
			
		||||
KPX slash scedilla -43
 | 
			
		||||
KPX slash scircumflex -43
 | 
			
		||||
KPX slash sacute -43
 | 
			
		||||
KPX slash rcaron -27
 | 
			
		||||
KPX slash ohungarumlaut -54
 | 
			
		||||
KPX slash obreve -54
 | 
			
		||||
KPX slash omacron -54
 | 
			
		||||
KPX slash wgrave -23
 | 
			
		||||
KPX slash wcircumflex -23
 | 
			
		||||
KPX slash wdieresis -23
 | 
			
		||||
KPX slash wacute -23
 | 
			
		||||
KPX slash zdotaccent -41
 | 
			
		||||
KPX J ebreve -32
 | 
			
		||||
KPX J emacron -32
 | 
			
		||||
KPX J edieresis -32
 | 
			
		||||
KPX J ecircumflex -32
 | 
			
		||||
KPX J egrave -32
 | 
			
		||||
KPX J eacute -32
 | 
			
		||||
KPX J e -32
 | 
			
		||||
KPX J Aogonek -34
 | 
			
		||||
KPX J Abreve -34
 | 
			
		||||
KPX J Amacron -34
 | 
			
		||||
KPX J AEacute -34
 | 
			
		||||
KPX J Aacute -34
 | 
			
		||||
KPX J Acircumflex -34
 | 
			
		||||
KPX J Atilde -34
 | 
			
		||||
KPX J Agrave -34
 | 
			
		||||
KPX J Aring -34
 | 
			
		||||
KPX J Adieresis -34
 | 
			
		||||
KPX J AE -34
 | 
			
		||||
KPX J A -34
 | 
			
		||||
KPX J comma -29
 | 
			
		||||
KPX J period -30
 | 
			
		||||
KPX J v -29
 | 
			
		||||
KPX J hyphen -30
 | 
			
		||||
KPX J quotedblbase -34
 | 
			
		||||
KPX J quotesinglbase -34
 | 
			
		||||
KPX J guilsinglright -25
 | 
			
		||||
KPX J guilsinglleft -25
 | 
			
		||||
KPX J emdash -30
 | 
			
		||||
KPX J endash -30
 | 
			
		||||
KPX J guillemotright -25
 | 
			
		||||
KPX J guillemotleft -25
 | 
			
		||||
KPX J germandbls -36
 | 
			
		||||
KPX J ellipsis -30
 | 
			
		||||
KPX J slash -34
 | 
			
		||||
KPX J p -28
 | 
			
		||||
KPX J m -35
 | 
			
		||||
KPX J b 54
 | 
			
		||||
KPX K ycircumflex -60
 | 
			
		||||
KPX K ygrave -60
 | 
			
		||||
KPX K ydieresis -60
 | 
			
		||||
KPX K yacute -60
 | 
			
		||||
KPX K y -60
 | 
			
		||||
KPX K wgrave -36
 | 
			
		||||
KPX K wcircumflex -36
 | 
			
		||||
KPX K wdieresis -36
 | 
			
		||||
KPX K wacute -36
 | 
			
		||||
KPX K w -36
 | 
			
		||||
KPX K uogonek -25
 | 
			
		||||
KPX K uhungarumlaut -25
 | 
			
		||||
KPX K uring -25
 | 
			
		||||
KPX K ubreve -25
 | 
			
		||||
KPX K umacron -25
 | 
			
		||||
KPX K utilde -25
 | 
			
		||||
KPX K udieresis -25
 | 
			
		||||
KPX K ucircumflex -25
 | 
			
		||||
KPX K ugrave -25
 | 
			
		||||
KPX K uacute -25
 | 
			
		||||
KPX K u -25
 | 
			
		||||
KPX K q -23
 | 
			
		||||
KPX K oslashacute -28
 | 
			
		||||
KPX K ohungarumlaut -28
 | 
			
		||||
KPX K obreve -28
 | 
			
		||||
KPX K omacron -28
 | 
			
		||||
KPX K otilde -28
 | 
			
		||||
KPX K odieresis -28
 | 
			
		||||
KPX K ocircumflex -28
 | 
			
		||||
KPX K ograve -28
 | 
			
		||||
KPX K oacute -28
 | 
			
		||||
KPX K eth -28
 | 
			
		||||
KPX K oe -28
 | 
			
		||||
KPX K oslash -28
 | 
			
		||||
KPX K o -28
 | 
			
		||||
KPX K dcaron -24
 | 
			
		||||
KPX K d -24
 | 
			
		||||
KPX K ccaron -27
 | 
			
		||||
KPX K cdotaccent -27
 | 
			
		||||
KPX K ccircumflex -27
 | 
			
		||||
KPX K cacute -27
 | 
			
		||||
KPX K ccedilla -27
 | 
			
		||||
KPX K c -27
 | 
			
		||||
KPX K ecaron -27
 | 
			
		||||
KPX K eogonek -27
 | 
			
		||||
KPX K edotaccent -27
 | 
			
		||||
KPX K ebreve -27
 | 
			
		||||
KPX K emacron -27
 | 
			
		||||
KPX K edieresis -27
 | 
			
		||||
KPX K ecircumflex -27
 | 
			
		||||
KPX K egrave -27
 | 
			
		||||
KPX K eacute -27
 | 
			
		||||
KPX K e -27
 | 
			
		||||
KPX K v -49
 | 
			
		||||
KPX K hyphen -38
 | 
			
		||||
KPX K guilsinglleft -24
 | 
			
		||||
KPX K emdash -38
 | 
			
		||||
KPX K endash -38
 | 
			
		||||
KPX K guillemotleft -24
 | 
			
		||||
KPX K b 49
 | 
			
		||||
KPX L ycircumflex -36
 | 
			
		||||
KPX L ygrave -36
 | 
			
		||||
KPX L ydieresis -36
 | 
			
		||||
KPX L yacute -36
 | 
			
		||||
KPX L y -36
 | 
			
		||||
KPX L wgrave -23
 | 
			
		||||
KPX L wcircumflex -23
 | 
			
		||||
KPX L wdieresis -23
 | 
			
		||||
KPX L wacute -23
 | 
			
		||||
KPX L w -23
 | 
			
		||||
KPX L V -43
 | 
			
		||||
KPX L Tcommaaccent -36
 | 
			
		||||
KPX L Tbar -36
 | 
			
		||||
KPX L Tcaron -36
 | 
			
		||||
KPX L T -36
 | 
			
		||||
KPX L quoteright -49
 | 
			
		||||
KPX L v -32
 | 
			
		||||
KPX L quoteleft -54
 | 
			
		||||
KPX L quotedblright -49
 | 
			
		||||
KPX L quotedblleft -54
 | 
			
		||||
KPX L trademark -29
 | 
			
		||||
KPX L backslash -50
 | 
			
		||||
KPX L asterisk -30
 | 
			
		||||
KPX trademark Aring -24
 | 
			
		||||
KPX trademark Adieresis -24
 | 
			
		||||
KPX trademark Yacute 29
 | 
			
		||||
KPX trademark AE -24
 | 
			
		||||
KPX trademark Y 29
 | 
			
		||||
KPX trademark A -24
 | 
			
		||||
KPX trademark b 31
 | 
			
		||||
EndKernPairs
 | 
			
		||||
EndKernData
 | 
			
		||||
EndFontMetrics
 | 
			
		||||
							
								
								
									
										23
									
								
								samples/Adobe Font Metrics/lambda.afm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								samples/Adobe Font Metrics/lambda.afm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
StartFontMetrics 2.0
 | 
			
		||||
Comment Generated by FontForge 20170719
 | 
			
		||||
Comment Creation Date: Sun Jul 23 23:14:02 2017
 | 
			
		||||
FontName Greek_Lambda_Character-Regular
 | 
			
		||||
FullName Greek_Lambda_Character Regular
 | 
			
		||||
FamilyName Greek_Lambda_Character
 | 
			
		||||
Weight Regular
 | 
			
		||||
Notice (NONE. NADA. PUBLIC DOMAIN, BOI)
 | 
			
		||||
ItalicAngle 0
 | 
			
		||||
IsFixedPitch false
 | 
			
		||||
UnderlinePosition -175
 | 
			
		||||
UnderlineThickness 90
 | 
			
		||||
Version 020.017
 | 
			
		||||
EncodingScheme ISO10646-1
 | 
			
		||||
FontBBox 33 -177 566 760
 | 
			
		||||
StartCharMetrics 5
 | 
			
		||||
C 13 ; WX 602 ; N uni000D ; B 0 0 0 0 ;
 | 
			
		||||
C 32 ; WX 602 ; N space ; B 0 0 0 0 ;
 | 
			
		||||
C -1 ; WX 602 ; N lambda ; B 33 0 566 760 ;
 | 
			
		||||
C -1 ; WX 602 ; N .notdef ; B 50 -177 551 706 ;
 | 
			
		||||
C -1 ; WX 0 ; N NULL ; B 0 0 0 0 ;
 | 
			
		||||
EndCharMetrics
 | 
			
		||||
EndFontMetrics
 | 
			
		||||
							
								
								
									
										77
									
								
								samples/AngelScript/botmanager.as
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								samples/AngelScript/botmanager.as
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
/*
 | 
			
		||||
*	This is a sample script.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include "BotManagerInterface.acs"
 | 
			
		||||
 | 
			
		||||
BotManager::BotManager g_BotManager( @CreateDumbBot );
 | 
			
		||||
 | 
			
		||||
CConCommand@ m_pAddBot;
 | 
			
		||||
 | 
			
		||||
void PluginInit()
 | 
			
		||||
{
 | 
			
		||||
	g_BotManager.PluginInit();
 | 
			
		||||
	
 | 
			
		||||
	@m_pAddBot = @CConCommand( "addbot", "Adds a new bot with the given name", @AddBotCallback );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AddBotCallback( const CCommand@ args )
 | 
			
		||||
{
 | 
			
		||||
	if( args.ArgC() < 2 )
 | 
			
		||||
	{
 | 
			
		||||
		g_Game.AlertMessage( at_console, "Usage: addbot <name>" );
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	BotManager::BaseBot@ pBot = g_BotManager.CreateBot( args[ 1 ] );
 | 
			
		||||
	
 | 
			
		||||
	if( pBot !is null )
 | 
			
		||||
	{
 | 
			
		||||
		g_Game.AlertMessage( at_console, "Created bot " + args[ 1 ] + "\n" );
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		g_Game.AlertMessage( at_console, "Could not create bot\n" );
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
final class DumbBot : BotManager::BaseBot
 | 
			
		||||
{	
 | 
			
		||||
	DumbBot( CBasePlayer@ pPlayer )
 | 
			
		||||
	{
 | 
			
		||||
		super( pPlayer );
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	void Think()
 | 
			
		||||
	{
 | 
			
		||||
		BotManager::BaseBot::Think();
 | 
			
		||||
		
 | 
			
		||||
		// If the bot is dead and can be respawned, send a button press
 | 
			
		||||
		if( Player.pev.deadflag >= DEAD_RESPAWNABLE )
 | 
			
		||||
		{
 | 
			
		||||
			Player.pev.button |= IN_ATTACK;
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
			Player.pev.button &= ~IN_ATTACK;
 | 
			
		||||
		
 | 
			
		||||
		KeyValueBuffer@ pInfoBuffer = g_EngineFuncs.GetInfoKeyBuffer( Player.edict() );
 | 
			
		||||
		
 | 
			
		||||
		pInfoBuffer.SetValue( "topcolor", Math.RandomLong( 0, 255 ) );
 | 
			
		||||
		pInfoBuffer.SetValue( "bottomcolor", Math.RandomLong( 0, 255 ) );
 | 
			
		||||
		
 | 
			
		||||
		if( Math.RandomLong( 0, 100 ) > 10 )
 | 
			
		||||
			Player.pev.button |= IN_ATTACK;
 | 
			
		||||
		else
 | 
			
		||||
			Player.pev.button &= ~IN_ATTACK;
 | 
			
		||||
			
 | 
			
		||||
		for( uint uiIndex = 0; uiIndex < 3; ++uiIndex )
 | 
			
		||||
		{
 | 
			
		||||
			m_vecVelocity[ uiIndex ] = Math.RandomLong( -50, 50 );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BotManager::BaseBot@ CreateDumbBot( CBasePlayer@ pPlayer )
 | 
			
		||||
{
 | 
			
		||||
	return @DumbBot( pPlayer );
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										396
									
								
								samples/AngelScript/payload.as
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										396
									
								
								samples/AngelScript/payload.as
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,396 @@
 | 
			
		||||
// Sample script.
 | 
			
		||||
// Source: https://github.com/codecat/ssbd-payload
 | 
			
		||||
 | 
			
		||||
array<WorldScript::PayloadBeginTrigger@> g_payloadBeginTriggers;
 | 
			
		||||
array<WorldScript::PayloadTeamForcefield@> g_teamForceFields;
 | 
			
		||||
 | 
			
		||||
[GameMode]
 | 
			
		||||
class Payload : TeamVersusGameMode
 | 
			
		||||
{
 | 
			
		||||
	[Editable]
 | 
			
		||||
	UnitFeed PayloadUnit;
 | 
			
		||||
 | 
			
		||||
	[Editable]
 | 
			
		||||
	UnitFeed FirstNode;
 | 
			
		||||
 | 
			
		||||
	[Editable default=10]
 | 
			
		||||
	int PrepareTime;
 | 
			
		||||
 | 
			
		||||
	[Editable default=300]
 | 
			
		||||
	int TimeLimit;
 | 
			
		||||
 | 
			
		||||
	[Editable default=90]
 | 
			
		||||
	int TimeAddCheckpoint;
 | 
			
		||||
 | 
			
		||||
	[Editable default=2]
 | 
			
		||||
	float TimeOvertime;
 | 
			
		||||
 | 
			
		||||
	[Editable default=1000]
 | 
			
		||||
	int TimePayloadHeal;
 | 
			
		||||
 | 
			
		||||
	[Editable default=1]
 | 
			
		||||
	int PayloadHeal;
 | 
			
		||||
 | 
			
		||||
	PayloadBehavior@ m_payload;
 | 
			
		||||
 | 
			
		||||
	int m_tmStarting;
 | 
			
		||||
	int m_tmStarted;
 | 
			
		||||
	int m_tmLimitCustom;
 | 
			
		||||
	int m_tmOvertime;
 | 
			
		||||
	int m_tmInOvertime;
 | 
			
		||||
 | 
			
		||||
	PayloadHUD@ m_payloadHUD;
 | 
			
		||||
	PayloadClassSwitchWindow@ m_switchClass;
 | 
			
		||||
 | 
			
		||||
	array<SValue@>@ m_switchedSidesData;
 | 
			
		||||
 | 
			
		||||
	Payload(Scene@ scene)
 | 
			
		||||
	{
 | 
			
		||||
		super(scene);
 | 
			
		||||
 | 
			
		||||
		m_tmRespawnCountdown = 5000;
 | 
			
		||||
 | 
			
		||||
		@m_payloadHUD = PayloadHUD(m_guiBuilder);
 | 
			
		||||
		@m_switchTeam = PayloadTeamSwitchWindow(m_guiBuilder);
 | 
			
		||||
		@m_switchClass = PayloadClassSwitchWindow(m_guiBuilder);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void UpdateFrame(int ms, GameInput& gameInput, MenuInput& menuInput) override
 | 
			
		||||
	{
 | 
			
		||||
		TeamVersusGameMode::UpdateFrame(ms, gameInput, menuInput);
 | 
			
		||||
 | 
			
		||||
		m_payloadHUD.Update(ms);
 | 
			
		||||
 | 
			
		||||
		if (Network::IsServer())
 | 
			
		||||
		{
 | 
			
		||||
			uint64 tmNow = CurrPlaytimeLevel();
 | 
			
		||||
 | 
			
		||||
			if (m_tmStarting == 0)
 | 
			
		||||
			{
 | 
			
		||||
				if (GetPlayersInTeam(0) > 0 && GetPlayersInTeam(1) > 0)
 | 
			
		||||
				{
 | 
			
		||||
					m_tmStarting = tmNow;
 | 
			
		||||
					(Network::Message("GameStarting") << m_tmStarting).SendToAll();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if (m_tmStarting > 0 && m_tmStarted == 0 && tmNow - m_tmStarting > PrepareTime * 1000)
 | 
			
		||||
			{
 | 
			
		||||
				m_tmStarted = tmNow;
 | 
			
		||||
				(Network::Message("GameStarted") << m_tmStarted).SendToAll();
 | 
			
		||||
 | 
			
		||||
				for (uint i = 0; i < g_payloadBeginTriggers.length(); i++)
 | 
			
		||||
				{
 | 
			
		||||
					WorldScript@ ws = WorldScript::GetWorldScript(g_scene, g_payloadBeginTriggers[i]);
 | 
			
		||||
					ws.Execute();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (!m_ended && m_tmStarted > 0)
 | 
			
		||||
			CheckTimeReached(ms);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	string NameForTeam(int index) override
 | 
			
		||||
	{
 | 
			
		||||
		if (index == 0)
 | 
			
		||||
			return "Defenders";
 | 
			
		||||
		else if (index == 1)
 | 
			
		||||
			return "Attackers";
 | 
			
		||||
 | 
			
		||||
		return "Unknown";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void CheckTimeReached(int dt)
 | 
			
		||||
	{
 | 
			
		||||
		// Check if time limit is not reached yet
 | 
			
		||||
		if (m_tmLimitCustom - (CurrPlaytimeLevel() - m_tmStarted) > 0)
 | 
			
		||||
		{
 | 
			
		||||
			// Don't need to continue checking
 | 
			
		||||
			m_tmOvertime = 0;
 | 
			
		||||
			m_tmInOvertime = 0;
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Count how long we're in overtime for later time limit fixing when we reach a checkpoint
 | 
			
		||||
		if (m_tmOvertime > 0)
 | 
			
		||||
			m_tmInOvertime += dt;
 | 
			
		||||
 | 
			
		||||
		// Check if there are any attackers still inside
 | 
			
		||||
		if (m_payload.AttackersInside() > 0)
 | 
			
		||||
		{
 | 
			
		||||
			// We have overtime
 | 
			
		||||
			m_tmOvertime = int(TimeOvertime * 1000);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// If we have overtime
 | 
			
		||||
		if (m_tmOvertime > 0)
 | 
			
		||||
		{
 | 
			
		||||
			// Decrease timer
 | 
			
		||||
			m_tmOvertime -= dt;
 | 
			
		||||
			if (m_tmOvertime <= 0)
 | 
			
		||||
			{
 | 
			
		||||
				// Overtime countdown reached, time limit reached
 | 
			
		||||
				TimeReached();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			// No overtime, so time limit is reached
 | 
			
		||||
			TimeReached();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void TimeReached()
 | 
			
		||||
	{
 | 
			
		||||
		if (!Network::IsServer())
 | 
			
		||||
			return;
 | 
			
		||||
 | 
			
		||||
		(Network::Message("TimeReached")).SendToAll();
 | 
			
		||||
		SetWinner(false);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	bool ShouldFreezeControls() override
 | 
			
		||||
	{
 | 
			
		||||
		return m_switchClass.m_visible
 | 
			
		||||
		    || TeamVersusGameMode::ShouldFreezeControls();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	bool ShouldDisplayCursor() override
 | 
			
		||||
	{
 | 
			
		||||
		return m_switchClass.m_visible
 | 
			
		||||
		    || TeamVersusGameMode::ShouldDisplayCursor();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	bool CanSwitchTeams() override
 | 
			
		||||
	{
 | 
			
		||||
		return m_tmStarted == 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	PlayerRecord@ CreatePlayerRecord() override
 | 
			
		||||
	{
 | 
			
		||||
		return PayloadPlayerRecord();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int GetPlayerClassCount(PlayerClass playerClass, TeamVersusScore@ team)
 | 
			
		||||
	{
 | 
			
		||||
		if (team is null)
 | 
			
		||||
			return 0;
 | 
			
		||||
 | 
			
		||||
		int ret = 0;
 | 
			
		||||
		for (uint i = 0; i < team.m_players.length(); i++)
 | 
			
		||||
		{
 | 
			
		||||
			if (team.m_players[i].peer == 255)
 | 
			
		||||
				continue;
 | 
			
		||||
			auto record = cast<PayloadPlayerRecord>(team.m_players[i]);
 | 
			
		||||
			if (record.playerClass == playerClass)
 | 
			
		||||
				ret++;
 | 
			
		||||
		}
 | 
			
		||||
		return ret;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void PlayerClassesUpdated()
 | 
			
		||||
	{
 | 
			
		||||
		m_switchClass.PlayerClassesUpdated();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void SetWinner(bool attackers)
 | 
			
		||||
	{
 | 
			
		||||
		if (attackers)
 | 
			
		||||
			print("Attackers win!");
 | 
			
		||||
		else
 | 
			
		||||
			print("Defenders win!");
 | 
			
		||||
 | 
			
		||||
		m_payloadHUD.Winner(attackers);
 | 
			
		||||
		EndMatch();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void DisplayPlayerName(int idt, SpriteBatch& sb, PlayerRecord@ record, PlayerHusk@ plr, vec2 pos) override
 | 
			
		||||
	{
 | 
			
		||||
		TeamVersusGameMode::DisplayPlayerName(idt, sb, record, plr, pos);
 | 
			
		||||
 | 
			
		||||
		m_payloadHUD.DisplayPlayerName(idt, sb, cast<PayloadPlayerRecord>(record), plr, pos);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void RenderFrame(int idt, SpriteBatch& sb) override
 | 
			
		||||
	{
 | 
			
		||||
		Player@ player = GetLocalPlayer();
 | 
			
		||||
		if (player !is null)
 | 
			
		||||
		{
 | 
			
		||||
			PlayerHealgun@ healgun = cast<PlayerHealgun>(player.m_currWeapon);
 | 
			
		||||
			if (healgun !is null)
 | 
			
		||||
				healgun.RenderMarkers(idt, sb);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		TeamVersusGameMode::RenderFrame(idt, sb);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void RenderWidgets(PlayerRecord@ player, int idt, SpriteBatch& sb) override
 | 
			
		||||
	{
 | 
			
		||||
		m_payloadHUD.Draw(sb, idt);
 | 
			
		||||
 | 
			
		||||
		TeamVersusGameMode::RenderWidgets(player, idt, sb);
 | 
			
		||||
 | 
			
		||||
		m_switchClass.Draw(sb, idt);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void GoNextMap() override
 | 
			
		||||
	{
 | 
			
		||||
		if (m_switchedSidesData !is null)
 | 
			
		||||
		{
 | 
			
		||||
			TeamVersusGameMode::GoNextMap();
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		ChangeLevel(GetCurrentLevelFilename());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void SpawnPlayers() override
 | 
			
		||||
	{
 | 
			
		||||
		if (m_switchedSidesData is null)
 | 
			
		||||
		{
 | 
			
		||||
			TeamVersusGameMode::SpawnPlayers();
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (Network::IsServer())
 | 
			
		||||
		{
 | 
			
		||||
			for (uint i = 0; i < m_switchedSidesData.length(); i += 2)
 | 
			
		||||
			{
 | 
			
		||||
				uint peer = uint(m_switchedSidesData[i].GetInteger());
 | 
			
		||||
				uint team = uint(m_switchedSidesData[i + 1].GetInteger());
 | 
			
		||||
 | 
			
		||||
				TeamVersusScore@ joinScore = FindTeamScore(team);
 | 
			
		||||
				if (joinScore is m_teamScores[0])
 | 
			
		||||
					@joinScore = m_teamScores[1];
 | 
			
		||||
				else
 | 
			
		||||
					@joinScore = m_teamScores[0];
 | 
			
		||||
 | 
			
		||||
				for (uint j = 0; j < g_players.length(); j++)
 | 
			
		||||
				{
 | 
			
		||||
					if (g_players[j].peer != peer)
 | 
			
		||||
						continue;
 | 
			
		||||
					SpawnPlayer(j, vec2(), 0, joinScore.m_team);
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void Save(SValueBuilder& builder) override
 | 
			
		||||
	{
 | 
			
		||||
		if (m_switchedSidesData is null)
 | 
			
		||||
		{
 | 
			
		||||
			builder.PushArray("teams");
 | 
			
		||||
			for (uint i = 0; i < g_players.length(); i++)
 | 
			
		||||
			{
 | 
			
		||||
				if (g_players[i].peer == 255)
 | 
			
		||||
					continue;
 | 
			
		||||
				builder.PushInteger(g_players[i].peer);
 | 
			
		||||
				builder.PushInteger(g_players[i].team);
 | 
			
		||||
			}
 | 
			
		||||
			builder.PopArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		TeamVersusGameMode::Save(builder);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void Start(uint8 peer, SValue@ save, StartMode sMode) override
 | 
			
		||||
	{
 | 
			
		||||
		if (save !is null)
 | 
			
		||||
			@m_switchedSidesData = GetParamArray(UnitPtr(), save, "teams", false);
 | 
			
		||||
 | 
			
		||||
		TeamVersusGameMode::Start(peer, save, sMode);
 | 
			
		||||
 | 
			
		||||
		m_tmLimit = 0; // infinite time limit as far as VersusGameMode is concerned
 | 
			
		||||
		m_tmLimitCustom = TimeLimit * 1000; // 5 minutes by default
 | 
			
		||||
 | 
			
		||||
		@m_payload = cast<PayloadBehavior>(PayloadUnit.FetchFirst().GetScriptBehavior());
 | 
			
		||||
 | 
			
		||||
		if (m_payload is null)
 | 
			
		||||
			PrintError("PayloadUnit is not a PayloadBehavior!");
 | 
			
		||||
 | 
			
		||||
		UnitPtr unitFirstNode = FirstNode.FetchFirst();
 | 
			
		||||
		if (unitFirstNode.IsValid())
 | 
			
		||||
		{
 | 
			
		||||
			auto node = cast<WorldScript::PayloadNode>(unitFirstNode.GetScriptBehavior());
 | 
			
		||||
			if (node !is null)
 | 
			
		||||
				@m_payload.m_targetNode = node;
 | 
			
		||||
			else
 | 
			
		||||
				PrintError("First target node is not a PayloadNode script!");
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
			PrintError("First target node was not set!");
 | 
			
		||||
 | 
			
		||||
		WorldScript::PayloadNode@ prevNode;
 | 
			
		||||
 | 
			
		||||
		float totalDistance = 0.0f;
 | 
			
		||||
 | 
			
		||||
		UnitPtr unitNode = unitFirstNode;
 | 
			
		||||
		while (unitNode.IsValid())
 | 
			
		||||
		{
 | 
			
		||||
			auto node = cast<WorldScript::PayloadNode>(unitNode.GetScriptBehavior());
 | 
			
		||||
			if (node is null)
 | 
			
		||||
				break;
 | 
			
		||||
 | 
			
		||||
			unitNode = node.NextNode.FetchFirst();
 | 
			
		||||
 | 
			
		||||
			@node.m_prevNode = prevNode;
 | 
			
		||||
			@node.m_nextNode = cast<WorldScript::PayloadNode>(unitNode.GetScriptBehavior());
 | 
			
		||||
 | 
			
		||||
			if (prevNode !is null)
 | 
			
		||||
				totalDistance += dist(prevNode.Position, node.Position);
 | 
			
		||||
 | 
			
		||||
			@prevNode = node;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		float currDistance = 0.0f;
 | 
			
		||||
 | 
			
		||||
		auto distNode = cast<WorldScript::PayloadNode>(unitFirstNode.GetScriptBehavior());
 | 
			
		||||
		while (distNode !is null)
 | 
			
		||||
		{
 | 
			
		||||
			if (distNode.m_prevNode is null)
 | 
			
		||||
				distNode.m_locationFactor = 0.0f;
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				currDistance += dist(distNode.m_prevNode.Position, distNode.Position);
 | 
			
		||||
				distNode.m_locationFactor = currDistance / totalDistance;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			@distNode = distNode.m_nextNode;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		m_payloadHUD.AddCheckpoints();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void SpawnPlayer(int i, vec2 pos = vec2(), int unitId = 0, uint team = 0) override
 | 
			
		||||
	{
 | 
			
		||||
		TeamVersusGameMode::SpawnPlayer(i, pos, unitId, team);
 | 
			
		||||
 | 
			
		||||
		PayloadPlayerRecord@ record = cast<PayloadPlayerRecord>(g_players[i]);
 | 
			
		||||
		record.HandlePlayerClass();
 | 
			
		||||
 | 
			
		||||
		if (g_players[i].local)
 | 
			
		||||
		{
 | 
			
		||||
			//TODO: This doesn't work well
 | 
			
		||||
			bool localAttackers = (team == HashString("player_1"));
 | 
			
		||||
			for (uint j = 0; j < g_teamForceFields.length(); j++)
 | 
			
		||||
			{
 | 
			
		||||
				bool hasCollision = (localAttackers != g_teamForceFields[j].Attackers);
 | 
			
		||||
 | 
			
		||||
				auto units = g_teamForceFields[j].Units.FetchAll();
 | 
			
		||||
				for (uint k = 0; k < units.length(); k++)
 | 
			
		||||
				{
 | 
			
		||||
					PhysicsBody@ body = units[k].GetPhysicsBody();
 | 
			
		||||
					if (body is null)
 | 
			
		||||
					{
 | 
			
		||||
						PrintError("PhysicsBody for unit " + units[k].GetDebugName() + "is null");
 | 
			
		||||
						continue;
 | 
			
		||||
					}
 | 
			
		||||
					body.SetActive(hasCollision);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								samples/Ballerina/hello-world-service.bal
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								samples/Ballerina/hello-world-service.bal
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
import ballerina.lang.messages;
 | 
			
		||||
import ballerina.net.http;
 | 
			
		||||
import ballerina.doc;
 | 
			
		||||
 | 
			
		||||
@doc:Description {value:"By default Ballerina assumes that the service is to be exposed via HTTP/1.1 using the system default port and that all requests coming to the HTTP server will be delivered to this service."}
 | 
			
		||||
service<http> helloWorld {
 | 
			
		||||
    @doc:Description {value:"All resources are invoked with an argument of type message, the built-in reference type representing a network invocation."}
 | 
			
		||||
    resource sayHello (message m) {
 | 
			
		||||
        // Creates an empty message.
 | 
			
		||||
        message response = {};
 | 
			
		||||
        // A util method that can be used to set string payload.
 | 
			
		||||
        messages:setStringPayload(response, "Hello, World!");
 | 
			
		||||
        // Reply keyword sends the response back to the client.
 | 
			
		||||
        reply response;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								samples/Ballerina/hello-world.bal
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								samples/Ballerina/hello-world.bal
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
import ballerina.lang.system;
 | 
			
		||||
 | 
			
		||||
function main (string[] args) {
 | 
			
		||||
    system:println("Hello, World!");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										31
									
								
								samples/Ballerina/json.bal
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								samples/Ballerina/json.bal
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
import ballerina.lang.system;
 | 
			
		||||
 | 
			
		||||
function main (string[] args) {
 | 
			
		||||
    // JSON string value.
 | 
			
		||||
    json j1 = "Apple";
 | 
			
		||||
    system:println(j1);
 | 
			
		||||
 | 
			
		||||
    // JSON number value.
 | 
			
		||||
    json j2 = 5.36;
 | 
			
		||||
    system:println(j2);
 | 
			
		||||
 | 
			
		||||
    // JSON true value.
 | 
			
		||||
    json j3 = true;
 | 
			
		||||
    system:println(j3);
 | 
			
		||||
 | 
			
		||||
    // JSON false value.
 | 
			
		||||
    json j4 = false;
 | 
			
		||||
    system:println(j4);
 | 
			
		||||
 | 
			
		||||
    // JSON null value.
 | 
			
		||||
    json j5 = null;
 | 
			
		||||
 | 
			
		||||
    //JSON Objects.
 | 
			
		||||
    json j6 = {name:"apple", color:"red", price:j2};
 | 
			
		||||
    system:println(j6);
 | 
			
		||||
 | 
			
		||||
    //JSON Arrays. They are arrays of any JSON value.
 | 
			
		||||
    json j7 = [1, false, null, "foo",
 | 
			
		||||
               {first:"John", last:"Pala"}];
 | 
			
		||||
    system:println(j7);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								samples/Ballerina/var.bal
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								samples/Ballerina/var.bal
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
import ballerina.lang.system;
 | 
			
		||||
 | 
			
		||||
function divideBy10 (int d) (int, int) {
 | 
			
		||||
    return d / 10, d % 10;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function main (string[] args) {
 | 
			
		||||
    //Here the variable type is inferred type from the initial value. This is same as "int k = 5";
 | 
			
		||||
    var k = 5;
 | 
			
		||||
    system:println(10 + k);
 | 
			
		||||
 | 
			
		||||
    //Here the type of the 'strVar' is 'string'.
 | 
			
		||||
    var strVar = "Hello!";
 | 
			
		||||
    system:println(strVar);
 | 
			
		||||
 | 
			
		||||
    //Multiple assignment with 'var' allows you to define the variable then and there.
 | 
			
		||||
    //Variable type is inferred from the right-hand side.
 | 
			
		||||
    var q, r = divideBy10(6);
 | 
			
		||||
    system:println("06/10: " + "quotient=" + q + " " +
 | 
			
		||||
                   "remainder=" + r);
 | 
			
		||||
 | 
			
		||||
    //To ignore a particular return value in a multiple assignment statement, use '_'.
 | 
			
		||||
    var q1, _ = divideBy10(57);
 | 
			
		||||
    system:println("57/10: " + "quotient=" + q1);
 | 
			
		||||
 | 
			
		||||
    var _, r1 = divideBy10(9);
 | 
			
		||||
    system:println("09/10: " + "remainder=" + r1);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								samples/Ballerina/xml.bal
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								samples/Ballerina/xml.bal
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
import ballerina.lang.system;
 | 
			
		||||
 | 
			
		||||
function main (string[] args) {
 | 
			
		||||
 | 
			
		||||
	// XML element. Can only have one root element.
 | 
			
		||||
    xml x1 = xml `<book>The Lost World</book>`;
 | 
			
		||||
    system:println(x1);
 | 
			
		||||
 | 
			
		||||
    // XML text
 | 
			
		||||
    xml x2 = xml `Hello, world!`;
 | 
			
		||||
    system:println(x2);
 | 
			
		||||
 | 
			
		||||
    // XML comment
 | 
			
		||||
    xml x3 = xml `<!--I am a comment-->`;
 | 
			
		||||
    system:println(x3);
 | 
			
		||||
 | 
			
		||||
    // XML processing instruction
 | 
			
		||||
    xml x4 = xml `<?target data?>`;
 | 
			
		||||
    system:println(x4);
 | 
			
		||||
 | 
			
		||||
    // Multiple XML items can be combined to form a sequence of XML. The resulting sequence is again an XML on its own.
 | 
			
		||||
    xml x5 = x1 + x2 + x3 + x4;
 | 
			
		||||
    system:println("\nResulting XML sequence:");
 | 
			
		||||
    system:println(x5);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								samples/C++/grpc.pb.cc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								samples/C++/grpc.pb.cc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
// Generated by the gRPC protobuf plugin.
 | 
			
		||||
// If you make any local change, they will be lost.
 | 
			
		||||
							
								
								
									
										125
									
								
								samples/C++/hello.grpc.pb.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								samples/C++/hello.grpc.pb.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,125 @@
 | 
			
		||||
// Generated by the gRPC C++ plugin.
 | 
			
		||||
// If you make any local change, they will be lost.
 | 
			
		||||
// source: hello.proto
 | 
			
		||||
#ifndef GRPC_hello_2eproto__INCLUDED
 | 
			
		||||
#define GRPC_hello_2eproto__INCLUDED
 | 
			
		||||
 | 
			
		||||
#include "hello.pb.h"
 | 
			
		||||
 | 
			
		||||
#include <grpc++/impl/codegen/async_stream.h>
 | 
			
		||||
#include <grpc++/impl/codegen/async_unary_call.h>
 | 
			
		||||
#include <grpc++/impl/codegen/method_handler_impl.h>
 | 
			
		||||
#include <grpc++/impl/codegen/proto_utils.h>
 | 
			
		||||
#include <grpc++/impl/codegen/rpc_method.h>
 | 
			
		||||
#include <grpc++/impl/codegen/service_type.h>
 | 
			
		||||
#include <grpc++/impl/codegen/status.h>
 | 
			
		||||
#include <grpc++/impl/codegen/stub_options.h>
 | 
			
		||||
#include <grpc++/impl/codegen/sync_stream.h>
 | 
			
		||||
 | 
			
		||||
namespace grpc {
 | 
			
		||||
class CompletionQueue;
 | 
			
		||||
class Channel;
 | 
			
		||||
class RpcService;
 | 
			
		||||
class ServerCompletionQueue;
 | 
			
		||||
class ServerContext;
 | 
			
		||||
}  // namespace grpc
 | 
			
		||||
 | 
			
		||||
class HelloService final {
 | 
			
		||||
 public:
 | 
			
		||||
  class StubInterface {
 | 
			
		||||
   public:
 | 
			
		||||
    virtual ~StubInterface() {}
 | 
			
		||||
    virtual ::grpc::Status SayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::HelloResponse* response) = 0;
 | 
			
		||||
    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>> AsyncSayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) {
 | 
			
		||||
      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>>(AsyncSayHelloRaw(context, request, cq));
 | 
			
		||||
    }
 | 
			
		||||
  private:
 | 
			
		||||
    virtual ::grpc::ClientAsyncResponseReaderInterface< ::HelloResponse>* AsyncSayHelloRaw(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) = 0;
 | 
			
		||||
  };
 | 
			
		||||
  class Stub final : public StubInterface {
 | 
			
		||||
   public:
 | 
			
		||||
    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
 | 
			
		||||
    ::grpc::Status SayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::HelloResponse* response) override;
 | 
			
		||||
    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::HelloResponse>> AsyncSayHello(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) {
 | 
			
		||||
      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::HelloResponse>>(AsyncSayHelloRaw(context, request, cq));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
   private:
 | 
			
		||||
    std::shared_ptr< ::grpc::ChannelInterface> channel_;
 | 
			
		||||
    ::grpc::ClientAsyncResponseReader< ::HelloResponse>* AsyncSayHelloRaw(::grpc::ClientContext* context, const ::HelloRequest& request, ::grpc::CompletionQueue* cq) override;
 | 
			
		||||
    const ::grpc::RpcMethod rpcmethod_SayHello_;
 | 
			
		||||
  };
 | 
			
		||||
  static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
 | 
			
		||||
 | 
			
		||||
  class Service : public ::grpc::Service {
 | 
			
		||||
   public:
 | 
			
		||||
    Service();
 | 
			
		||||
    virtual ~Service();
 | 
			
		||||
    virtual ::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response);
 | 
			
		||||
  };
 | 
			
		||||
  template <class BaseClass>
 | 
			
		||||
  class WithAsyncMethod_SayHello : public BaseClass {
 | 
			
		||||
   private:
 | 
			
		||||
    void BaseClassMustBeDerivedFromService(const Service *service) {}
 | 
			
		||||
   public:
 | 
			
		||||
    WithAsyncMethod_SayHello() {
 | 
			
		||||
      ::grpc::Service::MarkMethodAsync(0);
 | 
			
		||||
    }
 | 
			
		||||
    ~WithAsyncMethod_SayHello() override {
 | 
			
		||||
      BaseClassMustBeDerivedFromService(this);
 | 
			
		||||
    }
 | 
			
		||||
    // disable synchronous version of this method
 | 
			
		||||
    ::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
 | 
			
		||||
      abort();
 | 
			
		||||
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 | 
			
		||||
    }
 | 
			
		||||
    void RequestSayHello(::grpc::ServerContext* context, ::HelloRequest* request, ::grpc::ServerAsyncResponseWriter< ::HelloResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
 | 
			
		||||
      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  typedef WithAsyncMethod_SayHello<Service > AsyncService;
 | 
			
		||||
  template <class BaseClass>
 | 
			
		||||
  class WithGenericMethod_SayHello : public BaseClass {
 | 
			
		||||
   private:
 | 
			
		||||
    void BaseClassMustBeDerivedFromService(const Service *service) {}
 | 
			
		||||
   public:
 | 
			
		||||
    WithGenericMethod_SayHello() {
 | 
			
		||||
      ::grpc::Service::MarkMethodGeneric(0);
 | 
			
		||||
    }
 | 
			
		||||
    ~WithGenericMethod_SayHello() override {
 | 
			
		||||
      BaseClassMustBeDerivedFromService(this);
 | 
			
		||||
    }
 | 
			
		||||
    // disable synchronous version of this method
 | 
			
		||||
    ::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
 | 
			
		||||
      abort();
 | 
			
		||||
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  template <class BaseClass>
 | 
			
		||||
  class WithStreamedUnaryMethod_SayHello : public BaseClass {
 | 
			
		||||
   private:
 | 
			
		||||
    void BaseClassMustBeDerivedFromService(const Service *service) {}
 | 
			
		||||
   public:
 | 
			
		||||
    WithStreamedUnaryMethod_SayHello() {
 | 
			
		||||
      ::grpc::Service::MarkMethodStreamed(0,
 | 
			
		||||
        new ::grpc::StreamedUnaryHandler< ::HelloRequest, ::HelloResponse>(std::bind(&WithStreamedUnaryMethod_SayHello<BaseClass>::StreamedSayHello, this, std::placeholders::_1, std::placeholders::_2)));
 | 
			
		||||
    }
 | 
			
		||||
    ~WithStreamedUnaryMethod_SayHello() override {
 | 
			
		||||
      BaseClassMustBeDerivedFromService(this);
 | 
			
		||||
    }
 | 
			
		||||
    // disable regular version of this method
 | 
			
		||||
    ::grpc::Status SayHello(::grpc::ServerContext* context, const ::HelloRequest* request, ::HelloResponse* response) final override {
 | 
			
		||||
      abort();
 | 
			
		||||
      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 | 
			
		||||
    }
 | 
			
		||||
    // replace default version of method with streamed unary
 | 
			
		||||
    virtual ::grpc::Status StreamedSayHello(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::HelloRequest,::HelloResponse>* server_unary_streamer) = 0;
 | 
			
		||||
  };
 | 
			
		||||
  typedef WithStreamedUnaryMethod_SayHello<Service > StreamedUnaryService;
 | 
			
		||||
  typedef Service SplitStreamedService;
 | 
			
		||||
  typedef WithStreamedUnaryMethod_SayHello<Service > StreamedService;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif  // GRPC_hello_2eproto__INCLUDED
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								samples/C/asm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								samples/C/asm.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
/* CarbonOS System/Kernel
 | 
			
		||||
 * Copyright 2015-2017 David Aylaian
 | 
			
		||||
 * Licensed under Apache 2.0: https://github.com/DavidAylaian/CarbonOS/blob/master/LICENSE.md
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef ASM_H
 | 
			
		||||
#define ASM_H
 | 
			
		||||
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
 | 
			
		||||
// macros for enabling and disabling interrupts
 | 
			
		||||
#define enable()	asm("sti");
 | 
			
		||||
#define disable()	asm("cli");
 | 
			
		||||
 | 
			
		||||
// inb instruction
 | 
			
		||||
uint8_t inb (uint16_t port) {
 | 
			
		||||
	uint8_t val;
 | 
			
		||||
	asm volatile ("inb %0, %1" : "=a"(val): "Nd"(port));
 | 
			
		||||
	return val;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// outb instruction
 | 
			
		||||
void outb (uint16_t port, uint8_t val) {
 | 
			
		||||
	asm volatile ("outb %1, %0" : : "a"(val), "Nd"(port));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										25
									
								
								samples/C/cpuid.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								samples/C/cpuid.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
#ifndef CPUID_H
 | 
			
		||||
#define CPUID_H
 | 
			
		||||
 | 
			
		||||
#include "misc.h"
 | 
			
		||||
 | 
			
		||||
static inline void do_cpuid(dword_t *eax, dword_t *ebx, dword_t *ecx, dword_t *edx) {
 | 
			
		||||
    dword_t leaf = *eax;
 | 
			
		||||
    switch (leaf) {
 | 
			
		||||
        case 0:
 | 
			
		||||
            *eax = 0x01; // we support barely anything
 | 
			
		||||
            *ebx = 0x756e6547; // Genu
 | 
			
		||||
            *edx = 0x49656e69; // ineI
 | 
			
		||||
            *ecx = 0x6c65746e; // ntel
 | 
			
		||||
            break;
 | 
			
		||||
        default: // if leaf is too high, use highest supported leaf
 | 
			
		||||
        case 1:
 | 
			
		||||
            *eax = 0x0; // say nothing about cpu model number
 | 
			
		||||
            *ebx = 0x0; // processor number 0, flushes 0 bytes on clflush
 | 
			
		||||
            *ecx = 0b00000000000000000000000000000000; // we support none of the features in ecx
 | 
			
		||||
            *edx = 0b00000000000000000000000000000000; // we also support none of the features in edx
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										12
									
								
								samples/DataWeave/customInterpolator.dwl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								samples/DataWeave/customInterpolator.dwl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
fun SQL(literals, parts) = ''
 | 
			
		||||
---
 | 
			
		||||
[
 | 
			
		||||
  SQL `SELECT * FROM table WHERE id = $(1) AND name = $('a')`,
 | 
			
		||||
  SQL `$('p')`,
 | 
			
		||||
  SQL `$('a')$('b')`,
 | 
			
		||||
  SQL `$('a')---$('b')`,
 | 
			
		||||
  SQL `---$('a')---$('b')---`,
 | 
			
		||||
  SQL `$('p')bbb`,
 | 
			
		||||
  SQL `aaa$('p')`,
 | 
			
		||||
  SQL `aaa$('p')bbb`
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										9
									
								
								samples/DataWeave/directives.dwl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								samples/DataWeave/directives.dwl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
%dw 2.0
 | 
			
		||||
var number = 1234
 | 
			
		||||
fun foo(func,name="Mariano") = func(name)
 | 
			
		||||
input payload application/test arg="value"
 | 
			
		||||
output application/json
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  foo: "bar"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								samples/DataWeave/functions.dwl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								samples/DataWeave/functions.dwl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
%dw 2.0
 | 
			
		||||
var x=(param1, param2) -> { "$param1": param2 }
 | 
			
		||||
var y=(param1, param2 = "c") -> { "$param1": param2 }
 | 
			
		||||
var toUser = (user) -> { name: user.name,	lastName: user.lastName }
 | 
			
		||||
fun z(param1, param2) = { "$param1": param2 }
 | 
			
		||||
var a = { name: "Mariano" , toUser: ((param1, param2) -> { "$param1": param2 }) }
 | 
			
		||||
var applyFirst =  (array, func) -> (func(array[0]) ++  array[1 to -1])
 | 
			
		||||
 | 
			
		||||
var nested =  (array, func) -> (a) -> (b) -> (c) -> array map func(a ++ b ++ c)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
fun f2(a1, a2) = ""
 | 
			
		||||
fun f3(a1:String, a2:Number):String = a1
 | 
			
		||||
fun f4(a1:String, a2:(a:Number) -> Number):String = a1
 | 
			
		||||
---
 | 
			
		||||
result: {
 | 
			
		||||
  a: x("a", "b"),
 | 
			
		||||
  b: y("a"),
 | 
			
		||||
  c: y("a", "b"),
 | 
			
		||||
  users: { (in1 map ((user) -> { user: (toUser(user) ++ user) })) },
 | 
			
		||||
  d: z("a", "b"),
 | 
			
		||||
  e: a.toUser("name","Mariano"),
 | 
			
		||||
  f: a.toUser("name","Mariano").name,
 | 
			
		||||
  f: applyFirst("mariano", (s) -> upper(s) ),
 | 
			
		||||
  g: [] map (s) -> upper(s),
 | 
			
		||||
  h: 1 f2 2
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								samples/DataWeave/literals.dwl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								samples/DataWeave/literals.dwl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
%dw 2.0
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "boolean":{
 | 
			
		||||
    "true" : true,
 | 
			
		||||
    "false": false
 | 
			
		||||
  },
 | 
			
		||||
  "Number": {
 | 
			
		||||
    "int": 123,
 | 
			
		||||
    "decimal": 123.23
 | 
			
		||||
  },
 | 
			
		||||
  "string": {
 | 
			
		||||
    "singleQuote" : 'A String',
 | 
			
		||||
    "doubleQuote" : "A String"
 | 
			
		||||
  },
 | 
			
		||||
  "regex": /foo/,
 | 
			
		||||
  "date": {
 | 
			
		||||
    a: |2003-10-01|,
 | 
			
		||||
    b: |2005-045|,
 | 
			
		||||
    c: |2003-W14-3|,
 | 
			
		||||
    d: |23:57:59|,
 | 
			
		||||
    e: |23:57:30.700|,
 | 
			
		||||
    f: |23:50:30Z|,
 | 
			
		||||
    g: |+13:00|,
 | 
			
		||||
    h: |Z|,
 | 
			
		||||
    i: |-02:00|,
 | 
			
		||||
    j: |2005-06-02T15:10:16|,
 | 
			
		||||
    k: |2005-06-02T15:10:16Z|,
 | 
			
		||||
    l: |2005-06-02T15:10:16+03:00|,
 | 
			
		||||
    m: |P12Y7M11D|,
 | 
			
		||||
    n: |P12Y5M|,
 | 
			
		||||
    o: |P45DT9H20M8S|,
 | 
			
		||||
    p: |PT9H20M8S|
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										33
									
								
								samples/DataWeave/match.dwl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								samples/DataWeave/match.dwl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
{
 | 
			
		||||
  // Regex Pattern Matching (Can be named or unnamed)
 | 
			
		||||
  a: in0.phones map $ match {
 | 
			
		||||
    case matches /\+(\d+)\s\((\d+)\)\s(\d+\-\d+)/ -> { country: $[0], area: $[1], number: $[2] }
 | 
			
		||||
    case matches /\((\d+)\)\s(\d+\-\d+)/ -> { area: $[1], number: $[2] }
 | 
			
		||||
    case phone matches /\((\d+)\)\s(\d+\-\d+)/ -> { area: phone[1], number: phone[2] }
 | 
			
		||||
  },
 | 
			
		||||
  // Type Pattern Matching (Can be named or unnamed)
 | 
			
		||||
  b: in0.object match {
 | 
			
		||||
    case is Object -> { object: $ }
 | 
			
		||||
    case is Number -> { number: $ }
 | 
			
		||||
    // This is how you name variables if needed
 | 
			
		||||
    case y is Boolean -> { boolean: y }
 | 
			
		||||
  },
 | 
			
		||||
  // Literal Pattern Matching (Can be named or unnamed)
 | 
			
		||||
  c: in0.value match {
 | 
			
		||||
    case "Emiliano" -> { string: $ }
 | 
			
		||||
    case 123 -> { number: $ }
 | 
			
		||||
    // This is how you name variables if needed
 | 
			
		||||
    case value: "Mariano" -> { name: value }
 | 
			
		||||
  },
 | 
			
		||||
  // Boolean Expression Pattern Matching (Always named)
 | 
			
		||||
  d: in0.value match {
 | 
			
		||||
    case x if x > 30 -> { biggerThan30: x }
 | 
			
		||||
    case x if x == 9 -> { nine: x }
 | 
			
		||||
  },
 | 
			
		||||
  // Default matches
 | 
			
		||||
  e: in0.value match {
 | 
			
		||||
    case "Emiliano" -> "string"
 | 
			
		||||
    case 3.14 -> number
 | 
			
		||||
    else -> "1234"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								samples/Easybuild/bzip2-1.0.6-GCC-4.9.2.eb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								samples/Easybuild/bzip2-1.0.6-GCC-4.9.2.eb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
# not really (there's an EB_bzip2 easyblock), but fine for use in unit tests
 | 
			
		||||
easyblock = 'ConfigureMake'
 | 
			
		||||
 | 
			
		||||
name = 'bzip2'
 | 
			
		||||
version = '1.0.6'
 | 
			
		||||
 | 
			
		||||
homepage = 'http://www.bzip.org/'
 | 
			
		||||
description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically
 | 
			
		||||
compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical
 | 
			
		||||
compressors), whilst being around twice as fast at compression and six times faster at decompression."""
 | 
			
		||||
 | 
			
		||||
toolchain = {'name': 'GCC', 'version': '4.9.2'}
 | 
			
		||||
toolchainopts = {'pic': True}
 | 
			
		||||
 | 
			
		||||
sources = [SOURCE_TAR_GZ]
 | 
			
		||||
source_urls = ['http://www.bzip.org/%(version)s']
 | 
			
		||||
 | 
			
		||||
builddependencies = [('gzip', '1.6')]
 | 
			
		||||
 | 
			
		||||
moduleclass = 'tools'
 | 
			
		||||
							
								
								
									
										97
									
								
								samples/Fantom/sample1.fan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								samples/Fantom/sample1.fan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Robert Koeninger
 | 
			
		||||
 * License: WTFPL (http://www.wtfpl.net/)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class Spelling {
 | 
			
		||||
 | 
			
		||||
  ** Load sample text and offer corrections for input
 | 
			
		||||
  static Void main(Str[] args) {
 | 
			
		||||
    text := File.os("big.txt").readAllStr
 | 
			
		||||
    counts := Str:Int[:] { def = 0 }
 | 
			
		||||
    text.split.each |word| { counts[word] += 1 }
 | 
			
		||||
    args.each |arg| { echo(correction(counts, arg)) }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static const Range letters := Range.makeInclusive(97, 122)
 | 
			
		||||
 | 
			
		||||
  ** Most probable spelling correction for `word`.
 | 
			
		||||
  static Str correction(Str:Int counts, Str word) {
 | 
			
		||||
    candidates(counts, word).max |x, y| { counts[x] <=> counts[y] }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ** Generate possible spelling corrections for `word`.
 | 
			
		||||
  static Str[] candidates(Str:Int counts, Str word) {
 | 
			
		||||
    result := known(counts, Str[word])
 | 
			
		||||
    if (result.size > 0) return result
 | 
			
		||||
 | 
			
		||||
    result = known(counts, edits1(word))
 | 
			
		||||
    if (result.size > 0) return result
 | 
			
		||||
 | 
			
		||||
    result = known(counts, edits2(word))
 | 
			
		||||
    if (result.size > 0) return result
 | 
			
		||||
 | 
			
		||||
    return Str[word]
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ** The subset of `words` that appear in the map of `counts`.
 | 
			
		||||
  static Str[] known(Str:Int counts, Str[] words) {
 | 
			
		||||
    words.findAll |word, i| { counts[word] > 0 }.unique
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ** All edits that are one edit away from `word`.
 | 
			
		||||
  static Str[] edits1(Str word) {
 | 
			
		||||
    edits := Str[,]
 | 
			
		||||
 | 
			
		||||
    for (i := 0; i < word.size; ++i) {
 | 
			
		||||
      edits.add(delete(word, i))
 | 
			
		||||
 | 
			
		||||
      if (i < word.size - 2) {
 | 
			
		||||
        edits.add(transpose(word, i))
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      edits.addAll(replace(word, i))
 | 
			
		||||
      edits.addAll(insert(word, i))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    edits = edits.unique
 | 
			
		||||
    edits.remove(word)
 | 
			
		||||
    return edits
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ** Word with `i`th letter removed.
 | 
			
		||||
  static Str delete(Str word, Int i) {
 | 
			
		||||
    left := word.getRange(Range.makeExclusive(0, i))
 | 
			
		||||
    right := word.getRange(Range.makeExclusive(i + 1, word.size))
 | 
			
		||||
    return left + right
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ** Word with `i`th and `i+1`st letter swapped.
 | 
			
		||||
  static Str transpose(Str word, Int i) {
 | 
			
		||||
    left := word.getRange(Range.makeExclusive(0, i))
 | 
			
		||||
    right := word.getRange(Range.makeExclusive(i, word.size))
 | 
			
		||||
    first := right.get(0).toChar
 | 
			
		||||
    second := right.get(1).toChar
 | 
			
		||||
    rest := right.getRange(Range.makeExclusive(2, right.size))
 | 
			
		||||
    return left + second + first + rest
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ** Word with `i`th letter replaced with every other letter.
 | 
			
		||||
  static Str[] replace(Str word, Int i) {
 | 
			
		||||
    left := word.getRange(Range.makeExclusive(0, i))
 | 
			
		||||
    right := word.getRange(Range.makeExclusive(i + 1, word.size))
 | 
			
		||||
    return letters.map |ch| { left + ch.toChar + right }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ** Word with each letter inserted at `i`.
 | 
			
		||||
  static Str[] insert(Str word, Int i) {
 | 
			
		||||
    left := word.getRange(Range.makeExclusive(0, i))
 | 
			
		||||
    right := word.getRange(Range.makeExclusive(i, word.size))
 | 
			
		||||
    return letters.map |ch| { left + ch.toChar + right }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ** All edits that are two edits away from `word`.
 | 
			
		||||
  static Str[] edits2(Str word) {
 | 
			
		||||
    (Str[])(edits1(word).map |w| { edits1(w) }.flatten)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										50
									
								
								samples/Fantom/sample2.fan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								samples/Fantom/sample2.fan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Author: Robert Koeninger
 | 
			
		||||
 * License: WTFPL (http://www.wtfpl.net/)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
mixin Expr
 | 
			
		||||
{
 | 
			
		||||
  abstract Obj? eval()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Constant : Expr
 | 
			
		||||
{
 | 
			
		||||
  Obj? value
 | 
			
		||||
 | 
			
		||||
  new make(Obj? value) { this.value = value }
 | 
			
		||||
  override Obj? eval() { value }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
enum class Op
 | 
			
		||||
{
 | 
			
		||||
  plus,
 | 
			
		||||
  minus
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Infix : Expr
 | 
			
		||||
{
 | 
			
		||||
  Op op
 | 
			
		||||
  Expr left
 | 
			
		||||
  Expr right
 | 
			
		||||
 | 
			
		||||
  new make(Op op, Expr left, Expr right)
 | 
			
		||||
  {
 | 
			
		||||
    this.op = op
 | 
			
		||||
    this.left = left
 | 
			
		||||
    this.right = right
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  override Obj? eval()
 | 
			
		||||
  {
 | 
			
		||||
    switch (op)
 | 
			
		||||
    {
 | 
			
		||||
      case Op.plus:
 | 
			
		||||
        return (Int)left.eval() + (Int)right.eval()
 | 
			
		||||
      case Op.minus:
 | 
			
		||||
        return (Int)left.eval() - (Int)right.eval()
 | 
			
		||||
      default:
 | 
			
		||||
        throw Err("undefined Op")
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										313
									
								
								samples/Gerber Image/FelinaePurr-B.Cu.gbl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										313
									
								
								samples/Gerber Image/FelinaePurr-B.Cu.gbl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,313 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Copper,L2,Bot,Signal*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.150000*%
 | 
			
		||||
%ADD11C,0.175000*%
 | 
			
		||||
%ADD12R,1.727200X2.032000*%
 | 
			
		||||
%ADD13O,1.727200X2.032000*%
 | 
			
		||||
%ADD14R,2.032000X1.727200*%
 | 
			
		||||
%ADD15O,2.032000X1.727200*%
 | 
			
		||||
%ADD16C,1.300000*%
 | 
			
		||||
%ADD17C,2.800000*%
 | 
			
		||||
%ADD18C,0.685800*%
 | 
			
		||||
%ADD19C,0.800000*%
 | 
			
		||||
%ADD20C,0.400000*%
 | 
			
		||||
%ADD21C,0.800000*%
 | 
			
		||||
%ADD22C,0.300000*%
 | 
			
		||||
%ADD23C,0.500000*%
 | 
			
		||||
%ADD24C,0.180000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X162816666Y-95670833D02*
 | 
			
		||||
X162883333Y-95637500D01*
 | 
			
		||||
X163016666Y-95637500D01*
 | 
			
		||||
X163083333Y-95670833D01*
 | 
			
		||||
X163150000Y-95737500D01*
 | 
			
		||||
X163183333Y-95804166D01*
 | 
			
		||||
X163183333Y-95937500D01*
 | 
			
		||||
X163150000Y-96004166D01*
 | 
			
		||||
X163083333Y-96070833D01*
 | 
			
		||||
X163016666Y-96104166D01*
 | 
			
		||||
X162883333Y-96104166D01*
 | 
			
		||||
X162816666Y-96070833D01*
 | 
			
		||||
X162950000Y-95404166D02*
 | 
			
		||||
X163116666Y-95437500D01*
 | 
			
		||||
X163283333Y-95537500D01*
 | 
			
		||||
X163383333Y-95704166D01*
 | 
			
		||||
X163416666Y-95870833D01*
 | 
			
		||||
X157450000Y-95870833D01*
 | 
			
		||||
X157483333Y-95837500D01*
 | 
			
		||||
X157550000Y-95804166D01*
 | 
			
		||||
X156816666Y-95504166D02*
 | 
			
		||||
X156950000Y-95504166D01*
 | 
			
		||||
X157016666Y-95537500D01*
 | 
			
		||||
X157050000Y-95570833D01*
 | 
			
		||||
X157116666Y-95670833D01*
 | 
			
		||||
X157150000Y-95804166D01*
 | 
			
		||||
X157150000Y-96070833D01*
 | 
			
		||||
X157116666Y-96137500D01*
 | 
			
		||||
X157083333Y-96170833D01*
 | 
			
		||||
X157016666Y-96204166D01*
 | 
			
		||||
X156883333Y-96204166D01*
 | 
			
		||||
X156816666Y-96170833D01*
 | 
			
		||||
X156783333Y-96137500D01*
 | 
			
		||||
X156750000Y-96070833D01*
 | 
			
		||||
X156750000Y-95904166D01*
 | 
			
		||||
X156783333Y-95837500D01*
 | 
			
		||||
X156816666Y-95804166D01*
 | 
			
		||||
X156883333Y-95770833D01*
 | 
			
		||||
X157016666Y-95770833D01*
 | 
			
		||||
X157083333Y-95804166D01*
 | 
			
		||||
X157116666Y-95837500D01*
 | 
			
		||||
X157150000Y-95904166D01*
 | 
			
		||||
X156450000Y-95937500D02*
 | 
			
		||||
X155916666Y-95937500D01*
 | 
			
		||||
X155616666Y-96170833D02*
 | 
			
		||||
X155516666Y-96204166D01*
 | 
			
		||||
X155350000Y-96204166D01*
 | 
			
		||||
X155283333Y-96170833D01*
 | 
			
		||||
X155250000Y-96137500D01*
 | 
			
		||||
X155216666Y-96070833D01*
 | 
			
		||||
X155216666Y-96004166D01*
 | 
			
		||||
X155250000Y-95937500D01*
 | 
			
		||||
X155283333Y-95904166D01*
 | 
			
		||||
X155350000Y-95870833D01*
 | 
			
		||||
X155483333Y-95837500D01*
 | 
			
		||||
X155550000Y-95804166D01*
 | 
			
		||||
X155583333Y-95770833D01*
 | 
			
		||||
X155616666Y-95704166D01*
 | 
			
		||||
X155616666Y-95637500D01*
 | 
			
		||||
X155583333Y-95570833D01*
 | 
			
		||||
X155550000Y-95537500D01*
 | 
			
		||||
X155483333Y-95504166D01*
 | 
			
		||||
X155316666Y-95504166D01*
 | 
			
		||||
X155216666Y-95537500D01*
 | 
			
		||||
X155016666Y-95737500D02*
 | 
			
		||||
X154750000Y-95737500D01*
 | 
			
		||||
X154916666Y-95504166D02*
 | 
			
		||||
X154916666Y-96104166D01*
 | 
			
		||||
X154883333Y-96170833D01*
 | 
			
		||||
X154816666Y-96204166D01*
 | 
			
		||||
X154750000Y-96204166D01*
 | 
			
		||||
X154216666Y-95737500D02*
 | 
			
		||||
X154216666Y-96204166D01*
 | 
			
		||||
X154516666Y-95737500D02*
 | 
			
		||||
X154516666Y-96104166D01*
 | 
			
		||||
X154483333Y-96170833D01*
 | 
			
		||||
X154416666Y-96204166D01*
 | 
			
		||||
X154316666Y-96204166D01*
 | 
			
		||||
X154250000Y-96170833D01*
 | 
			
		||||
X154216666Y-96137500D01*
 | 
			
		||||
X153583333Y-96204166D02*
 | 
			
		||||
X153583333Y-95504166D01*
 | 
			
		||||
X153583333Y-96170833D02*
 | 
			
		||||
X153650000Y-96204166D01*
 | 
			
		||||
X153783333Y-96204166D01*
 | 
			
		||||
X156883333Y-96795833D01*
 | 
			
		||||
X156850000Y-96762500D01*
 | 
			
		||||
X156883333Y-96729166D01*
 | 
			
		||||
X156883333Y-96795833D01*
 | 
			
		||||
X156450000Y-97429166D02*
 | 
			
		||||
X156516666Y-97395833D01*
 | 
			
		||||
X156550000Y-97329166D01*
 | 
			
		||||
X156550000Y-96729166D01*
 | 
			
		||||
X156183333Y-96962500D02*
 | 
			
		||||
X155650000Y-97162500D01*
 | 
			
		||||
X156183333Y-97362500D01*
 | 
			
		||||
X154883333Y-96729166D02*
 | 
			
		||||
X154483333Y-96729166D01*
 | 
			
		||||
X154683333Y-97429166D02*
 | 
			
		||||
X154683333Y-96729166D01*
 | 
			
		||||
X154250000Y-97429166D02*
 | 
			
		||||
X154250000Y-96962500D01*
 | 
			
		||||
X154250000Y-97095833D02*
 | 
			
		||||
X154216666Y-97029166D01*
 | 
			
		||||
X154183333Y-96995833D01*
 | 
			
		||||
X154116666Y-96962500D01*
 | 
			
		||||
X154050000Y-96962500D01*
 | 
			
		||||
X153516666Y-97429166D02*
 | 
			
		||||
X153516666Y-97062500D01*
 | 
			
		||||
X153550000Y-96995833D01*
 | 
			
		||||
X153616666Y-96962500D01*
 | 
			
		||||
X153750000Y-96962500D01*
 | 
			
		||||
X153816666Y-96995833D01*
 | 
			
		||||
X153516666Y-97395833D02*
 | 
			
		||||
X153583333Y-97429166D01*
 | 
			
		||||
X153750000Y-97429166D01*
 | 
			
		||||
X153816666Y-97395833D01*
 | 
			
		||||
X153850000Y-97329166D01*
 | 
			
		||||
X153850000Y-97262500D01*
 | 
			
		||||
X153816666Y-97195833D01*
 | 
			
		||||
X153750000Y-97162500D01*
 | 
			
		||||
X153583333Y-97162500D01*
 | 
			
		||||
X153516666Y-97129166D01*
 | 
			
		||||
X153183333Y-96962500D02*
 | 
			
		||||
X153183333Y-97662500D01*
 | 
			
		||||
X153183333Y-96995833D02*
 | 
			
		||||
X153116666Y-96962500D01*
 | 
			
		||||
X152983333Y-96962500D01*
 | 
			
		||||
X152916666Y-96995833D01*
 | 
			
		||||
X152883333Y-97029166D01*
 | 
			
		||||
X152850000Y-97095833D01*
 | 
			
		||||
X152850000Y-97295833D01*
 | 
			
		||||
X152883333Y-97362500D01*
 | 
			
		||||
X152916666Y-97395833D01*
 | 
			
		||||
X152983333Y-97429166D01*
 | 
			
		||||
X153116666Y-97429166D01*
 | 
			
		||||
X153183333Y-97395833D01*
 | 
			
		||||
X152550000Y-97429166D02*
 | 
			
		||||
X152550000Y-96962500D01*
 | 
			
		||||
X152550000Y-96729166D02*
 | 
			
		||||
X152583333Y-96762500D01*
 | 
			
		||||
X152550000Y-96795833D01*
 | 
			
		||||
X152516666Y-96762500D01*
 | 
			
		||||
X152550000Y-96729166D01*
 | 
			
		||||
X152550000Y-96795833D01*
 | 
			
		||||
X151950000Y-97395833D02*
 | 
			
		||||
X152016666Y-97429166D01*
 | 
			
		||||
X152150000Y-97429166D01*
 | 
			
		||||
X152216666Y-97395833D01*
 | 
			
		||||
X152250000Y-97329166D01*
 | 
			
		||||
X152250000Y-97062500D01*
 | 
			
		||||
X152216666Y-96995833D01*
 | 
			
		||||
X152150000Y-96962500D01*
 | 
			
		||||
X152016666Y-96962500D01*
 | 
			
		||||
X151950000Y-96995833D01*
 | 
			
		||||
X151916666Y-97062500D01*
 | 
			
		||||
X151916666Y-97129166D01*
 | 
			
		||||
X152250000Y-97195833D01*
 | 
			
		||||
X151616666Y-97429166D02*
 | 
			
		||||
X151616666Y-96962500D01*
 | 
			
		||||
X151616666Y-97095833D02*
 | 
			
		||||
X151583333Y-97029166D01*
 | 
			
		||||
X151550000Y-96995833D01*
 | 
			
		||||
X151483333Y-96962500D01*
 | 
			
		||||
X151416666Y-96962500D01*
 | 
			
		||||
D12*
 | 
			
		||||
X175640000Y-81600000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X173100000Y-81600000D03*
 | 
			
		||||
X170560000Y-81600000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X184000000Y-86460000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X184000000Y-89000000D03*
 | 
			
		||||
X184000000Y-91540000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X152900000Y-88350000D03*
 | 
			
		||||
X152900000Y-90350000D03*
 | 
			
		||||
X152900000Y-92850000D03*
 | 
			
		||||
X152900000Y-85850000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X150800000Y-83500000D03*
 | 
			
		||||
X150800000Y-95200000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X173700000Y-89200000D03*
 | 
			
		||||
X162300004Y-87000000D03*
 | 
			
		||||
X159600000Y-82700000D03*
 | 
			
		||||
X161700000Y-94600000D03*
 | 
			
		||||
X176200000Y-96600000D03*
 | 
			
		||||
X179600000Y-91700000D03*
 | 
			
		||||
X158100000Y-83900000D03*
 | 
			
		||||
X168600000Y-89399998D03*
 | 
			
		||||
X167200000Y-85000000D03*
 | 
			
		||||
X159600000Y-81100000D03*
 | 
			
		||||
X163800000Y-81100000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X159300000Y-87400000D03*
 | 
			
		||||
X167300000Y-96600000D03*
 | 
			
		||||
X167300000Y-94500000D03*
 | 
			
		||||
X160900000Y-87400000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X174900000Y-90299999D03*
 | 
			
		||||
X174900000Y-85300000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X166500002Y-90900000D03*
 | 
			
		||||
X177200000Y-90200000D03*
 | 
			
		||||
X168000000Y-87400000D03*
 | 
			
		||||
X173800000Y-87400000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X154500000Y-89792900D03*
 | 
			
		||||
X154500000Y-88907100D03*
 | 
			
		||||
D20*
 | 
			
		||||
X167200000Y-87999998D02*
 | 
			
		||||
X168257101Y-89057099D01*
 | 
			
		||||
X167200000Y-85000000D02*
 | 
			
		||||
X167200000Y-87999998D01*
 | 
			
		||||
X168257101Y-89057099D02*
 | 
			
		||||
X168600000Y-89399998D01*
 | 
			
		||||
D21*
 | 
			
		||||
X163800000Y-81100000D02*
 | 
			
		||||
X159600000Y-81100000D01*
 | 
			
		||||
D22*
 | 
			
		||||
X159300000Y-87965685D02*
 | 
			
		||||
X159300000Y-87400000D01*
 | 
			
		||||
X159300000Y-88600000D02*
 | 
			
		||||
X159300000Y-87965685D01*
 | 
			
		||||
X167300000Y-96600000D02*
 | 
			
		||||
X159300000Y-88600000D01*
 | 
			
		||||
X167300000Y-94500000D02*
 | 
			
		||||
X160900000Y-88100000D01*
 | 
			
		||||
X160900000Y-88100000D02*
 | 
			
		||||
X160900000Y-87400000D01*
 | 
			
		||||
D23*
 | 
			
		||||
X174900000Y-85300000D02*
 | 
			
		||||
X174900000Y-90299999D01*
 | 
			
		||||
D22*
 | 
			
		||||
X177200000Y-90200000D02*
 | 
			
		||||
X175300000Y-92100000D01*
 | 
			
		||||
X175300000Y-92100000D02*
 | 
			
		||||
X167700002Y-92100000D01*
 | 
			
		||||
X167700002Y-92100000D02*
 | 
			
		||||
X166500002Y-90900000D01*
 | 
			
		||||
X173800000Y-87400000D02*
 | 
			
		||||
X168000000Y-87400000D01*
 | 
			
		||||
X154500000Y-88907100D02*
 | 
			
		||||
X154342900Y-88907100D01*
 | 
			
		||||
X154342900Y-88907100D02*
 | 
			
		||||
X152900000Y-90350000D01*
 | 
			
		||||
D24*
 | 
			
		||||
G36*
 | 
			
		||||
X159316814Y-80416329D02*
 | 
			
		||||
X159076741Y-80576741D01*
 | 
			
		||||
X158916329Y-80816814D01*
 | 
			
		||||
X158860000Y-81100000D01*
 | 
			
		||||
X158916329Y-81383186D01*
 | 
			
		||||
X159076741Y-81623259D01*
 | 
			
		||||
X159316814Y-81783671D01*
 | 
			
		||||
X159600000Y-81840000D01*
 | 
			
		||||
X163800000Y-81840000D01*
 | 
			
		||||
X164083186Y-81783671D01*
 | 
			
		||||
X176823872Y-82748661D01*
 | 
			
		||||
X176850260Y-82616000D01*
 | 
			
		||||
X176850260Y-82265373D01*
 | 
			
		||||
X151860838Y-81760869D01*
 | 
			
		||||
X151114549Y-81487287D01*
 | 
			
		||||
X150320374Y-81520123D01*
 | 
			
		||||
X149739162Y-81760869D01*
 | 
			
		||||
X149586248Y-82054317D01*
 | 
			
		||||
X148415000Y-82054317D01*
 | 
			
		||||
X148415000Y-81040874D01*
 | 
			
		||||
X148467041Y-80779242D01*
 | 
			
		||||
X148592092Y-80592091D01*
 | 
			
		||||
X148779241Y-80467042D01*
 | 
			
		||||
X149040874Y-80415000D01*
 | 
			
		||||
X159323495Y-80415000D01*
 | 
			
		||||
X159316814Y-80416329D01*
 | 
			
		||||
X159316814Y-80416329D01*
 | 
			
		||||
G37*
 | 
			
		||||
X159316814Y-80416329D02*
 | 
			
		||||
X159076741Y-80576741D01*
 | 
			
		||||
X158916329Y-80816814D01*
 | 
			
		||||
X158860000Y-81100000D01*
 | 
			
		||||
X158916329Y-81383186D01*
 | 
			
		||||
X159076741Y-81623259D01*
 | 
			
		||||
X159323495Y-80415000D01*
 | 
			
		||||
X159316814Y-80416329D01*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										40
									
								
								samples/Gerber Image/FelinaePurr-B.Mask.gbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								samples/Gerber Image/FelinaePurr-B.Mask.gbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Soldermask,Bot*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.150000*%
 | 
			
		||||
%ADD11R,1.727200X2.032000*%
 | 
			
		||||
%ADD12O,1.727200X2.032000*%
 | 
			
		||||
%ADD13R,2.032000X1.727200*%
 | 
			
		||||
%ADD14O,2.032000X1.727200*%
 | 
			
		||||
%ADD15C,1.300000*%
 | 
			
		||||
%ADD16C,2.800000*%
 | 
			
		||||
%ADD17C,1.200000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X175640000Y-81600000D03*
 | 
			
		||||
D12*
 | 
			
		||||
X173100000Y-81600000D03*
 | 
			
		||||
X170560000Y-81600000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X184000000Y-86460000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X184000000Y-89000000D03*
 | 
			
		||||
X184000000Y-91540000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X152900000Y-88350000D03*
 | 
			
		||||
X152900000Y-90350000D03*
 | 
			
		||||
X152900000Y-92850000D03*
 | 
			
		||||
X152900000Y-85850000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X150800000Y-83500000D03*
 | 
			
		||||
X150800000Y-95200000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X150800000Y-87100000D03*
 | 
			
		||||
X150800000Y-91600000D03*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										245
									
								
								samples/Gerber Image/FelinaePurr-B.SilkS.gbo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										245
									
								
								samples/Gerber Image/FelinaePurr-B.SilkS.gbo
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,245 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Legend,Bot*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.150000*%
 | 
			
		||||
%ADD11C,0.175000*%
 | 
			
		||||
%ADD12C,0.375000*%
 | 
			
		||||
%ADD13C,0.254000*%
 | 
			
		||||
%ADD14R,1.727200X2.032000*%
 | 
			
		||||
%ADD15O,1.727200X2.032000*%
 | 
			
		||||
%ADD16R,2.032000X1.727200*%
 | 
			
		||||
%ADD17O,2.032000X1.727200*%
 | 
			
		||||
%ADD18C,1.300000*%
 | 
			
		||||
%ADD19C,2.800000*%
 | 
			
		||||
%ADD20C,1.200000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X164233333Y-82450000D02*
 | 
			
		||||
X164133333Y-82483333D01*
 | 
			
		||||
X164100000Y-82516666D01*
 | 
			
		||||
X164066666Y-82583333D01*
 | 
			
		||||
X164066666Y-82683333D01*
 | 
			
		||||
X164100000Y-82750000D01*
 | 
			
		||||
X164133333Y-82783333D01*
 | 
			
		||||
X164200000Y-82816666D01*
 | 
			
		||||
X164466666Y-82816666D01*
 | 
			
		||||
X164466666Y-82116666D01*
 | 
			
		||||
X164233333Y-82116666D01*
 | 
			
		||||
X164166666Y-82150000D01*
 | 
			
		||||
X164133333Y-82183333D01*
 | 
			
		||||
X164100000Y-82250000D01*
 | 
			
		||||
X164100000Y-82316666D01*
 | 
			
		||||
X164133333Y-82383333D01*
 | 
			
		||||
X164166666Y-82416666D01*
 | 
			
		||||
X164233333Y-82450000D01*
 | 
			
		||||
X164466666Y-82450000D01*
 | 
			
		||||
X163666666Y-82816666D02*
 | 
			
		||||
X163733333Y-82783333D01*
 | 
			
		||||
X163766666Y-82750000D01*
 | 
			
		||||
X163800000Y-82683333D01*
 | 
			
		||||
X163800000Y-82483333D01*
 | 
			
		||||
X163766666Y-82416666D01*
 | 
			
		||||
X163733333Y-82383333D01*
 | 
			
		||||
X163666666Y-82350000D01*
 | 
			
		||||
X163566666Y-82350000D01*
 | 
			
		||||
X163500000Y-82383333D01*
 | 
			
		||||
X163466666Y-82416666D01*
 | 
			
		||||
X163433333Y-82483333D01*
 | 
			
		||||
X163433333Y-82683333D01*
 | 
			
		||||
X163466666Y-82750000D01*
 | 
			
		||||
X163500000Y-82783333D01*
 | 
			
		||||
X163566666Y-82816666D01*
 | 
			
		||||
X163666666Y-82816666D01*
 | 
			
		||||
X162833333Y-82816666D02*
 | 
			
		||||
X162833333Y-82450000D01*
 | 
			
		||||
X162866666Y-82383333D01*
 | 
			
		||||
X162933333Y-82350000D01*
 | 
			
		||||
X163066666Y-82350000D01*
 | 
			
		||||
X163133333Y-82383333D01*
 | 
			
		||||
X162833333Y-82783333D02*
 | 
			
		||||
X162900000Y-82816666D01*
 | 
			
		||||
X163066666Y-82816666D01*
 | 
			
		||||
X163133333Y-82783333D01*
 | 
			
		||||
X163166666Y-82716666D01*
 | 
			
		||||
X163166666Y-82650000D01*
 | 
			
		||||
X163133333Y-82583333D01*
 | 
			
		||||
X163066666Y-82550000D01*
 | 
			
		||||
X162900000Y-82550000D01*
 | 
			
		||||
X162833333Y-82516666D01*
 | 
			
		||||
X162500000Y-82816666D02*
 | 
			
		||||
X162500000Y-82350000D01*
 | 
			
		||||
X162500000Y-82483333D02*
 | 
			
		||||
X162466666Y-82416666D01*
 | 
			
		||||
X162433333Y-82383333D01*
 | 
			
		||||
X162366666Y-82350000D01*
 | 
			
		||||
X162300000Y-82350000D01*
 | 
			
		||||
X161766666Y-82816666D02*
 | 
			
		||||
X161766666Y-82116666D01*
 | 
			
		||||
X161766666Y-82783333D02*
 | 
			
		||||
X161833333Y-82816666D01*
 | 
			
		||||
X161966666Y-82816666D01*
 | 
			
		||||
X162033333Y-82783333D01*
 | 
			
		||||
X162066666Y-82750000D01*
 | 
			
		||||
X162100000Y-82683333D01*
 | 
			
		||||
X162100000Y-82483333D01*
 | 
			
		||||
X162066666Y-82416666D01*
 | 
			
		||||
X162033333Y-82383333D01*
 | 
			
		||||
X161966666Y-82350000D01*
 | 
			
		||||
X161833333Y-82350000D01*
 | 
			
		||||
X161766666Y-82383333D01*
 | 
			
		||||
X160933333Y-82350000D02*
 | 
			
		||||
X160433333Y-82350000D01*
 | 
			
		||||
X160733333Y-82050000D02*
 | 
			
		||||
X160933333Y-82950000D01*
 | 
			
		||||
X160500000Y-82650000D02*
 | 
			
		||||
X161000000Y-82650000D01*
 | 
			
		||||
X160700000Y-82950000D02*
 | 
			
		||||
X160500000Y-82050000D01*
 | 
			
		||||
D12*
 | 
			
		||||
X181899107Y-86482142D02*
 | 
			
		||||
X180756250Y-86482142D01*
 | 
			
		||||
X181327678Y-87053571D02*
 | 
			
		||||
X181327678Y-85910714D01*
 | 
			
		||||
X179327678Y-85553571D02*
 | 
			
		||||
X180041964Y-85553571D01*
 | 
			
		||||
X180113392Y-86267857D01*
 | 
			
		||||
X180041964Y-86196428D01*
 | 
			
		||||
X179899107Y-86125000D01*
 | 
			
		||||
X179541964Y-86125000D01*
 | 
			
		||||
X179399107Y-86196428D01*
 | 
			
		||||
X179327678Y-86267857D01*
 | 
			
		||||
X179256250Y-86410714D01*
 | 
			
		||||
X179256250Y-86767857D01*
 | 
			
		||||
X179327678Y-86910714D01*
 | 
			
		||||
X179399107Y-86982142D01*
 | 
			
		||||
X179541964Y-87053571D01*
 | 
			
		||||
X179899107Y-87053571D01*
 | 
			
		||||
X180041964Y-86982142D01*
 | 
			
		||||
X180113392Y-86910714D01*
 | 
			
		||||
X178827678Y-85553571D02*
 | 
			
		||||
X178327678Y-87053571D01*
 | 
			
		||||
X177827678Y-85553571D01*
 | 
			
		||||
X176184821Y-87053571D02*
 | 
			
		||||
X176184821Y-85553571D01*
 | 
			
		||||
X175827678Y-85553571D01*
 | 
			
		||||
X175613392Y-85625000D01*
 | 
			
		||||
X175470535Y-85767857D01*
 | 
			
		||||
X175399107Y-85910714D01*
 | 
			
		||||
X175327678Y-86196428D01*
 | 
			
		||||
X175327678Y-86410714D01*
 | 
			
		||||
X175399107Y-86696428D01*
 | 
			
		||||
X175470535Y-86839285D01*
 | 
			
		||||
X175613392Y-86982142D01*
 | 
			
		||||
X175827678Y-87053571D01*
 | 
			
		||||
X176184821Y-87053571D01*
 | 
			
		||||
X174684821Y-86267857D02*
 | 
			
		||||
X174184821Y-86267857D01*
 | 
			
		||||
X173970535Y-87053571D02*
 | 
			
		||||
X174684821Y-87053571D01*
 | 
			
		||||
X174684821Y-85553571D01*
 | 
			
		||||
X173970535Y-85553571D01*
 | 
			
		||||
X173541964Y-85553571D02*
 | 
			
		||||
X173041964Y-87053571D01*
 | 
			
		||||
X172541964Y-85553571D01*
 | 
			
		||||
X181041964Y-89678571D02*
 | 
			
		||||
X181541964Y-88964285D01*
 | 
			
		||||
X181899107Y-89678571D02*
 | 
			
		||||
X181899107Y-88178571D01*
 | 
			
		||||
X181327678Y-88178571D01*
 | 
			
		||||
X181184821Y-88250000D01*
 | 
			
		||||
X181113392Y-88321428D01*
 | 
			
		||||
X181041964Y-88464285D01*
 | 
			
		||||
X181041964Y-88678571D01*
 | 
			
		||||
X181113392Y-88821428D01*
 | 
			
		||||
X181184821Y-88892857D01*
 | 
			
		||||
X181327678Y-88964285D01*
 | 
			
		||||
X181899107Y-88964285D01*
 | 
			
		||||
X180541964Y-88178571D02*
 | 
			
		||||
X179541964Y-89678571D01*
 | 
			
		||||
X179541964Y-88178571D02*
 | 
			
		||||
X180541964Y-89678571D01*
 | 
			
		||||
X179184821Y-88178571D02*
 | 
			
		||||
X178327678Y-88178571D01*
 | 
			
		||||
X178756250Y-89678571D02*
 | 
			
		||||
X178756250Y-88178571D01*
 | 
			
		||||
X177970535Y-88178571D02*
 | 
			
		||||
X176970535Y-89678571D01*
 | 
			
		||||
X176970535Y-88178571D02*
 | 
			
		||||
X177970535Y-89678571D01*
 | 
			
		||||
X181113392Y-90875000D02*
 | 
			
		||||
X181256250Y-90803571D01*
 | 
			
		||||
X181470535Y-90803571D01*
 | 
			
		||||
X181684821Y-90875000D01*
 | 
			
		||||
X181827678Y-91017857D01*
 | 
			
		||||
X181899107Y-91160714D01*
 | 
			
		||||
X181970535Y-91446428D01*
 | 
			
		||||
X181970535Y-91660714D01*
 | 
			
		||||
X181899107Y-91946428D01*
 | 
			
		||||
X181827678Y-92089285D01*
 | 
			
		||||
X181684821Y-92232142D01*
 | 
			
		||||
X181470535Y-92303571D01*
 | 
			
		||||
X181327678Y-92303571D01*
 | 
			
		||||
X181113392Y-92232142D01*
 | 
			
		||||
X181041964Y-92160714D01*
 | 
			
		||||
X181041964Y-91660714D01*
 | 
			
		||||
X181327678Y-91660714D01*
 | 
			
		||||
X180399107Y-92303571D02*
 | 
			
		||||
X180399107Y-90803571D01*
 | 
			
		||||
X179541964Y-92303571D01*
 | 
			
		||||
X179541964Y-90803571D01*
 | 
			
		||||
X178827678Y-92303571D02*
 | 
			
		||||
X178827678Y-90803571D01*
 | 
			
		||||
X178470535Y-90803571D01*
 | 
			
		||||
X178256250Y-90875000D01*
 | 
			
		||||
X178113392Y-91017857D01*
 | 
			
		||||
X178041964Y-91160714D01*
 | 
			
		||||
X177970535Y-91446428D01*
 | 
			
		||||
X177970535Y-91660714D01*
 | 
			
		||||
X178041964Y-91946428D01*
 | 
			
		||||
X178113392Y-92089285D01*
 | 
			
		||||
X178256250Y-92232142D01*
 | 
			
		||||
X178470535Y-92303571D01*
 | 
			
		||||
X178827678Y-92303571D01*
 | 
			
		||||
D13*
 | 
			
		||||
G36*
 | 
			
		||||
X164873000Y-87373000D02*
 | 
			
		||||
X154627000Y-87373000D01*
 | 
			
		||||
X154627000Y-83127000D01*
 | 
			
		||||
X164873000Y-83127000D01*
 | 
			
		||||
X164873000Y-87373000D01*
 | 
			
		||||
X164873000Y-87373000D01*
 | 
			
		||||
G37*
 | 
			
		||||
X164873000Y-87373000D02*
 | 
			
		||||
X154627000Y-87373000D01*
 | 
			
		||||
X154627000Y-83127000D01*
 | 
			
		||||
X164873000Y-83127000D01*
 | 
			
		||||
X164873000Y-87373000D01*
 | 
			
		||||
%LPC*%
 | 
			
		||||
D14*
 | 
			
		||||
X175640000Y-81600000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X173100000Y-81600000D03*
 | 
			
		||||
X170560000Y-81600000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X184000000Y-86460000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X184000000Y-89000000D03*
 | 
			
		||||
X184000000Y-91540000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X152900000Y-88350000D03*
 | 
			
		||||
X152900000Y-90350000D03*
 | 
			
		||||
X152900000Y-92850000D03*
 | 
			
		||||
X152900000Y-85850000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X150800000Y-83500000D03*
 | 
			
		||||
X150800000Y-95200000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X150800000Y-87100000D03*
 | 
			
		||||
X150800000Y-91600000D03*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										571
									
								
								samples/Gerber Image/FelinaePurr-F.Cu.gtl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										571
									
								
								samples/Gerber Image/FelinaePurr-F.Cu.gtl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,571 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Copper,L1,Top,Signal*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.150000*%
 | 
			
		||||
%ADD11R,0.800000X0.750000*%
 | 
			
		||||
%ADD12R,0.750000X0.800000*%
 | 
			
		||||
%ADD13R,1.198880X1.198880*%
 | 
			
		||||
%ADD14R,1.727200X2.032000*%
 | 
			
		||||
%ADD15O,1.727200X2.032000*%
 | 
			
		||||
%ADD16R,0.500000X0.900000*%
 | 
			
		||||
%ADD17R,0.450000X1.750000*%
 | 
			
		||||
%ADD18R,1.060000X0.650000*%
 | 
			
		||||
%ADD19R,2.032000X1.727200*%
 | 
			
		||||
%ADD20O,2.032000X1.727200*%
 | 
			
		||||
%ADD21R,0.900000X0.500000*%
 | 
			
		||||
%ADD22C,1.300000*%
 | 
			
		||||
%ADD23C,2.800000*%
 | 
			
		||||
%ADD24C,0.685800*%
 | 
			
		||||
%ADD25C,0.800000*%
 | 
			
		||||
%ADD26C,0.500000*%
 | 
			
		||||
%ADD27C,0.300000*%
 | 
			
		||||
%ADD28C,0.400000*%
 | 
			
		||||
%ADD29C,0.800000*%
 | 
			
		||||
%ADD30C,0.250000*%
 | 
			
		||||
%ADD31C,0.180000*%
 | 
			
		||||
%ADD32C,0.160000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X165350000Y-82700000D03*
 | 
			
		||||
X163850000Y-82700000D03*
 | 
			
		||||
X162350000Y-82700000D03*
 | 
			
		||||
X160850000Y-82700000D03*
 | 
			
		||||
D12*
 | 
			
		||||
X172700000Y-87350000D03*
 | 
			
		||||
X172700000Y-88850000D03*
 | 
			
		||||
D11*
 | 
			
		||||
X181100000Y-90600000D03*
 | 
			
		||||
X179600000Y-90600000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X168800000Y-94500000D03*
 | 
			
		||||
X168800000Y-96598040D03*
 | 
			
		||||
X170800000Y-94500000D03*
 | 
			
		||||
X170800000Y-96598040D03*
 | 
			
		||||
X172800000Y-94500000D03*
 | 
			
		||||
X172800000Y-96598040D03*
 | 
			
		||||
D14*
 | 
			
		||||
X175640000Y-81600000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X173100000Y-81600000D03*
 | 
			
		||||
X170560000Y-81600000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X181100000Y-89000000D03*
 | 
			
		||||
X179600000Y-89000000D03*
 | 
			
		||||
X179600000Y-87300000D03*
 | 
			
		||||
X181100000Y-87300000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X156775000Y-92600000D03*
 | 
			
		||||
X157425000Y-92600000D03*
 | 
			
		||||
X158075000Y-92600000D03*
 | 
			
		||||
X158725000Y-92600000D03*
 | 
			
		||||
X159375000Y-92600000D03*
 | 
			
		||||
X160025000Y-92600000D03*
 | 
			
		||||
X160675000Y-92600000D03*
 | 
			
		||||
X161325000Y-92600000D03*
 | 
			
		||||
X161975000Y-92600000D03*
 | 
			
		||||
X162625000Y-92600000D03*
 | 
			
		||||
X163275000Y-92600000D03*
 | 
			
		||||
X163925000Y-92600000D03*
 | 
			
		||||
X164575000Y-92600000D03*
 | 
			
		||||
X165225000Y-92600000D03*
 | 
			
		||||
X165225000Y-85400000D03*
 | 
			
		||||
X164575000Y-85400000D03*
 | 
			
		||||
X163925000Y-85400000D03*
 | 
			
		||||
X163275000Y-85400000D03*
 | 
			
		||||
X162625000Y-85400000D03*
 | 
			
		||||
X161975000Y-85400000D03*
 | 
			
		||||
X161325000Y-85400000D03*
 | 
			
		||||
X160675000Y-85400000D03*
 | 
			
		||||
X160025000Y-85400000D03*
 | 
			
		||||
X159375000Y-85400000D03*
 | 
			
		||||
X158725000Y-85400000D03*
 | 
			
		||||
X158075000Y-85400000D03*
 | 
			
		||||
X157425000Y-85400000D03*
 | 
			
		||||
X156775000Y-85400000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X175000000Y-87150000D03*
 | 
			
		||||
X175000000Y-88100000D03*
 | 
			
		||||
X175000000Y-89050000D03*
 | 
			
		||||
X177200000Y-89050000D03*
 | 
			
		||||
X177200000Y-87150000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X184000000Y-86460000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X184000000Y-89000000D03*
 | 
			
		||||
X184000000Y-91540000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X174900000Y-94501960D03*
 | 
			
		||||
X174900000Y-96600000D03*
 | 
			
		||||
D11*
 | 
			
		||||
X159000000Y-94600000D03*
 | 
			
		||||
X160500000Y-94600000D03*
 | 
			
		||||
X162350000Y-81100000D03*
 | 
			
		||||
X160850000Y-81100000D03*
 | 
			
		||||
D21*
 | 
			
		||||
X171150000Y-88600000D03*
 | 
			
		||||
X171150000Y-90100000D03*
 | 
			
		||||
X169550000Y-88600000D03*
 | 
			
		||||
X169550000Y-90100000D03*
 | 
			
		||||
X168800000Y-91300000D03*
 | 
			
		||||
X168800000Y-92800000D03*
 | 
			
		||||
X170800000Y-91300000D03*
 | 
			
		||||
X170800000Y-92800000D03*
 | 
			
		||||
X172800000Y-91300000D03*
 | 
			
		||||
X172800000Y-92800000D03*
 | 
			
		||||
X174900000Y-91300000D03*
 | 
			
		||||
X174900000Y-92800000D03*
 | 
			
		||||
X176600000Y-91300000D03*
 | 
			
		||||
X176600000Y-92800000D03*
 | 
			
		||||
D22*
 | 
			
		||||
X152900000Y-88350000D03*
 | 
			
		||||
X152900000Y-90350000D03*
 | 
			
		||||
X152900000Y-92850000D03*
 | 
			
		||||
X152900000Y-85850000D03*
 | 
			
		||||
D23*
 | 
			
		||||
X150800000Y-83500000D03*
 | 
			
		||||
X150800000Y-95200000D03*
 | 
			
		||||
D24*
 | 
			
		||||
X173700000Y-89200000D03*
 | 
			
		||||
X162300004Y-87000000D03*
 | 
			
		||||
X159600000Y-82700000D03*
 | 
			
		||||
X161700000Y-94600000D03*
 | 
			
		||||
X176200000Y-96600000D03*
 | 
			
		||||
X179600000Y-91700000D03*
 | 
			
		||||
X158100000Y-83900000D03*
 | 
			
		||||
X168600000Y-89399998D03*
 | 
			
		||||
X167200000Y-85000000D03*
 | 
			
		||||
X159600000Y-81100000D03*
 | 
			
		||||
X163800000Y-81100000D03*
 | 
			
		||||
D25*
 | 
			
		||||
X159300000Y-87400000D03*
 | 
			
		||||
X167300000Y-96600000D03*
 | 
			
		||||
X167300000Y-94500000D03*
 | 
			
		||||
X160900000Y-87400000D03*
 | 
			
		||||
D24*
 | 
			
		||||
X174900000Y-90299999D03*
 | 
			
		||||
X174900000Y-85300000D03*
 | 
			
		||||
D25*
 | 
			
		||||
X166500002Y-90900000D03*
 | 
			
		||||
X177200000Y-90200000D03*
 | 
			
		||||
X168000000Y-87400000D03*
 | 
			
		||||
X173800000Y-87400000D03*
 | 
			
		||||
D24*
 | 
			
		||||
X154500000Y-89792900D03*
 | 
			
		||||
X154500000Y-88907100D03*
 | 
			
		||||
D26*
 | 
			
		||||
X165325000Y-82700000D02*
 | 
			
		||||
X165325000Y-83475000D01*
 | 
			
		||||
X165325000Y-83475000D02*
 | 
			
		||||
X164900000Y-83900000D01*
 | 
			
		||||
X164900000Y-83900000D02*
 | 
			
		||||
X164250677Y-83900000D01*
 | 
			
		||||
X163947598Y-84375049D02*
 | 
			
		||||
X163927410Y-84395237D01*
 | 
			
		||||
X164250677Y-83900000D02*
 | 
			
		||||
X163947598Y-84203079D01*
 | 
			
		||||
X163947598Y-84203079D02*
 | 
			
		||||
X163947598Y-84375049D01*
 | 
			
		||||
X163927410Y-84395237D02*
 | 
			
		||||
X163927410Y-85400000D01*
 | 
			
		||||
D27*
 | 
			
		||||
X165325000Y-82700000D02*
 | 
			
		||||
X165325000Y-82826415D01*
 | 
			
		||||
D26*
 | 
			
		||||
X165350000Y-82700000D02*
 | 
			
		||||
X165325000Y-82700000D01*
 | 
			
		||||
X172700000Y-88850000D02*
 | 
			
		||||
X173350000Y-88850000D01*
 | 
			
		||||
X173350000Y-88850000D02*
 | 
			
		||||
X173700000Y-89200000D01*
 | 
			
		||||
X175000000Y-89050000D02*
 | 
			
		||||
X173850000Y-89050000D01*
 | 
			
		||||
X173850000Y-89050000D02*
 | 
			
		||||
X173700000Y-89200000D01*
 | 
			
		||||
X175000000Y-88100000D02*
 | 
			
		||||
X175000000Y-89050000D01*
 | 
			
		||||
X163850000Y-82700000D02*
 | 
			
		||||
X163850000Y-83378030D01*
 | 
			
		||||
X163850000Y-83378030D02*
 | 
			
		||||
X163295188Y-83932842D01*
 | 
			
		||||
X163275000Y-84125000D02*
 | 
			
		||||
X163295188Y-84104812D01*
 | 
			
		||||
X163295188Y-84104812D02*
 | 
			
		||||
X163295188Y-83932842D01*
 | 
			
		||||
X163275000Y-85400000D02*
 | 
			
		||||
X163275000Y-84125000D01*
 | 
			
		||||
X160850000Y-82700000D02*
 | 
			
		||||
X160850000Y-83575000D01*
 | 
			
		||||
X160850000Y-83575000D02*
 | 
			
		||||
X160875000Y-83600000D01*
 | 
			
		||||
X160875000Y-83600000D02*
 | 
			
		||||
X160900000Y-83600000D01*
 | 
			
		||||
X161325000Y-85400000D02*
 | 
			
		||||
X161325000Y-84025000D01*
 | 
			
		||||
X161325000Y-84025000D02*
 | 
			
		||||
X160900000Y-83600000D01*
 | 
			
		||||
X160675000Y-92600000D02*
 | 
			
		||||
X160675000Y-93800000D01*
 | 
			
		||||
X160500000Y-94600000D02*
 | 
			
		||||
X160500000Y-93975000D01*
 | 
			
		||||
X160500000Y-93975000D02*
 | 
			
		||||
X160675000Y-93800000D01*
 | 
			
		||||
X163275000Y-85400000D02*
 | 
			
		||||
X163275000Y-86509937D01*
 | 
			
		||||
X163275000Y-86509937D02*
 | 
			
		||||
X162784937Y-87000000D01*
 | 
			
		||||
X162784937Y-87000000D02*
 | 
			
		||||
X162300004Y-87000000D01*
 | 
			
		||||
X161325000Y-86509929D02*
 | 
			
		||||
X161815071Y-87000000D01*
 | 
			
		||||
X161325000Y-85400000D02*
 | 
			
		||||
X161325000Y-86509929D01*
 | 
			
		||||
X161815071Y-87000000D02*
 | 
			
		||||
X162300004Y-87000000D01*
 | 
			
		||||
X159700000Y-82700000D02*
 | 
			
		||||
X159600000Y-82700000D01*
 | 
			
		||||
X160850000Y-82700000D02*
 | 
			
		||||
X159700000Y-82700000D01*
 | 
			
		||||
X160850000Y-82700000D02*
 | 
			
		||||
X160850000Y-81100000D01*
 | 
			
		||||
X160500000Y-94600000D02*
 | 
			
		||||
X161700000Y-94600000D01*
 | 
			
		||||
X158075000Y-85400000D02*
 | 
			
		||||
X158075000Y-83925000D01*
 | 
			
		||||
X158075000Y-83925000D02*
 | 
			
		||||
X158100000Y-83900000D01*
 | 
			
		||||
X158075000Y-85400000D02*
 | 
			
		||||
X158725000Y-85400000D01*
 | 
			
		||||
X179600000Y-90600000D02*
 | 
			
		||||
X179600000Y-91700000D01*
 | 
			
		||||
X174900000Y-96600000D02*
 | 
			
		||||
X176200000Y-96600000D01*
 | 
			
		||||
X172800000Y-96598040D02*
 | 
			
		||||
X174898040Y-96598040D01*
 | 
			
		||||
X174898040Y-96598040D02*
 | 
			
		||||
X174900000Y-96600000D01*
 | 
			
		||||
X169250000Y-85000000D02*
 | 
			
		||||
X170560000Y-83690000D01*
 | 
			
		||||
X170560000Y-83690000D02*
 | 
			
		||||
X170560000Y-81600000D01*
 | 
			
		||||
X167200000Y-85000000D02*
 | 
			
		||||
X169250000Y-85000000D01*
 | 
			
		||||
X168600000Y-90500000D02*
 | 
			
		||||
X168600000Y-89399998D01*
 | 
			
		||||
X168800000Y-91300000D02*
 | 
			
		||||
X168800000Y-90700000D01*
 | 
			
		||||
X168800000Y-90700000D02*
 | 
			
		||||
X168600000Y-90500000D01*
 | 
			
		||||
D28*
 | 
			
		||||
X170500000Y-88600000D02*
 | 
			
		||||
X171150000Y-88600000D01*
 | 
			
		||||
D26*
 | 
			
		||||
X169550000Y-88600000D02*
 | 
			
		||||
X170500000Y-88600000D01*
 | 
			
		||||
X168600000Y-89399998D02*
 | 
			
		||||
X168750002Y-89399998D01*
 | 
			
		||||
X168750002Y-89399998D02*
 | 
			
		||||
X169550000Y-88600000D01*
 | 
			
		||||
X162350000Y-82700000D02*
 | 
			
		||||
X162350000Y-83575000D01*
 | 
			
		||||
X162350000Y-83575000D02*
 | 
			
		||||
X161977410Y-83947590D01*
 | 
			
		||||
X161977410Y-83947590D02*
 | 
			
		||||
X161977410Y-85400000D01*
 | 
			
		||||
D29*
 | 
			
		||||
X162350000Y-81100000D02*
 | 
			
		||||
X163800000Y-81100000D01*
 | 
			
		||||
D30*
 | 
			
		||||
X174222599Y-89677401D02*
 | 
			
		||||
X175726921Y-89677401D01*
 | 
			
		||||
X175726921Y-89677401D02*
 | 
			
		||||
X176250000Y-89154322D01*
 | 
			
		||||
X176250000Y-89154322D02*
 | 
			
		||||
X176250000Y-88675000D01*
 | 
			
		||||
X176250000Y-88675000D02*
 | 
			
		||||
X177200000Y-87725000D01*
 | 
			
		||||
X177200000Y-87725000D02*
 | 
			
		||||
X177200000Y-87150000D01*
 | 
			
		||||
D26*
 | 
			
		||||
X177200000Y-87150000D02*
 | 
			
		||||
X179450000Y-87150000D01*
 | 
			
		||||
X179450000Y-87150000D02*
 | 
			
		||||
X179600000Y-87300000D01*
 | 
			
		||||
X159000000Y-94600000D02*
 | 
			
		||||
X159000000Y-94000000D01*
 | 
			
		||||
X159000000Y-94000000D02*
 | 
			
		||||
X158725000Y-93725000D01*
 | 
			
		||||
X158725000Y-93725000D02*
 | 
			
		||||
X158725000Y-92600000D01*
 | 
			
		||||
D28*
 | 
			
		||||
X174222599Y-89677401D02*
 | 
			
		||||
X173800000Y-90100000D01*
 | 
			
		||||
X159600000Y-96600000D02*
 | 
			
		||||
X159000000Y-96000000D01*
 | 
			
		||||
D27*
 | 
			
		||||
X181100000Y-87300000D02*
 | 
			
		||||
X181100000Y-89000000D01*
 | 
			
		||||
X181100000Y-90600000D02*
 | 
			
		||||
X181100000Y-89000000D01*
 | 
			
		||||
X181100000Y-89000000D02*
 | 
			
		||||
X184000000Y-89000000D01*
 | 
			
		||||
D26*
 | 
			
		||||
X168800000Y-94500000D02*
 | 
			
		||||
X168800000Y-92800000D01*
 | 
			
		||||
X168800000Y-96598040D02*
 | 
			
		||||
X167301960Y-96598040D01*
 | 
			
		||||
X167301960Y-96598040D02*
 | 
			
		||||
X167300000Y-96600000D01*
 | 
			
		||||
D27*
 | 
			
		||||
X159300000Y-87400000D02*
 | 
			
		||||
X160025000Y-86675000D01*
 | 
			
		||||
X160025000Y-86675000D02*
 | 
			
		||||
X160025000Y-85400000D01*
 | 
			
		||||
D26*
 | 
			
		||||
X170800000Y-92800000D02*
 | 
			
		||||
X170800000Y-94500000D01*
 | 
			
		||||
X167300000Y-94500000D02*
 | 
			
		||||
X167300000Y-95065685D01*
 | 
			
		||||
X167300000Y-95065685D02*
 | 
			
		||||
X167734314Y-95499999D01*
 | 
			
		||||
X167734314Y-95499999D02*
 | 
			
		||||
X167876797Y-95499999D01*
 | 
			
		||||
X167876797Y-95499999D02*
 | 
			
		||||
X167878639Y-95501841D01*
 | 
			
		||||
X167878639Y-95501841D02*
 | 
			
		||||
X170603241Y-95501841D01*
 | 
			
		||||
X170603241Y-95501841D02*
 | 
			
		||||
X170800000Y-95698600D01*
 | 
			
		||||
X170800000Y-95698600D02*
 | 
			
		||||
X170800000Y-96598040D01*
 | 
			
		||||
D27*
 | 
			
		||||
X160675000Y-85400000D02*
 | 
			
		||||
X160675000Y-86400000D01*
 | 
			
		||||
X160900000Y-86900000D02*
 | 
			
		||||
X160675000Y-86675000D01*
 | 
			
		||||
X160675000Y-86675000D02*
 | 
			
		||||
X160675000Y-86400000D01*
 | 
			
		||||
X160900000Y-87400000D02*
 | 
			
		||||
X160900000Y-86900000D01*
 | 
			
		||||
D26*
 | 
			
		||||
X172800000Y-92800000D02*
 | 
			
		||||
X172800000Y-94500000D01*
 | 
			
		||||
D27*
 | 
			
		||||
X175640000Y-81600000D02*
 | 
			
		||||
X175640000Y-84560000D01*
 | 
			
		||||
X175640000Y-84560000D02*
 | 
			
		||||
X174900000Y-85300000D01*
 | 
			
		||||
D26*
 | 
			
		||||
X176600000Y-91300000D02*
 | 
			
		||||
X175599999Y-90299999D01*
 | 
			
		||||
X175599999Y-90299999D02*
 | 
			
		||||
X174900000Y-90299999D01*
 | 
			
		||||
D29*
 | 
			
		||||
X175640000Y-81600000D02*
 | 
			
		||||
X180803600Y-81600000D01*
 | 
			
		||||
X180803600Y-81600000D02*
 | 
			
		||||
X184000000Y-84796400D01*
 | 
			
		||||
X184000000Y-84796400D02*
 | 
			
		||||
X184000000Y-86460000D01*
 | 
			
		||||
D26*
 | 
			
		||||
X174900000Y-92800000D02*
 | 
			
		||||
X174900000Y-94501960D01*
 | 
			
		||||
D27*
 | 
			
		||||
X165934317Y-90900000D02*
 | 
			
		||||
X166500002Y-90900000D01*
 | 
			
		||||
X159900000Y-90900000D02*
 | 
			
		||||
X165934317Y-90900000D01*
 | 
			
		||||
X159375000Y-91425000D02*
 | 
			
		||||
X159900000Y-90900000D01*
 | 
			
		||||
X159375000Y-92600000D02*
 | 
			
		||||
X159375000Y-91425000D01*
 | 
			
		||||
X177200000Y-90200000D02*
 | 
			
		||||
X177200000Y-89050000D01*
 | 
			
		||||
X177200000Y-89050000D02*
 | 
			
		||||
X179550000Y-89050000D01*
 | 
			
		||||
X179550000Y-89050000D02*
 | 
			
		||||
X179600000Y-89000000D01*
 | 
			
		||||
X166000000Y-89400000D02*
 | 
			
		||||
X167600001Y-87799999D01*
 | 
			
		||||
X158400000Y-89400000D02*
 | 
			
		||||
X166000000Y-89400000D01*
 | 
			
		||||
X167600001Y-87799999D02*
 | 
			
		||||
X168000000Y-87400000D01*
 | 
			
		||||
X156775000Y-91025000D02*
 | 
			
		||||
X158400000Y-89400000D01*
 | 
			
		||||
X175000000Y-87150000D02*
 | 
			
		||||
X174050000Y-87150000D01*
 | 
			
		||||
X174050000Y-87150000D02*
 | 
			
		||||
X173800000Y-87400000D01*
 | 
			
		||||
X156775000Y-91025000D02*
 | 
			
		||||
X156800000Y-91000000D01*
 | 
			
		||||
X156775000Y-92600000D02*
 | 
			
		||||
X156775000Y-91025000D01*
 | 
			
		||||
D26*
 | 
			
		||||
X169550000Y-90100000D02*
 | 
			
		||||
X169600000Y-90100000D01*
 | 
			
		||||
X169600000Y-90100000D02*
 | 
			
		||||
X170800000Y-91300000D01*
 | 
			
		||||
X174900000Y-91300000D02*
 | 
			
		||||
X175100000Y-91300000D01*
 | 
			
		||||
X175100000Y-91300000D02*
 | 
			
		||||
X176600000Y-92800000D01*
 | 
			
		||||
X171150000Y-90100000D02*
 | 
			
		||||
X171600000Y-90100000D01*
 | 
			
		||||
X171600000Y-90100000D02*
 | 
			
		||||
X172800000Y-91300000D01*
 | 
			
		||||
D27*
 | 
			
		||||
X154500000Y-89792900D02*
 | 
			
		||||
X154342900Y-89792900D01*
 | 
			
		||||
X154342900Y-89792900D02*
 | 
			
		||||
X152900000Y-88350000D01*
 | 
			
		||||
X157560197Y-89599999D02*
 | 
			
		||||
X154692901Y-89599999D01*
 | 
			
		||||
X154692901Y-89599999D02*
 | 
			
		||||
X154500000Y-89792900D01*
 | 
			
		||||
X165225000Y-86712500D02*
 | 
			
		||||
X165150000Y-86787500D01*
 | 
			
		||||
X165225000Y-85400000D02*
 | 
			
		||||
X165225000Y-86712500D01*
 | 
			
		||||
X165150000Y-86787500D02*
 | 
			
		||||
X165150000Y-87703552D01*
 | 
			
		||||
X165150000Y-87703552D02*
 | 
			
		||||
X163905962Y-88947590D01*
 | 
			
		||||
X163905962Y-88947590D02*
 | 
			
		||||
X158212605Y-88947591D01*
 | 
			
		||||
X158212605Y-88947591D02*
 | 
			
		||||
X157560197Y-89599999D01*
 | 
			
		||||
X157353101Y-89100001D02*
 | 
			
		||||
X154692901Y-89100001D01*
 | 
			
		||||
X154692901Y-89100001D02*
 | 
			
		||||
X154500000Y-88907100D01*
 | 
			
		||||
X164650000Y-86787500D02*
 | 
			
		||||
X164650000Y-87496448D01*
 | 
			
		||||
X158005501Y-88447601D02*
 | 
			
		||||
X157353101Y-89100001D01*
 | 
			
		||||
X164575000Y-85400000D02*
 | 
			
		||||
X164575000Y-86712500D01*
 | 
			
		||||
X164575000Y-86712500D02*
 | 
			
		||||
X164650000Y-86787500D01*
 | 
			
		||||
X164650000Y-87496448D02*
 | 
			
		||||
X163698847Y-88447601D01*
 | 
			
		||||
X163698847Y-88447601D02*
 | 
			
		||||
X158005501Y-88447601D01*
 | 
			
		||||
D31*
 | 
			
		||||
G36*
 | 
			
		||||
X161443040Y-80386260D02*
 | 
			
		||||
X161404451Y-80479422D01*
 | 
			
		||||
X161363152Y-80451826D01*
 | 
			
		||||
X161250000Y-80429319D01*
 | 
			
		||||
X160450000Y-80429319D01*
 | 
			
		||||
X160336848Y-80451826D01*
 | 
			
		||||
X160240922Y-80515922D01*
 | 
			
		||||
X160176826Y-80611848D01*
 | 
			
		||||
X160154319Y-80725000D01*
 | 
			
		||||
X160154319Y-81475000D01*
 | 
			
		||||
X160176826Y-81588152D01*
 | 
			
		||||
X160240922Y-81684078D01*
 | 
			
		||||
X160310000Y-81730235D01*
 | 
			
		||||
X160310000Y-82069765D01*
 | 
			
		||||
X160240922Y-82115922D01*
 | 
			
		||||
X160211470Y-82160000D01*
 | 
			
		||||
X159949905Y-82160000D01*
 | 
			
		||||
X159726444Y-82067210D01*
 | 
			
		||||
X159474661Y-82066991D01*
 | 
			
		||||
X159241959Y-82163141D01*
 | 
			
		||||
X159063767Y-82341023D01*
 | 
			
		||||
X158967210Y-82573556D01*
 | 
			
		||||
X158966991Y-82825339D01*
 | 
			
		||||
X159063141Y-83058041D01*
 | 
			
		||||
X159241023Y-83236233D01*
 | 
			
		||||
X159473556Y-83332790D01*
 | 
			
		||||
X159725339Y-83333009D01*
 | 
			
		||||
X159950439Y-83240000D01*
 | 
			
		||||
X160211470Y-83240000D01*
 | 
			
		||||
X160240922Y-83284078D01*
 | 
			
		||||
X160310000Y-83330235D01*
 | 
			
		||||
X160310000Y-83575000D01*
 | 
			
		||||
X160351105Y-83781649D01*
 | 
			
		||||
X160468162Y-83956838D01*
 | 
			
		||||
X160493160Y-83981835D01*
 | 
			
		||||
X160493162Y-83981838D01*
 | 
			
		||||
X160568503Y-84032179D01*
 | 
			
		||||
X160765644Y-84229319D01*
 | 
			
		||||
X160450000Y-84229319D01*
 | 
			
		||||
X160350000Y-84249210D01*
 | 
			
		||||
X160250000Y-84229319D01*
 | 
			
		||||
X159800000Y-84229319D01*
 | 
			
		||||
X159700000Y-84249210D01*
 | 
			
		||||
X159600000Y-84229319D01*
 | 
			
		||||
X159150000Y-84229319D01*
 | 
			
		||||
X159050000Y-84249210D01*
 | 
			
		||||
X158950000Y-84229319D01*
 | 
			
		||||
X158648548Y-84229319D01*
 | 
			
		||||
X158732790Y-84026444D01*
 | 
			
		||||
X172906000Y-81774000D01*
 | 
			
		||||
X172906000Y-81426000D01*
 | 
			
		||||
X172926000Y-81426000D01*
 | 
			
		||||
X172926000Y-81406000D01*
 | 
			
		||||
X173274000Y-81406000D01*
 | 
			
		||||
X173274000Y-81426000D01*
 | 
			
		||||
X173274000Y-81426000D01*
 | 
			
		||||
G37*
 | 
			
		||||
X173274000Y-81426000D02*
 | 
			
		||||
X180070000Y-89624732D01*
 | 
			
		||||
X180070000Y-89953439D01*
 | 
			
		||||
X180000000Y-89939515D01*
 | 
			
		||||
X179200000Y-89939515D01*
 | 
			
		||||
X179090750Y-89961246D01*
 | 
			
		||||
X178998132Y-90023132D01*
 | 
			
		||||
X178936246Y-90115750D01*
 | 
			
		||||
X172926000Y-81774000D01*
 | 
			
		||||
X172906000Y-81774000D01*
 | 
			
		||||
X172906000Y-81426000D01*
 | 
			
		||||
X172926000Y-81426000D01*
 | 
			
		||||
X172926000Y-81406000D01*
 | 
			
		||||
X173274000Y-81406000D01*
 | 
			
		||||
X173274000Y-81426000D01*
 | 
			
		||||
D31*
 | 
			
		||||
G36*
 | 
			
		||||
X181810000Y-87900000D02*
 | 
			
		||||
X181816851Y-87934442D01*
 | 
			
		||||
X181836360Y-87963640D01*
 | 
			
		||||
X181865558Y-87983149D01*
 | 
			
		||||
X181900000Y-87990000D01*
 | 
			
		||||
X185210000Y-87990000D01*
 | 
			
		||||
X185210000Y-89910000D01*
 | 
			
		||||
X182100000Y-89910000D01*
 | 
			
		||||
X182065558Y-89916851D01*
 | 
			
		||||
X182036360Y-89936360D01*
 | 
			
		||||
X182016851Y-89965558D01*
 | 
			
		||||
X182010000Y-90000000D01*
 | 
			
		||||
X182010000Y-91310000D01*
 | 
			
		||||
X180490000Y-91310000D01*
 | 
			
		||||
X180490000Y-86190000D01*
 | 
			
		||||
X181810000Y-86190000D01*
 | 
			
		||||
X181810000Y-87900000D01*
 | 
			
		||||
X181810000Y-87900000D01*
 | 
			
		||||
G37*
 | 
			
		||||
X181810000Y-87900000D02*
 | 
			
		||||
X181816851Y-87934442D01*
 | 
			
		||||
X181836360Y-87963640D01*
 | 
			
		||||
X181865558Y-87983149D01*
 | 
			
		||||
X181900000Y-87990000D01*
 | 
			
		||||
X185210000Y-87990000D01*
 | 
			
		||||
X185210000Y-89910000D01*
 | 
			
		||||
X182100000Y-89910000D01*
 | 
			
		||||
X182065558Y-89916851D01*
 | 
			
		||||
X182036360Y-89936360D01*
 | 
			
		||||
X182016851Y-89965558D01*
 | 
			
		||||
X182010000Y-90000000D01*
 | 
			
		||||
X182010000Y-91310000D01*
 | 
			
		||||
X180490000Y-91310000D01*
 | 
			
		||||
X180490000Y-86190000D01*
 | 
			
		||||
X181810000Y-86190000D01*
 | 
			
		||||
X181810000Y-87900000D01*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										128
									
								
								samples/Gerber Image/FelinaePurr-F.Mask.gts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								samples/Gerber Image/FelinaePurr-F.Mask.gts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Soldermask,Top*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.150000*%
 | 
			
		||||
%ADD11R,0.800000X0.750000*%
 | 
			
		||||
%ADD12R,0.750000X0.800000*%
 | 
			
		||||
%ADD13R,1.198880X1.198880*%
 | 
			
		||||
%ADD14R,1.727200X2.032000*%
 | 
			
		||||
%ADD15O,1.727200X2.032000*%
 | 
			
		||||
%ADD16R,0.500000X0.900000*%
 | 
			
		||||
%ADD17R,0.450000X1.750000*%
 | 
			
		||||
%ADD18R,1.060000X0.650000*%
 | 
			
		||||
%ADD19R,2.032000X1.727200*%
 | 
			
		||||
%ADD20O,2.032000X1.727200*%
 | 
			
		||||
%ADD21R,0.900000X0.500000*%
 | 
			
		||||
%ADD22C,1.300000*%
 | 
			
		||||
%ADD23C,2.800000*%
 | 
			
		||||
%ADD24C,1.200000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X165350000Y-82700000D03*
 | 
			
		||||
X163850000Y-82700000D03*
 | 
			
		||||
X162350000Y-82700000D03*
 | 
			
		||||
X160850000Y-82700000D03*
 | 
			
		||||
D12*
 | 
			
		||||
X172700000Y-87350000D03*
 | 
			
		||||
X172700000Y-88850000D03*
 | 
			
		||||
D11*
 | 
			
		||||
X181100000Y-90600000D03*
 | 
			
		||||
X179600000Y-90600000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X168800000Y-94500000D03*
 | 
			
		||||
X168800000Y-96598040D03*
 | 
			
		||||
X170800000Y-94500000D03*
 | 
			
		||||
X170800000Y-96598040D03*
 | 
			
		||||
X172800000Y-94500000D03*
 | 
			
		||||
X172800000Y-96598040D03*
 | 
			
		||||
D14*
 | 
			
		||||
X175640000Y-81600000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X173100000Y-81600000D03*
 | 
			
		||||
X170560000Y-81600000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X181100000Y-89000000D03*
 | 
			
		||||
X179600000Y-89000000D03*
 | 
			
		||||
X179600000Y-87300000D03*
 | 
			
		||||
X181100000Y-87300000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X156775000Y-92600000D03*
 | 
			
		||||
X157425000Y-92600000D03*
 | 
			
		||||
X158075000Y-92600000D03*
 | 
			
		||||
X158725000Y-92600000D03*
 | 
			
		||||
X159375000Y-92600000D03*
 | 
			
		||||
X160025000Y-92600000D03*
 | 
			
		||||
X160675000Y-92600000D03*
 | 
			
		||||
X161325000Y-92600000D03*
 | 
			
		||||
X161975000Y-92600000D03*
 | 
			
		||||
X162625000Y-92600000D03*
 | 
			
		||||
X163275000Y-92600000D03*
 | 
			
		||||
X163925000Y-92600000D03*
 | 
			
		||||
X164575000Y-92600000D03*
 | 
			
		||||
X165225000Y-92600000D03*
 | 
			
		||||
X165225000Y-85400000D03*
 | 
			
		||||
X164575000Y-85400000D03*
 | 
			
		||||
X163925000Y-85400000D03*
 | 
			
		||||
X163275000Y-85400000D03*
 | 
			
		||||
X162625000Y-85400000D03*
 | 
			
		||||
X161975000Y-85400000D03*
 | 
			
		||||
X161325000Y-85400000D03*
 | 
			
		||||
X160675000Y-85400000D03*
 | 
			
		||||
X160025000Y-85400000D03*
 | 
			
		||||
X159375000Y-85400000D03*
 | 
			
		||||
X158725000Y-85400000D03*
 | 
			
		||||
X158075000Y-85400000D03*
 | 
			
		||||
X157425000Y-85400000D03*
 | 
			
		||||
X156775000Y-85400000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X175000000Y-87150000D03*
 | 
			
		||||
X175000000Y-88100000D03*
 | 
			
		||||
X175000000Y-89050000D03*
 | 
			
		||||
X177200000Y-89050000D03*
 | 
			
		||||
X177200000Y-87150000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X184000000Y-86460000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X184000000Y-89000000D03*
 | 
			
		||||
X184000000Y-91540000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X174900000Y-94501960D03*
 | 
			
		||||
X174900000Y-96600000D03*
 | 
			
		||||
D11*
 | 
			
		||||
X159000000Y-94600000D03*
 | 
			
		||||
X160500000Y-94600000D03*
 | 
			
		||||
X162350000Y-81100000D03*
 | 
			
		||||
X160850000Y-81100000D03*
 | 
			
		||||
D21*
 | 
			
		||||
X171150000Y-88600000D03*
 | 
			
		||||
X171150000Y-90100000D03*
 | 
			
		||||
X169550000Y-88600000D03*
 | 
			
		||||
X169550000Y-90100000D03*
 | 
			
		||||
X168800000Y-91300000D03*
 | 
			
		||||
X168800000Y-92800000D03*
 | 
			
		||||
X170800000Y-91300000D03*
 | 
			
		||||
X170800000Y-92800000D03*
 | 
			
		||||
X172800000Y-91300000D03*
 | 
			
		||||
X172800000Y-92800000D03*
 | 
			
		||||
X174900000Y-91300000D03*
 | 
			
		||||
X174900000Y-92800000D03*
 | 
			
		||||
X176600000Y-91300000D03*
 | 
			
		||||
X176600000Y-92800000D03*
 | 
			
		||||
D22*
 | 
			
		||||
X152900000Y-88350000D03*
 | 
			
		||||
X152900000Y-90350000D03*
 | 
			
		||||
X152900000Y-92850000D03*
 | 
			
		||||
X152900000Y-85850000D03*
 | 
			
		||||
D23*
 | 
			
		||||
X150800000Y-83500000D03*
 | 
			
		||||
X150800000Y-95200000D03*
 | 
			
		||||
D24*
 | 
			
		||||
X150800000Y-87100000D03*
 | 
			
		||||
X150800000Y-91600000D03*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										12
									
								
								samples/Gerber Image/FelinaePurr-F.Paste.gtp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								samples/Gerber Image/FelinaePurr-F.Paste.gtp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Paste,Top*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.150000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										255
									
								
								samples/Gerber Image/FelinaePurr-F.SilkS.gto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										255
									
								
								samples/Gerber Image/FelinaePurr-F.SilkS.gto
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,255 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Legend,Top*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW (2016-07-14 BZR 6980)-product) date Sunday, 23 April 2017 'PMt' 23:49:01*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.150000*%
 | 
			
		||||
%ADD11C,0.200000*%
 | 
			
		||||
%ADD12C,0.500000*%
 | 
			
		||||
%ADD13C,0.175000*%
 | 
			
		||||
%ADD14C,0.120000*%
 | 
			
		||||
%ADD15R,0.800000X0.750000*%
 | 
			
		||||
%ADD16R,0.750000X0.800000*%
 | 
			
		||||
%ADD17R,1.198880X1.198880*%
 | 
			
		||||
%ADD18R,1.727200X2.032000*%
 | 
			
		||||
%ADD19O,1.727200X2.032000*%
 | 
			
		||||
%ADD20R,0.500000X0.900000*%
 | 
			
		||||
%ADD21R,0.450000X1.750000*%
 | 
			
		||||
%ADD22R,1.060000X0.650000*%
 | 
			
		||||
%ADD23R,2.032000X1.727200*%
 | 
			
		||||
%ADD24O,2.032000X1.727200*%
 | 
			
		||||
%ADD25R,0.900000X0.500000*%
 | 
			
		||||
%ADD26C,1.300000*%
 | 
			
		||||
%ADD27C,2.800000*%
 | 
			
		||||
%ADD28C,1.200000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X181000000Y-96250000D02*
 | 
			
		||||
X181000000Y-96750000D01*
 | 
			
		||||
X180750000Y-96500000D02*
 | 
			
		||||
X181250000Y-96500000D01*
 | 
			
		||||
X180750000Y-97250000D02*
 | 
			
		||||
X181250000Y-97250000D01*
 | 
			
		||||
D12*
 | 
			
		||||
X156000000Y-92800000D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X156000000Y-92800000I-200000J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
D13*
 | 
			
		||||
X174800000Y-84116666D02*
 | 
			
		||||
X174800000Y-83416666D01*
 | 
			
		||||
X174966666Y-83416666D01*
 | 
			
		||||
X175066666Y-83450000D01*
 | 
			
		||||
X175133333Y-83516666D01*
 | 
			
		||||
X175166666Y-83583333D01*
 | 
			
		||||
X175200000Y-83716666D01*
 | 
			
		||||
X175200000Y-83816666D01*
 | 
			
		||||
X175166666Y-83950000D01*
 | 
			
		||||
X175133333Y-84016666D01*
 | 
			
		||||
X175066666Y-84083333D01*
 | 
			
		||||
X174966666Y-84116666D01*
 | 
			
		||||
X174800000Y-84116666D01*
 | 
			
		||||
X175500000Y-83750000D02*
 | 
			
		||||
X175733333Y-83750000D01*
 | 
			
		||||
X157483333Y-97316666D02*
 | 
			
		||||
X161783333Y-96816666D01*
 | 
			
		||||
X162450000Y-97116666D02*
 | 
			
		||||
X162783333Y-97116666D01*
 | 
			
		||||
X162383333Y-97316666D02*
 | 
			
		||||
X162616666Y-96616666D01*
 | 
			
		||||
X162850000Y-97316666D01*
 | 
			
		||||
D10*
 | 
			
		||||
X164950000Y-83300000D02*
 | 
			
		||||
X164250000Y-83300000D01*
 | 
			
		||||
X164250000Y-82100000D02*
 | 
			
		||||
X164950000Y-82100000D01*
 | 
			
		||||
X161950000Y-83300000D02*
 | 
			
		||||
X161250000Y-83300000D01*
 | 
			
		||||
X161250000Y-82100000D02*
 | 
			
		||||
X161950000Y-82100000D01*
 | 
			
		||||
X173300000Y-87750000D02*
 | 
			
		||||
X173300000Y-88450000D01*
 | 
			
		||||
X172100000Y-88450000D02*
 | 
			
		||||
X172100000Y-87750000D01*
 | 
			
		||||
X180700000Y-91200000D02*
 | 
			
		||||
X180000000Y-91200000D01*
 | 
			
		||||
X180000000Y-90000000D02*
 | 
			
		||||
X180700000Y-90000000D01*
 | 
			
		||||
X169550000Y-97149020D02*
 | 
			
		||||
X169550000Y-94449020D01*
 | 
			
		||||
X168050000Y-97149020D02*
 | 
			
		||||
X168050000Y-94449020D01*
 | 
			
		||||
X168950000Y-95649020D02*
 | 
			
		||||
X168700000Y-95649020D01*
 | 
			
		||||
X168700000Y-95649020D02*
 | 
			
		||||
X168850000Y-95799020D01*
 | 
			
		||||
X168450000Y-95899020D02*
 | 
			
		||||
X169150000Y-95899020D01*
 | 
			
		||||
X168800000Y-95549020D02*
 | 
			
		||||
X168800000Y-95199020D01*
 | 
			
		||||
X168800000Y-95899020D02*
 | 
			
		||||
X168450000Y-95549020D01*
 | 
			
		||||
X168450000Y-95549020D02*
 | 
			
		||||
X169150000Y-95549020D01*
 | 
			
		||||
X169150000Y-95549020D02*
 | 
			
		||||
X168800000Y-95899020D01*
 | 
			
		||||
X171550000Y-97149020D02*
 | 
			
		||||
X171550000Y-94449020D01*
 | 
			
		||||
X170050000Y-97149020D02*
 | 
			
		||||
X170050000Y-94449020D01*
 | 
			
		||||
X170950000Y-95649020D02*
 | 
			
		||||
X170700000Y-95649020D01*
 | 
			
		||||
X170700000Y-95649020D02*
 | 
			
		||||
X170850000Y-95799020D01*
 | 
			
		||||
X170450000Y-95899020D02*
 | 
			
		||||
X171150000Y-95899020D01*
 | 
			
		||||
X170800000Y-95549020D02*
 | 
			
		||||
X170800000Y-95199020D01*
 | 
			
		||||
X175900000Y-86400000D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X175900000Y-86400000I-100000J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X176350000Y-86650000D02*
 | 
			
		||||
X175850000Y-86650000D01*
 | 
			
		||||
X176350000Y-89550000D02*
 | 
			
		||||
X176350000Y-86650000D01*
 | 
			
		||||
X175850000Y-89550000D02*
 | 
			
		||||
X176350000Y-89550000D01*
 | 
			
		||||
X175850000Y-86650000D02*
 | 
			
		||||
X175850000Y-89550000D01*
 | 
			
		||||
X182730000Y-87730000D02*
 | 
			
		||||
X182730000Y-92810000D01*
 | 
			
		||||
X182730000Y-92810000D02*
 | 
			
		||||
X185270000Y-92810000D01*
 | 
			
		||||
X185270000Y-92810000D02*
 | 
			
		||||
X185270000Y-87730000D01*
 | 
			
		||||
X185550000Y-84910000D02*
 | 
			
		||||
X185550000Y-86460000D01*
 | 
			
		||||
X185270000Y-87730000D02*
 | 
			
		||||
X182730000Y-87730000D01*
 | 
			
		||||
X175580000Y-92550000D01*
 | 
			
		||||
X175920000Y-92550000D02*
 | 
			
		||||
X175920000Y-91550000D01*
 | 
			
		||||
X177280000Y-91550000D02*
 | 
			
		||||
X177280000Y-92550000D01*
 | 
			
		||||
D10*
 | 
			
		||||
X148000000Y-95350000D02*
 | 
			
		||||
X148000000Y-83350000D01*
 | 
			
		||||
X134100000Y-83350000D02*
 | 
			
		||||
X152800000Y-83350000D01*
 | 
			
		||||
X134100000Y-95350000D02*
 | 
			
		||||
X134100000Y-83350000D01*
 | 
			
		||||
X152900000Y-95350000D02*
 | 
			
		||||
X141352380Y-88850000D02*
 | 
			
		||||
X140352380Y-88850000D01*
 | 
			
		||||
X140495238Y-88945238D01*
 | 
			
		||||
X140590476Y-89040476D01*
 | 
			
		||||
X140638095Y-89135714D01*
 | 
			
		||||
%LPC*%
 | 
			
		||||
D15*
 | 
			
		||||
X165350000Y-82700000D03*
 | 
			
		||||
X163850000Y-82700000D03*
 | 
			
		||||
X162350000Y-82700000D03*
 | 
			
		||||
X160850000Y-82700000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X172700000Y-87350000D03*
 | 
			
		||||
X172700000Y-88850000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X181100000Y-90600000D03*
 | 
			
		||||
X179600000Y-90600000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X168800000Y-94500000D03*
 | 
			
		||||
X168800000Y-96598040D03*
 | 
			
		||||
X170800000Y-94500000D03*
 | 
			
		||||
X170800000Y-96598040D03*
 | 
			
		||||
X172800000Y-94500000D03*
 | 
			
		||||
X172800000Y-96598040D03*
 | 
			
		||||
D18*
 | 
			
		||||
X175640000Y-81600000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X173100000Y-81600000D03*
 | 
			
		||||
X170560000Y-81600000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X181100000Y-89000000D03*
 | 
			
		||||
X179600000Y-89000000D03*
 | 
			
		||||
X179600000Y-87300000D03*
 | 
			
		||||
X181100000Y-87300000D03*
 | 
			
		||||
D21*
 | 
			
		||||
X156775000Y-92600000D03*
 | 
			
		||||
X157425000Y-92600000D03*
 | 
			
		||||
X158075000Y-92600000D03*
 | 
			
		||||
X158725000Y-92600000D03*
 | 
			
		||||
X159375000Y-92600000D03*
 | 
			
		||||
X160025000Y-92600000D03*
 | 
			
		||||
X160675000Y-92600000D03*
 | 
			
		||||
X161325000Y-92600000D03*
 | 
			
		||||
X161975000Y-92600000D03*
 | 
			
		||||
X162625000Y-92600000D03*
 | 
			
		||||
X163275000Y-92600000D03*
 | 
			
		||||
X163925000Y-92600000D03*
 | 
			
		||||
X164575000Y-92600000D03*
 | 
			
		||||
X165225000Y-92600000D03*
 | 
			
		||||
X165225000Y-85400000D03*
 | 
			
		||||
X164575000Y-85400000D03*
 | 
			
		||||
X163925000Y-85400000D03*
 | 
			
		||||
X163275000Y-85400000D03*
 | 
			
		||||
X162625000Y-85400000D03*
 | 
			
		||||
X161975000Y-85400000D03*
 | 
			
		||||
X161325000Y-85400000D03*
 | 
			
		||||
X160675000Y-85400000D03*
 | 
			
		||||
X160025000Y-85400000D03*
 | 
			
		||||
X159375000Y-85400000D03*
 | 
			
		||||
X158725000Y-85400000D03*
 | 
			
		||||
X158075000Y-85400000D03*
 | 
			
		||||
X157425000Y-85400000D03*
 | 
			
		||||
X156775000Y-85400000D03*
 | 
			
		||||
D22*
 | 
			
		||||
X175000000Y-87150000D03*
 | 
			
		||||
X175000000Y-88100000D03*
 | 
			
		||||
X175000000Y-89050000D03*
 | 
			
		||||
X177200000Y-89050000D03*
 | 
			
		||||
X177200000Y-87150000D03*
 | 
			
		||||
D23*
 | 
			
		||||
X184000000Y-86460000D03*
 | 
			
		||||
D24*
 | 
			
		||||
X184000000Y-89000000D03*
 | 
			
		||||
X184000000Y-91540000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X174900000Y-94501960D03*
 | 
			
		||||
X174900000Y-96600000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X159000000Y-94600000D03*
 | 
			
		||||
X160500000Y-94600000D03*
 | 
			
		||||
X162350000Y-81100000D03*
 | 
			
		||||
X160850000Y-81100000D03*
 | 
			
		||||
D25*
 | 
			
		||||
X171150000Y-88600000D03*
 | 
			
		||||
X171150000Y-90100000D03*
 | 
			
		||||
X169550000Y-88600000D03*
 | 
			
		||||
X169550000Y-90100000D03*
 | 
			
		||||
X168800000Y-91300000D03*
 | 
			
		||||
X168800000Y-92800000D03*
 | 
			
		||||
X170800000Y-91300000D03*
 | 
			
		||||
X170800000Y-92800000D03*
 | 
			
		||||
X172800000Y-91300000D03*
 | 
			
		||||
X172800000Y-92800000D03*
 | 
			
		||||
X174900000Y-91300000D03*
 | 
			
		||||
X174900000Y-92800000D03*
 | 
			
		||||
X176600000Y-91300000D03*
 | 
			
		||||
X176600000Y-92800000D03*
 | 
			
		||||
D26*
 | 
			
		||||
X152900000Y-88350000D03*
 | 
			
		||||
X152900000Y-90350000D03*
 | 
			
		||||
X152900000Y-92850000D03*
 | 
			
		||||
X152900000Y-85850000D03*
 | 
			
		||||
D27*
 | 
			
		||||
X150800000Y-83500000D03*
 | 
			
		||||
X150800000Y-95200000D03*
 | 
			
		||||
D28*
 | 
			
		||||
X150800000Y-87100000D03*
 | 
			
		||||
X150800000Y-91600000D03*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										60
									
								
								samples/Gerber Image/GOLMain_RevA-B.Paste.gbp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								samples/Gerber Image/GOLMain_RevA-B.Paste.gbp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Paste,Bot*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW 4.0.4-stable) date 03/23/17 03:26:40*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.100000*%
 | 
			
		||||
%ADD11R,1.100000X2.400000*%
 | 
			
		||||
%ADD12O,1.100000X2.400000*%
 | 
			
		||||
%ADD13R,2.000000X2.032000*%
 | 
			
		||||
%ADD14R,1.727200X2.032000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X153000000Y-135000000D03*
 | 
			
		||||
D12*
 | 
			
		||||
X151000000Y-135000000D03*
 | 
			
		||||
X149000000Y-135000000D03*
 | 
			
		||||
X147000000Y-135000000D03*
 | 
			
		||||
X145000000Y-135000000D03*
 | 
			
		||||
X143000000Y-135000000D03*
 | 
			
		||||
X141000000Y-135000000D03*
 | 
			
		||||
X139000000Y-135000000D03*
 | 
			
		||||
X139000000Y-119000000D03*
 | 
			
		||||
X141000000Y-119000000D03*
 | 
			
		||||
X143000000Y-119000000D03*
 | 
			
		||||
X145000000Y-119000000D03*
 | 
			
		||||
X147000000Y-119000000D03*
 | 
			
		||||
X149000000Y-119000000D03*
 | 
			
		||||
X151000000Y-119000000D03*
 | 
			
		||||
X153000000Y-119000000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X94500000Y-125500000D03*
 | 
			
		||||
X97040000Y-125500000D03*
 | 
			
		||||
X99580000Y-125500000D03*
 | 
			
		||||
X94500000Y-128500000D03*
 | 
			
		||||
X97040000Y-128500000D03*
 | 
			
		||||
X99580000Y-128500000D03*
 | 
			
		||||
X94500000Y-131500000D03*
 | 
			
		||||
X97040000Y-131500000D03*
 | 
			
		||||
X99580000Y-131500000D03*
 | 
			
		||||
X94500000Y-134500000D03*
 | 
			
		||||
X97040000Y-134500000D03*
 | 
			
		||||
X99580000Y-134500000D03*
 | 
			
		||||
X97040000Y-137500000D03*
 | 
			
		||||
X99580000Y-137500000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X94500000Y-140500000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X97040000Y-140500000D03*
 | 
			
		||||
X99580000Y-140500000D03*
 | 
			
		||||
X94500000Y-143500000D03*
 | 
			
		||||
X97040000Y-143500000D03*
 | 
			
		||||
X99580000Y-143500000D03*
 | 
			
		||||
X94500000Y-146500000D03*
 | 
			
		||||
X97040000Y-146500000D03*
 | 
			
		||||
X99580000Y-146500000D03*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										26
									
								
								samples/Gerber Image/nonaprs_contour.gko
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								samples/Gerber Image/nonaprs_contour.gko
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
G04 MADE WITH FRITZING*
 | 
			
		||||
G04 WWW.FRITZING.ORG*
 | 
			
		||||
G04 DOUBLE SIDED*
 | 
			
		||||
G04 HOLES PLATED*
 | 
			
		||||
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
 | 
			
		||||
%ASAXBY*%
 | 
			
		||||
%FSLAX23Y23*%
 | 
			
		||||
%MOIN*%
 | 
			
		||||
%OFA0B0*%
 | 
			
		||||
%SFA1.0B1.0*%
 | 
			
		||||
%ADD10R,1.267940X2.408830*%
 | 
			
		||||
%ADD11C,0.008000*%
 | 
			
		||||
%ADD10C,0.008*%
 | 
			
		||||
%LNCONTOUR*%
 | 
			
		||||
G90*
 | 
			
		||||
G70*
 | 
			
		||||
G54D10*
 | 
			
		||||
G54D11*
 | 
			
		||||
X4Y2405D02*
 | 
			
		||||
X1264Y2405D01*
 | 
			
		||||
X1264Y4D01*
 | 
			
		||||
X4Y4D01*
 | 
			
		||||
X4Y2405D01*
 | 
			
		||||
D02*
 | 
			
		||||
G04 End of contour*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										1277
									
								
								samples/Gerber Image/simonShield-B.Cu.gbr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1277
									
								
								samples/Gerber Image/simonShield-B.Cu.gbr
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										210
									
								
								samples/Gerber Image/simonShield-B.Mask.gbr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								samples/Gerber Image/simonShield-B.Mask.gbr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,210 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Soldermask,Bot*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul  1 03:26:18 2017*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.100000*%
 | 
			
		||||
%ADD11C,0.150000*%
 | 
			
		||||
%ADD12C,2.000000*%
 | 
			
		||||
%ADD13O,2.000000X2.000000*%
 | 
			
		||||
%ADD14R,2.400000X1.924000*%
 | 
			
		||||
%ADD15O,2.400000X1.924000*%
 | 
			
		||||
%ADD16R,1.700000X1.700000*%
 | 
			
		||||
%ADD17C,1.700000*%
 | 
			
		||||
%ADD18C,2.398980*%
 | 
			
		||||
%ADD19R,2.300000X2.400000*%
 | 
			
		||||
%ADD20C,2.300000*%
 | 
			
		||||
%ADD21R,2.127200X2.127200*%
 | 
			
		||||
%ADD22O,2.127200X2.127200*%
 | 
			
		||||
%ADD23C,1.400760*%
 | 
			
		||||
%ADD24C,1.797000*%
 | 
			
		||||
%ADD25C,2.000200*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X196250000Y-118000000D02*
 | 
			
		||||
X113000000Y-118000000D01*
 | 
			
		||||
X196250000Y-52750000D02*
 | 
			
		||||
X196250000Y-118000000D01*
 | 
			
		||||
X113000000Y-52750000D02*
 | 
			
		||||
X196250000Y-52750000D01*
 | 
			
		||||
X113000000Y-118000000D02*
 | 
			
		||||
X113000000Y-52750000D01*
 | 
			
		||||
D12*
 | 
			
		||||
X145400000Y-68800000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X145400000Y-58640000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X189230000Y-61468000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X191770000Y-61468000D03*
 | 
			
		||||
X189230000Y-74168000D03*
 | 
			
		||||
X189230000Y-109728000D03*
 | 
			
		||||
X191770000Y-109728000D03*
 | 
			
		||||
X191770000Y-97028000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X118110000Y-61468000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X120650000Y-61468000D03*
 | 
			
		||||
X118110000Y-64008000D03*
 | 
			
		||||
X120650000Y-64008000D03*
 | 
			
		||||
X118110000Y-66548000D03*
 | 
			
		||||
X120650000Y-66548000D03*
 | 
			
		||||
X118110000Y-69088000D03*
 | 
			
		||||
X120650000Y-69088000D03*
 | 
			
		||||
X118110000Y-71628000D03*
 | 
			
		||||
X120650000Y-71628000D03*
 | 
			
		||||
X118110000Y-74168000D03*
 | 
			
		||||
X120650000Y-74168000D03*
 | 
			
		||||
X118110000Y-76708000D03*
 | 
			
		||||
X120650000Y-76708000D03*
 | 
			
		||||
X118110000Y-79248000D03*
 | 
			
		||||
X120650000Y-79248000D03*
 | 
			
		||||
X118110000Y-81788000D03*
 | 
			
		||||
X120650000Y-81788000D03*
 | 
			
		||||
X118110000Y-84328000D03*
 | 
			
		||||
X120650000Y-84328000D03*
 | 
			
		||||
X118110000Y-86868000D03*
 | 
			
		||||
X120650000Y-86868000D03*
 | 
			
		||||
X118110000Y-89408000D03*
 | 
			
		||||
X120650000Y-89408000D03*
 | 
			
		||||
X118110000Y-91948000D03*
 | 
			
		||||
X120650000Y-91948000D03*
 | 
			
		||||
X118110000Y-94488000D03*
 | 
			
		||||
X120650000Y-94488000D03*
 | 
			
		||||
X118110000Y-97028000D03*
 | 
			
		||||
X120650000Y-97028000D03*
 | 
			
		||||
X118110000Y-99568000D03*
 | 
			
		||||
X120650000Y-99568000D03*
 | 
			
		||||
X118110000Y-102108000D03*
 | 
			
		||||
X120650000Y-102108000D03*
 | 
			
		||||
X118110000Y-104648000D03*
 | 
			
		||||
X120650000Y-104648000D03*
 | 
			
		||||
X118110000Y-107188000D03*
 | 
			
		||||
X120650000Y-107188000D03*
 | 
			
		||||
X118110000Y-109728000D03*
 | 
			
		||||
X120650000Y-109728000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X135255000Y-64008000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X135255000Y-61508000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X164465000Y-85471000D03*
 | 
			
		||||
X164465000Y-77851000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X136017000Y-72644000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X133477000Y-72644000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X173863000Y-72644000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X176403000Y-72644000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X136017000Y-96139000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X133477000Y-96139000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X173863000Y-96012000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X176403000Y-96012000D03*
 | 
			
		||||
D21*
 | 
			
		||||
X127007800Y-61542700D03*
 | 
			
		||||
D22*
 | 
			
		||||
X129547800Y-61542700D03*
 | 
			
		||||
X127007800Y-64082700D03*
 | 
			
		||||
X129547800Y-64082700D03*
 | 
			
		||||
D23*
 | 
			
		||||
X166243000Y-67056000D03*
 | 
			
		||||
X164973000Y-68326000D03*
 | 
			
		||||
X164973000Y-65786000D03*
 | 
			
		||||
X128143000Y-71374000D03*
 | 
			
		||||
X129413000Y-72644000D03*
 | 
			
		||||
X126873000Y-72644000D03*
 | 
			
		||||
X181737000Y-73914000D03*
 | 
			
		||||
X180467000Y-72644000D03*
 | 
			
		||||
X183007000Y-72644000D03*
 | 
			
		||||
X128143000Y-94742000D03*
 | 
			
		||||
X129413000Y-96012000D03*
 | 
			
		||||
X126873000Y-96012000D03*
 | 
			
		||||
X181737000Y-97282000D03*
 | 
			
		||||
X180467000Y-96012000D03*
 | 
			
		||||
X183007000Y-96012000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X134239000Y-85344000D03*
 | 
			
		||||
X134239000Y-77724000D03*
 | 
			
		||||
X145415000Y-85344000D03*
 | 
			
		||||
X145415000Y-77724000D03*
 | 
			
		||||
X175641000Y-85217000D03*
 | 
			
		||||
X175641000Y-77597000D03*
 | 
			
		||||
X145415000Y-108966000D03*
 | 
			
		||||
X145415000Y-101346000D03*
 | 
			
		||||
X134239000Y-108458000D03*
 | 
			
		||||
X134239000Y-100838000D03*
 | 
			
		||||
X175641000Y-108585000D03*
 | 
			
		||||
X175641000Y-100965000D03*
 | 
			
		||||
X164465000Y-108839000D03*
 | 
			
		||||
X164465000Y-101219000D03*
 | 
			
		||||
X169164000Y-62611000D03*
 | 
			
		||||
X161544000Y-62611000D03*
 | 
			
		||||
X169164000Y-59563000D03*
 | 
			
		||||
X161544000Y-59563000D03*
 | 
			
		||||
X129921000Y-85217000D03*
 | 
			
		||||
X129921000Y-77597000D03*
 | 
			
		||||
X126365000Y-85217000D03*
 | 
			
		||||
X126365000Y-77597000D03*
 | 
			
		||||
X180086000Y-85217000D03*
 | 
			
		||||
X180086000Y-77597000D03*
 | 
			
		||||
X183515000Y-85217000D03*
 | 
			
		||||
X183515000Y-77597000D03*
 | 
			
		||||
X129921000Y-108458000D03*
 | 
			
		||||
X129921000Y-100838000D03*
 | 
			
		||||
X126365000Y-108458000D03*
 | 
			
		||||
X126365000Y-100838000D03*
 | 
			
		||||
X179959000Y-108585000D03*
 | 
			
		||||
X179959000Y-100965000D03*
 | 
			
		||||
X183515000Y-108585000D03*
 | 
			
		||||
X183515000Y-100965000D03*
 | 
			
		||||
D12*
 | 
			
		||||
X155000000Y-99000000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X155000000Y-88840000D03*
 | 
			
		||||
D24*
 | 
			
		||||
X137287000Y-77724000D03*
 | 
			
		||||
X142367000Y-77724000D03*
 | 
			
		||||
X137287000Y-85344000D03*
 | 
			
		||||
X142367000Y-85344000D03*
 | 
			
		||||
X148463000Y-77724000D03*
 | 
			
		||||
X153543000Y-77724000D03*
 | 
			
		||||
X148463000Y-85344000D03*
 | 
			
		||||
X153543000Y-85344000D03*
 | 
			
		||||
X172593000Y-85344000D03*
 | 
			
		||||
X167513000Y-85344000D03*
 | 
			
		||||
X172593000Y-77724000D03*
 | 
			
		||||
X167513000Y-77724000D03*
 | 
			
		||||
X161417000Y-85344000D03*
 | 
			
		||||
X156337000Y-85344000D03*
 | 
			
		||||
X161417000Y-77724000D03*
 | 
			
		||||
X156337000Y-77724000D03*
 | 
			
		||||
X148463000Y-101219000D03*
 | 
			
		||||
X153543000Y-101219000D03*
 | 
			
		||||
X148463000Y-108839000D03*
 | 
			
		||||
X153543000Y-108839000D03*
 | 
			
		||||
X137287000Y-101219000D03*
 | 
			
		||||
X142367000Y-101219000D03*
 | 
			
		||||
X137287000Y-108839000D03*
 | 
			
		||||
X142367000Y-108839000D03*
 | 
			
		||||
X172593000Y-108712000D03*
 | 
			
		||||
X167513000Y-108712000D03*
 | 
			
		||||
X172593000Y-101092000D03*
 | 
			
		||||
X167513000Y-101092000D03*
 | 
			
		||||
X161417000Y-108712000D03*
 | 
			
		||||
X156337000Y-108712000D03*
 | 
			
		||||
X161417000Y-101092000D03*
 | 
			
		||||
X156337000Y-101092000D03*
 | 
			
		||||
D25*
 | 
			
		||||
X157178971Y-64124429D03*
 | 
			
		||||
X150828971Y-64124429D03*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										22
									
								
								samples/Gerber Image/simonShield-Edge.Cuts.gbr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								samples/Gerber Image/simonShield-Edge.Cuts.gbr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Profile,NP*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul  1 03:26:18 2017*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.100000*%
 | 
			
		||||
%ADD11C,0.150000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X196250000Y-118000000D02*
 | 
			
		||||
X113000000Y-118000000D01*
 | 
			
		||||
X196250000Y-52750000D02*
 | 
			
		||||
X196250000Y-118000000D01*
 | 
			
		||||
X113000000Y-52750000D02*
 | 
			
		||||
X196250000Y-52750000D01*
 | 
			
		||||
X113000000Y-118000000D02*
 | 
			
		||||
X113000000Y-52750000D01*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										287
									
								
								samples/Gerber Image/simonShield-F.Cu.gbr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										287
									
								
								samples/Gerber Image/simonShield-F.Cu.gbr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,287 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Copper,L1,Top,Signal*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul  1 03:26:18 2017*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.100000*%
 | 
			
		||||
%ADD11C,0.150000*%
 | 
			
		||||
%ADD12C,1.600000*%
 | 
			
		||||
%ADD13O,1.600000X1.600000*%
 | 
			
		||||
%ADD14R,2.000000X1.524000*%
 | 
			
		||||
%ADD15O,2.000000X1.524000*%
 | 
			
		||||
%ADD16R,1.300000X1.300000*%
 | 
			
		||||
%ADD17C,1.300000*%
 | 
			
		||||
%ADD18C,1.998980*%
 | 
			
		||||
%ADD19R,1.900000X2.000000*%
 | 
			
		||||
%ADD20C,1.900000*%
 | 
			
		||||
%ADD21C,1.000000*%
 | 
			
		||||
%ADD22R,1.727200X1.727200*%
 | 
			
		||||
%ADD23O,1.727200X1.727200*%
 | 
			
		||||
%ADD24C,1.000760*%
 | 
			
		||||
%ADD25C,1.397000*%
 | 
			
		||||
%ADD26C,1.600200*%
 | 
			
		||||
%ADD27C,1.270000*%
 | 
			
		||||
%ADD28C,0.304800*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X196250000Y-118000000D02*
 | 
			
		||||
X113000000Y-118000000D01*
 | 
			
		||||
X196250000Y-52750000D02*
 | 
			
		||||
X196250000Y-118000000D01*
 | 
			
		||||
X113000000Y-52750000D02*
 | 
			
		||||
X196250000Y-52750000D01*
 | 
			
		||||
X113000000Y-118000000D02*
 | 
			
		||||
X113000000Y-52750000D01*
 | 
			
		||||
D12*
 | 
			
		||||
X145400000Y-68800000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X145400000Y-58640000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X189230000Y-61468000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X191770000Y-61468000D03*
 | 
			
		||||
X189230000Y-74168000D03*
 | 
			
		||||
X191770000Y-64008000D03*
 | 
			
		||||
X189230000Y-76708000D03*
 | 
			
		||||
X191770000Y-66548000D03*
 | 
			
		||||
X189230000Y-79248000D03*
 | 
			
		||||
X191770000Y-69088000D03*
 | 
			
		||||
X189230000Y-81788000D03*
 | 
			
		||||
X191770000Y-71628000D03*
 | 
			
		||||
X189230000Y-84328000D03*
 | 
			
		||||
X191770000Y-74168000D03*
 | 
			
		||||
X189230000Y-86868000D03*
 | 
			
		||||
X191770000Y-76708000D03*
 | 
			
		||||
X189230000Y-89408000D03*
 | 
			
		||||
X191770000Y-79248000D03*
 | 
			
		||||
X189230000Y-91948000D03*
 | 
			
		||||
X191770000Y-81788000D03*
 | 
			
		||||
X189230000Y-94488000D03*
 | 
			
		||||
X191770000Y-84328000D03*
 | 
			
		||||
X189230000Y-97028000D03*
 | 
			
		||||
X191770000Y-86868000D03*
 | 
			
		||||
X189230000Y-99568000D03*
 | 
			
		||||
X191770000Y-89408000D03*
 | 
			
		||||
X191770000Y-91948000D03*
 | 
			
		||||
X189230000Y-102108000D03*
 | 
			
		||||
X191770000Y-94488000D03*
 | 
			
		||||
X191770000Y-99568000D03*
 | 
			
		||||
X191770000Y-102108000D03*
 | 
			
		||||
X191770000Y-104648000D03*
 | 
			
		||||
X191770000Y-107188000D03*
 | 
			
		||||
X189230000Y-104648000D03*
 | 
			
		||||
X189230000Y-107188000D03*
 | 
			
		||||
X189230000Y-64008000D03*
 | 
			
		||||
X189230000Y-66548000D03*
 | 
			
		||||
X189230000Y-69088000D03*
 | 
			
		||||
X189230000Y-71628000D03*
 | 
			
		||||
X189230000Y-109728000D03*
 | 
			
		||||
X191770000Y-109728000D03*
 | 
			
		||||
X191770000Y-97028000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X118110000Y-61468000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X120650000Y-61468000D03*
 | 
			
		||||
X118110000Y-64008000D03*
 | 
			
		||||
X120650000Y-64008000D03*
 | 
			
		||||
X118110000Y-66548000D03*
 | 
			
		||||
X120650000Y-66548000D03*
 | 
			
		||||
X118110000Y-69088000D03*
 | 
			
		||||
X120650000Y-69088000D03*
 | 
			
		||||
X118110000Y-71628000D03*
 | 
			
		||||
X120650000Y-71628000D03*
 | 
			
		||||
X118110000Y-74168000D03*
 | 
			
		||||
X120650000Y-74168000D03*
 | 
			
		||||
X118110000Y-76708000D03*
 | 
			
		||||
X120650000Y-76708000D03*
 | 
			
		||||
X118110000Y-79248000D03*
 | 
			
		||||
X120650000Y-79248000D03*
 | 
			
		||||
X118110000Y-81788000D03*
 | 
			
		||||
X120650000Y-81788000D03*
 | 
			
		||||
X118110000Y-84328000D03*
 | 
			
		||||
X120650000Y-84328000D03*
 | 
			
		||||
X118110000Y-86868000D03*
 | 
			
		||||
X120650000Y-86868000D03*
 | 
			
		||||
X118110000Y-89408000D03*
 | 
			
		||||
X120650000Y-89408000D03*
 | 
			
		||||
X118110000Y-91948000D03*
 | 
			
		||||
X120650000Y-91948000D03*
 | 
			
		||||
X118110000Y-94488000D03*
 | 
			
		||||
X120650000Y-94488000D03*
 | 
			
		||||
X118110000Y-97028000D03*
 | 
			
		||||
X120650000Y-97028000D03*
 | 
			
		||||
X118110000Y-99568000D03*
 | 
			
		||||
X120650000Y-99568000D03*
 | 
			
		||||
X118110000Y-102108000D03*
 | 
			
		||||
X120650000Y-102108000D03*
 | 
			
		||||
X118110000Y-104648000D03*
 | 
			
		||||
X120650000Y-104648000D03*
 | 
			
		||||
X118110000Y-107188000D03*
 | 
			
		||||
X120650000Y-107188000D03*
 | 
			
		||||
X118110000Y-109728000D03*
 | 
			
		||||
X120650000Y-109728000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X135255000Y-64008000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X135255000Y-61508000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X164465000Y-85471000D03*
 | 
			
		||||
X164465000Y-77851000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X136017000Y-72644000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X133477000Y-72644000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X173863000Y-72644000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X176403000Y-72644000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X136017000Y-96139000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X133477000Y-96139000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X173863000Y-96012000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X176403000Y-96012000D03*
 | 
			
		||||
D21*
 | 
			
		||||
X125250000Y-112250000D03*
 | 
			
		||||
X160500000Y-70500000D03*
 | 
			
		||||
X167250000Y-92250000D03*
 | 
			
		||||
D22*
 | 
			
		||||
X127007800Y-61542700D03*
 | 
			
		||||
D23*
 | 
			
		||||
X129547800Y-61542700D03*
 | 
			
		||||
X127007800Y-64082700D03*
 | 
			
		||||
X129547800Y-64082700D03*
 | 
			
		||||
D24*
 | 
			
		||||
X166243000Y-67056000D03*
 | 
			
		||||
X164973000Y-68326000D03*
 | 
			
		||||
X164973000Y-65786000D03*
 | 
			
		||||
X128143000Y-71374000D03*
 | 
			
		||||
X129413000Y-72644000D03*
 | 
			
		||||
X126873000Y-72644000D03*
 | 
			
		||||
X181737000Y-73914000D03*
 | 
			
		||||
X180467000Y-72644000D03*
 | 
			
		||||
X183007000Y-72644000D03*
 | 
			
		||||
X128143000Y-94742000D03*
 | 
			
		||||
X129413000Y-96012000D03*
 | 
			
		||||
X126873000Y-96012000D03*
 | 
			
		||||
X181737000Y-97282000D03*
 | 
			
		||||
X180467000Y-96012000D03*
 | 
			
		||||
X183007000Y-96012000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X134239000Y-85344000D03*
 | 
			
		||||
X134239000Y-77724000D03*
 | 
			
		||||
X145415000Y-85344000D03*
 | 
			
		||||
X145415000Y-77724000D03*
 | 
			
		||||
X175641000Y-85217000D03*
 | 
			
		||||
X175641000Y-77597000D03*
 | 
			
		||||
X145415000Y-108966000D03*
 | 
			
		||||
X145415000Y-101346000D03*
 | 
			
		||||
X134239000Y-108458000D03*
 | 
			
		||||
X134239000Y-100838000D03*
 | 
			
		||||
X175641000Y-108585000D03*
 | 
			
		||||
X175641000Y-100965000D03*
 | 
			
		||||
X164465000Y-108839000D03*
 | 
			
		||||
X164465000Y-101219000D03*
 | 
			
		||||
X169164000Y-62611000D03*
 | 
			
		||||
X161544000Y-62611000D03*
 | 
			
		||||
X169164000Y-59563000D03*
 | 
			
		||||
X161544000Y-59563000D03*
 | 
			
		||||
X129921000Y-85217000D03*
 | 
			
		||||
X129921000Y-77597000D03*
 | 
			
		||||
X126365000Y-85217000D03*
 | 
			
		||||
X126365000Y-77597000D03*
 | 
			
		||||
X180086000Y-85217000D03*
 | 
			
		||||
X180086000Y-77597000D03*
 | 
			
		||||
X183515000Y-85217000D03*
 | 
			
		||||
X183515000Y-77597000D03*
 | 
			
		||||
X129921000Y-108458000D03*
 | 
			
		||||
X129921000Y-100838000D03*
 | 
			
		||||
X126365000Y-108458000D03*
 | 
			
		||||
X126365000Y-100838000D03*
 | 
			
		||||
X179959000Y-108585000D03*
 | 
			
		||||
X179959000Y-100965000D03*
 | 
			
		||||
X183515000Y-108585000D03*
 | 
			
		||||
X183515000Y-100965000D03*
 | 
			
		||||
D12*
 | 
			
		||||
X155000000Y-99000000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X155000000Y-88840000D03*
 | 
			
		||||
D25*
 | 
			
		||||
X137287000Y-77724000D03*
 | 
			
		||||
X142367000Y-77724000D03*
 | 
			
		||||
X137287000Y-85344000D03*
 | 
			
		||||
X142367000Y-85344000D03*
 | 
			
		||||
X148463000Y-77724000D03*
 | 
			
		||||
X153543000Y-77724000D03*
 | 
			
		||||
X148463000Y-85344000D03*
 | 
			
		||||
X153543000Y-85344000D03*
 | 
			
		||||
X172593000Y-85344000D03*
 | 
			
		||||
X167513000Y-85344000D03*
 | 
			
		||||
X172593000Y-77724000D03*
 | 
			
		||||
X167513000Y-77724000D03*
 | 
			
		||||
X161417000Y-85344000D03*
 | 
			
		||||
X156337000Y-85344000D03*
 | 
			
		||||
X161417000Y-77724000D03*
 | 
			
		||||
X156337000Y-77724000D03*
 | 
			
		||||
X148463000Y-101219000D03*
 | 
			
		||||
X153543000Y-101219000D03*
 | 
			
		||||
X148463000Y-108839000D03*
 | 
			
		||||
X153543000Y-108839000D03*
 | 
			
		||||
X137287000Y-101219000D03*
 | 
			
		||||
X142367000Y-101219000D03*
 | 
			
		||||
X137287000Y-108839000D03*
 | 
			
		||||
X142367000Y-108839000D03*
 | 
			
		||||
X172593000Y-108712000D03*
 | 
			
		||||
X167513000Y-108712000D03*
 | 
			
		||||
X172593000Y-101092000D03*
 | 
			
		||||
X167513000Y-101092000D03*
 | 
			
		||||
X161417000Y-108712000D03*
 | 
			
		||||
X156337000Y-108712000D03*
 | 
			
		||||
X161417000Y-101092000D03*
 | 
			
		||||
X156337000Y-101092000D03*
 | 
			
		||||
D26*
 | 
			
		||||
X157178971Y-64124429D03*
 | 
			
		||||
X150828971Y-64124429D03*
 | 
			
		||||
D27*
 | 
			
		||||
X137287000Y-80137000D03*
 | 
			
		||||
X137287000Y-83439000D03*
 | 
			
		||||
X148336000Y-79629000D03*
 | 
			
		||||
X148463000Y-83185000D03*
 | 
			
		||||
X172593000Y-80137000D03*
 | 
			
		||||
X172593000Y-83312000D03*
 | 
			
		||||
X161417000Y-80010000D03*
 | 
			
		||||
X161417000Y-83439000D03*
 | 
			
		||||
X137287000Y-103505000D03*
 | 
			
		||||
X137287000Y-106680000D03*
 | 
			
		||||
X172593000Y-103378000D03*
 | 
			
		||||
X172593000Y-106934000D03*
 | 
			
		||||
X148463000Y-103505000D03*
 | 
			
		||||
X148463000Y-106934000D03*
 | 
			
		||||
X161417000Y-103759000D03*
 | 
			
		||||
X161417000Y-106934000D03*
 | 
			
		||||
D28*
 | 
			
		||||
X137287000Y-83439000D02*
 | 
			
		||||
X137287000Y-80137000D01*
 | 
			
		||||
X148336000Y-83058000D02*
 | 
			
		||||
X148336000Y-79629000D01*
 | 
			
		||||
X148463000Y-83185000D02*
 | 
			
		||||
X148336000Y-83058000D01*
 | 
			
		||||
X172593000Y-83312000D02*
 | 
			
		||||
X172593000Y-80137000D01*
 | 
			
		||||
X161417000Y-83439000D02*
 | 
			
		||||
X161417000Y-80010000D01*
 | 
			
		||||
X137287000Y-106680000D02*
 | 
			
		||||
X137287000Y-103505000D01*
 | 
			
		||||
X172593000Y-106934000D02*
 | 
			
		||||
X172593000Y-103378000D01*
 | 
			
		||||
X148463000Y-106934000D02*
 | 
			
		||||
X148463000Y-103505000D01*
 | 
			
		||||
X161417000Y-106934000D02*
 | 
			
		||||
X161417000Y-103759000D01*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										249
									
								
								samples/Gerber Image/simonShield-F.Mask.gbr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										249
									
								
								samples/Gerber Image/simonShield-F.Mask.gbr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,249 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Soldermask,Top*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul  1 03:26:18 2017*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.100000*%
 | 
			
		||||
%ADD11C,0.150000*%
 | 
			
		||||
%ADD12C,2.000000*%
 | 
			
		||||
%ADD13O,2.000000X2.000000*%
 | 
			
		||||
%ADD14R,2.400000X1.924000*%
 | 
			
		||||
%ADD15O,2.400000X1.924000*%
 | 
			
		||||
%ADD16R,1.700000X1.700000*%
 | 
			
		||||
%ADD17C,1.700000*%
 | 
			
		||||
%ADD18C,2.398980*%
 | 
			
		||||
%ADD19R,2.300000X2.400000*%
 | 
			
		||||
%ADD20C,2.300000*%
 | 
			
		||||
%ADD21C,4.000000*%
 | 
			
		||||
%ADD22R,2.127200X2.127200*%
 | 
			
		||||
%ADD23O,2.127200X2.127200*%
 | 
			
		||||
%ADD24C,1.400760*%
 | 
			
		||||
%ADD25C,1.797000*%
 | 
			
		||||
%ADD26C,2.000200*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X196250000Y-118000000D02*
 | 
			
		||||
X113000000Y-118000000D01*
 | 
			
		||||
X196250000Y-52750000D02*
 | 
			
		||||
X196250000Y-118000000D01*
 | 
			
		||||
X113000000Y-52750000D02*
 | 
			
		||||
X196250000Y-52750000D01*
 | 
			
		||||
X113000000Y-118000000D02*
 | 
			
		||||
X113000000Y-52750000D01*
 | 
			
		||||
D12*
 | 
			
		||||
X145400000Y-68800000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X145400000Y-58640000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X189230000Y-61468000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X191770000Y-61468000D03*
 | 
			
		||||
X189230000Y-74168000D03*
 | 
			
		||||
X191770000Y-64008000D03*
 | 
			
		||||
X189230000Y-76708000D03*
 | 
			
		||||
X191770000Y-66548000D03*
 | 
			
		||||
X189230000Y-79248000D03*
 | 
			
		||||
X191770000Y-69088000D03*
 | 
			
		||||
X189230000Y-81788000D03*
 | 
			
		||||
X191770000Y-71628000D03*
 | 
			
		||||
X189230000Y-84328000D03*
 | 
			
		||||
X191770000Y-74168000D03*
 | 
			
		||||
X189230000Y-86868000D03*
 | 
			
		||||
X191770000Y-76708000D03*
 | 
			
		||||
X189230000Y-89408000D03*
 | 
			
		||||
X191770000Y-79248000D03*
 | 
			
		||||
X189230000Y-91948000D03*
 | 
			
		||||
X191770000Y-81788000D03*
 | 
			
		||||
X189230000Y-94488000D03*
 | 
			
		||||
X191770000Y-84328000D03*
 | 
			
		||||
X189230000Y-97028000D03*
 | 
			
		||||
X191770000Y-86868000D03*
 | 
			
		||||
X189230000Y-99568000D03*
 | 
			
		||||
X191770000Y-89408000D03*
 | 
			
		||||
X191770000Y-91948000D03*
 | 
			
		||||
X189230000Y-102108000D03*
 | 
			
		||||
X191770000Y-94488000D03*
 | 
			
		||||
X191770000Y-99568000D03*
 | 
			
		||||
X191770000Y-102108000D03*
 | 
			
		||||
X191770000Y-104648000D03*
 | 
			
		||||
X191770000Y-107188000D03*
 | 
			
		||||
X189230000Y-104648000D03*
 | 
			
		||||
X189230000Y-107188000D03*
 | 
			
		||||
X189230000Y-64008000D03*
 | 
			
		||||
X189230000Y-66548000D03*
 | 
			
		||||
X189230000Y-69088000D03*
 | 
			
		||||
X189230000Y-71628000D03*
 | 
			
		||||
X189230000Y-109728000D03*
 | 
			
		||||
X191770000Y-109728000D03*
 | 
			
		||||
X191770000Y-97028000D03*
 | 
			
		||||
D14*
 | 
			
		||||
X118110000Y-61468000D03*
 | 
			
		||||
D15*
 | 
			
		||||
X120650000Y-61468000D03*
 | 
			
		||||
X118110000Y-64008000D03*
 | 
			
		||||
X120650000Y-64008000D03*
 | 
			
		||||
X118110000Y-66548000D03*
 | 
			
		||||
X120650000Y-66548000D03*
 | 
			
		||||
X118110000Y-69088000D03*
 | 
			
		||||
X120650000Y-69088000D03*
 | 
			
		||||
X118110000Y-71628000D03*
 | 
			
		||||
X120650000Y-71628000D03*
 | 
			
		||||
X118110000Y-74168000D03*
 | 
			
		||||
X120650000Y-74168000D03*
 | 
			
		||||
X118110000Y-76708000D03*
 | 
			
		||||
X120650000Y-76708000D03*
 | 
			
		||||
X118110000Y-79248000D03*
 | 
			
		||||
X120650000Y-79248000D03*
 | 
			
		||||
X118110000Y-81788000D03*
 | 
			
		||||
X120650000Y-81788000D03*
 | 
			
		||||
X118110000Y-84328000D03*
 | 
			
		||||
X120650000Y-84328000D03*
 | 
			
		||||
X118110000Y-86868000D03*
 | 
			
		||||
X120650000Y-86868000D03*
 | 
			
		||||
X118110000Y-89408000D03*
 | 
			
		||||
X120650000Y-89408000D03*
 | 
			
		||||
X118110000Y-91948000D03*
 | 
			
		||||
X120650000Y-91948000D03*
 | 
			
		||||
X118110000Y-94488000D03*
 | 
			
		||||
X120650000Y-94488000D03*
 | 
			
		||||
X118110000Y-97028000D03*
 | 
			
		||||
X120650000Y-97028000D03*
 | 
			
		||||
X118110000Y-99568000D03*
 | 
			
		||||
X120650000Y-99568000D03*
 | 
			
		||||
X118110000Y-102108000D03*
 | 
			
		||||
X120650000Y-102108000D03*
 | 
			
		||||
X118110000Y-104648000D03*
 | 
			
		||||
X120650000Y-104648000D03*
 | 
			
		||||
X118110000Y-107188000D03*
 | 
			
		||||
X120650000Y-107188000D03*
 | 
			
		||||
X118110000Y-109728000D03*
 | 
			
		||||
X120650000Y-109728000D03*
 | 
			
		||||
D16*
 | 
			
		||||
X135255000Y-64008000D03*
 | 
			
		||||
D17*
 | 
			
		||||
X135255000Y-61508000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X164465000Y-85471000D03*
 | 
			
		||||
X164465000Y-77851000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X136017000Y-72644000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X133477000Y-72644000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X173863000Y-72644000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X176403000Y-72644000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X136017000Y-96139000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X133477000Y-96139000D03*
 | 
			
		||||
D19*
 | 
			
		||||
X173863000Y-96012000D03*
 | 
			
		||||
D20*
 | 
			
		||||
X176403000Y-96012000D03*
 | 
			
		||||
D21*
 | 
			
		||||
X125250000Y-112250000D03*
 | 
			
		||||
X160500000Y-70500000D03*
 | 
			
		||||
X167250000Y-92250000D03*
 | 
			
		||||
D22*
 | 
			
		||||
X127007800Y-61542700D03*
 | 
			
		||||
D23*
 | 
			
		||||
X129547800Y-61542700D03*
 | 
			
		||||
X127007800Y-64082700D03*
 | 
			
		||||
X129547800Y-64082700D03*
 | 
			
		||||
D24*
 | 
			
		||||
X166243000Y-67056000D03*
 | 
			
		||||
X164973000Y-68326000D03*
 | 
			
		||||
X164973000Y-65786000D03*
 | 
			
		||||
X128143000Y-71374000D03*
 | 
			
		||||
X129413000Y-72644000D03*
 | 
			
		||||
X126873000Y-72644000D03*
 | 
			
		||||
X181737000Y-73914000D03*
 | 
			
		||||
X180467000Y-72644000D03*
 | 
			
		||||
X183007000Y-72644000D03*
 | 
			
		||||
X128143000Y-94742000D03*
 | 
			
		||||
X129413000Y-96012000D03*
 | 
			
		||||
X126873000Y-96012000D03*
 | 
			
		||||
X181737000Y-97282000D03*
 | 
			
		||||
X180467000Y-96012000D03*
 | 
			
		||||
X183007000Y-96012000D03*
 | 
			
		||||
D18*
 | 
			
		||||
X134239000Y-85344000D03*
 | 
			
		||||
X134239000Y-77724000D03*
 | 
			
		||||
X145415000Y-85344000D03*
 | 
			
		||||
X145415000Y-77724000D03*
 | 
			
		||||
X175641000Y-85217000D03*
 | 
			
		||||
X175641000Y-77597000D03*
 | 
			
		||||
X145415000Y-108966000D03*
 | 
			
		||||
X145415000Y-101346000D03*
 | 
			
		||||
X134239000Y-108458000D03*
 | 
			
		||||
X134239000Y-100838000D03*
 | 
			
		||||
X175641000Y-108585000D03*
 | 
			
		||||
X175641000Y-100965000D03*
 | 
			
		||||
X164465000Y-108839000D03*
 | 
			
		||||
X164465000Y-101219000D03*
 | 
			
		||||
X169164000Y-62611000D03*
 | 
			
		||||
X161544000Y-62611000D03*
 | 
			
		||||
X169164000Y-59563000D03*
 | 
			
		||||
X161544000Y-59563000D03*
 | 
			
		||||
X129921000Y-85217000D03*
 | 
			
		||||
X129921000Y-77597000D03*
 | 
			
		||||
X126365000Y-85217000D03*
 | 
			
		||||
X126365000Y-77597000D03*
 | 
			
		||||
X180086000Y-85217000D03*
 | 
			
		||||
X180086000Y-77597000D03*
 | 
			
		||||
X183515000Y-85217000D03*
 | 
			
		||||
X183515000Y-77597000D03*
 | 
			
		||||
X129921000Y-108458000D03*
 | 
			
		||||
X129921000Y-100838000D03*
 | 
			
		||||
X126365000Y-108458000D03*
 | 
			
		||||
X126365000Y-100838000D03*
 | 
			
		||||
X179959000Y-108585000D03*
 | 
			
		||||
X179959000Y-100965000D03*
 | 
			
		||||
X183515000Y-108585000D03*
 | 
			
		||||
X183515000Y-100965000D03*
 | 
			
		||||
D12*
 | 
			
		||||
X155000000Y-99000000D03*
 | 
			
		||||
D13*
 | 
			
		||||
X155000000Y-88840000D03*
 | 
			
		||||
D25*
 | 
			
		||||
X137287000Y-77724000D03*
 | 
			
		||||
X142367000Y-77724000D03*
 | 
			
		||||
X137287000Y-85344000D03*
 | 
			
		||||
X142367000Y-85344000D03*
 | 
			
		||||
X148463000Y-77724000D03*
 | 
			
		||||
X153543000Y-77724000D03*
 | 
			
		||||
X148463000Y-85344000D03*
 | 
			
		||||
X153543000Y-85344000D03*
 | 
			
		||||
X172593000Y-85344000D03*
 | 
			
		||||
X167513000Y-85344000D03*
 | 
			
		||||
X172593000Y-77724000D03*
 | 
			
		||||
X167513000Y-77724000D03*
 | 
			
		||||
X161417000Y-85344000D03*
 | 
			
		||||
X156337000Y-85344000D03*
 | 
			
		||||
X161417000Y-77724000D03*
 | 
			
		||||
X156337000Y-77724000D03*
 | 
			
		||||
X148463000Y-101219000D03*
 | 
			
		||||
X153543000Y-101219000D03*
 | 
			
		||||
X148463000Y-108839000D03*
 | 
			
		||||
X153543000Y-108839000D03*
 | 
			
		||||
X137287000Y-101219000D03*
 | 
			
		||||
X142367000Y-101219000D03*
 | 
			
		||||
X137287000Y-108839000D03*
 | 
			
		||||
X142367000Y-108839000D03*
 | 
			
		||||
X172593000Y-108712000D03*
 | 
			
		||||
X167513000Y-108712000D03*
 | 
			
		||||
X172593000Y-101092000D03*
 | 
			
		||||
X167513000Y-101092000D03*
 | 
			
		||||
X161417000Y-108712000D03*
 | 
			
		||||
X156337000Y-108712000D03*
 | 
			
		||||
X161417000Y-101092000D03*
 | 
			
		||||
X156337000Y-101092000D03*
 | 
			
		||||
D26*
 | 
			
		||||
X157178971Y-64124429D03*
 | 
			
		||||
X150828971Y-64124429D03*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										392
									
								
								samples/Gerber Image/simonShield-F.SilkS.gbr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										392
									
								
								samples/Gerber Image/simonShield-F.SilkS.gbr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,392 @@
 | 
			
		||||
G04 #@! TF.FileFunction,Legend,Top*
 | 
			
		||||
%FSLAX46Y46*%
 | 
			
		||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul  1 03:26:18 2017*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.100000*%
 | 
			
		||||
%ADD11C,0.150000*%
 | 
			
		||||
%ADD12C,0.187500*%
 | 
			
		||||
%ADD13C,0.125000*%
 | 
			
		||||
%ADD14C,0.300000*%
 | 
			
		||||
%ADD15C,0.120000*%
 | 
			
		||||
%ADD16C,0.002540*%
 | 
			
		||||
%ADD17C,0.200000*%
 | 
			
		||||
%ADD18C,0.170000*%
 | 
			
		||||
%ADD19C,0.175000*%
 | 
			
		||||
%ADD20C,0.180000*%
 | 
			
		||||
%ADD21C,0.190000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X196250000Y-118000000D02*
 | 
			
		||||
X113000000Y-118000000D01*
 | 
			
		||||
X196250000Y-52750000D02*
 | 
			
		||||
X196250000Y-118000000D01*
 | 
			
		||||
X113000000Y-52750000D02*
 | 
			
		||||
X196250000Y-52750000D01*
 | 
			
		||||
X113000000Y-118000000D02*
 | 
			
		||||
X113000000Y-52750000D01*
 | 
			
		||||
D12*
 | 
			
		||||
X171964285Y-68083333D02*
 | 
			
		||||
X123317001Y-106767381D01*
 | 
			
		||||
X123650334Y-106767381D02*
 | 
			
		||||
X123745572Y-106767381D01*
 | 
			
		||||
X123793191Y-106815000D01*
 | 
			
		||||
X123840810Y-106910238D01*
 | 
			
		||||
X123864619Y-107100714D01*
 | 
			
		||||
X123864619Y-107434048D01*
 | 
			
		||||
X123840810Y-107624524D01*
 | 
			
		||||
X123793191Y-107719762D01*
 | 
			
		||||
X123745572Y-107767381D01*
 | 
			
		||||
X123650334Y-107767381D01*
 | 
			
		||||
X123602715Y-107719762D01*
 | 
			
		||||
X123555096Y-107624524D01*
 | 
			
		||||
X123531286Y-107434048D01*
 | 
			
		||||
X123531286Y-107100714D01*
 | 
			
		||||
X123555096Y-106910238D01*
 | 
			
		||||
X123602715Y-106815000D01*
 | 
			
		||||
X123650334Y-106767381D01*
 | 
			
		||||
X124031287Y-106767381D02*
 | 
			
		||||
X196102429Y-69431810D01*
 | 
			
		||||
D13*
 | 
			
		||||
X193274334Y-66254381D02*
 | 
			
		||||
X193393381Y-67254381D01*
 | 
			
		||||
X193488619Y-66540095D01*
 | 
			
		||||
X193583857Y-67254381D01*
 | 
			
		||||
X193702905Y-66254381D01*
 | 
			
		||||
X193869572Y-66968667D02*
 | 
			
		||||
X194107667Y-66968667D01*
 | 
			
		||||
X193821953Y-67254381D02*
 | 
			
		||||
X193988620Y-66254381D01*
 | 
			
		||||
X194155286Y-67254381D01*
 | 
			
		||||
X194321953Y-67254381D02*
 | 
			
		||||
X194321953Y-66254381D01*
 | 
			
		||||
X194607667Y-67254381D02*
 | 
			
		||||
X194393381Y-66682952D01*
 | 
			
		||||
X194607667Y-66254381D02*
 | 
			
		||||
X194321953Y-66825810D01*
 | 
			
		||||
X194821953Y-66730571D02*
 | 
			
		||||
X194988619Y-66730571D01*
 | 
			
		||||
X195060048Y-67254381D02*
 | 
			
		||||
X194821953Y-67254381D01*
 | 
			
		||||
X194821953Y-66254381D01*
 | 
			
		||||
X195060048Y-66254381D01*
 | 
			
		||||
X195274334Y-66254381D02*
 | 
			
		||||
X195274334Y-67063905D01*
 | 
			
		||||
X195298143Y-67159143D01*
 | 
			
		||||
X195321953Y-67206762D01*
 | 
			
		||||
X195369572Y-67254381D01*
 | 
			
		||||
X195464810Y-67254381D01*
 | 
			
		||||
X195512429Y-67206762D01*
 | 
			
		||||
X195536238Y-67159143D01*
 | 
			
		||||
X195560048Y-67063905D01*
 | 
			
		||||
X195560048Y-66254381D01*
 | 
			
		||||
X195798144Y-67254381D02*
 | 
			
		||||
X195798144Y-66254381D01*
 | 
			
		||||
X195988620Y-66254381D01*
 | 
			
		||||
X196036239Y-66302000D01*
 | 
			
		||||
X196060048Y-66349619D01*
 | 
			
		||||
X196083858Y-66444857D01*
 | 
			
		||||
X196083858Y-66587714D01*
 | 
			
		||||
X196060048Y-66682952D01*
 | 
			
		||||
X196036239Y-66730571D01*
 | 
			
		||||
X195988620Y-66778190D01*
 | 
			
		||||
X195798144Y-66778190D01*
 | 
			
		||||
D17*
 | 
			
		||||
X193929096Y-64016000D02*
 | 
			
		||||
X193833858Y-63968381D01*
 | 
			
		||||
X193691001Y-63968381D01*
 | 
			
		||||
X193548143Y-64016000D01*
 | 
			
		||||
X193452905Y-64111238D01*
 | 
			
		||||
X193405286Y-64206476D01*
 | 
			
		||||
X193357667Y-64396952D01*
 | 
			
		||||
X193357667Y-64539810D01*
 | 
			
		||||
X193405286Y-64730286D01*
 | 
			
		||||
X193452905Y-64825524D01*
 | 
			
		||||
X193548143Y-64920762D01*
 | 
			
		||||
X193691001Y-64968381D01*
 | 
			
		||||
X193786239Y-64968381D01*
 | 
			
		||||
X193929096Y-64920762D01*
 | 
			
		||||
X193976715Y-64873143D01*
 | 
			
		||||
X193976715Y-64539810D01*
 | 
			
		||||
X193786239Y-64539810D01*
 | 
			
		||||
X194405286Y-64968381D02*
 | 
			
		||||
X194405286Y-63968381D01*
 | 
			
		||||
X194976715Y-64968381D01*
 | 
			
		||||
X194976715Y-63968381D01*
 | 
			
		||||
X195452905Y-64968381D02*
 | 
			
		||||
X195452905Y-63968381D01*
 | 
			
		||||
X195691000Y-63968381D01*
 | 
			
		||||
X195833858Y-64016000D01*
 | 
			
		||||
X195929096Y-64111238D01*
 | 
			
		||||
X195976715Y-64206476D01*
 | 
			
		||||
X196024334Y-64396952D01*
 | 
			
		||||
X196024334Y-64539810D01*
 | 
			
		||||
X195976715Y-64730286D01*
 | 
			
		||||
X195929096Y-64825524D01*
 | 
			
		||||
X195833858Y-64920762D01*
 | 
			
		||||
X195691000Y-64968381D01*
 | 
			
		||||
X195452905Y-64968381D01*
 | 
			
		||||
X193278286Y-61539429D02*
 | 
			
		||||
X194040191Y-61539429D01*
 | 
			
		||||
X193659239Y-61920381D02*
 | 
			
		||||
X193659239Y-61158476D01*
 | 
			
		||||
X194992572Y-60920381D02*
 | 
			
		||||
X194516381Y-60920381D01*
 | 
			
		||||
X194468762Y-61396571D01*
 | 
			
		||||
X194516381Y-61348952D01*
 | 
			
		||||
X194611619Y-61301333D01*
 | 
			
		||||
X194849715Y-61301333D01*
 | 
			
		||||
X194944953Y-61348952D01*
 | 
			
		||||
X194992572Y-61396571D01*
 | 
			
		||||
X186697905Y-84637524D01*
 | 
			
		||||
X186602667Y-84732762D01*
 | 
			
		||||
X186459809Y-84780381D01*
 | 
			
		||||
X186221714Y-84780381D01*
 | 
			
		||||
X187174095Y-84494667D02*
 | 
			
		||||
X187650286Y-84494667D01*
 | 
			
		||||
X187078857Y-84780381D02*
 | 
			
		||||
X187412190Y-83780381D01*
 | 
			
		||||
X187745524Y-84780381D01*
 | 
			
		||||
D13*
 | 
			
		||||
X185555048Y-81240381D02*
 | 
			
		||||
X185721715Y-82240381D01*
 | 
			
		||||
X185888381Y-81240381D01*
 | 
			
		||||
X186055048Y-82240381D02*
 | 
			
		||||
X186055048Y-81240381D01*
 | 
			
		||||
X186174095Y-81240381D01*
 | 
			
		||||
X186245524Y-81288000D01*
 | 
			
		||||
X186293143Y-81383238D01*
 | 
			
		||||
X186316952Y-81478476D01*
 | 
			
		||||
X186340762Y-81668952D01*
 | 
			
		||||
X186340762Y-81811810D01*
 | 
			
		||||
X186316952Y-82002286D01*
 | 
			
		||||
X186293143Y-82097524D01*
 | 
			
		||||
X186245524Y-82192762D01*
 | 
			
		||||
X186174095Y-82240381D01*
 | 
			
		||||
X186055048Y-82240381D01*
 | 
			
		||||
X186555048Y-82240381D02*
 | 
			
		||||
X186555048Y-81240381D01*
 | 
			
		||||
X186674095Y-81240381D01*
 | 
			
		||||
X186745524Y-81288000D01*
 | 
			
		||||
X186793143Y-81383238D01*
 | 
			
		||||
X186816952Y-81478476D01*
 | 
			
		||||
X186840762Y-81668952D01*
 | 
			
		||||
X186840762Y-81811810D01*
 | 
			
		||||
X186816952Y-82002286D01*
 | 
			
		||||
X186793143Y-82097524D01*
 | 
			
		||||
X186745524Y-82192762D01*
 | 
			
		||||
X186674095Y-82240381D01*
 | 
			
		||||
X186555048Y-82240381D01*
 | 
			
		||||
X187031238Y-81954667D02*
 | 
			
		||||
X187269333Y-81954667D01*
 | 
			
		||||
X186983619Y-82240381D02*
 | 
			
		||||
X187150286Y-81240381D01*
 | 
			
		||||
X187316952Y-82240381D01*
 | 
			
		||||
D17*
 | 
			
		||||
X185245524Y-79700381D02*
 | 
			
		||||
X185245524Y-78700381D01*
 | 
			
		||||
X185483619Y-78700381D01*
 | 
			
		||||
X185626477Y-78748000D01*
 | 
			
		||||
X185721715Y-78843238D01*
 | 
			
		||||
X185769334Y-78938476D01*
 | 
			
		||||
X185816953Y-79128952D01*
 | 
			
		||||
X185816953Y-79271810D01*
 | 
			
		||||
X185769334Y-79462286D01*
 | 
			
		||||
X185721715Y-79557524D01*
 | 
			
		||||
X185626477Y-79652762D01*
 | 
			
		||||
X185483619Y-79700381D01*
 | 
			
		||||
X185245524Y-79700381D01*
 | 
			
		||||
X186197905Y-79414667D02*
 | 
			
		||||
X186674096Y-79414667D01*
 | 
			
		||||
X186102667Y-79700381D02*
 | 
			
		||||
X186436000Y-78700381D01*
 | 
			
		||||
X186769334Y-79700381D01*
 | 
			
		||||
X187674096Y-79605143D02*
 | 
			
		||||
X187626477Y-79652762D01*
 | 
			
		||||
X187483620Y-79700381D01*
 | 
			
		||||
X187388382Y-79700381D01*
 | 
			
		||||
X187245524Y-79652762D01*
 | 
			
		||||
X187150286Y-79557524D01*
 | 
			
		||||
X187102667Y-79462286D01*
 | 
			
		||||
X187055048Y-79271810D01*
 | 
			
		||||
X187055048Y-79128952D01*
 | 
			
		||||
X187102667Y-78938476D01*
 | 
			
		||||
X187150286Y-78843238D01*
 | 
			
		||||
X187245524Y-78748000D01*
 | 
			
		||||
X187388382Y-78700381D01*
 | 
			
		||||
X187483620Y-78700381D01*
 | 
			
		||||
X187626477Y-78748000D01*
 | 
			
		||||
X187674096Y-78795619D01*
 | 
			
		||||
X185745524Y-77065143D02*
 | 
			
		||||
X185697905Y-77112762D01*
 | 
			
		||||
X185555048Y-77160381D01*
 | 
			
		||||
X185459810Y-77160381D01*
 | 
			
		||||
X185316952Y-77112762D01*
 | 
			
		||||
X185221714Y-77017524D01*
 | 
			
		||||
X185174095Y-76922286D01*
 | 
			
		||||
X185126476Y-76731810D01*
 | 
			
		||||
X185126476Y-76588952D01*
 | 
			
		||||
X185174095Y-76398476D01*
 | 
			
		||||
X185221714Y-76303238D01*
 | 
			
		||||
X185316952Y-76208000D01*
 | 
			
		||||
X185459810Y-76160381D01*
 | 
			
		||||
X185555048Y-76160381D01*
 | 
			
		||||
X185697905Y-76208000D01*
 | 
			
		||||
X185745524Y-76255619D01*
 | 
			
		||||
X186174095Y-77160381D02*
 | 
			
		||||
X186174095Y-76160381D01*
 | 
			
		||||
X186174095Y-76636571D02*
 | 
			
		||||
X186745524Y-76636571D01*
 | 
			
		||||
X186745524Y-77160381D02*
 | 
			
		||||
X186745524Y-76160381D01*
 | 
			
		||||
X187745524Y-77160381D02*
 | 
			
		||||
X187174095Y-77160381D01*
 | 
			
		||||
X187459809Y-77160381D02*
 | 
			
		||||
X187459809Y-76160381D01*
 | 
			
		||||
X187364571Y-76303238D01*
 | 
			
		||||
X187269333Y-76398476D01*
 | 
			
		||||
X187174095Y-76446095D01*
 | 
			
		||||
X185491524Y-74525143D02*
 | 
			
		||||
X185443905Y-74572762D01*
 | 
			
		||||
X185301048Y-74620381D01*
 | 
			
		||||
X185205810Y-74620381D01*
 | 
			
		||||
X185062952Y-74572762D01*
 | 
			
		||||
X184967714Y-74477524D01*
 | 
			
		||||
X184920095Y-74382286D01*
 | 
			
		||||
X184872476Y-74191810D01*
 | 
			
		||||
X184872476Y-74048952D01*
 | 
			
		||||
X184920095Y-73858476D01*
 | 
			
		||||
X184967714Y-73763238D01*
 | 
			
		||||
X185062952Y-73668000D01*
 | 
			
		||||
X185205810Y-73620381D01*
 | 
			
		||||
X185301048Y-73620381D01*
 | 
			
		||||
X185443905Y-73668000D01*
 | 
			
		||||
X185491524Y-73715619D01*
 | 
			
		||||
X185920095Y-74620381D02*
 | 
			
		||||
X185920095Y-73620381D01*
 | 
			
		||||
X185920095Y-74096571D02*
 | 
			
		||||
X186491524Y-74096571D01*
 | 
			
		||||
X186491524Y-74620381D02*
 | 
			
		||||
X186491524Y-73620381D01*
 | 
			
		||||
X186920095Y-73715619D02*
 | 
			
		||||
X186967714Y-73668000D01*
 | 
			
		||||
X187062952Y-73620381D01*
 | 
			
		||||
X187301048Y-73620381D01*
 | 
			
		||||
X187396286Y-73668000D01*
 | 
			
		||||
X187443905Y-73715619D01*
 | 
			
		||||
X187491524Y-73810857D01*
 | 
			
		||||
X187491524Y-73906095D01*
 | 
			
		||||
X187443905Y-74048952D01*
 | 
			
		||||
X186872476Y-74620381D01*
 | 
			
		||||
X187491524Y-74620381D01*
 | 
			
		||||
X185491524Y-71985143D02*
 | 
			
		||||
X185443905Y-72032762D01*
 | 
			
		||||
X185301048Y-72080381D01*
 | 
			
		||||
X185205810Y-72080381D01*
 | 
			
		||||
X185062952Y-72032762D01*
 | 
			
		||||
X184967714Y-71937524D01*
 | 
			
		||||
X184920095Y-71842286D01*
 | 
			
		||||
X184872476Y-71651810D01*
 | 
			
		||||
X184872476Y-71508952D01*
 | 
			
		||||
X184920095Y-71318476D01*
 | 
			
		||||
X184967714Y-71223238D01*
 | 
			
		||||
X185062952Y-71128000D01*
 | 
			
		||||
X185205810Y-71080381D01*
 | 
			
		||||
X185301048Y-71080381D01*
 | 
			
		||||
X185443905Y-71128000D01*
 | 
			
		||||
X185491524Y-71175619D01*
 | 
			
		||||
X185920095Y-72080381D02*
 | 
			
		||||
X185920095Y-71080381D01*
 | 
			
		||||
X185920095Y-71556571D02*
 | 
			
		||||
X186491524Y-71556571D01*
 | 
			
		||||
X186491524Y-72080381D02*
 | 
			
		||||
X186491524Y-71080381D01*
 | 
			
		||||
X186872476Y-71080381D02*
 | 
			
		||||
X187491524Y-71080381D01*
 | 
			
		||||
X187158190Y-71461333D01*
 | 
			
		||||
X187301048Y-71461333D01*
 | 
			
		||||
X187396286Y-71508952D01*
 | 
			
		||||
X187443905Y-71556571D01*
 | 
			
		||||
X187491524Y-71651810D01*
 | 
			
		||||
X187491524Y-71889905D01*
 | 
			
		||||
X187443905Y-71985143D01*
 | 
			
		||||
X187396286Y-72032762D01*
 | 
			
		||||
X187301048Y-72080381D01*
 | 
			
		||||
X187015333Y-72080381D01*
 | 
			
		||||
X186920095Y-72032762D01*
 | 
			
		||||
X186872476Y-71985143D01*
 | 
			
		||||
D13*
 | 
			
		||||
X186094762Y-68588000D02*
 | 
			
		||||
X186047143Y-68540381D01*
 | 
			
		||||
X185975715Y-68540381D01*
 | 
			
		||||
X185904286Y-68588000D01*
 | 
			
		||||
X185856667Y-68683238D01*
 | 
			
		||||
X185832858Y-68778476D01*
 | 
			
		||||
X185809048Y-68968952D01*
 | 
			
		||||
X185809048Y-69111810D01*
 | 
			
		||||
X185832858Y-69302286D01*
 | 
			
		||||
X185856667Y-69397524D01*
 | 
			
		||||
X185904286Y-69492762D01*
 | 
			
		||||
X185975715Y-69540381D01*
 | 
			
		||||
X186023334Y-69540381D01*
 | 
			
		||||
X186094762Y-69492762D01*
 | 
			
		||||
X186118572Y-69445143D01*
 | 
			
		||||
X186118572Y-69111810D01*
 | 
			
		||||
X186023334Y-69111810D01*
 | 
			
		||||
X186332858Y-69540381D02*
 | 
			
		||||
X186332858Y-68540381D01*
 | 
			
		||||
X186618572Y-69540381D01*
 | 
			
		||||
X186618572Y-68540381D01*
 | 
			
		||||
X186856668Y-69540381D02*
 | 
			
		||||
X186856668Y-68540381D01*
 | 
			
		||||
X186975715Y-68540381D01*
 | 
			
		||||
X187047144Y-68588000D01*
 | 
			
		||||
X187094763Y-68683238D01*
 | 
			
		||||
X187118572Y-68778476D01*
 | 
			
		||||
X187142382Y-68968952D01*
 | 
			
		||||
X187142382Y-69111810D01*
 | 
			
		||||
X187118572Y-69302286D01*
 | 
			
		||||
X187094763Y-69397524D01*
 | 
			
		||||
X187047144Y-69492762D01*
 | 
			
		||||
X186975715Y-69540381D01*
 | 
			
		||||
X186856668Y-69540381D01*
 | 
			
		||||
X187332858Y-69254667D02*
 | 
			
		||||
X187570953Y-69254667D01*
 | 
			
		||||
X187285239Y-69540381D02*
 | 
			
		||||
X187451906Y-68540381D01*
 | 
			
		||||
X187618572Y-69540381D01*
 | 
			
		||||
D17*
 | 
			
		||||
X185459810Y-67000381D02*
 | 
			
		||||
X185459810Y-66000381D01*
 | 
			
		||||
X185888381Y-66952762D02*
 | 
			
		||||
X186031238Y-67000381D01*
 | 
			
		||||
X186269334Y-67000381D01*
 | 
			
		||||
X186364572Y-66952762D01*
 | 
			
		||||
X186412191Y-66905143D01*
 | 
			
		||||
X186459810Y-66809905D01*
 | 
			
		||||
X186459810Y-66714667D01*
 | 
			
		||||
X186412191Y-66619429D01*
 | 
			
		||||
X186364572Y-66571810D01*
 | 
			
		||||
X186269334Y-66524190D01*
 | 
			
		||||
X186078857Y-66476571D01*
 | 
			
		||||
X185983619Y-66428952D01*
 | 
			
		||||
X185936000Y-66381333D01*
 | 
			
		||||
X185888381Y-66286095D01*
 | 
			
		||||
X185888381Y-66190857D01*
 | 
			
		||||
X185936000Y-66095619D01*
 | 
			
		||||
X185983619Y-66048000D01*
 | 
			
		||||
X186078857Y-66000381D01*
 | 
			
		||||
X186316953Y-66000381D01*
 | 
			
		||||
X186459810Y-66048000D01*
 | 
			
		||||
X186888381Y-67000381D02*
 | 
			
		||||
X186888381Y-66000381D01*
 | 
			
		||||
X170488095Y-97273810D01*
 | 
			
		||||
X146122399Y-64195858D02*
 | 
			
		||||
X146884304Y-64195858D01*
 | 
			
		||||
X146503352Y-64576810D02*
 | 
			
		||||
X146503352Y-63814905D01*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										805
									
								
								samples/Gerber Image/simonShield-drl_map.gbr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										805
									
								
								samples/Gerber Image/simonShield-drl_map.gbr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,805 @@
 | 
			
		||||
%FSLAX45Y45*%
 | 
			
		||||
G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)*
 | 
			
		||||
G04 Created by KiCad (PCBNEW 4.0.6-e0-6349~53~ubuntu16.04.1) date Sat Jul  1 03:26:22 2017*
 | 
			
		||||
%MOMM*%
 | 
			
		||||
%LPD*%
 | 
			
		||||
G01*
 | 
			
		||||
G04 APERTURE LIST*
 | 
			
		||||
%ADD10C,0.127000*%
 | 
			
		||||
%ADD11C,0.150000*%
 | 
			
		||||
%ADD12C,0.200000*%
 | 
			
		||||
%ADD13C,0.300000*%
 | 
			
		||||
G04 APERTURE END LIST*
 | 
			
		||||
D10*
 | 
			
		||||
D11*
 | 
			
		||||
X19625000Y-11800000D02*
 | 
			
		||||
X11300000Y-11800000D01*
 | 
			
		||||
X19625000Y-5275000D02*
 | 
			
		||||
X19625000Y-11800000D01*
 | 
			
		||||
X11300000Y-5275000D02*
 | 
			
		||||
X19625000Y-5275000D01*
 | 
			
		||||
X11300000Y-11800000D02*
 | 
			
		||||
X11300000Y-5275000D01*
 | 
			
		||||
D12*
 | 
			
		||||
X12657300Y-7234400D02*
 | 
			
		||||
X12717300Y-7294400D01*
 | 
			
		||||
X12717300Y-7234400D02*
 | 
			
		||||
X12657300Y-7294400D01*
 | 
			
		||||
X12657300Y-9571200D02*
 | 
			
		||||
X18270700Y-9571200D02*
 | 
			
		||||
X18330700Y-9631200D01*
 | 
			
		||||
X18330700Y-9571200D02*
 | 
			
		||||
X18270700Y-9631200D01*
 | 
			
		||||
X13764260Y-8013700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13764260Y-8013700I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13764260Y-8343900D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13764260Y-8343900I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13764260Y-10350500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13764260Y-10350500I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13764260Y-10668000D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13764260Y-10668000I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X14869160Y-7962900D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X14869160Y-7962900I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X14881860Y-8318500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X14881860Y-8318500I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X14881860Y-10350500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X14881860Y-10350500I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X14881860Y-10693400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X14881860Y-10693400I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16177260Y-8001000D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16177260Y-8001000I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16177260Y-8343900D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16177260Y-8343900I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16177260Y-10375900D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16177260Y-10375900I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16177260Y-10693400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16177260Y-10693400I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17294860Y-8013700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17294860Y-8013700I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17294860Y-8331200D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17294860Y-8331200I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17294860Y-10337800D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17294860Y-10337800I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17294860Y-10693400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17294860Y-10693400I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13525500Y-6360800D02*
 | 
			
		||||
X13525500Y-6440800D01*
 | 
			
		||||
X13485500Y-6400800D02*
 | 
			
		||||
X13565500Y-6400800D01*
 | 
			
		||||
X14540000Y-5824000D02*
 | 
			
		||||
X14540000Y-5904000D01*
 | 
			
		||||
X14500000Y-5864000D02*
 | 
			
		||||
X14580000Y-5864000D01*
 | 
			
		||||
X14540000Y-6840000D02*
 | 
			
		||||
X14540000Y-6920000D01*
 | 
			
		||||
X14500000Y-6880000D02*
 | 
			
		||||
X14580000Y-6880000D01*
 | 
			
		||||
X15500000Y-8844000D02*
 | 
			
		||||
X15500000Y-8924000D01*
 | 
			
		||||
X15460000Y-8884000D02*
 | 
			
		||||
X15540000Y-8884000D01*
 | 
			
		||||
X15500000Y-9860000D02*
 | 
			
		||||
X15500000Y-9940000D01*
 | 
			
		||||
X15460000Y-9900000D02*
 | 
			
		||||
X15540000Y-9900000D01*
 | 
			
		||||
X12586462Y-7809738D01*
 | 
			
		||||
X12686538Y-7759700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X12686538Y-7759700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X12586462Y-8471662D02*
 | 
			
		||||
X12686538Y-8571738D01*
 | 
			
		||||
X12686538Y-8471662D02*
 | 
			
		||||
X12586462Y-8571738D01*
 | 
			
		||||
X12686538Y-8521700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X12686538Y-8521700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X12586462Y-10033762D02*
 | 
			
		||||
X12686538Y-10133838D01*
 | 
			
		||||
X12686538Y-10033762D02*
 | 
			
		||||
X12586462Y-10133838D01*
 | 
			
		||||
X12686538Y-10083800D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X12686538Y-10083800I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X12586462Y-10795762D02*
 | 
			
		||||
X12686538Y-10895838D01*
 | 
			
		||||
X12686538Y-10795762D02*
 | 
			
		||||
X12586462Y-10895838D01*
 | 
			
		||||
X12686538Y-10845800D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X12686538Y-10845800I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X12942062Y-7709662D02*
 | 
			
		||||
X13042138Y-7809738D01*
 | 
			
		||||
X13042138Y-7709662D02*
 | 
			
		||||
X12942062Y-7809738D01*
 | 
			
		||||
X13042138Y-7759700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13042138Y-7759700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X12942062Y-8471662D02*
 | 
			
		||||
X13042138Y-8571738D01*
 | 
			
		||||
X13042138Y-8471662D02*
 | 
			
		||||
X12942062Y-8571738D01*
 | 
			
		||||
X13042138Y-8521700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13042138Y-8521700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X12942062Y-10033762D02*
 | 
			
		||||
X13042138Y-10133838D01*
 | 
			
		||||
X13042138Y-10033762D02*
 | 
			
		||||
X12942062Y-10133838D01*
 | 
			
		||||
X13042138Y-10083800D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13042138Y-10083800I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X12942062Y-10795762D02*
 | 
			
		||||
X13042138Y-10895838D01*
 | 
			
		||||
X13042138Y-10795762D02*
 | 
			
		||||
X12942062Y-10895838D01*
 | 
			
		||||
X13042138Y-10845800D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13042138Y-10845800I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13297662Y-7214362D02*
 | 
			
		||||
X13397738Y-7314438D01*
 | 
			
		||||
X13397738Y-7214362D02*
 | 
			
		||||
X13297662Y-7314438D01*
 | 
			
		||||
X13397738Y-7264400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13397738Y-7264400I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13297662Y-9563862D02*
 | 
			
		||||
X13397738Y-9663938D01*
 | 
			
		||||
X13397738Y-9563862D02*
 | 
			
		||||
X13297662Y-9663938D01*
 | 
			
		||||
X13397738Y-9613900D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13397738Y-9613900I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13373862Y-7722362D02*
 | 
			
		||||
X13473938Y-7822438D01*
 | 
			
		||||
X13473938Y-7722362D02*
 | 
			
		||||
X13373862Y-7822438D01*
 | 
			
		||||
X13473938Y-7772400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13473938Y-7772400I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13373862Y-8484362D02*
 | 
			
		||||
X13473938Y-8584438D01*
 | 
			
		||||
X13473938Y-8484362D02*
 | 
			
		||||
X13373862Y-8584438D01*
 | 
			
		||||
X13473938Y-8534400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13473938Y-8534400I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13373862Y-10033762D02*
 | 
			
		||||
X13473938Y-10133838D01*
 | 
			
		||||
X13473938Y-10033762D02*
 | 
			
		||||
X13373862Y-10133838D01*
 | 
			
		||||
X13473938Y-10083800D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13473938Y-10083800I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13373862Y-10795762D02*
 | 
			
		||||
X13473938Y-10895838D01*
 | 
			
		||||
X13473938Y-10795762D02*
 | 
			
		||||
X13373862Y-10895838D01*
 | 
			
		||||
X13473938Y-10845800D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13473938Y-10845800I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13551662Y-7214362D02*
 | 
			
		||||
X13651738Y-7314438D01*
 | 
			
		||||
X13651738Y-7214362D02*
 | 
			
		||||
X13551662Y-7314438D01*
 | 
			
		||||
X13651738Y-7264400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13651738Y-7264400I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X13551662Y-9563862D02*
 | 
			
		||||
X13651738Y-9663938D01*
 | 
			
		||||
X13651738Y-9563862D02*
 | 
			
		||||
X13551662Y-9663938D01*
 | 
			
		||||
X13651738Y-9613900D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X13651738Y-9613900I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X14491462Y-7722362D02*
 | 
			
		||||
X14591538Y-7822438D01*
 | 
			
		||||
X14591538Y-7722362D02*
 | 
			
		||||
X14491462Y-7822438D01*
 | 
			
		||||
X14591538Y-7772400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X14591538Y-7772400I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X14491462Y-8484362D02*
 | 
			
		||||
X14591538Y-8584438D01*
 | 
			
		||||
X14591538Y-8484362D02*
 | 
			
		||||
X14491462Y-8584438D01*
 | 
			
		||||
X14591538Y-8534400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X14591538Y-8534400I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X14491462Y-10084562D02*
 | 
			
		||||
X14591538Y-10184638D01*
 | 
			
		||||
X14591538Y-10084562D02*
 | 
			
		||||
X14491462Y-10184638D01*
 | 
			
		||||
X14591538Y-10134600D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X14591538Y-10134600I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X14491462Y-10846562D02*
 | 
			
		||||
X14591538Y-10946638D01*
 | 
			
		||||
X14591538Y-10846562D02*
 | 
			
		||||
X14491462Y-10946638D01*
 | 
			
		||||
X14591538Y-10896600D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X14591538Y-10896600I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X15032859Y-6362405D02*
 | 
			
		||||
X15132935Y-6462481D01*
 | 
			
		||||
X15132935Y-6362405D02*
 | 
			
		||||
X15032859Y-6462481D01*
 | 
			
		||||
X15132935Y-6412443D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X15132935Y-6412443I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X15667859Y-6362405D02*
 | 
			
		||||
X15767935Y-6462481D01*
 | 
			
		||||
X15767935Y-6362405D02*
 | 
			
		||||
X15667859Y-6462481D01*
 | 
			
		||||
X15767935Y-6412443D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X15767935Y-6412443I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16104362Y-5906262D02*
 | 
			
		||||
X16204438Y-6006338D01*
 | 
			
		||||
X16204438Y-5906262D02*
 | 
			
		||||
X16104362Y-6006338D01*
 | 
			
		||||
X16204438Y-5956300D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16204438Y-5956300I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16104362Y-6211062D02*
 | 
			
		||||
X16204438Y-6311138D01*
 | 
			
		||||
X16204438Y-6211062D02*
 | 
			
		||||
X16104362Y-6311138D01*
 | 
			
		||||
X16204438Y-6261100D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16204438Y-6261100I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16396462Y-7735062D02*
 | 
			
		||||
X16496538Y-7835138D01*
 | 
			
		||||
X16496538Y-7735062D02*
 | 
			
		||||
X16396462Y-7835138D01*
 | 
			
		||||
X16496538Y-7785100D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16496538Y-7785100I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16396462Y-8497062D02*
 | 
			
		||||
X16496538Y-8597138D01*
 | 
			
		||||
X16496538Y-8497062D02*
 | 
			
		||||
X16396462Y-8597138D01*
 | 
			
		||||
X16496538Y-8547100D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16496538Y-8547100I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16396462Y-10071862D02*
 | 
			
		||||
X16496538Y-10171938D01*
 | 
			
		||||
X16496538Y-10071862D02*
 | 
			
		||||
X16396462Y-10171938D01*
 | 
			
		||||
X16496538Y-10121900D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16496538Y-10121900I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16396462Y-10833862D02*
 | 
			
		||||
X16496538Y-10933938D01*
 | 
			
		||||
X16496538Y-10833862D02*
 | 
			
		||||
X16396462Y-10933938D01*
 | 
			
		||||
X16496538Y-10883900D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16496538Y-10883900I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16866362Y-5906262D02*
 | 
			
		||||
X16966438Y-6006338D01*
 | 
			
		||||
X16966438Y-5906262D02*
 | 
			
		||||
X16866362Y-6006338D01*
 | 
			
		||||
X16966438Y-5956300D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16966438Y-5956300I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X16866362Y-6211062D02*
 | 
			
		||||
X16966438Y-6311138D01*
 | 
			
		||||
X16966438Y-6211062D02*
 | 
			
		||||
X16866362Y-6311138D01*
 | 
			
		||||
X16966438Y-6261100D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X16966438Y-6261100I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17336262Y-7214362D02*
 | 
			
		||||
X17436338Y-7314438D01*
 | 
			
		||||
X17436338Y-7214362D02*
 | 
			
		||||
X17336262Y-7314438D01*
 | 
			
		||||
X17436338Y-7264400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17436338Y-7264400I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17336262Y-9551162D02*
 | 
			
		||||
X17436338Y-9651238D01*
 | 
			
		||||
X17436338Y-9551162D02*
 | 
			
		||||
X17336262Y-9651238D01*
 | 
			
		||||
X17436338Y-9601200D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17436338Y-9601200I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17514062Y-7709662D02*
 | 
			
		||||
X17614138Y-7809738D01*
 | 
			
		||||
X17614138Y-7709662D02*
 | 
			
		||||
X17514062Y-7809738D01*
 | 
			
		||||
X17614138Y-7759700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17614138Y-7759700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17514062Y-8471662D02*
 | 
			
		||||
X17614138Y-8571738D01*
 | 
			
		||||
X17614138Y-8471662D02*
 | 
			
		||||
X17514062Y-8571738D01*
 | 
			
		||||
X17614138Y-8521700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17614138Y-8521700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17514062Y-10046462D02*
 | 
			
		||||
X17614138Y-10146538D01*
 | 
			
		||||
X17614138Y-10046462D02*
 | 
			
		||||
X17514062Y-10146538D01*
 | 
			
		||||
X17614138Y-10096500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17614138Y-10096500I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17514062Y-10808462D02*
 | 
			
		||||
X17614138Y-10908538D01*
 | 
			
		||||
X17614138Y-10808462D02*
 | 
			
		||||
X17514062Y-10908538D01*
 | 
			
		||||
X17614138Y-10858500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17614138Y-10858500I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17590262Y-7214362D02*
 | 
			
		||||
X17690338Y-7314438D01*
 | 
			
		||||
X17690338Y-7214362D02*
 | 
			
		||||
X17590262Y-7314438D01*
 | 
			
		||||
X17690338Y-7264400D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17690338Y-7264400I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17590262Y-9551162D02*
 | 
			
		||||
X17690338Y-9651238D01*
 | 
			
		||||
X17690338Y-9551162D02*
 | 
			
		||||
X17590262Y-9651238D01*
 | 
			
		||||
X17690338Y-9601200D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X17690338Y-9601200I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17945862Y-10046462D02*
 | 
			
		||||
X18045938Y-10146538D01*
 | 
			
		||||
X18045938Y-10046462D02*
 | 
			
		||||
X17945862Y-10146538D01*
 | 
			
		||||
X18045938Y-10096500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X18045938Y-10096500I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17945862Y-10808462D02*
 | 
			
		||||
X18045938Y-10908538D01*
 | 
			
		||||
X18045938Y-10808462D02*
 | 
			
		||||
X17945862Y-10908538D01*
 | 
			
		||||
X18045938Y-10858500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X18045938Y-10858500I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17958562Y-7709662D02*
 | 
			
		||||
X18058638Y-7809738D01*
 | 
			
		||||
X18058638Y-7709662D02*
 | 
			
		||||
X17958562Y-7809738D01*
 | 
			
		||||
X18058638Y-7759700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X18058638Y-7759700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X17958562Y-8471662D02*
 | 
			
		||||
X18058638Y-8571738D01*
 | 
			
		||||
X18058638Y-8471662D02*
 | 
			
		||||
X17958562Y-8571738D01*
 | 
			
		||||
X18058638Y-8521700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X18058638Y-8521700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X18301462Y-7709662D02*
 | 
			
		||||
X18401538Y-7809738D01*
 | 
			
		||||
X18401538Y-7709662D02*
 | 
			
		||||
X18301462Y-7809738D01*
 | 
			
		||||
X18401538Y-7759700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X18401538Y-7759700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X18301462Y-8471662D02*
 | 
			
		||||
X18401538Y-8571738D01*
 | 
			
		||||
X18401538Y-8471662D02*
 | 
			
		||||
X18301462Y-8571738D01*
 | 
			
		||||
X18401538Y-8521700D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X18401538Y-8521700I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X18301462Y-10046462D02*
 | 
			
		||||
X18401538Y-10146538D01*
 | 
			
		||||
X18401538Y-10046462D02*
 | 
			
		||||
X18301462Y-10146538D01*
 | 
			
		||||
X18401538Y-10096500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X18401538Y-10096500I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X18301462Y-10808462D02*
 | 
			
		||||
X18401538Y-10908538D01*
 | 
			
		||||
X18401538Y-10808462D02*
 | 
			
		||||
X18301462Y-10908538D01*
 | 
			
		||||
X18401538Y-10858500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X18401538Y-10858500I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X11760200Y-6096000D02*
 | 
			
		||||
X11861800Y-6197600D01*
 | 
			
		||||
X11861800Y-6096000D02*
 | 
			
		||||
X18872200Y-10668000D02*
 | 
			
		||||
X18973800Y-10769600D01*
 | 
			
		||||
X18973800Y-10668000D02*
 | 
			
		||||
X18872200Y-10769600D01*
 | 
			
		||||
X18923000Y-10668000D02*
 | 
			
		||||
X18923000Y-10769600D01*
 | 
			
		||||
X18872200Y-10718800D02*
 | 
			
		||||
X18973800Y-10718800D01*
 | 
			
		||||
X18872200Y-10922000D02*
 | 
			
		||||
X18973800Y-11023600D01*
 | 
			
		||||
X18973800Y-10922000D02*
 | 
			
		||||
X18872200Y-11023600D01*
 | 
			
		||||
X18923000Y-10922000D02*
 | 
			
		||||
X18923000Y-11023600D01*
 | 
			
		||||
X18872200Y-10972800D02*
 | 
			
		||||
X18973800Y-10972800D01*
 | 
			
		||||
X19126200Y-6096000D02*
 | 
			
		||||
X19227800Y-6197600D01*
 | 
			
		||||
X19227800Y-6096000D02*
 | 
			
		||||
X19126200Y-6197600D01*
 | 
			
		||||
X19177000Y-6096000D02*
 | 
			
		||||
X19177000Y-6197600D01*
 | 
			
		||||
X19126200Y-6146800D02*
 | 
			
		||||
X19227800Y-6146800D01*
 | 
			
		||||
X19126200Y-6350000D02*
 | 
			
		||||
X19227800Y-6451600D01*
 | 
			
		||||
X19227800Y-6350000D02*
 | 
			
		||||
X19126200Y-6451600D01*
 | 
			
		||||
X19177000Y-6350000D02*
 | 
			
		||||
X19177000Y-6451600D01*
 | 
			
		||||
X19126200Y-6400800D02*
 | 
			
		||||
X19227800Y-6400800D01*
 | 
			
		||||
X19126200Y-6604000D02*
 | 
			
		||||
X19227800Y-6705600D01*
 | 
			
		||||
X19227800Y-6604000D02*
 | 
			
		||||
X19126200Y-6705600D01*
 | 
			
		||||
X19177000Y-6604000D02*
 | 
			
		||||
X19177000Y-6705600D01*
 | 
			
		||||
X19126200Y-6654800D02*
 | 
			
		||||
X19227800Y-6654800D01*
 | 
			
		||||
X19126200Y-6858000D02*
 | 
			
		||||
X19227800Y-6959600D01*
 | 
			
		||||
X19227800Y-6858000D02*
 | 
			
		||||
X19126200Y-6959600D01*
 | 
			
		||||
X19177000Y-6858000D02*
 | 
			
		||||
X19177000Y-6959600D01*
 | 
			
		||||
X19126200Y-6908800D02*
 | 
			
		||||
X19227800Y-6908800D01*
 | 
			
		||||
X19126200Y-7112000D02*
 | 
			
		||||
X19227800Y-7213600D01*
 | 
			
		||||
X19227800Y-7112000D02*
 | 
			
		||||
X19126200Y-7213600D01*
 | 
			
		||||
X19177000Y-7112000D02*
 | 
			
		||||
X19177000Y-7213600D01*
 | 
			
		||||
X19126200Y-7162800D02*
 | 
			
		||||
X19227800Y-7162800D01*
 | 
			
		||||
X19126200Y-7366000D02*
 | 
			
		||||
X19227800Y-7467600D01*
 | 
			
		||||
X19227800Y-7366000D02*
 | 
			
		||||
X19126200Y-7467600D01*
 | 
			
		||||
X19177000Y-7366000D02*
 | 
			
		||||
X19177000Y-7467600D01*
 | 
			
		||||
X19126200Y-7416800D02*
 | 
			
		||||
X19227800Y-7416800D01*
 | 
			
		||||
X19126200Y-7620000D02*
 | 
			
		||||
X19227800Y-7721600D01*
 | 
			
		||||
X19227800Y-7620000D02*
 | 
			
		||||
X19126200Y-7721600D01*
 | 
			
		||||
X19177000Y-7620000D02*
 | 
			
		||||
X19177000Y-7721600D01*
 | 
			
		||||
X19126200Y-7670800D02*
 | 
			
		||||
X19227800Y-7670800D01*
 | 
			
		||||
X19126200Y-7874000D02*
 | 
			
		||||
X19227800Y-7975600D01*
 | 
			
		||||
X19227800Y-7874000D02*
 | 
			
		||||
X19126200Y-7975600D01*
 | 
			
		||||
X19177000Y-7874000D02*
 | 
			
		||||
X19177000Y-7975600D01*
 | 
			
		||||
X19126200Y-7924800D02*
 | 
			
		||||
X19227800Y-7924800D01*
 | 
			
		||||
X19126200Y-8128000D02*
 | 
			
		||||
X19227800Y-8229600D01*
 | 
			
		||||
X19227800Y-8128000D02*
 | 
			
		||||
X19126200Y-8229600D01*
 | 
			
		||||
X19177000Y-8128000D02*
 | 
			
		||||
X19177000Y-8229600D01*
 | 
			
		||||
X19126200Y-8178800D02*
 | 
			
		||||
X19227800Y-8178800D01*
 | 
			
		||||
X19126200Y-8382000D02*
 | 
			
		||||
X19227800Y-8483600D01*
 | 
			
		||||
X19227800Y-8382000D02*
 | 
			
		||||
X19126200Y-8483600D01*
 | 
			
		||||
X19177000Y-8382000D02*
 | 
			
		||||
X19177000Y-8483600D01*
 | 
			
		||||
X19126200Y-8432800D02*
 | 
			
		||||
X19227800Y-8432800D01*
 | 
			
		||||
X19126200Y-8636000D02*
 | 
			
		||||
X19227800Y-8737600D01*
 | 
			
		||||
X19227800Y-8636000D02*
 | 
			
		||||
X19126200Y-8737600D01*
 | 
			
		||||
X19177000Y-8636000D02*
 | 
			
		||||
X19177000Y-8737600D01*
 | 
			
		||||
X19126200Y-8686800D02*
 | 
			
		||||
X19227800Y-8686800D01*
 | 
			
		||||
X19126200Y-8890000D02*
 | 
			
		||||
X19227800Y-8991600D01*
 | 
			
		||||
X19227800Y-8890000D02*
 | 
			
		||||
X19126200Y-8991600D01*
 | 
			
		||||
X19177000Y-8890000D02*
 | 
			
		||||
X19177000Y-8991600D01*
 | 
			
		||||
X19126200Y-8940800D02*
 | 
			
		||||
X19227800Y-8940800D01*
 | 
			
		||||
X19126200Y-9144000D02*
 | 
			
		||||
X19227800Y-9245600D01*
 | 
			
		||||
X19227800Y-9144000D02*
 | 
			
		||||
X19126200Y-9245600D01*
 | 
			
		||||
X19177000Y-9144000D02*
 | 
			
		||||
X19177000Y-9245600D01*
 | 
			
		||||
X19126200Y-9194800D02*
 | 
			
		||||
X19227800Y-9194800D01*
 | 
			
		||||
X19126200Y-9398000D02*
 | 
			
		||||
X19227800Y-9499600D01*
 | 
			
		||||
X19227800Y-9398000D02*
 | 
			
		||||
X19126200Y-9499600D01*
 | 
			
		||||
X19177000Y-9398000D02*
 | 
			
		||||
X19177000Y-9499600D01*
 | 
			
		||||
X19126200Y-9448800D02*
 | 
			
		||||
X19227800Y-9448800D01*
 | 
			
		||||
X19126200Y-9652000D02*
 | 
			
		||||
X19227800Y-9753600D01*
 | 
			
		||||
X19227800Y-9652000D02*
 | 
			
		||||
X19126200Y-9753600D01*
 | 
			
		||||
X19177000Y-9652000D02*
 | 
			
		||||
X19177000Y-9753600D01*
 | 
			
		||||
X19126200Y-9702800D02*
 | 
			
		||||
X19227800Y-9702800D01*
 | 
			
		||||
X19126200Y-9906000D02*
 | 
			
		||||
X19227800Y-10007600D01*
 | 
			
		||||
X19227800Y-9906000D02*
 | 
			
		||||
X19126200Y-10007600D01*
 | 
			
		||||
X19177000Y-9906000D02*
 | 
			
		||||
X19177000Y-10007600D01*
 | 
			
		||||
X19126200Y-9956800D02*
 | 
			
		||||
X19227800Y-9956800D01*
 | 
			
		||||
X19126200Y-10160000D02*
 | 
			
		||||
X19227800Y-10261600D01*
 | 
			
		||||
X19227800Y-10160000D02*
 | 
			
		||||
X19126200Y-10261600D01*
 | 
			
		||||
X19177000Y-10160000D02*
 | 
			
		||||
X19177000Y-10261600D01*
 | 
			
		||||
X19126200Y-10210800D02*
 | 
			
		||||
X19227800Y-10210800D01*
 | 
			
		||||
X19126200Y-10414000D02*
 | 
			
		||||
X19227800Y-10515600D01*
 | 
			
		||||
X19227800Y-10414000D02*
 | 
			
		||||
X19126200Y-10515600D01*
 | 
			
		||||
X19177000Y-10414000D02*
 | 
			
		||||
X19177000Y-10515600D01*
 | 
			
		||||
X19126200Y-10464800D02*
 | 
			
		||||
X19227800Y-10464800D01*
 | 
			
		||||
X19126200Y-10668000D02*
 | 
			
		||||
X19227800Y-10769600D01*
 | 
			
		||||
X19227800Y-10668000D02*
 | 
			
		||||
X19126200Y-10769600D01*
 | 
			
		||||
X19177000Y-10668000D02*
 | 
			
		||||
X19177000Y-10769600D01*
 | 
			
		||||
X19126200Y-10718800D02*
 | 
			
		||||
X19227800Y-10718800D01*
 | 
			
		||||
X19126200Y-10922000D02*
 | 
			
		||||
X19227800Y-11023600D01*
 | 
			
		||||
X19227800Y-10922000D02*
 | 
			
		||||
X19126200Y-11023600D01*
 | 
			
		||||
X19177000Y-10922000D02*
 | 
			
		||||
X19177000Y-11023600D01*
 | 
			
		||||
X19126200Y-10972800D02*
 | 
			
		||||
X19227800Y-10972800D01*
 | 
			
		||||
D13*
 | 
			
		||||
X11563928Y-12273214D02*
 | 
			
		||||
X11563928Y-11973214D01*
 | 
			
		||||
X11635357Y-11973214D01*
 | 
			
		||||
X11678214Y-11987500D01*
 | 
			
		||||
X11706786Y-12016071D01*
 | 
			
		||||
X11721071Y-12044643D01*
 | 
			
		||||
X11735357Y-12101786D01*
 | 
			
		||||
X11735357Y-12144643D01*
 | 
			
		||||
X11721071Y-12201786D01*
 | 
			
		||||
X11706786Y-12230357D01*
 | 
			
		||||
X11678214Y-12258929D01*
 | 
			
		||||
X11635357Y-12273214D01*
 | 
			
		||||
X11563928Y-12273214D01*
 | 
			
		||||
X11863928Y-12273214D02*
 | 
			
		||||
X11863928Y-12073214D01*
 | 
			
		||||
X11863928Y-12130357D02*
 | 
			
		||||
X11878214Y-12101786D01*
 | 
			
		||||
X11892500Y-12087500D01*
 | 
			
		||||
X11921071Y-12073214D01*
 | 
			
		||||
X11949643Y-12073214D01*
 | 
			
		||||
X12049643Y-12273214D02*
 | 
			
		||||
X12049643Y-12073214D01*
 | 
			
		||||
X12049643Y-11973214D02*
 | 
			
		||||
X12035357Y-11987500D01*
 | 
			
		||||
X12049643Y-12001786D01*
 | 
			
		||||
X12063928Y-11987500D01*
 | 
			
		||||
X12049643Y-11973214D01*
 | 
			
		||||
X18121071Y-12688929D01*
 | 
			
		||||
X18106786Y-12646071D01*
 | 
			
		||||
X18092500Y-12617500D01*
 | 
			
		||||
X18063929Y-12574643D01*
 | 
			
		||||
X18049643Y-12560357D01*
 | 
			
		||||
X11292500Y-13163500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X11292500Y-13163500I-35560J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X11621071Y-12999214D02*
 | 
			
		||||
X11649643Y-12999214D01*
 | 
			
		||||
X11678214Y-13013500D01*
 | 
			
		||||
X11692500Y-13027786D01*
 | 
			
		||||
X11706786Y-13056357D01*
 | 
			
		||||
X11721071Y-13113500D01*
 | 
			
		||||
X11721071Y-13184929D01*
 | 
			
		||||
X11706786Y-13242071D01*
 | 
			
		||||
X11692500Y-13270643D01*
 | 
			
		||||
X12706786Y-13509500D01*
 | 
			
		||||
X12735357Y-13495214D01*
 | 
			
		||||
X12778214Y-13495214D01*
 | 
			
		||||
X12806786Y-13509500D01*
 | 
			
		||||
X12821071Y-13538071D01*
 | 
			
		||||
X12821071Y-13695214D01*
 | 
			
		||||
X12963928Y-13695214D02*
 | 
			
		||||
X12963928Y-13495214D01*
 | 
			
		||||
X12963928Y-13523786D02*
 | 
			
		||||
X12978214Y-13509500D01*
 | 
			
		||||
X13006786Y-13495214D01*
 | 
			
		||||
X13049643Y-13495214D01*
 | 
			
		||||
X13078214Y-13509500D01*
 | 
			
		||||
X13092500Y-13538071D01*
 | 
			
		||||
X13092500Y-13695214D01*
 | 
			
		||||
X13092500Y-13538071D02*
 | 
			
		||||
X13106786Y-13509500D01*
 | 
			
		||||
X13135357Y-13495214D01*
 | 
			
		||||
X13178214Y-13495214D01*
 | 
			
		||||
X13206786Y-13509500D01*
 | 
			
		||||
X13221071Y-13538071D01*
 | 
			
		||||
X13221071Y-13695214D01*
 | 
			
		||||
X13806786Y-13380929D02*
 | 
			
		||||
X13549643Y-13766643D01*
 | 
			
		||||
X14192500Y-13395214D02*
 | 
			
		||||
X14221071Y-13395214D01*
 | 
			
		||||
X14249643Y-13409500D01*
 | 
			
		||||
X14263928Y-13423786D01*
 | 
			
		||||
X14278214Y-13452357D01*
 | 
			
		||||
X14292500Y-13509500D01*
 | 
			
		||||
X14292500Y-13580929D01*
 | 
			
		||||
X14278214Y-13638071D01*
 | 
			
		||||
X14263928Y-13666643D01*
 | 
			
		||||
X14249643Y-13680929D01*
 | 
			
		||||
X14221071Y-13695214D01*
 | 
			
		||||
X14192500Y-13695214D01*
 | 
			
		||||
X14163928Y-13680929D01*
 | 
			
		||||
X14149643Y-13666643D01*
 | 
			
		||||
X14135357Y-13638071D01*
 | 
			
		||||
X14121071Y-13580929D01*
 | 
			
		||||
X14121071Y-13509500D01*
 | 
			
		||||
X14135357Y-13452357D01*
 | 
			
		||||
X14149643Y-13423786D01*
 | 
			
		||||
X14163928Y-13409500D01*
 | 
			
		||||
X14192500Y-13395214D01*
 | 
			
		||||
X14421071Y-13666643D02*
 | 
			
		||||
X14435357Y-13680929D01*
 | 
			
		||||
X14421071Y-13695214D01*
 | 
			
		||||
X14406786Y-13680929D01*
 | 
			
		||||
X14421071Y-13666643D01*
 | 
			
		||||
X14421071Y-13695214D01*
 | 
			
		||||
X14621071Y-13395214D02*
 | 
			
		||||
X14649643Y-13395214D01*
 | 
			
		||||
X14678214Y-13409500D01*
 | 
			
		||||
X14692500Y-13423786D01*
 | 
			
		||||
X14706785Y-13452357D01*
 | 
			
		||||
X14721071Y-13509500D01*
 | 
			
		||||
X14721071Y-13580929D01*
 | 
			
		||||
X14706785Y-13638071D01*
 | 
			
		||||
X14692500Y-13666643D01*
 | 
			
		||||
X14678214Y-13680929D01*
 | 
			
		||||
X14649643Y-13695214D01*
 | 
			
		||||
X14621071Y-13695214D01*
 | 
			
		||||
X14592500Y-13680929D01*
 | 
			
		||||
X14578214Y-13666643D01*
 | 
			
		||||
X14563928Y-13638071D01*
 | 
			
		||||
X14549643Y-13580929D01*
 | 
			
		||||
X14549643Y-13509500D01*
 | 
			
		||||
X14563928Y-13452357D01*
 | 
			
		||||
X14578214Y-13423786D01*
 | 
			
		||||
X14592500Y-13409500D01*
 | 
			
		||||
X14621071Y-13395214D01*
 | 
			
		||||
X14821071Y-13395214D02*
 | 
			
		||||
X15006785Y-13395214D01*
 | 
			
		||||
X14906785Y-13509500D01*
 | 
			
		||||
X14949643Y-13509500D01*
 | 
			
		||||
X14978214Y-13523786D01*
 | 
			
		||||
X14992500Y-13538071D01*
 | 
			
		||||
X15006785Y-13566643D01*
 | 
			
		||||
X11292500Y-14797538D01*
 | 
			
		||||
X11292500Y-14697462D02*
 | 
			
		||||
X11192424Y-14797538D01*
 | 
			
		||||
X11292500Y-14747500D02*
 | 
			
		||||
G75*
 | 
			
		||||
G03X11292500Y-14747500I-50038J0D01*
 | 
			
		||||
G01*
 | 
			
		||||
X11721071Y-14883214D02*
 | 
			
		||||
X11549643Y-14883214D01*
 | 
			
		||||
X11635357Y-14883214D02*
 | 
			
		||||
X11635357Y-14583214D01*
 | 
			
		||||
X11606786Y-14626071D01*
 | 
			
		||||
X11578214Y-14654643D01*
 | 
			
		||||
X18135357Y-15136357D01*
 | 
			
		||||
X18121071Y-15064929D01*
 | 
			
		||||
X18106786Y-15022071D01*
 | 
			
		||||
X18092500Y-14993500D01*
 | 
			
		||||
X18063929Y-14950643D01*
 | 
			
		||||
X18049643Y-14936357D01*
 | 
			
		||||
M02*
 | 
			
		||||
							
								
								
									
										227
									
								
								samples/INI/filenames/buildozer.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										227
									
								
								samples/INI/filenames/buildozer.spec
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,227 @@
 | 
			
		||||
[app]
 | 
			
		||||
 | 
			
		||||
# (str) Title of your application
 | 
			
		||||
title = Kivy Kazam
 | 
			
		||||
 | 
			
		||||
# (str) Package name
 | 
			
		||||
package.name = kivykazam
 | 
			
		||||
 | 
			
		||||
# (str) Package domain (needed for android/ios packaging)
 | 
			
		||||
package.domain = org.test
 | 
			
		||||
 | 
			
		||||
# (str) Source code where the main.py live
 | 
			
		||||
source.dir = .
 | 
			
		||||
 | 
			
		||||
# (list) Source files to include (let empty to include all the files)
 | 
			
		||||
source.include_exts = py,png,jpg,kv,atlas
 | 
			
		||||
 | 
			
		||||
# (list) List of inclusions using pattern matching
 | 
			
		||||
#source.include_patterns = assets/*,images/*.png
 | 
			
		||||
 | 
			
		||||
# (list) Source files to exclude (let empty to not exclude anything)
 | 
			
		||||
#source.exclude_exts = spec
 | 
			
		||||
 | 
			
		||||
# (list) List of directory to exclude (let empty to not exclude anything)
 | 
			
		||||
#source.exclude_dirs = tests, bin
 | 
			
		||||
 | 
			
		||||
# (list) List of exclusions using pattern matching
 | 
			
		||||
#source.exclude_patterns = license,images/*/*.jpg
 | 
			
		||||
 | 
			
		||||
# (str) Application versioning (method 1)
 | 
			
		||||
version = 0.1
 | 
			
		||||
 | 
			
		||||
# (str) Application versioning (method 2)
 | 
			
		||||
# version.regex = __version__ = ['"](.*)['"]
 | 
			
		||||
# version.filename = %(source.dir)s/main.py
 | 
			
		||||
 | 
			
		||||
# (list) Application requirements
 | 
			
		||||
# comma seperated e.g. requirements = sqlite3,kivy
 | 
			
		||||
requirements = kivy
 | 
			
		||||
 | 
			
		||||
# (str) Custom source folders for requirements
 | 
			
		||||
# Sets custom source for any requirements with recipes
 | 
			
		||||
# requirements.source.kivy = ../../kivy
 | 
			
		||||
 | 
			
		||||
# (list) Garden requirements
 | 
			
		||||
#garden_requirements =
 | 
			
		||||
 | 
			
		||||
# (str) Presplash of the application
 | 
			
		||||
#presplash.filename = %(source.dir)s/data/presplash.png
 | 
			
		||||
 | 
			
		||||
# (str) Icon of the application
 | 
			
		||||
#icon.filename = %(source.dir)s/data/icon.png
 | 
			
		||||
 | 
			
		||||
# (str) Supported orientation (one of landscape, portrait or all)
 | 
			
		||||
orientation = all
 | 
			
		||||
 | 
			
		||||
# (list) List of service to declare
 | 
			
		||||
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# OSX Specific
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# author = © Copyright Info
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Android specific
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# (bool) Indicate if the application should be fullscreen or not
 | 
			
		||||
fullscreen = 1
 | 
			
		||||
 | 
			
		||||
# (list) Permissions
 | 
			
		||||
#android.permissions = INTERNET
 | 
			
		||||
 | 
			
		||||
# (int) Android API to use
 | 
			
		||||
#android.api = 19
 | 
			
		||||
 | 
			
		||||
# (int) Minimum API required
 | 
			
		||||
android.minapi = 13
 | 
			
		||||
 | 
			
		||||
# (int) Android SDK version to use
 | 
			
		||||
#android.sdk = 20
 | 
			
		||||
 | 
			
		||||
# (str) Android NDK version to use
 | 
			
		||||
#android.ndk = 9c
 | 
			
		||||
 | 
			
		||||
# (bool) Use --private data storage (True) or --dir public storage (False)
 | 
			
		||||
#android.private_storage = True
 | 
			
		||||
 | 
			
		||||
# (str) Android NDK directory (if empty, it will be automatically downloaded.)
 | 
			
		||||
#android.ndk_path =
 | 
			
		||||
 | 
			
		||||
# (str) Android SDK directory (if empty, it will be automatically downloaded.)
 | 
			
		||||
#android.sdk_path =
 | 
			
		||||
 | 
			
		||||
# (str) ANT directory (if empty, it will be automatically downloaded.)
 | 
			
		||||
#android.ant_path =
 | 
			
		||||
 | 
			
		||||
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
 | 
			
		||||
#android.p4a_dir =
 | 
			
		||||
 | 
			
		||||
# (list) python-for-android whitelist
 | 
			
		||||
#android.p4a_whitelist =
 | 
			
		||||
 | 
			
		||||
# (bool) If True, then skip trying to update the Android sdk
 | 
			
		||||
# This can be useful to avoid excess Internet downloads or save time
 | 
			
		||||
# when an update is due and you just want to test/build your package
 | 
			
		||||
# android.skip_update = False
 | 
			
		||||
 | 
			
		||||
# (str) Android entry point, default is ok for Kivy-based app
 | 
			
		||||
#android.entrypoint = org.renpy.android.PythonActivity
 | 
			
		||||
 | 
			
		||||
# (list) List of Java .jar files to add to the libs so that pyjnius can access
 | 
			
		||||
# their classes. Don't add jars that you do not need, since extra jars can slow
 | 
			
		||||
# down the build process. Allows wildcards matching, for example:
 | 
			
		||||
# OUYA-ODK/libs/*.jar
 | 
			
		||||
#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar
 | 
			
		||||
 | 
			
		||||
# (list) List of Java files to add to the android project (can be java or a
 | 
			
		||||
# directory containing the files)
 | 
			
		||||
#android.add_src =
 | 
			
		||||
 | 
			
		||||
# (str) python-for-android branch to use, if not master, useful to try
 | 
			
		||||
# not yet merged features.
 | 
			
		||||
#android.branch = master
 | 
			
		||||
 | 
			
		||||
# (str) OUYA Console category. Should be one of GAME or APP
 | 
			
		||||
# If you leave this blank, OUYA support will not be enabled
 | 
			
		||||
#android.ouya.category = GAME
 | 
			
		||||
 | 
			
		||||
# (str) Filename of OUYA Console icon. It must be a 732x412 png image.
 | 
			
		||||
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png
 | 
			
		||||
 | 
			
		||||
# (str) XML file to include as an intent filters in <activity> tag
 | 
			
		||||
#android.manifest.intent_filters =
 | 
			
		||||
 | 
			
		||||
# (list) Android additionnal libraries to copy into libs/armeabi
 | 
			
		||||
#android.add_libs_armeabi = libs/android/*.so
 | 
			
		||||
#android.add_libs_armeabi_v7a = libs/android-v7/*.so
 | 
			
		||||
#android.add_libs_x86 = libs/android-x86/*.so
 | 
			
		||||
#android.add_libs_mips = libs/android-mips/*.so
 | 
			
		||||
 | 
			
		||||
# (bool) Indicate whether the screen should stay on
 | 
			
		||||
# Don't forget to add the WAKE_LOCK permission if you set this to True
 | 
			
		||||
#android.wakelock = False
 | 
			
		||||
 | 
			
		||||
# (list) Android application meta-data to set (key=value format)
 | 
			
		||||
#android.meta_data =
 | 
			
		||||
 | 
			
		||||
# (list) Android library project to add (will be added in the
 | 
			
		||||
# project.properties automatically.)
 | 
			
		||||
#android.library_references =
 | 
			
		||||
 | 
			
		||||
# (str) Android logcat filters to use
 | 
			
		||||
#android.logcat_filters = *:S python:D
 | 
			
		||||
 | 
			
		||||
# (bool) Copy library instead of making a libpymodules.so
 | 
			
		||||
#android.copy_libs = 1
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# iOS specific
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# (str) Path to a custom kivy-ios folder
 | 
			
		||||
#ios.kivy_ios_dir = ../kivy-ios
 | 
			
		||||
 | 
			
		||||
# (str) Name of the certificate to use for signing the debug version
 | 
			
		||||
# Get a list of available identities: buildozer ios list_identities
 | 
			
		||||
#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"
 | 
			
		||||
 | 
			
		||||
# (str) Name of the certificate to use for signing the release version
 | 
			
		||||
#ios.codesign.release = %(ios.codesign.debug)s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[buildozer]
 | 
			
		||||
 | 
			
		||||
# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
 | 
			
		||||
log_level = 1
 | 
			
		||||
 | 
			
		||||
# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
 | 
			
		||||
warn_on_root = 1
 | 
			
		||||
 | 
			
		||||
# (str) Path to build artifact storage, absolute or relative to spec file
 | 
			
		||||
# build_dir = ./.buildozer
 | 
			
		||||
 | 
			
		||||
# (str) Path to build output (i.e. .apk, .ipa) storage
 | 
			
		||||
# bin_dir = ./bin
 | 
			
		||||
 | 
			
		||||
#    -----------------------------------------------------------------------------
 | 
			
		||||
#    List as sections
 | 
			
		||||
#
 | 
			
		||||
#    You can define all the "list" as [section:key].
 | 
			
		||||
#    Each line will be considered as a option to the list.
 | 
			
		||||
#    Let's take [app] / source.exclude_patterns.
 | 
			
		||||
#    Instead of doing:
 | 
			
		||||
#
 | 
			
		||||
#[app]
 | 
			
		||||
#source.exclude_patterns = license,data/audio/*.wav,data/images/original/*
 | 
			
		||||
#
 | 
			
		||||
#    This can be translated into:
 | 
			
		||||
#
 | 
			
		||||
#[app:source.exclude_patterns]
 | 
			
		||||
#license
 | 
			
		||||
#data/audio/*.wav
 | 
			
		||||
#data/images/original/*
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#    -----------------------------------------------------------------------------
 | 
			
		||||
#    Profiles
 | 
			
		||||
#
 | 
			
		||||
#    You can extend section / key with a profile
 | 
			
		||||
#    For example, you want to deploy a demo version of your application without
 | 
			
		||||
#    HD content. You could first change the title to add "(demo)" in the name
 | 
			
		||||
#    and extend the excluded directories to remove the HD content.
 | 
			
		||||
#
 | 
			
		||||
#[app@demo]
 | 
			
		||||
#title = My Application (demo)
 | 
			
		||||
#
 | 
			
		||||
#[app:source.exclude_patterns@demo]
 | 
			
		||||
#images/hd/*
 | 
			
		||||
#
 | 
			
		||||
#    Then, invoke the command line with the "demo" profile:
 | 
			
		||||
#
 | 
			
		||||
#buildozer --profile demo android debug
 | 
			
		||||
							
								
								
									
										62
									
								
								samples/INI/ultimate-temp-controller.pro
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								samples/INI/ultimate-temp-controller.pro
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
update=22/05/2015 07:44:53
 | 
			
		||||
version=1
 | 
			
		||||
last_client=kicad
 | 
			
		||||
[general]
 | 
			
		||||
version=1
 | 
			
		||||
RootSch=
 | 
			
		||||
BoardNm=
 | 
			
		||||
[pcbnew]
 | 
			
		||||
version=1
 | 
			
		||||
LastNetListRead=
 | 
			
		||||
UseCmpFile=1
 | 
			
		||||
PadDrill=0.600000000000
 | 
			
		||||
PadDrillOvalY=0.600000000000
 | 
			
		||||
PadSizeH=1.500000000000
 | 
			
		||||
PadSizeV=1.500000000000
 | 
			
		||||
PcbTextSizeV=1.500000000000
 | 
			
		||||
PcbTextSizeH=1.500000000000
 | 
			
		||||
PcbTextThickness=0.300000000000
 | 
			
		||||
ModuleTextSizeV=1.000000000000
 | 
			
		||||
ModuleTextSizeH=1.000000000000
 | 
			
		||||
ModuleTextSizeThickness=0.150000000000
 | 
			
		||||
SolderMaskClearance=0.000000000000
 | 
			
		||||
SolderMaskMinWidth=0.000000000000
 | 
			
		||||
DrawSegmentWidth=0.200000000000
 | 
			
		||||
BoardOutlineThickness=0.100000000000
 | 
			
		||||
ModuleOutlineThickness=0.150000000000
 | 
			
		||||
[cvpcb]
 | 
			
		||||
version=1
 | 
			
		||||
NetIExt=net
 | 
			
		||||
[eeschema]
 | 
			
		||||
version=1
 | 
			
		||||
LibDir=
 | 
			
		||||
[eeschema/libraries]
 | 
			
		||||
LibName1=power
 | 
			
		||||
LibName2=device
 | 
			
		||||
LibName3=transistors
 | 
			
		||||
LibName4=conn
 | 
			
		||||
LibName5=linear
 | 
			
		||||
LibName6=regul
 | 
			
		||||
LibName7=74xx
 | 
			
		||||
LibName8=cmos4000
 | 
			
		||||
LibName9=adc-dac
 | 
			
		||||
LibName10=memory
 | 
			
		||||
LibName11=xilinx
 | 
			
		||||
LibName12=microcontrollers
 | 
			
		||||
LibName13=dsp
 | 
			
		||||
LibName14=microchip
 | 
			
		||||
LibName15=analog_switches
 | 
			
		||||
LibName16=motorola
 | 
			
		||||
LibName17=texas
 | 
			
		||||
LibName18=intel
 | 
			
		||||
LibName19=audio
 | 
			
		||||
LibName20=interface
 | 
			
		||||
LibName21=digital-audio
 | 
			
		||||
LibName22=philips
 | 
			
		||||
LibName23=display
 | 
			
		||||
LibName24=cypress
 | 
			
		||||
LibName25=siliconi
 | 
			
		||||
LibName26=opto
 | 
			
		||||
LibName27=atmel
 | 
			
		||||
LibName28=contrib
 | 
			
		||||
LibName29=valves
 | 
			
		||||
							
								
								
									
										955
									
								
								samples/JavaScript/constant_fold.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										955
									
								
								samples/JavaScript/constant_fold.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,955 @@
 | 
			
		||||
// consumes <stdin> and performs constant folding
 | 
			
		||||
// echo '"use strict";"_"[0],1+2;' | node constant_fold.js
 | 
			
		||||
import _NodePath from '../NodePath';
 | 
			
		||||
const {NodePath} = _NodePath;
 | 
			
		||||
import _WalkCombinator from '../WalkCombinator';
 | 
			
		||||
const {WalkCombinator} = _WalkCombinator;
 | 
			
		||||
 | 
			
		||||
const $CONSTEXPR = Symbol.for('$CONSTEXTR');
 | 
			
		||||
const $CONSTVALUE = Symbol.for('$CONSTVALUE');
 | 
			
		||||
const IS_EMPTY = path => {
 | 
			
		||||
  return (path.node.type === 'BlockStatement' && path.node.body.length === 0) ||
 | 
			
		||||
    path.node.type === 'EmptyStatement';
 | 
			
		||||
};
 | 
			
		||||
const IN_PRAGMA_POS = path => {
 | 
			
		||||
  if (path.parent && Array.isArray(path.parent.node)) {
 | 
			
		||||
    const siblings = path.parent.node;
 | 
			
		||||
    for (let i = 0; i < path.key; i++) {
 | 
			
		||||
      // preceded by non-pragma
 | 
			
		||||
      if (
 | 
			
		||||
        siblings[i].type !== 'ExpressionStatement' ||
 | 
			
		||||
        !IS_CONSTEXPR(siblings[i].expression) ||
 | 
			
		||||
        typeof CONSTVALUE(siblings[i].expression) !== 'string'
 | 
			
		||||
      ) {
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
};
 | 
			
		||||
const IS_PRAGMA = path => {
 | 
			
		||||
  if (path.parent && Array.isArray(path.parent.node)) {
 | 
			
		||||
    const siblings = path.parent.node;
 | 
			
		||||
    for (let i = 0; i < path.key + 1; i++) {
 | 
			
		||||
      // preceded by non-pragma
 | 
			
		||||
      if (
 | 
			
		||||
        siblings[i].type !== 'ExpressionStatement' ||
 | 
			
		||||
        !IS_CONSTEXPR(siblings[i].expression) ||
 | 
			
		||||
        typeof CONSTVALUE(siblings[i].expression) !== 'string'
 | 
			
		||||
      ) {
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
};
 | 
			
		||||
// worst case is the completion value
 | 
			
		||||
const IS_NOT_COMPLETION = path => {
 | 
			
		||||
  while (true) {
 | 
			
		||||
    if (!path.parent) {
 | 
			
		||||
      return true;
 | 
			
		||||
    }
 | 
			
		||||
    if (
 | 
			
		||||
      Array.isArray(path.parent.node) &&
 | 
			
		||||
      path.key !== path.parent.node.length - 1
 | 
			
		||||
    ) {
 | 
			
		||||
      return true;
 | 
			
		||||
    }
 | 
			
		||||
    path = path.parent;
 | 
			
		||||
    while (Array.isArray(path.node)) {
 | 
			
		||||
      path = path.parent;
 | 
			
		||||
    }
 | 
			
		||||
    if (/Function/.test(path.node.type)) {
 | 
			
		||||
      return true;
 | 
			
		||||
    } else if (path.node.type === 'Program') {
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
const REMOVE_IF_EMPTY = path => {
 | 
			
		||||
  if (IS_EMPTY(path)) REMOVE(path);
 | 
			
		||||
  return null;
 | 
			
		||||
};
 | 
			
		||||
const REPLACE_IF_EMPTY = (path, folded) => {
 | 
			
		||||
  if (IS_EMPTY(path)) return REPLACE(path, folded);
 | 
			
		||||
  return path;
 | 
			
		||||
};
 | 
			
		||||
const REMOVE = path => {
 | 
			
		||||
  if (Array.isArray(path.parent.node)) {
 | 
			
		||||
    path.parent.node.splice(path.key, 1);
 | 
			
		||||
  } else {
 | 
			
		||||
    path.parent.node[path.key] = null;
 | 
			
		||||
  }
 | 
			
		||||
  return null;
 | 
			
		||||
};
 | 
			
		||||
const REPLACE = (path, folded) => {
 | 
			
		||||
  const replacement = new NodePath(path.parent, folded, path.key);
 | 
			
		||||
  path.parent.node[path.key] = folded;
 | 
			
		||||
  return replacement;
 | 
			
		||||
};
 | 
			
		||||
// no mutation, this is an atomic value
 | 
			
		||||
const NEG_ZERO = Object.freeze({
 | 
			
		||||
  [$CONSTEXPR]: true,
 | 
			
		||||
  type: 'UnaryExpression',
 | 
			
		||||
  operator: '-',
 | 
			
		||||
  argument: Object.freeze({
 | 
			
		||||
    [$CONSTEXPR]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 0,
 | 
			
		||||
  }),
 | 
			
		||||
});
 | 
			
		||||
const INFINITY = Object.freeze({
 | 
			
		||||
  [$CONSTEXPR]: true,
 | 
			
		||||
  type: 'BinaryExpression',
 | 
			
		||||
  operator: '/',
 | 
			
		||||
  left: Object.freeze({
 | 
			
		||||
    [$CONSTEXPR]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 1,
 | 
			
		||||
  }),
 | 
			
		||||
  right: Object.freeze({
 | 
			
		||||
    [$CONSTEXPR]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 0,
 | 
			
		||||
  }),
 | 
			
		||||
});
 | 
			
		||||
const NEG_INFINITY = Object.freeze({
 | 
			
		||||
  [$CONSTEXPR]: true,
 | 
			
		||||
  type: 'BinaryExpression',
 | 
			
		||||
  operator: '/',
 | 
			
		||||
  left: Object.freeze({
 | 
			
		||||
    [$CONSTEXPR]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 1,
 | 
			
		||||
  }),
 | 
			
		||||
  right: NEG_ZERO,
 | 
			
		||||
});
 | 
			
		||||
const EMPTY = Object.freeze({
 | 
			
		||||
  [$CONSTEXPR]: true,
 | 
			
		||||
  type: 'EmptyStatement',
 | 
			
		||||
});
 | 
			
		||||
const NULL = Object.freeze({
 | 
			
		||||
  [$CONSTEXPR]: true,
 | 
			
		||||
  type: 'Literal',
 | 
			
		||||
  value: null,
 | 
			
		||||
});
 | 
			
		||||
const NAN = Object.freeze({
 | 
			
		||||
  [$CONSTEXPR]: true,
 | 
			
		||||
  type: 'BinaryExpression',
 | 
			
		||||
  operator: '/',
 | 
			
		||||
  left: Object.freeze({
 | 
			
		||||
    [$CONSTEXPR]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 0,
 | 
			
		||||
  }),
 | 
			
		||||
  right: Object.freeze({
 | 
			
		||||
    [$CONSTEXPR]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 0,
 | 
			
		||||
  }),
 | 
			
		||||
});
 | 
			
		||||
const UNDEFINED = Object.freeze({
 | 
			
		||||
  [$CONSTEXPR]: true,
 | 
			
		||||
  type: 'UnaryExpression',
 | 
			
		||||
  operator: 'void',
 | 
			
		||||
  argument: Object.freeze({
 | 
			
		||||
    [$CONSTEXPR]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 0,
 | 
			
		||||
  }),
 | 
			
		||||
});
 | 
			
		||||
// ESTree doesn't like negative numeric literals
 | 
			
		||||
// this also preserves -0
 | 
			
		||||
const IS_UNARY_NEGATIVE = node => {
 | 
			
		||||
  if (
 | 
			
		||||
    node.type === 'UnaryExpression' &&
 | 
			
		||||
    node.operator === '-' &&
 | 
			
		||||
    typeof node.argument.value === 'number' &&
 | 
			
		||||
    node.argument.value === node.argument.value &&
 | 
			
		||||
    node.argument.type === 'Literal'
 | 
			
		||||
  ) {
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  return false;
 | 
			
		||||
};
 | 
			
		||||
const IS_CONSTEXPR = node => {
 | 
			
		||||
  if (typeof node !== 'object' || node === null) {
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
  // DONT CALCULATE THINGS MULTIPLE TIMES!!@!@#
 | 
			
		||||
  if (node[$CONSTEXPR]) return true;
 | 
			
		||||
  if (node.type === 'ArrayExpression') {
 | 
			
		||||
    for (let i = 0; i < node.elements.length; i++) {
 | 
			
		||||
      const element = node.elements[i];
 | 
			
		||||
      // hole == null
 | 
			
		||||
      if (element !== null && !IS_CONSTEXPR(element)) {
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  if (node.type === 'ObjectExpression') {
 | 
			
		||||
    for (let i = 0; i < node.properties.length; i++) {
 | 
			
		||||
      const element = node.properties[i];
 | 
			
		||||
      if (element.kind !== 'init') return false;
 | 
			
		||||
      if (element.method) return false;
 | 
			
		||||
      let key;
 | 
			
		||||
      if (element.computed) {
 | 
			
		||||
        // be sure {["y"]:1} works
 | 
			
		||||
        if (!IS_CONSTEXPR(element.key)) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if (!IS_CONSTEXPR(element.value)) return false;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  if (node.type === 'Literal' || IS_UNDEFINED(node) || IS_NAN(node)) {
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  if (IS_UNARY_NEGATIVE(node)) {
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  return false;
 | 
			
		||||
};
 | 
			
		||||
const IS_NAN = node => {
 | 
			
		||||
  return node === NAN;
 | 
			
		||||
};
 | 
			
		||||
const IS_UNDEFINED = node => {
 | 
			
		||||
  return node === UNDEFINED;
 | 
			
		||||
};
 | 
			
		||||
const CONSTVALUE = node => {
 | 
			
		||||
  if (node[$CONSTVALUE]) {
 | 
			
		||||
    return node[$CONSTVALUE];
 | 
			
		||||
  }
 | 
			
		||||
  if (IS_UNDEFINED(node)) return void 0;
 | 
			
		||||
  if (IS_NAN(node)) return +'_';
 | 
			
		||||
  if (!IS_CONSTEXPR(node)) throw new Error('Not a CONSTEXPR');
 | 
			
		||||
  if (node.type === 'ArrayExpression') {
 | 
			
		||||
    let ret = [];
 | 
			
		||||
    ret.length = node.elements.length;
 | 
			
		||||
    for (let i = 0; i < node.elements.length; i++) {
 | 
			
		||||
      if (node.elements[i] !== null) {
 | 
			
		||||
        ret[i] = CONSTVALUE(node.elements[i]);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return ret;
 | 
			
		||||
  }
 | 
			
		||||
  if (node.type === 'ObjectExpression') {
 | 
			
		||||
    let ret = Object.create(null);
 | 
			
		||||
    for (let i = 0; i < node.properties.length; i++) {
 | 
			
		||||
      const element = node.properties[i];
 | 
			
		||||
      let key;
 | 
			
		||||
      if (element.computed) {
 | 
			
		||||
        key = `${CONSTVALUE(element.key)}`;
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
        key = element.key.name;
 | 
			
		||||
      }
 | 
			
		||||
      Object.defineProperty(ret, key, {
 | 
			
		||||
        // duplicate keys...
 | 
			
		||||
        configurable: true,
 | 
			
		||||
        writable: true,
 | 
			
		||||
        value: CONSTVALUE(element.value),
 | 
			
		||||
        enumerable: true
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    Object.freeze(ret);
 | 
			
		||||
    return ret;
 | 
			
		||||
  }
 | 
			
		||||
  if (IS_UNARY_NEGATIVE(node)) {
 | 
			
		||||
    return -node.argument.value;
 | 
			
		||||
  }
 | 
			
		||||
  if (node.regex !== void 0) {
 | 
			
		||||
    return new RegExp(node.regex.pattern, node.regex.flags);
 | 
			
		||||
  }
 | 
			
		||||
  return node.value;
 | 
			
		||||
};
 | 
			
		||||
const CONSTEXPRS = new Map();
 | 
			
		||||
CONSTEXPRS.set(void 0, UNDEFINED);
 | 
			
		||||
CONSTEXPRS.set(+'_', NAN);
 | 
			
		||||
CONSTEXPRS.set(null, NULL);
 | 
			
		||||
const TO_CONSTEXPR = value => {
 | 
			
		||||
  if (value === -Infinity) {
 | 
			
		||||
    return NEG_INFINITY;
 | 
			
		||||
  }
 | 
			
		||||
  if (value === Infinity) {
 | 
			
		||||
    return INFINITY;
 | 
			
		||||
  }
 | 
			
		||||
  let is_neg_zero = 1 / value === -Infinity;
 | 
			
		||||
  if (is_neg_zero) return NEG_ZERO;
 | 
			
		||||
  if (CONSTEXPRS.has(value)) {
 | 
			
		||||
    return CONSTEXPRS.get(value);
 | 
			
		||||
  }
 | 
			
		||||
  if (typeof value === 'number') {
 | 
			
		||||
    if (value < 0) {
 | 
			
		||||
      const CONSTEXPR = Object.freeze({
 | 
			
		||||
        [$CONSTEXPR]: true,
 | 
			
		||||
        [$CONSTVALUE]: value,
 | 
			
		||||
        type: 'UnaryExpression',
 | 
			
		||||
        operator: '-',
 | 
			
		||||
        argument: Object.freeze({ type: 'Literal', value: -value }),
 | 
			
		||||
      });
 | 
			
		||||
      CONSTEXPRS.set(value, CONSTEXPR);
 | 
			
		||||
      return CONSTEXPR;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (
 | 
			
		||||
    value === null ||
 | 
			
		||||
    typeof value === 'number' ||
 | 
			
		||||
    typeof value === 'boolean' ||
 | 
			
		||||
    typeof value === 'string'
 | 
			
		||||
  ) {
 | 
			
		||||
    const CONSTEXPR = Object.freeze({
 | 
			
		||||
      [$CONSTEXPR]: true,
 | 
			
		||||
      [$CONSTVALUE]: value,
 | 
			
		||||
      type: 'Literal',
 | 
			
		||||
      value,
 | 
			
		||||
    });
 | 
			
		||||
    CONSTEXPRS.set(value, CONSTEXPR);
 | 
			
		||||
    return CONSTEXPR;
 | 
			
		||||
  }
 | 
			
		||||
  // have to generate new one every time :-/
 | 
			
		||||
  if (Array.isArray(value)) {
 | 
			
		||||
    return Object.freeze({
 | 
			
		||||
      [$CONSTEXPR]: true,
 | 
			
		||||
      type: 'ArrayExpression',
 | 
			
		||||
      elements: Object.freeze(value.map(TO_CONSTEXPR)),
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  if (typeof value === 'object' && Object.getPrototypeOf(value) === Object.getPrototypeOf({}) && [...Object.getOwnPropertySymbols(value)].length === 0) {
 | 
			
		||||
    return Object.freeze({
 | 
			
		||||
      [$CONSTEXPR]: true,
 | 
			
		||||
      type: 'ObjectExpression',
 | 
			
		||||
      properties: Object.freeze(
 | 
			
		||||
        [...Object.getOwnPropertyKeys(value)].map(key => {
 | 
			
		||||
          if (!('value' in Object.getOwnProperty(value, key))) {
 | 
			
		||||
            throw Error('Not a CONSTVALUE (found a setter or getter?)');
 | 
			
		||||
          }
 | 
			
		||||
          return {
 | 
			
		||||
            type: 'Property',
 | 
			
		||||
            kind: 'init',
 | 
			
		||||
            method: false,
 | 
			
		||||
            shorthand: false,
 | 
			
		||||
            computed: true,
 | 
			
		||||
            key: {
 | 
			
		||||
              type: 'Literal',
 | 
			
		||||
              value: key
 | 
			
		||||
            },
 | 
			
		||||
            value: TO_CONSTEXPR(value[key])
 | 
			
		||||
          }
 | 
			
		||||
        })),
 | 
			
		||||
      });
 | 
			
		||||
  }
 | 
			
		||||
  throw Error('Not a CONSTVALUE (did you pass a RegExp?)');
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// THIS DOES NOT HANDLE NODE SPECIFIC CASES LIKE IfStatement
 | 
			
		||||
const FOLD_EMPTY = function*(path) {
 | 
			
		||||
  if (
 | 
			
		||||
    path &&
 | 
			
		||||
    path.node &&
 | 
			
		||||
    path.parent &&
 | 
			
		||||
    Array.isArray(path.parent.node) &&
 | 
			
		||||
    IS_EMPTY(path)
 | 
			
		||||
  ) {
 | 
			
		||||
    REMOVE(path);
 | 
			
		||||
    return yield;
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// THIS DOES NOT HANDLE NODE SPECIFIC CASES LIKE IfStatement
 | 
			
		||||
const FOLD_TEMPLATE = function*(path) {
 | 
			
		||||
  if (
 | 
			
		||||
    path &&
 | 
			
		||||
    path.node &&
 | 
			
		||||
    path.type === 'TemplateLiteral'
 | 
			
		||||
  ) {
 | 
			
		||||
    let updated = false;
 | 
			
		||||
    for (let i = 0; i < path.node.exressions.length; i++) {
 | 
			
		||||
      if (IS_CONSTEXPR(path.node.expressions[i])) {
 | 
			
		||||
        //let 
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_EXPR_STMT = function*(path) {
 | 
			
		||||
  // TODO: enforce completion value checking
 | 
			
		||||
  if (path && path.node && path.node.type === 'ExpressionStatement') {
 | 
			
		||||
    // merge all the adjacent expression statements into sequences
 | 
			
		||||
    if (Array.isArray(path.parent.node)) {
 | 
			
		||||
      // could have nodes after it
 | 
			
		||||
      const siblings = path.parent.node;
 | 
			
		||||
      if (!IS_PRAGMA(path)) {
 | 
			
		||||
        if (path.key < siblings.length - 1) {
 | 
			
		||||
          const mergeable = [path.node];
 | 
			
		||||
          for (let needle = path.key + 1; needle < siblings.length; needle++) {
 | 
			
		||||
            if (siblings[needle].type !== 'ExpressionStatement') {
 | 
			
		||||
              break;
 | 
			
		||||
            }
 | 
			
		||||
            mergeable.push(siblings[needle]);
 | 
			
		||||
          }
 | 
			
		||||
          if (mergeable.length > 1) {
 | 
			
		||||
            siblings.splice(path.key, mergeable.length, {
 | 
			
		||||
              type: 'ExpressionStatement',
 | 
			
		||||
              expression: {
 | 
			
		||||
                type: 'SequenceExpression',
 | 
			
		||||
                expressions: mergeable.reduce(
 | 
			
		||||
                  (acc, es) => {
 | 
			
		||||
                    if (es.expression.type == 'SequenceExpression') {
 | 
			
		||||
                      return [...acc, ...es.expression.expressions];
 | 
			
		||||
                    } else {
 | 
			
		||||
                      return [...acc, es.expression];
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  []
 | 
			
		||||
                ),
 | 
			
		||||
              },
 | 
			
		||||
            });
 | 
			
		||||
            return path;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (IS_NOT_COMPLETION(path) && IS_CONSTEXPR(path.node.expression)) {
 | 
			
		||||
      return REPLACE(path, EMPTY);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_WHILE = function*(path) {
 | 
			
		||||
  if (path && path.node) {
 | 
			
		||||
    if (path.node.type === 'DoWhileStatement') {
 | 
			
		||||
      console.error('FOLD_DOWHILE');
 | 
			
		||||
      REPLACE_IF_EMPTY(path.get(['body']), EMPTY);
 | 
			
		||||
    }
 | 
			
		||||
    if (path.node.type === 'WhileStatement') {
 | 
			
		||||
      console.error('FOLD_WHILE');
 | 
			
		||||
      let { test, consequent, alternate } = path.node;
 | 
			
		||||
      if (IS_CONSTEXPR(test)) {
 | 
			
		||||
        test = CONSTVALUE(test);
 | 
			
		||||
        if (!test) {
 | 
			
		||||
          return REPLACE(path, EMPTY);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      REPLACE_IF_EMPTY(path.get(['body']), EMPTY);
 | 
			
		||||
    }
 | 
			
		||||
    if (path.node.type === 'ForStatement') {
 | 
			
		||||
      console.error('FOLD_FOR');
 | 
			
		||||
      REPLACE_IF_EMPTY(path.get(['body']), EMPTY);
 | 
			
		||||
      let { init, test, update } = path.node;
 | 
			
		||||
      let updated = false;
 | 
			
		||||
      if (init && IS_CONSTEXPR(init)) {
 | 
			
		||||
        updated = true;
 | 
			
		||||
        REPLACE(path.get(['init']), null);
 | 
			
		||||
      }
 | 
			
		||||
      if (test && IS_CONSTEXPR(test)) {
 | 
			
		||||
        let current = CONSTVALUE(test);
 | 
			
		||||
        let coerced = Boolean(current);
 | 
			
		||||
        // remove the test if it is always true
 | 
			
		||||
        if (coerced === true) {
 | 
			
		||||
          updated = true;
 | 
			
		||||
          REPLACE(path.get(['test']), null);
 | 
			
		||||
        } else if (coerced !== current) {
 | 
			
		||||
          updated = true;
 | 
			
		||||
          REPLACE(path.get(['test']), TO_CONSTEXPR(coerced));
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if (update && IS_CONSTEXPR(update)) {
 | 
			
		||||
        updated = true;
 | 
			
		||||
        REPLACE(path.get(['update']), null);
 | 
			
		||||
      }
 | 
			
		||||
      if (updated) {
 | 
			
		||||
        return path;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_IF = function*(path) {
 | 
			
		||||
  if (path && path.node && path.node.type === 'IfStatement') {
 | 
			
		||||
    let { test, consequent, alternate } = path.node;
 | 
			
		||||
    const is_not_completion = IS_NOT_COMPLETION(path);
 | 
			
		||||
    if (is_not_completion && !alternate) {
 | 
			
		||||
      if (IS_EMPTY(path.get(['consequent']))) {
 | 
			
		||||
        console.error('FOLD_IF_EMPTY_CONSEQUENT');
 | 
			
		||||
        REPLACE(path, {
 | 
			
		||||
          type: 'ExpressionStatement',
 | 
			
		||||
          expression: test,
 | 
			
		||||
        });
 | 
			
		||||
        return path.parent;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (alternate) {
 | 
			
		||||
      if (alternate.type === consequent.type) {
 | 
			
		||||
        if (consequent.type === 'ExpressionStatement') {
 | 
			
		||||
          console.error('FOLD_IF_BOTH_EXPRSTMT');
 | 
			
		||||
          REPLACE(path, {
 | 
			
		||||
          type: 'ExpressionStatement', expression:
 | 
			
		||||
          {
 | 
			
		||||
            type: 'ConditionalExpression',
 | 
			
		||||
            test: test,
 | 
			
		||||
            consequent: consequent.expression,
 | 
			
		||||
            alternate: alternate.expression,
 | 
			
		||||
          }});
 | 
			
		||||
          return path.parent;
 | 
			
		||||
        }
 | 
			
		||||
        else if (consequent.type === 'ReturnStatement' ||
 | 
			
		||||
          consequent.type === 'ThrowStatement') {
 | 
			
		||||
          console.error('FOLD_IF_BOTH_COMPLETIONS');
 | 
			
		||||
          REPLACE(path, {
 | 
			
		||||
          type: 'ExpressionStatement', expression:{
 | 
			
		||||
            type: consequent.type,
 | 
			
		||||
            argument: {
 | 
			
		||||
              type: 'ConditionalExpression',
 | 
			
		||||
              test: test,
 | 
			
		||||
              consequent: consequent.argument,
 | 
			
		||||
              alternate: alternate.argument,
 | 
			
		||||
            }}
 | 
			
		||||
          });
 | 
			
		||||
          return path.parent;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else if (is_not_completion && consequent.type === 'ExpressionStatement') {
 | 
			
		||||
      console.error('FOLD_IF_NON_COMPLETION_TO_&&');
 | 
			
		||||
      REPLACE(path, {
 | 
			
		||||
        type: 'ExpressionStatement',
 | 
			
		||||
        expression: {
 | 
			
		||||
          type: 'BinaryExpression',
 | 
			
		||||
          operator: '&&',
 | 
			
		||||
          left: test,
 | 
			
		||||
          right: consequent.expression,
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      return path.parent;
 | 
			
		||||
    }
 | 
			
		||||
    if (IS_CONSTEXPR(test)) {
 | 
			
		||||
      test = CONSTVALUE(test);
 | 
			
		||||
      if (test) {
 | 
			
		||||
        return REPLACE(path, consequent);
 | 
			
		||||
      }
 | 
			
		||||
      if (alternate) {
 | 
			
		||||
        return REPLACE(path, alternate);
 | 
			
		||||
      }
 | 
			
		||||
      return REPLACE(path, EMPTY);
 | 
			
		||||
    }
 | 
			
		||||
    consequent = path.get(['consequent']);
 | 
			
		||||
    let updated;
 | 
			
		||||
    if (consequent.node !== EMPTY) {
 | 
			
		||||
      REPLACE_IF_EMPTY(consequent, EMPTY);
 | 
			
		||||
      if (consequent.parent.node[consequent.key] === EMPTY) {
 | 
			
		||||
        updated = true;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (alternate) {
 | 
			
		||||
      alternate = path.get(['alternate']);
 | 
			
		||||
      REMOVE_IF_EMPTY(alternate);
 | 
			
		||||
      if (path.node.alternate === null) {
 | 
			
		||||
        updated = true;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (updated) {
 | 
			
		||||
      return path;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_SEQUENCE = function*(path) {
 | 
			
		||||
  if (path && path.node && path.node.type === 'SequenceExpression') {
 | 
			
		||||
    console.error('FOLD_SEQUENCE');
 | 
			
		||||
    // never delete the last value
 | 
			
		||||
    for (let i = 0; i < path.node.expressions.length - 1; i++) {
 | 
			
		||||
      if (IS_CONSTEXPR(path.node.expressions[i])) {
 | 
			
		||||
        path.node.expressions.splice(i, 1);
 | 
			
		||||
        i--;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (path.node.expressions.length === 1) {
 | 
			
		||||
      return REPLACE(path, path.node.expressions[0]);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_LOGICAL = function*(path) {
 | 
			
		||||
  if (path && path.node && path.node.type === 'LogicalExpression') {
 | 
			
		||||
    console.error('FOLD_LOGICAL');
 | 
			
		||||
    let { left, right, operator } = path.node;
 | 
			
		||||
    if (IS_CONSTEXPR(left)) {
 | 
			
		||||
      left = CONSTVALUE(left);
 | 
			
		||||
      if (operator === '||') {
 | 
			
		||||
        if (left) {
 | 
			
		||||
          return REPLACE(path, TO_CONSTEXPR(left));
 | 
			
		||||
        }
 | 
			
		||||
        return REPLACE(path, right);
 | 
			
		||||
      } else if (operator === '&&') {
 | 
			
		||||
        if (!left) {
 | 
			
		||||
          return REPLACE(path, TO_CONSTEXPR(left));
 | 
			
		||||
        }
 | 
			
		||||
        return REPLACE(path, right);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_SWITCH = function*(path) {
 | 
			
		||||
  if (path && path.node && path.node.type === 'SwitchStatement') {
 | 
			
		||||
    let { discriminant, cases } = path.node;
 | 
			
		||||
    // if there are no cases, just become an expression
 | 
			
		||||
    if (cases.length === 0 && IS_NOT_COMPLETION(path)) {
 | 
			
		||||
      return REPLACE(path, {
 | 
			
		||||
        type: 'ExpressionStatement',
 | 
			
		||||
        expression: discriminant
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    // if the discriminant is static
 | 
			
		||||
    //   remove any preceding non-matching static cases
 | 
			
		||||
    //   fold any trailing cases into the matching case
 | 
			
		||||
    if (cases.length > 1 && IS_CONSTEXPR(discriminant)) {
 | 
			
		||||
      const discriminant_value = CONSTVALUE(discriminant);
 | 
			
		||||
      for (var i = 0; i < cases.length; i++) {
 | 
			
		||||
        const test = cases[i].test;
 | 
			
		||||
        if (IS_CONSTEXPR(test)) {
 | 
			
		||||
          let test_value = CONSTVALUE(test);
 | 
			
		||||
          if (discriminant_value === test_value) {
 | 
			
		||||
            let new_consequent = cases[i].consequent;
 | 
			
		||||
            if (i < cases.length - 1) {
 | 
			
		||||
              for (let fallthrough of cases.slice(i+1)) {
 | 
			
		||||
                new_consequent.push(...fallthrough.consequent);
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
            cases[i].consequent = new_consequent;
 | 
			
		||||
            REPLACE(path.get(['cases']), [cases[i]]);
 | 
			
		||||
            return path;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
          // we had a dynamic case need to bail
 | 
			
		||||
          break;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_UNREACHABLE = function*(path) {
 | 
			
		||||
  if (path && path.node && path.parent && Array.isArray(path.parent.node)) {
 | 
			
		||||
    if (path.node.type === 'ReturnStatement' ||
 | 
			
		||||
    path.node.type === 'ContinueStatement' ||
 | 
			
		||||
    path.node.type === 'BreakStatement' ||
 | 
			
		||||
    path.node.type === 'ThrowStatement') {
 | 
			
		||||
      const next_key = path.key + 1;
 | 
			
		||||
      path.parent.node.splice(next_key, path.parent.node.length - next_key);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
}
 | 
			
		||||
const FOLD_CONDITIONAL = function*(path) {
 | 
			
		||||
  if (path && path.node && path.node.type === 'ConditionalExpression') {
 | 
			
		||||
    console.error('FOLD_CONDITIONAL');
 | 
			
		||||
    let { test, consequent, alternate } = path.node;
 | 
			
		||||
    if (IS_CONSTEXPR(test)) {
 | 
			
		||||
      test = CONSTVALUE(test);
 | 
			
		||||
      if (test) {
 | 
			
		||||
        return REPLACE(path, consequent);
 | 
			
		||||
      }
 | 
			
		||||
      return REPLACE(path, alternate);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_BINARY = function*(path) {
 | 
			
		||||
  if (
 | 
			
		||||
    path &&
 | 
			
		||||
    path.node &&
 | 
			
		||||
    path.node.type === 'BinaryExpression' &&
 | 
			
		||||
    !IS_NAN(path.node)
 | 
			
		||||
  ) {
 | 
			
		||||
    console.error('FOLD_BINARY');
 | 
			
		||||
    let { left, right, operator } = path.node;
 | 
			
		||||
    if (operator === '==' || operator === '!=') {
 | 
			
		||||
      let updated = false;
 | 
			
		||||
      if (IS_UNDEFINED(left)) {
 | 
			
		||||
        updated = true;
 | 
			
		||||
        REPLACE(path.get(['left']), NULL);
 | 
			
		||||
      }
 | 
			
		||||
      if (IS_UNDEFINED(right)) {
 | 
			
		||||
        updated = true;
 | 
			
		||||
        REPLACE(path.get(['right']), NULL);
 | 
			
		||||
      }
 | 
			
		||||
      if (updated) {
 | 
			
		||||
        return path;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (path.node !== INFINITY && path.node !== NEG_INFINITY && IS_CONSTEXPR(left) && IS_CONSTEXPR(right)) {
 | 
			
		||||
      left = CONSTVALUE(left);
 | 
			
		||||
      right = CONSTVALUE(right);
 | 
			
		||||
      let value;
 | 
			
		||||
      if ((!left || typeof left !== 'object') && (!right || typeof right !== 'object')) {
 | 
			
		||||
        if (operator === '+') {
 | 
			
		||||
          value = left + right;
 | 
			
		||||
        } else if (operator === '-') {
 | 
			
		||||
          value = left - right;
 | 
			
		||||
        } else if (operator === '*') {
 | 
			
		||||
          value = left * right;
 | 
			
		||||
        } else if (operator === '/') {
 | 
			
		||||
          value = left / right;
 | 
			
		||||
        } else if (operator === '%') {
 | 
			
		||||
          value = left % right;
 | 
			
		||||
        } else if (operator === '==') {
 | 
			
		||||
          value = left == right;
 | 
			
		||||
        } else if (operator === '!=') {
 | 
			
		||||
          value = left != right;
 | 
			
		||||
        } else if (operator === '===') {
 | 
			
		||||
          value = left === right;
 | 
			
		||||
        } else if (operator === '!==') {
 | 
			
		||||
          value = left !== right;
 | 
			
		||||
        } else if (operator === '<') {
 | 
			
		||||
          value = left < right;
 | 
			
		||||
        } else if (operator === '<=') {
 | 
			
		||||
          value = left <= right;
 | 
			
		||||
        } else if (operator === '>') {
 | 
			
		||||
          value = left > right;
 | 
			
		||||
        } else if (operator === '>=') {
 | 
			
		||||
          value = left >= right;
 | 
			
		||||
        } else if (operator === '<<') {
 | 
			
		||||
          value = left << right;
 | 
			
		||||
        } else if (operator === '>>') {
 | 
			
		||||
          value = left >> right;
 | 
			
		||||
        } else if (operator === '>>>') {
 | 
			
		||||
          value = left >>> right;
 | 
			
		||||
        } else if (operator === '|') {
 | 
			
		||||
          value = left | right;
 | 
			
		||||
        } else if (operator === '&') {
 | 
			
		||||
          value = left & right;
 | 
			
		||||
        } else if (operator === '^') {
 | 
			
		||||
          value = left ^ right;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
        if (operator === '==') value = false;
 | 
			
		||||
        if (operator === '===') value = false;
 | 
			
		||||
        if (operator === '!=') value = true;
 | 
			
		||||
        if (operator === '!==') value = true;
 | 
			
		||||
        if (operator === 'in' && typeof right === 'object' && right) {
 | 
			
		||||
          value = Boolean(Object.getOwnPropertyDescriptor(right, left));
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if (value !== void 0) {
 | 
			
		||||
        if (typeof value === 'string' || typeof value === 'boolean' || value === null) {
 | 
			
		||||
          return REPLACE(path, TO_CONSTEXPR(value));
 | 
			
		||||
        }
 | 
			
		||||
        if (typeof value === 'number') {
 | 
			
		||||
          return REPLACE(path, TO_CONSTEXPR(value));
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_UNARY = function*(path) {
 | 
			
		||||
  if (path && path.node && path.node.type === 'UnaryExpression') {
 | 
			
		||||
    console.error('FOLD_UNARY');
 | 
			
		||||
    if (IS_CONSTEXPR(path.node)) {
 | 
			
		||||
      return yield path;
 | 
			
		||||
    }
 | 
			
		||||
    let { argument, operator } = path.node;
 | 
			
		||||
    if (IS_CONSTEXPR(argument)) {
 | 
			
		||||
      if (operator === 'void') {
 | 
			
		||||
        return REPLACE(path, UNDEFINED);
 | 
			
		||||
      }
 | 
			
		||||
      let value = CONSTVALUE(argument);
 | 
			
		||||
      if (operator === '-') {
 | 
			
		||||
        value = -value;
 | 
			
		||||
      } else if (operator === '+') {
 | 
			
		||||
        value = +value;
 | 
			
		||||
      } else if (operator === '~') {
 | 
			
		||||
        value = ~value;
 | 
			
		||||
      } else if (operator === '!') {
 | 
			
		||||
        value = !value;
 | 
			
		||||
      } else if (operator === 'typeof') {
 | 
			
		||||
        value = typeof value;
 | 
			
		||||
      } else if (operator === 'delete') {
 | 
			
		||||
        value = true;
 | 
			
		||||
      }
 | 
			
		||||
      return REPLACE(path, TO_CONSTEXPR(value));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
const FOLD_EVAL = function*(path) {
 | 
			
		||||
  if (path && path.node && path.node.type === 'CallExpression' &&
 | 
			
		||||
    path.node.callee.type === 'Identifier' && path.node.callee.name === 'eval') {
 | 
			
		||||
    console.error('FOLD_EVAL');
 | 
			
		||||
    if (path.node.arguments.length === 1 && path.node.arguments[0].type === 'Literal') {
 | 
			
		||||
      let result = esprima.parse(`${
 | 
			
		||||
        CONSTVALUE(path.node.arguments[0])
 | 
			
		||||
      }`);
 | 
			
		||||
      if (result.body.length === 1 && result.body[0].type === 'ExpressionStatement') {
 | 
			
		||||
        return REPLACE(path, result.body[0].expression);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
}
 | 
			
		||||
const FOLD_MEMBER = function*(path) {
 | 
			
		||||
  if (path && path.node && path.node.type === 'MemberExpression') {
 | 
			
		||||
    console.error('FOLD_MEMBER');
 | 
			
		||||
    if (path.node.computed && path.node.property.type === 'Literal') {
 | 
			
		||||
      const current = `${CONSTVALUE(path.node.property)}`;
 | 
			
		||||
      if (typeof current === 'string' && /^[$_a-z][$_a-z\d]*$/i.test(current)) {
 | 
			
		||||
        path.node.computed = false;
 | 
			
		||||
        path.node.property = {
 | 
			
		||||
          type: 'Identifier',
 | 
			
		||||
          name: current,
 | 
			
		||||
        };
 | 
			
		||||
        return path;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (IS_CONSTEXPR(path.node.object)) {
 | 
			
		||||
      const value = CONSTVALUE(path.node.object);
 | 
			
		||||
      if (typeof value === 'string' || Array.isArray(value) || (value && typeof value === 'object')) {
 | 
			
		||||
        let key;
 | 
			
		||||
        if (IS_CONSTEXPR(path.node.property)) {
 | 
			
		||||
          key = `${CONSTVALUE(path.node.property)}`;
 | 
			
		||||
        }
 | 
			
		||||
        else if (!path.node.computed) {
 | 
			
		||||
          key = path.node.property.name;
 | 
			
		||||
        }
 | 
			
		||||
        if (key !== void 0) {
 | 
			
		||||
          const desc = Object.getOwnPropertyDescriptor(value, key);
 | 
			
		||||
          if (desc) {
 | 
			
		||||
            const folded = value[key];
 | 
			
		||||
            console.error('FOLDING', JSON.stringify(folded));
 | 
			
		||||
            if (IN_PRAGMA_POS(path) && typeof folded === 'string') {
 | 
			
		||||
              if (value.length > 1) {
 | 
			
		||||
                REPLACE(
 | 
			
		||||
                  path.get(['object']),
 | 
			
		||||
                  TO_CONSTEXPR(value.slice(key, key + 1))
 | 
			
		||||
                );
 | 
			
		||||
                REPLACE(path.get(['property']), TO_CONSTEXPR(0));
 | 
			
		||||
                return path;
 | 
			
		||||
              }
 | 
			
		||||
            } else {
 | 
			
		||||
              return REPLACE(path, TO_CONSTEXPR(value[key]));
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const $MIN = Symbol();
 | 
			
		||||
const MIN_TRUE = Object.freeze({
 | 
			
		||||
  [$MIN]: true,
 | 
			
		||||
  type: 'UnaryExpression',
 | 
			
		||||
  operator: '!',
 | 
			
		||||
  argument: Object.freeze({
 | 
			
		||||
    [$MIN]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 0
 | 
			
		||||
  })
 | 
			
		||||
});
 | 
			
		||||
const MIN_FALSE = Object.freeze({
 | 
			
		||||
  [$MIN]: true,
 | 
			
		||||
  type: 'UnaryExpression',
 | 
			
		||||
  operator: '!',
 | 
			
		||||
  argument: Object.freeze({
 | 
			
		||||
    [$MIN]: true,
 | 
			
		||||
    type: 'Literal',
 | 
			
		||||
    value: 1
 | 
			
		||||
  })
 | 
			
		||||
});
 | 
			
		||||
const MIN_REPLACEMENTS = new Map;
 | 
			
		||||
MIN_REPLACEMENTS.set(true, MIN_TRUE);
 | 
			
		||||
MIN_REPLACEMENTS.set(false, MIN_FALSE);
 | 
			
		||||
const MIN_VALUES = function*(path) {
 | 
			
		||||
  if (path && path.node && !path.node[$MIN] && IS_CONSTEXPR(path.node)) {
 | 
			
		||||
    let value = CONSTVALUE(path.node);
 | 
			
		||||
    if (MIN_REPLACEMENTS.has(value)) {
 | 
			
		||||
      console.error('MIN_VALUE', value)
 | 
			
		||||
      return REPLACE(path, MIN_REPLACEMENTS.get(value));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return yield path;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
import esprima from 'esprima';
 | 
			
		||||
import util from 'util';
 | 
			
		||||
import escodegen from 'escodegen';
 | 
			
		||||
const optimize = (src) => {
 | 
			
		||||
    const ROOT = new NodePath(
 | 
			
		||||
      null,
 | 
			
		||||
      esprima.parse(
 | 
			
		||||
        src,
 | 
			
		||||
        {
 | 
			
		||||
          // loc: true,
 | 
			
		||||
          // source: '<stdin>',
 | 
			
		||||
        }
 | 
			
		||||
      ),
 | 
			
		||||
      null
 | 
			
		||||
    );
 | 
			
		||||
    // all of these are things that could affect completion value positions
 | 
			
		||||
    const walk_expressions = WalkCombinator.pipe(
 | 
			
		||||
      ...[
 | 
			
		||||
        WalkCombinator.DEPTH_FIRST,
 | 
			
		||||
        {
 | 
			
		||||
          // We never work on Arrays
 | 
			
		||||
          *inputs(path) {
 | 
			
		||||
            if (Array.isArray(path)) return;
 | 
			
		||||
            return yield path;
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        { inputs: FOLD_UNREACHABLE },
 | 
			
		||||
        { inputs: FOLD_IF },
 | 
			
		||||
        { inputs: FOLD_SWITCH },
 | 
			
		||||
        { inputs: FOLD_EXPR_STMT },
 | 
			
		||||
        { inputs: FOLD_CONDITIONAL },
 | 
			
		||||
        { inputs: FOLD_LOGICAL },
 | 
			
		||||
        { inputs: FOLD_BINARY },
 | 
			
		||||
        { inputs: FOLD_UNARY },
 | 
			
		||||
        { inputs: FOLD_SEQUENCE },
 | 
			
		||||
        { inputs: FOLD_MEMBER },
 | 
			
		||||
        { inputs: FOLD_EMPTY },
 | 
			
		||||
        { inputs: FOLD_WHILE },
 | 
			
		||||
        { inputs: FOLD_EVAL },
 | 
			
		||||
      ]
 | 
			
		||||
    ).walk(ROOT);
 | 
			
		||||
    for (const _ of walk_expressions) {
 | 
			
		||||
    }
 | 
			
		||||
    const minify = WalkCombinator.pipe(
 | 
			
		||||
      ...[
 | 
			
		||||
        WalkCombinator.DEPTH_FIRST,
 | 
			
		||||
        {
 | 
			
		||||
          // We never work on Arrays
 | 
			
		||||
          *inputs(path) {
 | 
			
		||||
            if (Array.isArray(path)) return;
 | 
			
		||||
            return yield path;
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        { inputs: MIN_VALUES },
 | 
			
		||||
      ]
 | 
			
		||||
    ).walk(ROOT);
 | 
			
		||||
    for (const _ of minify) {
 | 
			
		||||
    }
 | 
			
		||||
    return ROOT;
 | 
			
		||||
}
 | 
			
		||||
import mississippi from 'mississippi';
 | 
			
		||||
process.stdin.pipe(
 | 
			
		||||
  mississippi.concat(buff => {
 | 
			
		||||
    const ROOT = optimize(`${buff}`)
 | 
			
		||||
    console.error(
 | 
			
		||||
      '%s',
 | 
			
		||||
      util.inspect(ROOT.node, {
 | 
			
		||||
        depth: null,
 | 
			
		||||
        colors: true,
 | 
			
		||||
      })
 | 
			
		||||
    );
 | 
			
		||||
    const out = escodegen.generate(ROOT.node);
 | 
			
		||||
    console.log(out);
 | 
			
		||||
  })
 | 
			
		||||
);
 | 
			
		||||
							
								
								
									
										6
									
								
								samples/JavaScript/entry.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								samples/JavaScript/entry.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
import bar from './module.mjs';
 | 
			
		||||
function foo() {
 | 
			
		||||
  return "I am foo";
 | 
			
		||||
}
 | 
			
		||||
export {foo};
 | 
			
		||||
console.log(bar);
 | 
			
		||||
							
								
								
									
										5
									
								
								samples/JavaScript/module.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								samples/JavaScript/module.mjs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
import {foo} from './entry.mjs';
 | 
			
		||||
console.log(foo());
 | 
			
		||||
 | 
			
		||||
const bar = "I am bar.";
 | 
			
		||||
export {bar as default};
 | 
			
		||||
							
								
								
									
										23
									
								
								samples/KiCad Layout/C_Disc_D3_P2.5.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								samples/KiCad Layout/C_Disc_D3_P2.5.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
(module footprints:C_Disc_D3_P2.5 (layer F.Cu) (tedit 0)
 | 
			
		||||
  (descr "Capacitor 3mm Disc, Pitch 2.5mm")
 | 
			
		||||
  (tags Capacitor)
 | 
			
		||||
  (fp_text reference C1 (at 1.25 -2.5) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value C_100nF (at 1.25 2.5) (layer F.Fab)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_line (start -0.9 -1.5) (end 3.4 -1.5) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start 3.4 -1.5) (end 3.4 1.5) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start 3.4 1.5) (end -0.9 1.5) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -0.9 1.5) (end -0.9 -1.5) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -0.25 -1.25) (end 2.75 -1.25) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 2.75 1.25) (end -0.25 1.25) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (pad 1 thru_hole rect (at 0 0) (size 1.3 1.3) (drill 0.8) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 2 thru_hole circle (at 2.5 0) (size 1.3 1.3) (drill 0.8001) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (model Capacitors_ThroughHole.3dshapes/C_Disc_D3_P2.5.wrl
 | 
			
		||||
    (at (xyz 0.0492126 0 0))
 | 
			
		||||
    (scale (xyz 1 1 1))
 | 
			
		||||
    (rotate (xyz 0 0 0))
 | 
			
		||||
  )
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										344
									
								
								samples/KiCad Layout/Conn_Poncho_SinBorde.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										344
									
								
								samples/KiCad Layout/Conn_Poncho_SinBorde.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,344 @@
 | 
			
		||||
(module Conn_Poncho_SinBorde (layer F.Cu) (tedit 560F0DC0)
 | 
			
		||||
  (tags "CONN Poncho")
 | 
			
		||||
  (fp_text reference XA? (at -0.254 -3.175) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.8 0.8) (thickness 0.12)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value Conn_Poncho_SinBorde (at -1.905 51.181) (layer F.SilkS) hide
 | 
			
		||||
    (effects (font (size 1.016 1.016) (thickness 0.2032)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO8 (at -64.516 48.26) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO7 (at -64.516 45.72) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO5 (at -64.516 43.18) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO3 (at -64.516 40.64) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO1 (at -64.516 38.1) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user LCD1 (at -65.024 35.56) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user LCD2 (at -65.024 33.02) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user LCD3 (at -65.024 30.48) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user LCD_RS (at -64.008 27.94) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user LCD4 (at -65.024 25.4) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user SPI_SCK (at -63.754 22.86) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user SPI_MISO (at -63.5 20.32) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user TXD1 (at -65.024 17.78) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user TXD0 (at -65.024 15.24) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user MDIO (at -65.024 12.7) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user CRS_DV (at -64.008 10.16) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user MDC (at -65.278 7.62) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user TX_EN (at -64.77 5.08) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user RXD1 (at -65.024 2.54) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user +5V (at -65.532 0) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 48.006) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 45.72) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO6 (at -74.93 43.18) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 0.9) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO4 (at -74.93 40.64) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 0.9) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO2 (at -74.93 38.1) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 0.9) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GPIO0 (at -74.93 35.56) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 0.9) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 33.02) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 30.48) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user LCD_EN (at -74.676 27.686) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 0.7) (thickness 0.17)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user SPI_MOSI (at -74.93 25.146) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 0.7) (thickness 0.17)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 22.86) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 20.32) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user REF_CLK (at -74.93 17.78) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.9 0.7) (thickness 0.175)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 15.24) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 12.7) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 7.62) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user RXD0 (at -74.676 10.16) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 5.08) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at -74.168 2.54) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user +3.3V (at -74.93 0) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 48.26) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 45.72) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user T_F1 (at 5.588 43.18) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.9 0.9) (thickness 0.18)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user T_C2 (at 5.588 40.64) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.9 0.9) (thickness 0.18)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 38.1) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.334 35.56) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 33.02) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 30.48) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 27.94) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 25.4) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 22.86) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GNDA (at 5.588 20.32) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.76 0.76) (thickness 0.19)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GNDA (at 5.588 17.78) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.76 0.76) (thickness 0.19)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GNDA (at 5.588 15.24) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.76 0.76) (thickness 0.19)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GNDA (at 5.588 12.7) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.76 0.76) (thickness 0.19)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GNDA (at 5.588 10.16) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.76 0.76) (thickness 0.19)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GNDA (at 5.588 7.62) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.76 0.76) (thickness 0.19)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user WAKEUP (at 5.588 5.334) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 0.5) (thickness 0.125)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GND (at 5.588 3.048) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user +5V (at 5.588 0) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user T_COL0 (at -4.064 48.26) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user T_FIL2 (at -3.81 45.72) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user T_FIL3 (at -3.81 43.18) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user T_FIL0 (at -3.81 40.64) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user T_COL1 (at -4.064 38.1) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user CAN_TD (at -4.318 35.56) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user CAN_RD (at -4.318 33.02) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user 232_TX (at -4.318 30.48) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user 232_RX (at -4.318 27.94) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user I2C_SCL (at -4.572 25.4) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user I2C_SDA (at -4.572 22.86) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user VDDA (at -3.302 20.32) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user DAC (at -3.048 17.78) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user CH1 (at -3.048 15.24) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user CH2 (at -3.048 12.7) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user CH3 (at -3.048 10.16) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user GNDA (at -3.556 7.62) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user ISP (at -2.794 5.08) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user RESET (at -3.81 2.54) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user CIAA-P2 (at -69.85 -2.032) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.8 0.8) (thickness 0.12)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user CIAA-P1 (at 1.27 -2.032) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 0.8 0.8) (thickness 0.12)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text user +3.3V (at -3.81 0) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.2)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_line (start -72.39 0) (end -72.39 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -72.39 -1.27) (end -67.31 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -67.31 -1.27) (end -67.31 49.53) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -67.31 49.53) (end -72.39 49.53) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -72.39 49.53) (end -72.39 0) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -1.27 49.53) (end -1.27 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 49.53) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 49.53) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 -1.27) (end -1.27 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (pad 1 thru_hole rect (at 0 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 2 thru_hole oval (at 2.54 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 11 thru_hole oval (at 0 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 4 thru_hole oval (at 2.54 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 13 thru_hole oval (at 0 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 6 thru_hole oval (at 2.54 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 15 thru_hole oval (at 0 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 8 thru_hole oval (at 2.54 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 17 thru_hole oval (at 0 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 10 thru_hole oval (at 2.54 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 19 thru_hole oval (at 0 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 12 thru_hole oval (at 2.54 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 21 thru_hole oval (at 0 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 14 thru_hole oval (at 2.54 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 23 thru_hole oval (at 0 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 16 thru_hole oval (at 2.54 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 25 thru_hole oval (at 0 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 18 thru_hole oval (at 2.54 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 27 thru_hole oval (at 0 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 20 thru_hole oval (at 2.54 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 29 thru_hole oval (at 0 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 22 thru_hole oval (at 2.54 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 31 thru_hole oval (at 0 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 24 thru_hole oval (at 2.54 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 26 thru_hole oval (at 2.54 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 33 thru_hole oval (at 0 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 28 thru_hole oval (at 2.54 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 32 thru_hole oval (at 2.54 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 34 thru_hole oval (at 2.54 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 36 thru_hole oval (at 2.54 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 38 thru_hole oval (at 2.54 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 35 thru_hole oval (at 0 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 37 thru_hole oval (at 0 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 3 thru_hole oval (at 0 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 5 thru_hole oval (at 0 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 7 thru_hole oval (at 0 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 9 thru_hole oval (at 0 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 39 thru_hole oval (at 0 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 40 thru_hole oval (at 2.54 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 30 thru_hole oval (at 2.54 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 41 thru_hole rect (at -71.12 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 42 thru_hole oval (at -68.58 0 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 43 thru_hole oval (at -71.12 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 44 thru_hole oval (at -68.58 2.54 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 45 thru_hole oval (at -71.12 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 46 thru_hole oval (at -68.58 5.08 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 47 thru_hole oval (at -71.12 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 48 thru_hole oval (at -68.58 7.62 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 49 thru_hole oval (at -71.12 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 50 thru_hole oval (at -68.58 10.16 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 51 thru_hole oval (at -71.12 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 52 thru_hole oval (at -68.58 12.7 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 53 thru_hole oval (at -71.12 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 54 thru_hole oval (at -68.58 15.24 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 55 thru_hole oval (at -71.12 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 56 thru_hole oval (at -68.58 17.78 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 57 thru_hole oval (at -71.12 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 58 thru_hole oval (at -68.58 20.32 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 59 thru_hole oval (at -71.12 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 60 thru_hole oval (at -68.58 22.86 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 61 thru_hole oval (at -71.12 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 62 thru_hole oval (at -68.58 25.4 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 63 thru_hole oval (at -71.12 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 64 thru_hole oval (at -68.58 27.94 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 65 thru_hole oval (at -71.12 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 66 thru_hole oval (at -68.58 30.48 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 67 thru_hole oval (at -71.12 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 68 thru_hole oval (at -68.58 33.02 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 69 thru_hole oval (at -71.12 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 70 thru_hole oval (at -68.58 35.56 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 71 thru_hole oval (at -71.12 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 72 thru_hole oval (at -68.58 38.1 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 73 thru_hole oval (at -71.12 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 74 thru_hole oval (at -68.58 40.64 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 75 thru_hole oval (at -71.12 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 76 thru_hole oval (at -68.58 43.18 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 77 thru_hole oval (at -71.12 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 78 thru_hole oval (at -68.58 45.72 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 79 thru_hole oval (at -71.12 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 80 thru_hole oval (at -68.58 48.26 270) (size 1.524 2) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										11
									
								
								samples/KiCad Layout/Fiducial_1mm.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								samples/KiCad Layout/Fiducial_1mm.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
(module footprints:Fiducial_1mm (layer F.Cu) (tedit 573E1507)
 | 
			
		||||
  (clearance 1.524)
 | 
			
		||||
  (fp_text reference F3 (at 0.02 -0.9) (layer F.SilkS) hide
 | 
			
		||||
    (effects (font (size 0.7112 0.4572) (thickness 0.1143)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value FIDUCIAL (at 0 0.99) (layer F.SilkS) hide
 | 
			
		||||
    (effects (font (size 0.254 0.254) (thickness 0.00254)))
 | 
			
		||||
  )
 | 
			
		||||
  (pad 1 smd circle (at 0 0) (size 1 1) (layers F.Cu F.Mask)
 | 
			
		||||
    (solder_mask_margin 1.5))
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										25
									
								
								samples/KiCad Layout/LED-5MM.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								samples/KiCad Layout/LED-5MM.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
(module footprints:LED-5MM (layer F.Cu) (tedit 5570F7EA)
 | 
			
		||||
  (descr "LED 5mm round vertical")
 | 
			
		||||
  (tags "LED 5mm round vertical")
 | 
			
		||||
  (fp_text reference D4 (at 1.524 4.064) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value LED (at 1.524 -3.937) (layer F.Fab)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_line (start -1.5 -1.55) (end -1.5 1.55) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_arc (start 1.3 0) (end -1.5 1.55) (angle -302) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_arc (start 1.27 0) (end -1.23 -1.5) (angle 297.5) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -1.23 1.5) (end -1.23 -1.5) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_circle (center 1.27 0) (end 0.97 -2.5) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_text user K (at -1.905 1.905) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (pad 1 thru_hole rect (at 0 0 90) (size 2 1.9) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 2 thru_hole circle (at 2.54 0) (size 1.9 1.9) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (model LEDs.3dshapes/LED-5MM.wrl
 | 
			
		||||
    (at (xyz 0.05 0 0))
 | 
			
		||||
    (scale (xyz 1 1 1))
 | 
			
		||||
    (rotate (xyz 0 0 90))
 | 
			
		||||
  )
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										78
									
								
								samples/KiCad Layout/Logo_OSHWA.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								samples/KiCad Layout/Logo_OSHWA.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
(module footprints:Logo_OSHWA (layer F.Cu) (tedit 560D8B85)
 | 
			
		||||
  (fp_text reference G101 (at 0 4.2418) (layer F.SilkS) hide
 | 
			
		||||
    (effects (font (size 0.7112 0.4572) (thickness 0.1143)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value Logo_OSHWA (at 0 -4.2418) (layer F.SilkS) hide
 | 
			
		||||
    (effects (font (size 0.36322 0.36322) (thickness 0.07112)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_poly (pts (xy -2.42316 3.59156) (xy -2.38252 3.57124) (xy -2.28854 3.51282) (xy -2.15392 3.42392)
 | 
			
		||||
    (xy -1.99644 3.31978) (xy -1.83896 3.21056) (xy -1.70942 3.1242) (xy -1.61798 3.06578)
 | 
			
		||||
    (xy -1.57988 3.04546) (xy -1.55956 3.05054) (xy -1.48336 3.08864) (xy -1.37414 3.14452)
 | 
			
		||||
    (xy -1.31064 3.17754) (xy -1.21158 3.22072) (xy -1.16078 3.23088) (xy -1.15316 3.21564)
 | 
			
		||||
    (xy -1.11506 3.13944) (xy -1.05918 3.00736) (xy -0.98298 2.83464) (xy -0.89662 2.63144)
 | 
			
		||||
    (xy -0.80264 2.413) (xy -0.7112 2.18948) (xy -0.6223 1.97612) (xy -0.54356 1.78562)
 | 
			
		||||
    (xy -0.48006 1.63068) (xy -0.43942 1.52146) (xy -0.42418 1.47574) (xy -0.42926 1.46558)
 | 
			
		||||
    (xy -0.48006 1.41732) (xy -0.56642 1.35128) (xy -0.75692 1.19634) (xy -0.94234 0.96266)
 | 
			
		||||
    (xy -1.05664 0.6985) (xy -1.09474 0.40386) (xy -1.06172 0.13208) (xy -0.95504 -0.12954)
 | 
			
		||||
    (xy -0.77216 -0.36576) (xy -0.55118 -0.54102) (xy -0.2921 -0.65278) (xy 0 -0.68834)
 | 
			
		||||
    (xy 0.2794 -0.65786) (xy 0.5461 -0.55118) (xy 0.78232 -0.37084) (xy 0.88138 -0.25654)
 | 
			
		||||
    (xy 1.01854 -0.01778) (xy 1.09728 0.23876) (xy 1.1049 0.30226) (xy 1.09474 0.5842)
 | 
			
		||||
    (xy 1.01092 0.85344) (xy 0.8636 1.09474) (xy 0.65786 1.29032) (xy 0.62992 1.31064)
 | 
			
		||||
    (xy 0.53594 1.38176) (xy 0.47244 1.43002) (xy 0.42164 1.47066) (xy 0.77978 2.33172)
 | 
			
		||||
    (xy 0.83566 2.46888) (xy 0.93472 2.7051) (xy 1.02108 2.9083) (xy 1.08966 3.06832)
 | 
			
		||||
    (xy 1.13792 3.17754) (xy 1.15824 3.22072) (xy 1.16078 3.22326) (xy 1.19126 3.22834)
 | 
			
		||||
    (xy 1.2573 3.20294) (xy 1.37668 3.14452) (xy 1.45796 3.10388) (xy 1.5494 3.0607)
 | 
			
		||||
    (xy 1.59004 3.04546) (xy 1.6256 3.06324) (xy 1.71196 3.12166) (xy 1.8415 3.20548)
 | 
			
		||||
    (xy 1.9939 3.30962) (xy 2.14122 3.41122) (xy 2.27584 3.50012) (xy 2.3749 3.56108)
 | 
			
		||||
    (xy 2.42316 3.58902) (xy 2.43078 3.58902) (xy 2.47142 3.56362) (xy 2.55016 3.50012)
 | 
			
		||||
    (xy 2.667 3.38836) (xy 2.8321 3.2258) (xy 2.8575 3.2004) (xy 2.99466 3.0607)
 | 
			
		||||
    (xy 3.10642 2.94386) (xy 3.18008 2.86258) (xy 3.20548 2.82448) (xy 3.20548 2.82448)
 | 
			
		||||
    (xy 3.18262 2.77622) (xy 3.11912 2.6797) (xy 3.03022 2.54254) (xy 2.921 2.38252)
 | 
			
		||||
    (xy 2.63652 1.9685) (xy 2.794 1.57734) (xy 2.84226 1.45796) (xy 2.90322 1.31318)
 | 
			
		||||
    (xy 2.9464 1.20904) (xy 2.9718 1.16332) (xy 3.01244 1.14808) (xy 3.12166 1.12268)
 | 
			
		||||
    (xy 3.2766 1.08966) (xy 3.45948 1.05664) (xy 3.63728 1.02362) (xy 3.7973 0.99314)
 | 
			
		||||
    (xy 3.9116 0.97028) (xy 3.9624 0.96012) (xy 3.9751 0.9525) (xy 3.98526 0.9271)
 | 
			
		||||
    (xy 3.99288 0.87376) (xy 3.99542 0.77724) (xy 3.99796 0.62484) (xy 3.99796 0.40386)
 | 
			
		||||
    (xy 3.99796 0.381) (xy 3.99542 0.17018) (xy 3.99288 0.00254) (xy 3.9878 -0.10668)
 | 
			
		||||
    (xy 3.98018 -0.14986) (xy 3.98018 -0.14986) (xy 3.92938 -0.16256) (xy 3.81762 -0.18542)
 | 
			
		||||
    (xy 3.6576 -0.21844) (xy 3.4671 -0.254) (xy 3.45694 -0.25654) (xy 3.26644 -0.2921)
 | 
			
		||||
    (xy 3.10896 -0.32512) (xy 2.9972 -0.35052) (xy 2.95148 -0.36576) (xy 2.94132 -0.37846)
 | 
			
		||||
    (xy 2.90322 -0.45212) (xy 2.84734 -0.56896) (xy 2.78638 -0.71374) (xy 2.72288 -0.86106)
 | 
			
		||||
    (xy 2.66954 -0.99568) (xy 2.63398 -1.09474) (xy 2.62382 -1.14046) (xy 2.62382 -1.14046)
 | 
			
		||||
    (xy 2.65176 -1.18618) (xy 2.7178 -1.28524) (xy 2.80924 -1.41986) (xy 2.921 -1.58242)
 | 
			
		||||
    (xy 2.92862 -1.59512) (xy 3.03784 -1.75514) (xy 3.12674 -1.88976) (xy 3.18516 -1.98628)
 | 
			
		||||
    (xy 3.20548 -2.02946) (xy 3.20548 -2.032) (xy 3.16992 -2.08026) (xy 3.08864 -2.16916)
 | 
			
		||||
    (xy 2.9718 -2.29108) (xy 2.8321 -2.43332) (xy 2.78638 -2.4765) (xy 2.63144 -2.6289)
 | 
			
		||||
    (xy 2.52476 -2.72796) (xy 2.45618 -2.7813) (xy 2.42316 -2.794) (xy 2.42316 -2.79146)
 | 
			
		||||
    (xy 2.3749 -2.76352) (xy 2.2733 -2.69748) (xy 2.13614 -2.6035) (xy 1.97358 -2.49428)
 | 
			
		||||
    (xy 1.96342 -2.48666) (xy 1.8034 -2.37744) (xy 1.67132 -2.28854) (xy 1.5748 -2.22504)
 | 
			
		||||
    (xy 1.53416 -2.19964) (xy 1.52654 -2.19964) (xy 1.46304 -2.21996) (xy 1.34874 -2.25806)
 | 
			
		||||
    (xy 1.20904 -2.31394) (xy 1.06172 -2.37236) (xy 0.9271 -2.42824) (xy 0.8255 -2.4765)
 | 
			
		||||
    (xy 0.77724 -2.5019) (xy 0.77724 -2.50444) (xy 0.75946 -2.56286) (xy 0.73152 -2.68224)
 | 
			
		||||
    (xy 0.6985 -2.84734) (xy 0.6604 -3.04292) (xy 0.65532 -3.0734) (xy 0.61976 -3.2639)
 | 
			
		||||
    (xy 0.58928 -3.42138) (xy 0.56642 -3.5306) (xy 0.55372 -3.57632) (xy 0.52832 -3.5814)
 | 
			
		||||
    (xy 0.43434 -3.58902) (xy 0.2921 -3.59156) (xy 0.11938 -3.5941) (xy -0.06096 -3.59156)
 | 
			
		||||
    (xy -0.23622 -3.58902) (xy -0.38862 -3.58394) (xy -0.4953 -3.57632) (xy -0.54102 -3.56616)
 | 
			
		||||
    (xy -0.54356 -3.56362) (xy -0.5588 -3.5052) (xy -0.5842 -3.38582) (xy -0.61976 -3.22072)
 | 
			
		||||
    (xy -0.65786 -3.0226) (xy -0.66294 -2.98958) (xy -0.6985 -2.79908) (xy -0.73152 -2.64414)
 | 
			
		||||
    (xy -0.75438 -2.53492) (xy -0.76708 -2.49428) (xy -0.78232 -2.48412) (xy -0.86106 -2.4511)
 | 
			
		||||
    (xy -0.98806 -2.39776) (xy -1.14808 -2.33426) (xy -1.51384 -2.1844) (xy -1.96088 -2.49428)
 | 
			
		||||
    (xy -2.00406 -2.52222) (xy -2.16408 -2.63144) (xy -2.2987 -2.72034) (xy -2.39014 -2.77876)
 | 
			
		||||
    (xy -2.42824 -2.80162) (xy -2.43078 -2.79908) (xy -2.4765 -2.76098) (xy -2.5654 -2.67716)
 | 
			
		||||
    (xy -2.68732 -2.55778) (xy -2.82702 -2.41808) (xy -2.93116 -2.31394) (xy -3.05562 -2.18694)
 | 
			
		||||
    (xy -3.13436 -2.10312) (xy -3.17754 -2.04724) (xy -3.19278 -2.01422) (xy -3.1877 -1.9939)
 | 
			
		||||
    (xy -3.15976 -1.94818) (xy -3.09372 -1.84912) (xy -3.00228 -1.71196) (xy -2.89306 -1.55448)
 | 
			
		||||
    (xy -2.80162 -1.41986) (xy -2.7051 -1.27) (xy -2.6416 -1.16332) (xy -2.61874 -1.10998)
 | 
			
		||||
    (xy -2.62382 -1.08712) (xy -2.65684 -1.00076) (xy -2.71018 -0.86614) (xy -2.77622 -0.70866)
 | 
			
		||||
    (xy -2.9337 -0.35306) (xy -3.16738 -0.30988) (xy -3.30708 -0.28194) (xy -3.5052 -0.24384)
 | 
			
		||||
    (xy -3.69316 -0.20828) (xy -3.9878 -0.14986) (xy -3.99796 0.93218) (xy -3.95224 0.9525)
 | 
			
		||||
    (xy -3.90906 0.9652) (xy -3.79984 0.98806) (xy -3.6449 1.01854) (xy -3.45948 1.0541)
 | 
			
		||||
    (xy -3.30454 1.08458) (xy -3.14452 1.11252) (xy -3.03276 1.13538) (xy -2.98196 1.14554)
 | 
			
		||||
    (xy -2.96926 1.16332) (xy -2.92862 1.23952) (xy -2.87274 1.36144) (xy -2.81178 1.50876)
 | 
			
		||||
    (xy -2.74828 1.65862) (xy -2.6924 1.79832) (xy -2.65176 1.905) (xy -2.63906 1.96088)
 | 
			
		||||
    (xy -2.65938 2.00406) (xy -2.72034 2.0955) (xy -2.8067 2.22758) (xy -2.91338 2.38506)
 | 
			
		||||
    (xy -3.0226 2.54254) (xy -3.1115 2.67716) (xy -3.175 2.77368) (xy -3.2004 2.81686)
 | 
			
		||||
    (xy -3.1877 2.84734) (xy -3.12674 2.92354) (xy -3.00736 3.04546) (xy -2.8321 3.22072)
 | 
			
		||||
    (xy -2.80162 3.24866) (xy -2.66192 3.38328) (xy -2.54254 3.4925) (xy -2.46126 3.56616)
 | 
			
		||||
    (xy -2.42316 3.59156)) (layer F.SilkS) (width 0.00254))
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										101
									
								
								samples/KiCad Layout/Logo_Poncho.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								samples/KiCad Layout/Logo_Poncho.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
(module footprints:Logo_Poncho (layer F.Cu) (tedit 560DAFF4)
 | 
			
		||||
  (fp_text reference G*** (at 0.127 5.588) (layer F.SilkS) hide
 | 
			
		||||
    (effects (font (thickness 0.3)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value LOGO (at 0.762 7.493) (layer F.SilkS) hide
 | 
			
		||||
    (effects (font (thickness 0.3)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_poly (pts (xy 4.535714 -0.627021) (xy 4.498746 -0.420109) (xy 4.405012 -0.1352) (xy 4.280272 0.162897)
 | 
			
		||||
    (xy 4.150281 0.409374) (xy 4.123376 0.447413) (xy 4.123376 -0.123701) (xy 4.058326 -0.436938)
 | 
			
		||||
    (xy 3.869112 -0.644378) (xy 3.564639 -0.737671) (xy 3.463636 -0.742208) (xy 3.129516 -0.681223)
 | 
			
		||||
    (xy 2.908248 -0.503835) (xy 2.808734 -0.218392) (xy 2.803896 -0.123701) (xy 2.868946 0.189536)
 | 
			
		||||
    (xy 3.058159 0.396975) (xy 3.362633 0.490269) (xy 3.463636 0.494805) (xy 3.797606 0.436492)
 | 
			
		||||
    (xy 3.958441 0.32987) (xy 4.092315 0.09203) (xy 4.123376 -0.123701) (xy 4.123376 0.447413)
 | 
			
		||||
    (xy 4.089856 0.494805) (xy 4.013749 0.621925) (xy 3.89522 0.861365) (xy 3.753792 1.172585)
 | 
			
		||||
    (xy 3.672876 1.360714) (xy 3.421635 1.929272) (xy 3.149718 2.496808) (xy 2.869494 3.041693)
 | 
			
		||||
    (xy 2.593334 3.542296) (xy 2.556493 3.603955) (xy 2.556493 -0.123701) (xy 2.552598 -0.439936)
 | 
			
		||||
    (xy 2.534834 -0.625484) (xy 2.494089 -0.714524) (xy 2.421247 -0.741238) (xy 2.391558 -0.742208)
 | 
			
		||||
    (xy 2.270831 -0.703329) (xy 2.228325 -0.558669) (xy 2.226623 -0.494805) (xy 2.206189 -0.31957)
 | 
			
		||||
    (xy 2.109798 -0.254982) (xy 1.97922 -0.247402) (xy 1.803985 -0.267837) (xy 1.739397 -0.364227)
 | 
			
		||||
    (xy 1.731818 -0.494805) (xy 1.705898 -0.675896) (xy 1.609459 -0.739655) (xy 1.566883 -0.742208)
 | 
			
		||||
    (xy 1.482553 -0.727599) (xy 1.433074 -0.660988) (xy 1.40933 -0.508193) (xy 1.402206 -0.235036)
 | 
			
		||||
    (xy 1.401948 -0.123701) (xy 1.405843 0.192533) (xy 1.423606 0.378081) (xy 1.464351 0.467122)
 | 
			
		||||
    (xy 1.537193 0.493835) (xy 1.566883 0.494805) (xy 1.680559 0.462518) (xy 1.726426 0.336472)
 | 
			
		||||
    (xy 1.731818 0.206169) (xy 1.745609 0.012245) (xy 1.815564 -0.067294) (xy 1.97922 -0.082467)
 | 
			
		||||
    (xy 2.145441 -0.066377) (xy 2.213617 0.015237) (xy 2.226623 0.206169) (xy 2.245073 0.405103)
 | 
			
		||||
    (xy 2.317099 0.48537) (xy 2.391558 0.494805) (xy 2.475887 0.480197) (xy 2.525367 0.413586)
 | 
			
		||||
    (xy 2.549111 0.260791) (xy 2.556234 -0.012366) (xy 2.556493 -0.123701) (xy 2.556493 3.603955)
 | 
			
		||||
    (xy 2.33361 3.976986) (xy 2.102692 4.324132) (xy 1.912952 4.562103) (xy 1.781691 4.667512)
 | 
			
		||||
    (xy 1.660102 4.654002) (xy 1.438445 4.580892) (xy 1.163465 4.463746) (xy 1.154545 4.459546)
 | 
			
		||||
    (xy 1.154545 0.36149) (xy 1.110706 0.268405) (xy 0.956623 0.266159) (xy 0.938776 0.269422)
 | 
			
		||||
    (xy 0.717011 0.243945) (xy 0.523128 0.11531) (xy 0.417755 -0.07121) (xy 0.412337 -0.123701)
 | 
			
		||||
    (xy 0.484303 -0.318602) (xy 0.658393 -0.472009) (xy 0.871896 -0.536691) (xy 0.949632 -0.528355)
 | 
			
		||||
    (xy 1.105982 -0.515384) (xy 1.154279 -0.597467) (xy 1.154545 -0.609566) (xy 1.114247 -0.69528)
 | 
			
		||||
    (xy 0.970303 -0.735064) (xy 0.783441 -0.742208) (xy 0.429195 -0.687347) (xy 0.198088 -0.523118)
 | 
			
		||||
    (xy 0.090717 -0.250044) (xy 0.082467 -0.123701) (xy 0.144642 0.188869) (xy 0.330769 0.392787)
 | 
			
		||||
    (xy 0.640252 0.487526) (xy 0.783441 0.494805) (xy 1.022962 0.480515) (xy 1.134243 0.429291)
 | 
			
		||||
    (xy 1.154545 0.36149) (xy 1.154545 4.459546) (xy 1.148315 4.456614) (xy 0.592041 4.256938)
 | 
			
		||||
    (xy 0.061238 4.207886) (xy -0.164935 4.249843) (xy -0.164935 -0.123701) (xy -0.168831 -0.439936)
 | 
			
		||||
    (xy -0.186594 -0.625484) (xy -0.227339 -0.714524) (xy -0.300181 -0.741238) (xy -0.329871 -0.742208)
 | 
			
		||||
    (xy -0.435349 -0.716231) (xy -0.483875 -0.609894) (xy -0.495586 -0.391721) (xy -0.496366 -0.041234)
 | 
			
		||||
    (xy -0.706429 -0.391721) (xy -0.874005 -0.625569) (xy -1.029731 -0.729733) (xy -1.117986 -0.742208)
 | 
			
		||||
    (xy -1.220495 -0.733937) (xy -1.280586 -0.685976) (xy -1.309571 -0.563603) (xy -1.318762 -0.332094)
 | 
			
		||||
    (xy -1.319481 -0.123701) (xy -1.315585 0.192533) (xy -1.297822 0.378081) (xy -1.257077 0.467122)
 | 
			
		||||
    (xy -1.184235 0.493835) (xy -1.154546 0.494805) (xy -1.049068 0.468829) (xy -1.000541 0.362492)
 | 
			
		||||
    (xy -0.988831 0.144318) (xy -0.98805 -0.206169) (xy -0.777988 0.144318) (xy -0.610412 0.378167)
 | 
			
		||||
    (xy -0.454685 0.48233) (xy -0.36643 0.494805) (xy -0.263922 0.486535) (xy -0.203831 0.438574)
 | 
			
		||||
    (xy -0.174846 0.3162) (xy -0.165655 0.084692) (xy -0.164935 -0.123701) (xy -0.164935 4.249843)
 | 
			
		||||
    (xy -0.48241 4.308738) (xy -0.783442 4.420415) (xy -1.059466 4.535832) (xy -1.285963 4.626797)
 | 
			
		||||
    (xy -1.401948 4.669513) (xy -1.518876 4.625399) (xy -1.566884 4.584033) (xy -1.566884 -0.123701)
 | 
			
		||||
    (xy -1.631934 -0.436938) (xy -1.821147 -0.644378) (xy -2.12562 -0.737671) (xy -2.226624 -0.742208)
 | 
			
		||||
    (xy -2.560743 -0.681223) (xy -2.782012 -0.503835) (xy -2.881525 -0.218392) (xy -2.886364 -0.123701)
 | 
			
		||||
    (xy -2.821314 0.189536) (xy -2.6321 0.396975) (xy -2.327627 0.490269) (xy -2.226624 0.494805)
 | 
			
		||||
    (xy -1.892653 0.436492) (xy -1.731819 0.32987) (xy -1.597945 0.09203) (xy -1.566884 -0.123701)
 | 
			
		||||
    (xy -1.566884 4.584033) (xy -1.717176 4.454536) (xy -1.98582 4.166799) (xy -2.061689 4.078924)
 | 
			
		||||
    (xy -2.369861 3.70727) (xy -2.632201 3.363429) (xy -2.870341 3.013116) (xy -2.968832 2.849614)
 | 
			
		||||
    (xy -2.968832 -0.32987) (xy -3.007485 -0.54598) (xy -3.140146 -0.67528) (xy -3.391869 -0.734039)
 | 
			
		||||
    (xy -3.603832 -0.742208) (xy -4.04091 -0.742208) (xy -4.04091 -0.123701) (xy -4.037014 0.192533)
 | 
			
		||||
    (xy -4.019251 0.378081) (xy -3.978506 0.467122) (xy -3.905664 0.493835) (xy -3.875974 0.494805)
 | 
			
		||||
    (xy -3.746639 0.446485) (xy -3.711039 0.288637) (xy -3.687673 0.146227) (xy -3.584731 0.090232)
 | 
			
		||||
    (xy -3.438897 0.082468) (xy -3.16065 0.034793) (xy -3.008068 -0.114765) (xy -2.968832 -0.32987)
 | 
			
		||||
    (xy -2.968832 2.849614) (xy -3.105916 2.622046) (xy -3.360558 2.155935) (xy -3.6559 1.580499)
 | 
			
		||||
    (xy -3.724805 1.443182) (xy -3.927446 1.040996) (xy -4.107468 0.68891) (xy -4.250627 0.414385)
 | 
			
		||||
    (xy -4.342678 0.24488) (xy -4.366512 0.206169) (xy -4.479713 -0.061738) (xy -4.470402 -0.368299)
 | 
			
		||||
    (xy -4.39208 -0.562072) (xy -4.211754 -0.794239) (xy -3.970771 -1.027175) (xy -3.729883 -1.205582)
 | 
			
		||||
    (xy -3.628572 -1.257014) (xy -3.515586 -1.328258) (xy -3.31072 -1.481511) (xy -3.047204 -1.691308)
 | 
			
		||||
    (xy -2.861153 -1.845142) (xy -2.478394 -2.151727) (xy -2.09396 -2.434151) (xy -1.735885 -2.674156)
 | 
			
		||||
    (xy -1.432202 -2.853482) (xy -1.210945 -2.953871) (xy -1.135923 -2.968831) (xy -0.992755 -2.911987)
 | 
			
		||||
    (xy -0.868796 -2.807085) (xy -0.798823 -2.718089) (xy -0.768465 -2.621372) (xy -0.779148 -2.476306)
 | 
			
		||||
    (xy -0.832302 -2.242261) (xy -0.897248 -1.997411) (xy -1.002077 -1.614541) (xy -1.0637 -1.342913)
 | 
			
		||||
    (xy -1.062894 -1.163551) (xy -0.980436 -1.05748) (xy -0.797105 -1.005726) (xy -0.493678 -0.989314)
 | 
			
		||||
    (xy -0.050932 -0.989267) (xy 0.123701 -0.98961) (xy 0.616616 -0.993152) (xy 0.963601 -1.004879)
 | 
			
		||||
    (xy 1.183529 -1.026446) (xy 1.295275 -1.059505) (xy 1.31948 -1.094352) (xy 1.298521 -1.22034)
 | 
			
		||||
    (xy 1.243133 -1.457326) (xy 1.164548 -1.757819) (xy 1.150407 -1.809213) (xy 1.043088 -2.255847)
 | 
			
		||||
    (xy 1.008894 -2.569631) (xy 1.048676 -2.765972) (xy 1.163285 -2.860279) (xy 1.208992 -2.870512)
 | 
			
		||||
    (xy 1.420553 -2.83991) (xy 1.739874 -2.711189) (xy 2.149801 -2.493929) (xy 2.633175 -2.197713)
 | 
			
		||||
    (xy 3.172841 -1.832122) (xy 3.525487 -1.576813) (xy 3.929546 -1.272303) (xy 4.214754 -1.04349)
 | 
			
		||||
    (xy 4.398878 -0.873667) (xy 4.499689 -0.746128) (xy 4.534955 -0.644167) (xy 4.535714 -0.627021)
 | 
			
		||||
    (xy 4.535714 -0.627021)) (layer F.SilkS) (width 0.1))
 | 
			
		||||
  (fp_poly (pts (xy 1.023542 -3.736319) (xy 0.895402 -3.389445) (xy 0.679417 -3.11223) (xy 0.563302 -2.982356)
 | 
			
		||||
    (xy 0.508034 -2.869698) (xy 0.506066 -2.720981) (xy 0.549854 -2.48293) (xy 0.574294 -2.370022)
 | 
			
		||||
    (xy 0.658312 -1.973188) (xy 0.69611 -1.709422) (xy 0.675383 -1.550382) (xy 0.583822 -1.467723)
 | 
			
		||||
    (xy 0.409122 -1.433104) (xy 0.16144 -1.419187) (xy -0.12355 -1.415195) (xy -0.339882 -1.428263)
 | 
			
		||||
    (xy -0.43645 -1.453549) (xy -0.490308 -1.618268) (xy -0.466441 -1.923684) (xy -0.365224 -2.365222)
 | 
			
		||||
    (xy -0.360015 -2.384058) (xy -0.225225 -2.868872) (xy -0.488808 -3.104404) (xy -0.714353 -3.402585)
 | 
			
		||||
    (xy -0.808424 -3.746824) (xy -0.77552 -4.096523) (xy -0.620138 -4.411085) (xy -0.346777 -4.649915)
 | 
			
		||||
    (xy -0.31571 -4.666738) (xy 0.033719 -4.763905) (xy 0.380075 -4.71573) (xy 0.68714 -4.538441)
 | 
			
		||||
    (xy 0.918691 -4.248265) (xy 0.989692 -4.081895) (xy 1.023542 -3.736319) (xy 1.023542 -3.736319)) (layer F.SilkS) (width 0.1))
 | 
			
		||||
  (fp_poly (pts (xy -3.320079 -0.321578) (xy -3.381169 -0.206169) (xy -3.537606 -0.087441) (xy -3.656944 -0.12265)
 | 
			
		||||
    (xy -3.710414 -0.301007) (xy -3.711039 -0.32987) (xy -3.666881 -0.523821) (xy -3.553583 -0.57585)
 | 
			
		||||
    (xy -3.399915 -0.47517) (xy -3.381169 -0.453571) (xy -3.320079 -0.321578) (xy -3.320079 -0.321578)) (layer F.SilkS) (width 0.1))
 | 
			
		||||
  (fp_poly (pts (xy -1.911824 -0.1467) (xy -1.935194 -0.006732) (xy -2.006645 0.114199) (xy -2.128505 0.265484)
 | 
			
		||||
    (xy -2.225472 0.329848) (xy -2.226624 0.32987) (xy -2.322643 0.267542) (xy -2.444552 0.117317)
 | 
			
		||||
    (xy -2.446603 0.114199) (xy -2.537406 -0.05684) (xy -2.52656 -0.197017) (xy -2.465958 -0.318756)
 | 
			
		||||
    (xy -2.343482 -0.473895) (xy -2.226624 -0.536039) (xy -2.106037 -0.47051) (xy -1.987289 -0.318756)
 | 
			
		||||
    (xy -1.911824 -0.1467) (xy -1.911824 -0.1467)) (layer F.SilkS) (width 0.1))
 | 
			
		||||
  (fp_poly (pts (xy 3.778435 -0.1467) (xy 3.755065 -0.006732) (xy 3.683615 0.114199) (xy 3.561755 0.265484)
 | 
			
		||||
    (xy 3.464788 0.329848) (xy 3.463636 0.32987) (xy 3.367616 0.267542) (xy 3.245708 0.117317)
 | 
			
		||||
    (xy 3.243657 0.114199) (xy 3.152854 -0.05684) (xy 3.163699 -0.197017) (xy 3.224301 -0.318756)
 | 
			
		||||
    (xy 3.346778 -0.473895) (xy 3.463636 -0.536039) (xy 3.584223 -0.47051) (xy 3.702971 -0.318756)
 | 
			
		||||
    (xy 3.778435 -0.1467) (xy 3.778435 -0.1467)) (layer F.SilkS) (width 0.1))
 | 
			
		||||
)
 | 
			
		||||
@@ -0,0 +1,24 @@
 | 
			
		||||
(module footprints:MagneticBuzzer_ProSignal_ABT-410-RC (layer F.Cu) (tedit 544E5504)
 | 
			
		||||
  (descr "Buzzer, Elektromagnetic Beeper, Summer, 1,5V-DC,")
 | 
			
		||||
  (tags "Pro Signal, ABT-410-RC,")
 | 
			
		||||
  (fp_text reference U1 (at 3.175 -8.001) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value BUZZER (at 2.17424 8.001) (layer F.Fab)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_line (start 8.17626 -0.50038) (end 8.17626 0.50038) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 7.67588 0) (end 8.6741 0) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_circle (center 3.175 0) (end 4.17576 0) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_text user + (at 10.67562 0) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_circle (center 3.175 0) (end 9.37514 0) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (pad 1 thru_hole circle (at 0 0) (size 1.6002 1.6002) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 2 thru_hole circle (at 6.35 0) (size 1.6002 1.6002) (drill 1.00076) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (model Buzzers_Beepers.3dshapes/MagneticBuzzer_ProSignal_ABT-410-RC.wrl
 | 
			
		||||
    (at (xyz 0 0 0))
 | 
			
		||||
    (scale (xyz 1 1 1))
 | 
			
		||||
    (rotate (xyz 0 0 0))
 | 
			
		||||
  )
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										31
									
								
								samples/KiCad Layout/Pin_Header_Straight_2x02.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								samples/KiCad Layout/Pin_Header_Straight_2x02.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
(module footprints:Pin_Header_Straight_2x02 (layer F.Cu) (tedit 0)
 | 
			
		||||
  (descr "Through hole pin header")
 | 
			
		||||
  (tags "pin header")
 | 
			
		||||
  (fp_text reference P1 (at 0 -5.1) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value PWR_JUMPER (at 0 -3.1) (layer F.Fab)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_line (start -1.75 -1.75) (end -1.75 4.3) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start 4.3 -1.75) (end 4.3 4.3) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -1.75 -1.75) (end 4.3 -1.75) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -1.75 4.3) (end 4.3 4.3) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -1.55 0) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 0 -1.55) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -1.27 1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 1.27 1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 1.27 -1.27) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 -1.27) (end 3.81 3.81) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 3.81) (end -1.27 3.81) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -1.27 3.81) (end -1.27 1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (pad 1 thru_hole rect (at 0 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 2 thru_hole oval (at 2.54 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 3 thru_hole oval (at 0 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 4 thru_hole oval (at 2.54 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (model Pin_Headers.3dshapes/Pin_Header_Straight_2x02.wrl
 | 
			
		||||
    (at (xyz 0.05 -0.05 0))
 | 
			
		||||
    (scale (xyz 1 1 1))
 | 
			
		||||
    (rotate (xyz 0 0 90))
 | 
			
		||||
  )
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										67
									
								
								samples/KiCad Layout/Pin_Header_Straight_2x20.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								samples/KiCad Layout/Pin_Header_Straight_2x20.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
(module footprints:Pin_Header_Straight_2x20 (layer F.Cu) (tedit 0)
 | 
			
		||||
  (descr "Through hole pin header")
 | 
			
		||||
  (tags "pin header")
 | 
			
		||||
  (fp_text reference XA2 (at 0 -5.1) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value Conn_Poncho2P_2x_20x2 (at 0 -3.1) (layer F.Fab)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_line (start -1.75 -1.75) (end -1.75 50.05) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start 4.3 -1.75) (end 4.3 50.05) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -1.75 -1.75) (end 4.3 -1.75) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -1.75 50.05) (end 4.3 50.05) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start 3.81 49.53) (end 3.81 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -1.27 1.27) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 49.53) (end -1.27 49.53) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 -1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 0 -1.55) (end -1.55 -1.55) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 1.27 -1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 1.27 1.27) (end -1.27 1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -1.55 -1.55) (end -1.55 0) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (pad 1 thru_hole rect (at 0 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 2 thru_hole oval (at 2.54 0) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 3 thru_hole oval (at 0 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 4 thru_hole oval (at 2.54 2.54) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 5 thru_hole oval (at 0 5.08) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 6 thru_hole oval (at 2.54 5.08) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 7 thru_hole oval (at 0 7.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 8 thru_hole oval (at 2.54 7.62) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 9 thru_hole oval (at 0 10.16) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 10 thru_hole oval (at 2.54 10.16) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 11 thru_hole oval (at 0 12.7) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 12 thru_hole oval (at 2.54 12.7) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 13 thru_hole oval (at 0 15.24) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 14 thru_hole oval (at 2.54 15.24) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 15 thru_hole oval (at 0 17.78) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 16 thru_hole oval (at 2.54 17.78) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 17 thru_hole oval (at 0 20.32) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 18 thru_hole oval (at 2.54 20.32) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 19 thru_hole oval (at 0 22.86) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 20 thru_hole oval (at 2.54 22.86) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 21 thru_hole oval (at 0 25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 22 thru_hole oval (at 2.54 25.4) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 23 thru_hole oval (at 0 27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 24 thru_hole oval (at 2.54 27.94) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 25 thru_hole oval (at 0 30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 26 thru_hole oval (at 2.54 30.48) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 27 thru_hole oval (at 0 33.02) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 28 thru_hole oval (at 2.54 33.02) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 29 thru_hole oval (at 0 35.56) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 30 thru_hole oval (at 2.54 35.56) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 31 thru_hole oval (at 0 38.1) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 32 thru_hole oval (at 2.54 38.1) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 33 thru_hole oval (at 0 40.64) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 34 thru_hole oval (at 2.54 40.64) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 35 thru_hole oval (at 0 43.18) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 36 thru_hole oval (at 2.54 43.18) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 37 thru_hole oval (at 0 45.72) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 38 thru_hole oval (at 2.54 45.72) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 39 thru_hole oval (at 0 48.26) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 40 thru_hole oval (at 2.54 48.26) (size 1.7272 1.7272) (drill 1.016) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (model Pin_Headers.3dshapes/Pin_Header_Straight_2x20.wrl
 | 
			
		||||
    (at (xyz 0.05 -0.95 0))
 | 
			
		||||
    (scale (xyz 1 1 1))
 | 
			
		||||
    (rotate (xyz 0 0 90))
 | 
			
		||||
  )
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										20
									
								
								samples/KiCad Layout/Resistor_Horizontal_RM7mm.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								samples/KiCad Layout/Resistor_Horizontal_RM7mm.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
(module footprints:Resistor_Horizontal_RM7mm (layer F.Cu) (tedit 569FCF07)
 | 
			
		||||
  (descr "Resistor, Axial,  RM 7.62mm, 1/3W,")
 | 
			
		||||
  (tags "Resistor Axial RM 7.62mm 1/3W R3")
 | 
			
		||||
  (fp_text reference R18 (at 4.05892 -3.50012) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value 680 (at 3.81 3.81) (layer F.Fab)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_line (start -1.25 -1.5) (end 8.85 -1.5) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -1.25 1.5) (end -1.25 -1.5) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start 8.85 -1.5) (end 8.85 1.5) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -1.25 1.5) (end 8.85 1.5) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start 1.27 -1.27) (end 6.35 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 6.35 -1.27) (end 6.35 1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 6.35 1.27) (end 1.27 1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 1.27 1.27) (end 1.27 -1.27) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (pad 1 thru_hole circle (at 0 0) (size 1.99898 1.99898) (drill 1.00076) (layers *.Cu *.SilkS *.Mask))
 | 
			
		||||
  (pad 2 thru_hole circle (at 7.62 0) (size 1.99898 1.99898) (drill 1.00076) (layers *.Cu *.SilkS *.Mask))
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										17
									
								
								samples/KiCad Layout/SW_PUSH_SMALL.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								samples/KiCad Layout/SW_PUSH_SMALL.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
(module footprints:SW_PUSH_SMALL (layer F.Cu) (tedit 0)
 | 
			
		||||
  (fp_text reference SW7 (at 0 -0.762) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value SW_PUSH (at 0 1.016) (layer F.Fab)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_circle (center 0 0) (end 0 -2.54) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -3.81 -3.81) (end 3.81 -3.81) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 -3.81) (end 3.81 3.81) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start 3.81 3.81) (end -3.81 3.81) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -3.81 -3.81) (end -3.81 3.81) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (pad 1 thru_hole circle (at 3.81 -2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 2 thru_hole circle (at 3.81 2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 1 thru_hole circle (at -3.81 -2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 2 thru_hole circle (at -3.81 2.54) (size 1.397 1.397) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										25
									
								
								samples/KiCad Layout/TO-92_Molded_Narrow.kicad_mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								samples/KiCad Layout/TO-92_Molded_Narrow.kicad_mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
(module footprints:TO-92_Molded_Narrow (layer F.Cu) (tedit 54F242E1)
 | 
			
		||||
  (descr "TO-92 leads molded, narrow, drill 0.6mm (see NXP sot054_po.pdf)")
 | 
			
		||||
  (tags "to-92 sc-43 sc-43a sot54 PA33 transistor")
 | 
			
		||||
  (fp_text reference Q5 (at 0 -4) (layer F.SilkS)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_text value BC547 (at 0 3) (layer F.Fab)
 | 
			
		||||
    (effects (font (size 1 1) (thickness 0.15)))
 | 
			
		||||
  )
 | 
			
		||||
  (fp_line (start -1.4 1.95) (end -1.4 -2.65) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -1.4 1.95) (end 3.9 1.95) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start -0.43 1.7) (end 2.97 1.7) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_arc (start 1.27 0) (end 1.27 -2.4) (angle -135) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_arc (start 1.27 0) (end 1.27 -2.4) (angle 135) (layer F.SilkS) (width 0.15))
 | 
			
		||||
  (fp_line (start -1.4 -2.65) (end 3.9 -2.65) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (fp_line (start 3.9 1.95) (end 3.9 -2.65) (layer F.CrtYd) (width 0.05))
 | 
			
		||||
  (pad 2 thru_hole circle (at 1.27 -1.27 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 3 thru_hole circle (at 2.54 0 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (pad 1 thru_hole circle (at 0 0 90) (size 1.00076 1.00076) (drill 0.6) (layers *.Cu *.Mask F.SilkS))
 | 
			
		||||
  (model TO_SOT_Packages_THT.3dshapes/TO-92_Molded_Narrow.wrl
 | 
			
		||||
    (at (xyz 0.05 0 0))
 | 
			
		||||
    (scale (xyz 1 1 1))
 | 
			
		||||
    (rotate (xyz 0 0 -90))
 | 
			
		||||
  )
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										95
									
								
								samples/KiCad Layout/filenames/fp-lib-table
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								samples/KiCad Layout/filenames/fp-lib-table
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
(fp_lib_table
 | 
			
		||||
  (lib (name Air_Coils_SML_NEOSID)(type Github)(uri ${KIGITHUB}/Air_Coils_SML_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Buttons_Switches_SMD)(type Github)(uri ${KIGITHUB}/Buttons_Switches_SMD.pretty)(options "")(descr "Buttons and switches, surface mount"))
 | 
			
		||||
  (lib (name Buttons_Switches_THT)(type Github)(uri ${KIGITHUB}/Buttons_Switches_THT.pretty)(options "")(descr "Buttons and switches, through hole"))
 | 
			
		||||
  (lib (name Buzzers_Beepers)(type Github)(uri ${KIGITHUB}/Buzzers_Beepers.pretty)(options "")(descr "Audio signalling devices"))
 | 
			
		||||
  (lib (name Capacitors_SMD)(type Github)(uri ${KIGITHUB}/Capacitors_SMD.pretty)(options "")(descr "Capacitors, surface mount"))
 | 
			
		||||
  (lib (name Capacitors_Tantalum_SMD)(type Github)(uri ${KIGITHUB}/Capacitors_Tantalum_SMD.pretty)(options "")(descr "Tantalum capacitors, surface mount"))
 | 
			
		||||
  (lib (name Capacitors_THT)(type Github)(uri ${KIGITHUB}/Capacitors_THT.pretty)(options "")(descr "Capacitors, through hole"))
 | 
			
		||||
  (lib (name Choke_Axial_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Axial_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Choke_Common-Mode_Wurth)(type Github)(uri ${KIGITHUB}/Choke_Common-Mode_Wurth.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Choke_Radial_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Radial_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Choke_SMD)(type Github)(uri ${KIGITHUB}/Choke_SMD.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Choke_Toroid_ThroughHole)(type Github)(uri ${KIGITHUB}/Choke_Toroid_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Connectors_Harwin)(type Github)(uri ${KIGITHUB}/Connectors_Harwin.pretty)(options "")(descr "Harwin connector footprints www.harwin.com"))
 | 
			
		||||
  (lib (name Connectors_Hirose)(type Github)(uri ${KIGITHUB}/Connectors_Hirose.pretty)(options "")(descr "Hirose connector footprints www.hirose.com"))
 | 
			
		||||
  (lib (name Connectors_JAE)(type Github)(uri ${KIGITHUB}/Connectors_JAE.pretty)(options "")(descr "JAE connector footprints http://www.jae.com/jccom/en/connectors"))
 | 
			
		||||
  (lib (name Connectors_JST)(type Github)(uri ${KIGITHUB}/Connectors_JST.pretty)(options "")(descr "JST connector footprints www.jst.com"))
 | 
			
		||||
  (lib (name Connectors_Mini-Universal)(type Github)(uri ${KIGITHUB}/Connectors_Mini-Universal.pretty)(options "")(descr Mate-N-Lok))
 | 
			
		||||
  (lib (name Connectors_Molex)(type Github)(uri ${KIGITHUB}/Connectors_Molex.pretty)(options "")(descr "Molex connector foottprints www.molex.com"))
 | 
			
		||||
  (lib (name Connectors_Multicomp)(type Github)(uri ${KIGITHUB}/Connectors_Multicomp.pretty)(options "")(descr "Multicomp connector footprints"))
 | 
			
		||||
  (lib (name Connectors_Phoenix)(type Github)(uri ${KIGITHUB}/Connectors_Phoenix.pretty)(options "")(descr "Phoenix connector footprints"))
 | 
			
		||||
  (lib (name Connectors_Samtec)(type Github)(uri ${KIGITHUB}/Connectors_Samtec.pretty)(options "")(descr "Samtec connector footprints"))
 | 
			
		||||
  (lib (name Connectors_TE-Connectivity)(type Github)(uri ${KIGITHUB}/Connectors_TE-Connectivity.pretty)(options "")(descr "TE Connectivity connector footprints www.te.com"))
 | 
			
		||||
  (lib (name Connectors_Terminal_Blocks)(type Github)(uri ${KIGITHUB}/Connectors_Terminal_Blocks.pretty)(options "")(descr "Terminal block connectors"))
 | 
			
		||||
  (lib (name Connectors_WAGO)(type Github)(uri ${KIGITHUB}/Connectors_WAGO.pretty)(options "")(descr "WAGO connector footprints www.wago.com"))
 | 
			
		||||
  (lib (name Connectors)(type Github)(uri ${KIGITHUB}/Connectors.pretty)(options "")(descr "Assorted connector footprints"))
 | 
			
		||||
  (lib (name Converters_DCDC_ACDC)(type Github)(uri ${KIGITHUB}/Converters_DCDC_ACDC.pretty)(options "")(descr "DC-DC and AC-DC convertor modules"))
 | 
			
		||||
  (lib (name Crystals)(type Github)(uri ${KIGITHUB}/Crystals.pretty)(options "")(descr "Crystals and oscillators"))
 | 
			
		||||
  (lib (name Diodes_SMD)(type Github)(uri ${KIGITHUB}/Diodes_SMD.pretty)(options "")(descr "Diodes, surface mount"))
 | 
			
		||||
  (lib (name Diodes_THT)(type Github)(uri ${KIGITHUB}/Diodes_THT.pretty)(options "")(descr "Diodes, through hole"))
 | 
			
		||||
  (lib (name Discret)(type Github)(uri ${KIGITHUB}/Discret.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Displays_7-Segment)(type Github)(uri ${KIGITHUB}/Displays_7-Segment.pretty)(options "")(descr "Seven segment displays"))
 | 
			
		||||
  (lib (name Displays)(type Github)(uri ${KIGITHUB}/Displays.pretty)(options "")(descr "Display modules"))
 | 
			
		||||
  (lib (name Divers)(type Github)(uri ${KIGITHUB}/Divers.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Enclosures)(type Github)(uri ${KIGITHUB}/Enclosures.pretty)(options "")(descr "Electronics enclosures and housings"))
 | 
			
		||||
  (lib (name EuroBoard_Outline)(type Github)(uri ${KIGITHUB}/EuroBoard_Outline.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Fiducials)(type Github)(uri ${KIGITHUB}/Fiducials.pretty)(options "")(descr "Fiducial markings"))
 | 
			
		||||
  (lib (name Filters_HF_Coils_NEOSID)(type Github)(uri ${KIGITHUB}/Filters_HF_Coils_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Fuse_Holders_and_Fuses)(type Github)(uri ${KIGITHUB}/Fuse_Holders_and_Fuses.pretty)(options "")(descr "Fuses and fuse holders"))
 | 
			
		||||
  (lib (name Hall-Effect_Transducers_LEM)(type Github)(uri ${KIGITHUB}/Hall-Effect_Transducers_LEM.pretty)(options "")(descr "LEM hall effect transducers"))
 | 
			
		||||
  (lib (name Heatsinks)(type Github)(uri ${KIGITHUB}/Heatsinks.pretty)(options "")(descr "Heatsinks and thermal products"))
 | 
			
		||||
  (lib (name Housings_BGA)(type Github)(uri ${KIGITHUB}/Housings_BGA.pretty)(options "")(descr "Ball Grid Array (BGA)"))
 | 
			
		||||
  (lib (name Housings_DFN_QFN)(type Github)(uri ${KIGITHUB}/Housings_DFN_QFN.pretty)(options "")(descr "Surface mount IC packages, DFN / LGA / QFN"))
 | 
			
		||||
  (lib (name Housings_DIP)(type Github)(uri ${KIGITHUB}/Housings_DIP.pretty)(options "")(descr "Through hole IC packages, DIP"))
 | 
			
		||||
  (lib (name Housings_LCC)(type Github)(uri ${KIGITHUB}/Housings_LCC.pretty)(options "")(descr "Leaded Chip Carriers (LCC)"))
 | 
			
		||||
  (lib (name Housings_LGA)(type Github)(uri ${KIGITHUB}/Housings_LGA.pretty)(options "")(descr "Land Grid Array (LGA)"))
 | 
			
		||||
  (lib (name Housings_PGA)(type Github)(uri ${KIGITHUB}/Housings_PGA.pretty)(options "")(descr "Pin Grid Array (PGA)"))
 | 
			
		||||
  (lib (name Housings_QFP)(type Github)(uri ${KIGITHUB}/Housings_QFP.pretty)(options "")(descr "Quad Flat Package (QFP)"))
 | 
			
		||||
  (lib (name Housings_SIP)(type Github)(uri ${KIGITHUB}/Housings_SIP.pretty)(options "")(descr "Single Inline Package (SIP)"))
 | 
			
		||||
  (lib (name Housings_SOIC)(type Github)(uri ${KIGITHUB}/Housings_SOIC.pretty)(options "")(descr "Small Outline Integrated Circuits (SOIC)"))
 | 
			
		||||
  (lib (name Housings_SSOP)(type Github)(uri ${KIGITHUB}/Housings_SSOP.pretty)(options "")(descr "SSOP, TSSOP, MSOP, QSOP, VSO packages"))
 | 
			
		||||
  (lib (name Inductors_NEOSID)(type Github)(uri ${KIGITHUB}/Inductors_NEOSID.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Inductors)(type Github)(uri ${KIGITHUB}/Inductors.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Inductors_SMD)(type Github)(uri ${KIGITHUB}/Inductors_SMD.pretty)(options "")(descr "Inductors, surface mount"))
 | 
			
		||||
  (lib (name Inductors_THT)(type Github)(uri ${KIGITHUB}/Inductors_THT.pretty)(options "")(descr "Inductors, through hole"))
 | 
			
		||||
  (lib (name IR-DirectFETs)(type Github)(uri ${KIGITHUB}/IR-DirectFETs.pretty)(options "")(descr "DirectFet packets from International Rectifier"))
 | 
			
		||||
  (lib (name Labels)(type Github)(uri ${KIGITHUB}/Labels.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name LEDs)(type Github)(uri ${KIGITHUB}/LEDs.pretty)(options "")(descr "Light emitting diodes (LEDs)"))
 | 
			
		||||
  (lib (name Measurement_Points)(type Github)(uri ${KIGITHUB}/Measurement_Points.pretty)(options "")(descr "Terminals for test equipment"))
 | 
			
		||||
  (lib (name Measurement_Scales)(type Github)(uri ${KIGITHUB}/Measurement_Scales.pretty)(options "")(descr "Measurement scales and gauges"))
 | 
			
		||||
  (lib (name Mechanical_Sockets)(type Github)(uri ${KIGITHUB}/Mechanical_Sockets.pretty)(options "")(descr "Sockets for board to board connection"))
 | 
			
		||||
  (lib (name Microwave)(type Github)(uri ${KIGITHUB}/Microwave.pretty)(options "")(descr "Microwave"))
 | 
			
		||||
  (lib (name Modules)(type Github)(uri ${KIGITHUB}/Modules.pretty)(options "")(descr "Board-level devices integrating system functionality into a single module"))
 | 
			
		||||
  (lib (name Mounting_Holes)(type Github)(uri ${KIGITHUB}/Mounting_Holes.pretty)(options "")(descr "Mechanical fasteners"))
 | 
			
		||||
  (lib (name NF-Transformers_ETAL)(type Github)(uri ${KIGITHUB}/NF-Transformers_ETAL.pretty)(options "")(descr "Deprecated - will be deleted"))
 | 
			
		||||
  (lib (name Oddities)(type Github)(uri ${KIGITHUB}/Oddities.pretty)(options "")(descr "Assorted footprints. Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Opto-Devices)(type Github)(uri ${KIGITHUB}/Opto-Devices.pretty)(options "")(descr "Optocouplers, light sensors, and other optical devices"))
 | 
			
		||||
  (lib (name Oscillators)(type Github)(uri ${KIGITHUB}/Oscillators.pretty)(options "")(descr "Precicision oscillator modules"))
 | 
			
		||||
  (lib (name PFF_PSF_PSS_Leadforms)(type Github)(uri ${KIGITHUB}/PFF_PSF_PSS_Leadforms.pretty)(options "")(descr "Allegro leadform packages"))
 | 
			
		||||
  (lib (name Pin_Headers)(type Github)(uri ${KIGITHUB}/Pin_Headers.pretty)(options "")(descr "Male pin headers"))
 | 
			
		||||
  (lib (name Potentiometers)(type Github)(uri ${KIGITHUB}/Potentiometers.pretty)(options "")(descr "Potentiometers / variable resistors"))
 | 
			
		||||
  (lib (name Power_Integrations)(type Github)(uri ${KIGITHUB}/Power_Integrations.pretty)(options "")(descr "Power Integrations footprints"))
 | 
			
		||||
  (lib (name Relays_THT)(type Github)(uri ${KIGITHUB}/Relays_THT.pretty)(options "")(descr "Through hole relay packages"))
 | 
			
		||||
  (lib (name Resistors_SMD)(type Github)(uri ${KIGITHUB}/Resistors_SMD.pretty)(options "")(descr "Resistors, surface mount"))
 | 
			
		||||
  (lib (name Resistors_THT)(type Github)(uri ${KIGITHUB}/Resistors_THT.pretty)(options "")(descr "Resistors, through hole"))
 | 
			
		||||
  (lib (name Resistors_Universal)(type Github)(uri ${KIGITHUB}/Resistors_Universal.pretty)(options "")(descr Experimental))
 | 
			
		||||
  (lib (name RF_Modules)(type Github)(uri ${KIGITHUB}/RF_Modules.pretty)(options "")(descr "Radio-frequency / wireless modules"))
 | 
			
		||||
  (lib (name Shielding_Cabinets)(type Github)(uri ${KIGITHUB}/Shielding_Cabinets.pretty)(options "")(descr "RF / EMI shields"))
 | 
			
		||||
  (lib (name SMD_Packages)(type Github)(uri ${KIGITHUB}/SMD_Packages.pretty)(options "")(descr "Various SMD packages. Read only - footprints will be moved to other libraries"))
 | 
			
		||||
  (lib (name Sockets_MOLEX_KK-System)(type Github)(uri ${KIGITHUB}/Sockets_MOLEX_KK-System.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Socket_Strips)(type Github)(uri ${KIGITHUB}/Socket_Strips.pretty)(options "")(descr "Female socket strips"))
 | 
			
		||||
  (lib (name Sockets)(type Github)(uri ${KIGITHUB}/Sockets.pretty)(options "")(descr "IC sockets"))
 | 
			
		||||
  (lib (name Symbols)(type Github)(uri ${KIGITHUB}/Symbols.pretty)(options "")(descr "PCB symbols"))
 | 
			
		||||
  (lib (name TO_SOT_Packages_SMD)(type Github)(uri ${KIGITHUB}/TO_SOT_Packages_SMD.pretty)(options "")(descr "Surface mount transistor packages"))
 | 
			
		||||
  (lib (name TO_SOT_Packages_THT)(type Github)(uri ${KIGITHUB}/TO_SOT_Packages_THT.pretty)(options "")(descr "Through hole transistor packages"))
 | 
			
		||||
  (lib (name Transformers_CHK)(type Github)(uri ${KIGITHUB}/Transformers_CHK.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Transformers_SMD)(type Github)(uri ${KIGITHUB}/Transformers_SMD.pretty)(options "")(descr "Surface mount transformers"))
 | 
			
		||||
  (lib (name Transformers_SMPS_ThroughHole)(type Github)(uri ${KIGITHUB}/Transformers_SMPS_ThroughHole.pretty)(options "")(descr "Deprecated - will be removed"))
 | 
			
		||||
  (lib (name Transformers_THT)(type Github)(uri ${KIGITHUB}/Transformers_THT.pretty)(options "")(descr "Through hole transformers"))
 | 
			
		||||
  (lib (name Transistors_OldSowjetAera)(type Github)(uri ${KIGITHUB}/Transistors_OldSowjetAera.pretty)(options "")(descr "Sowjet transistors"))
 | 
			
		||||
  (lib (name Valves)(type Github)(uri ${KIGITHUB}/Valves.pretty)(options "")(descr "Valves"))
 | 
			
		||||
  (lib (name Varistors)(type Github)(uri ${KIGITHUB}/Varistors.pretty)(options "")(descr "Varistors"))
 | 
			
		||||
  (lib (name Wire_Connections_Bridges)(type Github)(uri ${KIGITHUB}/Wire_Connections_Bridges.pretty)(options "")(descr "PCB bridging points"))
 | 
			
		||||
  (lib (name Wire_Pads)(type Github)(uri ${KIGITHUB}/Wire_Pads.pretty)(options "")(descr "Direct wire-to-board connection points"))
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										34
									
								
								samples/KiCad Layout/kivicad.kicad_wks
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								samples/KiCad Layout/kivicad.kicad_wks
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
( page_layout
 | 
			
		||||
    ( setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15) )
 | 
			
		||||
    ( rect (comment "rect around the title block") (linewidth 0.15) (start 110 34) (end 2 2) )
 | 
			
		||||
    ( rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) )
 | 
			
		||||
    ( line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )
 | 
			
		||||
    ( tbtext "1" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) )
 | 
			
		||||
    ( line (start 50 2 lbcorner) (end 50 0 lbcorner) (repeat 30) (incrx 50) )
 | 
			
		||||
    ( tbtext "1" (pos 25 1 lbcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50) )
 | 
			
		||||
    ( line (start 0 50 ltcorner) (end 2 50 ltcorner) (repeat 30) (incry 50) )
 | 
			
		||||
    ( tbtext "A" (pos 1 25 ltcorner) (font (size 1.3 1.3))
 | 
			
		||||
        (justify center)(repeat 100) (incry 50) )
 | 
			
		||||
    ( line (start 0 50 rtcorner) (end 2 50 rtcorner) (repeat 30) (incry 50) )
 | 
			
		||||
    ( tbtext "A" (pos 1 25 rtcorner) (font (size 1.3 1.3))
 | 
			
		||||
        (justify center) (repeat 100) (incry 50) )
 | 
			
		||||
    ( tbtext "Date: %D" (pos 87 6.9) )
 | 
			
		||||
    ( line (start 110 5.5) (end 2 5.5) )
 | 
			
		||||
    ( tbtext "%K" (pos 109 4.1) (comment "Kicad version" ) )
 | 
			
		||||
    ( line (start 110 8.5) (end 2 8.5) )
 | 
			
		||||
    ( tbtext "Rev: %R" (pos 24 6.9)(font bold)(justify left) )
 | 
			
		||||
    ( tbtext "Size: %Z" (comment "Paper format name")(pos 109 6.9) )
 | 
			
		||||
    ( tbtext "Id: %S/%N" (comment "Sheet id")(pos 24 4.1) )
 | 
			
		||||
    ( line (start 110 12.5) (end 2 12.5) )
 | 
			
		||||
    ( tbtext "Title: %T" (pos 109 10.7)(font bold (size 2 2)) )
 | 
			
		||||
    ( tbtext "File: %F" (pos 109 14.3) )
 | 
			
		||||
    ( line (start 110 18.5) (end 2 18.5) )
 | 
			
		||||
    ( tbtext "Sheet: %P" (pos 109 17) )
 | 
			
		||||
    ( tbtext "%Y" (comment "Company name") (pos 109 20)(font bold) )
 | 
			
		||||
    ( tbtext "%C0" (comment "Comment 0") (pos 109 23) )
 | 
			
		||||
    ( tbtext "%C1" (comment "Comment 1") (pos 109 26) )
 | 
			
		||||
    ( tbtext "%C2" (comment "Comment 2") (pos 109 29) )
 | 
			
		||||
    ( tbtext "%C3" (comment "Comment 3") (pos 109 32) )
 | 
			
		||||
    ( line (start 90 8.5) (end 90 5.5) )
 | 
			
		||||
    ( line (start 26 8.5) (end 26 2) )
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										2567
									
								
								samples/KiCad Layout/simonShield.kicad_pcb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2567
									
								
								samples/KiCad Layout/simonShield.kicad_pcb
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										519
									
								
								samples/KiCad Schematic/buttons.sch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										519
									
								
								samples/KiCad Schematic/buttons.sch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,519 @@
 | 
			
		||||
EESchema Schematic File Version 2
 | 
			
		||||
LIBS:simonLib
 | 
			
		||||
LIBS:power
 | 
			
		||||
LIBS:simonShield-cache
 | 
			
		||||
EELAYER 25 0
 | 
			
		||||
EELAYER END
 | 
			
		||||
$Descr A4 11693 8268
 | 
			
		||||
encoding utf-8
 | 
			
		||||
Sheet 2 4
 | 
			
		||||
Title "Poncho Simon EDU-CIAA"
 | 
			
		||||
Date "2016-07-26"
 | 
			
		||||
Rev "1.0"
 | 
			
		||||
Comp "Proyecto CIAA"
 | 
			
		||||
Comment1 "Juan Agustin Bassi"
 | 
			
		||||
Comment2 "CESE - Diseño PCB"
 | 
			
		||||
Comment3 "Licencia BSD"
 | 
			
		||||
Comment4 ""
 | 
			
		||||
$EndDescr
 | 
			
		||||
$Comp
 | 
			
		||||
L SW_PUSH SW1
 | 
			
		||||
U 1 1 5777DBBB
 | 
			
		||||
P 3500 3000
 | 
			
		||||
F 0 "SW1" H 3650 3110 50  0000 C CNN
 | 
			
		||||
F 1 "SW_PUSH" H 3500 2920 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:SW_PUSH_SMALL" H 3500 3000 50  0001 C CNN
 | 
			
		||||
F 3 "" H 3500 3000 50  0000 C CNN
 | 
			
		||||
F 4 "450-1804-ND" H 3500 3000 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    3500 3000
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R1
 | 
			
		||||
U 1 1 5777DBC2
 | 
			
		||||
P 3150 2750
 | 
			
		||||
F 0 "R1" V 3230 2750 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 3150 2750 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 3080 2750 50  0001 C CNN
 | 
			
		||||
F 3 "" H 3150 2750 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 3150 2750 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    3150 2750
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR05
 | 
			
		||||
U 1 1 5777DBC9
 | 
			
		||||
P 3900 3100
 | 
			
		||||
F 0 "#PWR05" H 3900 2850 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 3900 2950 50  0000 C CNN
 | 
			
		||||
F 2 "" H 3900 3100 50  0000 C CNN
 | 
			
		||||
F 3 "" H 3900 3100 50  0000 C CNN
 | 
			
		||||
	1    3900 3100
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3150 2450 3150 2600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3150 2900 3150 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3800 3000 3900 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3900 3000 3900 3100
 | 
			
		||||
Connection ~ 3150 3000
 | 
			
		||||
$Comp
 | 
			
		||||
L SW_PUSH SW3
 | 
			
		||||
U 1 1 5777DBDD
 | 
			
		||||
P 5050 3000
 | 
			
		||||
F 0 "SW3" H 5200 3110 50  0000 C CNN
 | 
			
		||||
F 1 "SW_PUSH" H 5050 2920 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:SW_PUSH_SMALL" H 5050 3000 50  0001 C CNN
 | 
			
		||||
F 3 "" H 5050 3000 50  0000 C CNN
 | 
			
		||||
F 4 "450-1804-ND" H 5050 3000 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    5050 3000
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR06
 | 
			
		||||
U 1 1 5777DBEB
 | 
			
		||||
P 5450 3100
 | 
			
		||||
F 0 "#PWR06" H 5450 2850 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 5450 2950 50  0000 C CNN
 | 
			
		||||
F 2 "" H 5450 3100 50  0000 C CNN
 | 
			
		||||
F 3 "" H 5450 3100 50  0000 C CNN
 | 
			
		||||
	1    5450 3100
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4700 2450 4700 2600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4700 2900 4700 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5350 3000 5450 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5450 3000 5450 3100
 | 
			
		||||
Connection ~ 4700 3000
 | 
			
		||||
$Comp
 | 
			
		||||
L SW_PUSH SW5
 | 
			
		||||
U 1 1 5777DBFF
 | 
			
		||||
P 6600 3000
 | 
			
		||||
F 0 "SW5" H 6750 3110 50  0000 C CNN
 | 
			
		||||
F 1 "SW_PUSH" H 6600 2920 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:SW_PUSH_SMALL" H 6600 3000 50  0001 C CNN
 | 
			
		||||
F 3 "" H 6600 3000 50  0000 C CNN
 | 
			
		||||
F 4 "450-1804-ND" H 6600 3000 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    6600 3000
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR07
 | 
			
		||||
U 1 1 5777DC0D
 | 
			
		||||
P 7000 3100
 | 
			
		||||
F 0 "#PWR07" H 7000 2850 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 7000 2950 50  0000 C CNN
 | 
			
		||||
F 2 "" H 7000 3100 50  0000 C CNN
 | 
			
		||||
F 3 "" H 7000 3100 50  0000 C CNN
 | 
			
		||||
	1    7000 3100
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6250 2450 6250 2600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6250 2900 6250 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6900 3000 7000 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7000 3000 7000 3100
 | 
			
		||||
Connection ~ 6250 3000
 | 
			
		||||
$Comp
 | 
			
		||||
L SW_PUSH SW7
 | 
			
		||||
U 1 1 5777DC21
 | 
			
		||||
P 8150 3000
 | 
			
		||||
F 0 "SW7" H 8300 3110 50  0000 C CNN
 | 
			
		||||
F 1 "SW_PUSH" H 8150 2920 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:SW_PUSH_SMALL" H 8150 3000 50  0001 C CNN
 | 
			
		||||
F 3 "" H 8150 3000 50  0000 C CNN
 | 
			
		||||
F 4 "450-1804-ND" H 8150 3000 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    8150 3000
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR08
 | 
			
		||||
U 1 1 5777DC2F
 | 
			
		||||
P 8550 3100
 | 
			
		||||
F 0 "#PWR08" H 8550 2850 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 8550 2950 50  0000 C CNN
 | 
			
		||||
F 2 "" H 8550 3100 50  0000 C CNN
 | 
			
		||||
F 3 "" H 8550 3100 50  0000 C CNN
 | 
			
		||||
	1    8550 3100
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7800 2450 7800 2600
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7800 2900 7800 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	8450 3000 8550 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	8550 3000 8550 3100
 | 
			
		||||
Connection ~ 7800 3000
 | 
			
		||||
$Comp
 | 
			
		||||
L SW_PUSH SW2
 | 
			
		||||
U 1 1 5777DC43
 | 
			
		||||
P 3550 4350
 | 
			
		||||
F 0 "SW2" H 3700 4460 50  0000 C CNN
 | 
			
		||||
F 1 "SW_PUSH" H 3550 4270 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:SW_PUSH_SMALL" H 3550 4350 50  0001 C CNN
 | 
			
		||||
F 3 "" H 3550 4350 50  0000 C CNN
 | 
			
		||||
F 4 "450-1804-ND" H 3550 4350 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    3550 4350
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR09
 | 
			
		||||
U 1 1 5777DC51
 | 
			
		||||
P 3950 4450
 | 
			
		||||
F 0 "#PWR09" H 3950 4200 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 3950 4300 50  0000 C CNN
 | 
			
		||||
F 2 "" H 3950 4450 50  0000 C CNN
 | 
			
		||||
F 3 "" H 3950 4450 50  0000 C CNN
 | 
			
		||||
	1    3950 4450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3200 3800 3200 3950
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3200 4250 3200 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3850 4350 3950 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3950 4350 3950 4450
 | 
			
		||||
Connection ~ 3200 4350
 | 
			
		||||
$Comp
 | 
			
		||||
L SW_PUSH SW4
 | 
			
		||||
U 1 1 5777DC65
 | 
			
		||||
P 5100 4350
 | 
			
		||||
F 0 "SW4" H 5250 4460 50  0000 C CNN
 | 
			
		||||
F 1 "SW_PUSH" H 5100 4270 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:SW_PUSH_SMALL" H 5100 4350 50  0001 C CNN
 | 
			
		||||
F 3 "" H 5100 4350 50  0000 C CNN
 | 
			
		||||
F 4 "450-1804-ND" H 5100 4350 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    5100 4350
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR010
 | 
			
		||||
U 1 1 5777DC73
 | 
			
		||||
P 5500 4450
 | 
			
		||||
F 0 "#PWR010" H 5500 4200 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 5500 4300 50  0000 C CNN
 | 
			
		||||
F 2 "" H 5500 4450 50  0000 C CNN
 | 
			
		||||
F 3 "" H 5500 4450 50  0000 C CNN
 | 
			
		||||
	1    5500 4450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4750 4250 4750 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5400 4350 5500 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5500 4350 5500 4450
 | 
			
		||||
Connection ~ 4750 4350
 | 
			
		||||
$Comp
 | 
			
		||||
L SW_PUSH SW6
 | 
			
		||||
U 1 1 5777DC87
 | 
			
		||||
P 6650 4350
 | 
			
		||||
F 0 "SW6" H 6800 4460 50  0000 C CNN
 | 
			
		||||
F 1 "SW_PUSH" H 6650 4270 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:SW_PUSH_SMALL" H 6650 4350 50  0001 C CNN
 | 
			
		||||
F 3 "" H 6650 4350 50  0000 C CNN
 | 
			
		||||
F 4 "450-1804-ND" H 6650 4350 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    6650 4350
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR011
 | 
			
		||||
U 1 1 5777DC95
 | 
			
		||||
P 7050 4450
 | 
			
		||||
F 0 "#PWR011" H 7050 4200 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 7050 4300 50  0000 C CNN
 | 
			
		||||
F 2 "" H 7050 4450 50  0000 C CNN
 | 
			
		||||
F 3 "" H 7050 4450 50  0000 C CNN
 | 
			
		||||
	1    7050 4450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6300 3800 6300 3950
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6300 4250 6300 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6950 4350 7050 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7050 4350 7050 4450
 | 
			
		||||
Connection ~ 6300 4350
 | 
			
		||||
$Comp
 | 
			
		||||
L SW_PUSH SW8
 | 
			
		||||
U 1 1 5777DCA9
 | 
			
		||||
P 8200 4350
 | 
			
		||||
F 0 "SW8" H 8350 4460 50  0000 C CNN
 | 
			
		||||
F 1 "SW_PUSH" H 8200 4270 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:SW_PUSH_SMALL" H 8200 4350 50  0001 C CNN
 | 
			
		||||
F 3 "" H 8200 4350 50  0000 C CNN
 | 
			
		||||
F 4 "450-1804-ND" H 8200 4350 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    8200 4350
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR012
 | 
			
		||||
U 1 1 5777DCB7
 | 
			
		||||
P 8600 4450
 | 
			
		||||
F 0 "#PWR012" H 8600 4200 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 8600 4300 50  0000 C CNN
 | 
			
		||||
F 2 "" H 8600 4450 50  0000 C CNN
 | 
			
		||||
F 3 "" H 8600 4450 50  0000 C CNN
 | 
			
		||||
	1    8600 4450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7850 3800 7850 3950
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7850 4250 7850 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	8500 4350 8600 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	8600 4350 8600 4450
 | 
			
		||||
Connection ~ 7850 4350
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	2400 1850 2400 4700
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	2400 4700 8800 4700
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	8800 4700 8800 1850
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	8800 2150 2400 2150
 | 
			
		||||
Text HLabel 2950 2800 0    60   Input ~ 0
 | 
			
		||||
BTN_LED_1
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2950 3000 3200 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	2950 3000 2950 2800
 | 
			
		||||
Text HLabel 4500 2800 0    60   Input ~ 0
 | 
			
		||||
BTN_LED_2
 | 
			
		||||
Text HLabel 6050 2800 0    60   Input ~ 0
 | 
			
		||||
BTN_LED_3
 | 
			
		||||
Text HLabel 7600 2800 0    60   Input ~ 0
 | 
			
		||||
BTN_LED_4
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4500 3000 4750 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4500 3000 4500 2800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6050 3000 6300 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6050 3000 6050 2800
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7600 3000 7850 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7600 3000 7600 2800
 | 
			
		||||
Text HLabel 3000 4150 0    60   Input ~ 0
 | 
			
		||||
BTN_CFG_1
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3000 4350 3250 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3000 4350 3000 4150
 | 
			
		||||
Text HLabel 4550 4150 0    60   Input ~ 0
 | 
			
		||||
BTN_CFG_2
 | 
			
		||||
Text HLabel 6100 4150 0    60   Input ~ 0
 | 
			
		||||
BTN_CFG_3
 | 
			
		||||
Text HLabel 7650 4150 0    60   Input ~ 0
 | 
			
		||||
BTN_CFG_4
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4550 4150 4550 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4550 4350 4800 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6100 4150 6100 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	6100 4350 6350 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7650 4150 7650 4350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	7650 4350 7900 4350
 | 
			
		||||
$Comp
 | 
			
		||||
L R R3
 | 
			
		||||
U 1 1 577967E7
 | 
			
		||||
P 4700 2750
 | 
			
		||||
F 0 "R3" V 4780 2750 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 4700 2750 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 4630 2750 50  0001 C CNN
 | 
			
		||||
F 3 "" H 4700 2750 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 4700 2750 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    4700 2750
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R5
 | 
			
		||||
U 1 1 57796847
 | 
			
		||||
P 6250 2750
 | 
			
		||||
F 0 "R5" V 6330 2750 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 6250 2750 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 6180 2750 50  0001 C CNN
 | 
			
		||||
F 3 "" H 6250 2750 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 6250 2750 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    6250 2750
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R7
 | 
			
		||||
U 1 1 577968BC
 | 
			
		||||
P 7800 2750
 | 
			
		||||
F 0 "R7" V 7880 2750 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 7800 2750 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 7730 2750 50  0001 C CNN
 | 
			
		||||
F 3 "" H 7800 2750 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 7800 2750 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    7800 2750
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R2
 | 
			
		||||
U 1 1 5779693E
 | 
			
		||||
P 3200 4100
 | 
			
		||||
F 0 "R2" V 3280 4100 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 3200 4100 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 3130 4100 50  0001 C CNN
 | 
			
		||||
F 3 "" H 3200 4100 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 3200 4100 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    3200 4100
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R4
 | 
			
		||||
U 1 1 577969F3
 | 
			
		||||
P 4750 4100
 | 
			
		||||
F 0 "R4" V 4830 4100 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 4750 4100 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 4680 4100 50  0001 C CNN
 | 
			
		||||
F 3 "" H 4750 4100 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 4750 4100 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    4750 4100
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R6
 | 
			
		||||
U 1 1 57796A6F
 | 
			
		||||
P 6300 4100
 | 
			
		||||
F 0 "R6" V 6380 4100 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 6300 4100 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 6230 4100 50  0001 C CNN
 | 
			
		||||
F 3 "" H 6300 4100 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 6300 4100 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    6300 4100
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R8
 | 
			
		||||
U 1 1 57796AEC
 | 
			
		||||
P 7850 4100
 | 
			
		||||
F 0 "R8" V 7930 4100 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 7850 4100 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Resistor_Horizontal_RM7mm" V 7780 4100 50  0001 C CNN
 | 
			
		||||
F 3 "" H 7850 4100 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 7850 4100 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    7850 4100
 | 
			
		||||
	-1   0    0    1   
 | 
			
		||||
$EndComp
 | 
			
		||||
Text Notes 5400 2050 0    60   ~ 12
 | 
			
		||||
BUTTONS\n
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	8800 1850 2400 1850
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4750 3950 4750 3800
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR013
 | 
			
		||||
U 1 1 5798AF98
 | 
			
		||||
P 4750 3800
 | 
			
		||||
F 0 "#PWR013" H 4750 3650 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 4750 3950 50  0000 C CNN
 | 
			
		||||
F 2 "" H 4750 3800 50  0000 C CNN
 | 
			
		||||
F 3 "" H 4750 3800 50  0000 C CNN
 | 
			
		||||
	1    4750 3800
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR014
 | 
			
		||||
U 1 1 5798B8B6
 | 
			
		||||
P 3200 3800
 | 
			
		||||
F 0 "#PWR014" H 3200 3650 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 3200 3950 50  0000 C CNN
 | 
			
		||||
F 2 "" H 3200 3800 50  0000 C CNN
 | 
			
		||||
F 3 "" H 3200 3800 50  0000 C CNN
 | 
			
		||||
	1    3200 3800
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR015
 | 
			
		||||
U 1 1 5798B8F1
 | 
			
		||||
P 6300 3800
 | 
			
		||||
F 0 "#PWR015" H 6300 3650 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 6300 3950 50  0000 C CNN
 | 
			
		||||
F 2 "" H 6300 3800 50  0000 C CNN
 | 
			
		||||
F 3 "" H 6300 3800 50  0000 C CNN
 | 
			
		||||
	1    6300 3800
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR016
 | 
			
		||||
U 1 1 5798B9EC
 | 
			
		||||
P 7850 3800
 | 
			
		||||
F 0 "#PWR016" H 7850 3650 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 7850 3950 50  0000 C CNN
 | 
			
		||||
F 2 "" H 7850 3800 50  0000 C CNN
 | 
			
		||||
F 3 "" H 7850 3800 50  0000 C CNN
 | 
			
		||||
	1    7850 3800
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR017
 | 
			
		||||
U 1 1 5798BB07
 | 
			
		||||
P 7800 2450
 | 
			
		||||
F 0 "#PWR017" H 7800 2300 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 7800 2600 50  0000 C CNN
 | 
			
		||||
F 2 "" H 7800 2450 50  0000 C CNN
 | 
			
		||||
F 3 "" H 7800 2450 50  0000 C CNN
 | 
			
		||||
	1    7800 2450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR018
 | 
			
		||||
U 1 1 5798BB42
 | 
			
		||||
P 6250 2450
 | 
			
		||||
F 0 "#PWR018" H 6250 2300 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 6250 2600 50  0000 C CNN
 | 
			
		||||
F 2 "" H 6250 2450 50  0000 C CNN
 | 
			
		||||
F 3 "" H 6250 2450 50  0000 C CNN
 | 
			
		||||
	1    6250 2450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR019
 | 
			
		||||
U 1 1 5798BB7D
 | 
			
		||||
P 4700 2450
 | 
			
		||||
F 0 "#PWR019" H 4700 2300 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 4700 2600 50  0000 C CNN
 | 
			
		||||
F 2 "" H 4700 2450 50  0000 C CNN
 | 
			
		||||
F 3 "" H 4700 2450 50  0000 C CNN
 | 
			
		||||
	1    4700 2450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR020
 | 
			
		||||
U 1 1 5798BBB8
 | 
			
		||||
P 3150 2450
 | 
			
		||||
F 0 "#PWR020" H 3150 2300 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 3150 2600 50  0000 C CNN
 | 
			
		||||
F 2 "" H 3150 2450 50  0000 C CNN
 | 
			
		||||
F 3 "" H 3150 2450 50  0000 C CNN
 | 
			
		||||
	1    3150 2450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$EndSCHEMATC
 | 
			
		||||
							
								
								
									
										195
									
								
								samples/KiCad Schematic/buzzer.sch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										195
									
								
								samples/KiCad Schematic/buzzer.sch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,195 @@
 | 
			
		||||
EESchema Schematic File Version 2
 | 
			
		||||
LIBS:simonShield-rescue
 | 
			
		||||
LIBS:simonLib
 | 
			
		||||
LIBS:74xgxx
 | 
			
		||||
LIBS:74xx
 | 
			
		||||
LIBS:ac-dc
 | 
			
		||||
LIBS:actel
 | 
			
		||||
LIBS:adc-dac
 | 
			
		||||
LIBS:Altera
 | 
			
		||||
LIBS:analog_devices
 | 
			
		||||
LIBS:analog_switches
 | 
			
		||||
LIBS:atmel
 | 
			
		||||
LIBS:audio
 | 
			
		||||
LIBS:brooktre
 | 
			
		||||
LIBS:cmos4000
 | 
			
		||||
LIBS:cmos_ieee
 | 
			
		||||
LIBS:conn
 | 
			
		||||
LIBS:contrib
 | 
			
		||||
LIBS:cypress
 | 
			
		||||
LIBS:dc-dc
 | 
			
		||||
LIBS:device
 | 
			
		||||
LIBS:digital-audio
 | 
			
		||||
LIBS:diode
 | 
			
		||||
LIBS:display
 | 
			
		||||
LIBS:dsp
 | 
			
		||||
LIBS:elec-unifil
 | 
			
		||||
LIBS:ESD_Protection
 | 
			
		||||
LIBS:ftdi
 | 
			
		||||
LIBS:gennum
 | 
			
		||||
LIBS:graphic
 | 
			
		||||
LIBS:hc11
 | 
			
		||||
LIBS:intel
 | 
			
		||||
LIBS:interface
 | 
			
		||||
LIBS:ir
 | 
			
		||||
LIBS:Lattice
 | 
			
		||||
LIBS:linear
 | 
			
		||||
LIBS:logo
 | 
			
		||||
LIBS:maxim
 | 
			
		||||
LIBS:memory
 | 
			
		||||
LIBS:microchip
 | 
			
		||||
LIBS:microchip_dspic33dsc
 | 
			
		||||
LIBS:microchip_pic10mcu
 | 
			
		||||
LIBS:microchip_pic12mcu
 | 
			
		||||
LIBS:microchip_pic16mcu
 | 
			
		||||
LIBS:microchip_pic18mcu
 | 
			
		||||
LIBS:microchip_pic32mcu
 | 
			
		||||
LIBS:microcontrollers
 | 
			
		||||
LIBS:motor_drivers
 | 
			
		||||
LIBS:motorola
 | 
			
		||||
LIBS:msp430
 | 
			
		||||
LIBS:nordicsemi
 | 
			
		||||
LIBS:nxp_armmcu
 | 
			
		||||
LIBS:onsemi
 | 
			
		||||
LIBS:opto
 | 
			
		||||
LIBS:Oscillators
 | 
			
		||||
LIBS:philips
 | 
			
		||||
LIBS:power
 | 
			
		||||
LIBS:powerint
 | 
			
		||||
LIBS:Power_Management
 | 
			
		||||
LIBS:pspice
 | 
			
		||||
LIBS:references
 | 
			
		||||
LIBS:regul
 | 
			
		||||
LIBS:relays
 | 
			
		||||
LIBS:rfcom
 | 
			
		||||
LIBS:sensors
 | 
			
		||||
LIBS:silabs
 | 
			
		||||
LIBS:siliconi
 | 
			
		||||
LIBS:stm8
 | 
			
		||||
LIBS:stm32
 | 
			
		||||
LIBS:supertex
 | 
			
		||||
LIBS:switches
 | 
			
		||||
LIBS:texas
 | 
			
		||||
LIBS:transf
 | 
			
		||||
LIBS:transistors
 | 
			
		||||
LIBS:ttl_ieee
 | 
			
		||||
LIBS:valves
 | 
			
		||||
LIBS:video
 | 
			
		||||
LIBS:Worldsemi
 | 
			
		||||
LIBS:Xicor
 | 
			
		||||
LIBS:xilinx
 | 
			
		||||
LIBS:Zilog
 | 
			
		||||
LIBS:simonShield-cache
 | 
			
		||||
EELAYER 25 0
 | 
			
		||||
EELAYER END
 | 
			
		||||
$Descr A4 11693 8268
 | 
			
		||||
encoding utf-8
 | 
			
		||||
Sheet 3 5
 | 
			
		||||
Title "Poncho Simon EDU-CIAA"
 | 
			
		||||
Date "2016-07-26"
 | 
			
		||||
Rev "1.0"
 | 
			
		||||
Comp "Proyecto CIAA"
 | 
			
		||||
Comment1 "Juan Agustin Bassi"
 | 
			
		||||
Comment2 "CESE - Diseño PCB"
 | 
			
		||||
Comment3 "Licencia BSD"
 | 
			
		||||
Comment4 ""
 | 
			
		||||
$EndDescr
 | 
			
		||||
$Comp
 | 
			
		||||
L BUZZER U1
 | 
			
		||||
U 1 1 5777FCBE
 | 
			
		||||
P 5600 4150
 | 
			
		||||
F 0 "U1" H 5600 4150 60  0000 C CNN
 | 
			
		||||
F 1 "BUZZER" H 5600 4150 60  0000 C CNN
 | 
			
		||||
F 2 "footprints:MagneticBuzzer_ProSignal_ABT-410-RC" H 5600 4150 60  0001 C CNN
 | 
			
		||||
F 3 "" H 5600 4150 60  0000 C CNN
 | 
			
		||||
F 4 "445-2525-1-ND" H 5600 4150 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    5600 4150
 | 
			
		||||
	0    1    1    0   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L BC547 Q1
 | 
			
		||||
U 1 1 5777FCC6
 | 
			
		||||
P 5500 3350
 | 
			
		||||
F 0 "Q1" H 5700 3425 50  0000 L CNN
 | 
			
		||||
F 1 "BC547" H 5700 3350 50  0000 L CNN
 | 
			
		||||
F 2 "simonShield:TO-92_Molded_Narrow" H 5700 3275 50  0000 L CIN
 | 
			
		||||
F 3 "" H 5500 3350 50  0000 L CNN
 | 
			
		||||
F 4 "BC33725TACT-ND" H 5500 3350 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    5500 3350
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L R R9
 | 
			
		||||
U 1 1 5777FCCD
 | 
			
		||||
P 5050 3350
 | 
			
		||||
F 0 "R9" V 5130 3350 50  0000 C CNN
 | 
			
		||||
F 1 "3K3" V 5050 3350 50  0000 C CNN
 | 
			
		||||
F 2 "footprints:Resistor_Horizontal_RM7mm" V 4980 3350 50  0001 C CNN
 | 
			
		||||
F 3 "" H 5050 3350 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 5050 3350 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    5050 3350
 | 
			
		||||
	0    1    1    0   
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR017
 | 
			
		||||
U 1 1 5777FCDA
 | 
			
		||||
P 5600 4850
 | 
			
		||||
F 0 "#PWR017" H 5600 4600 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 5600 4700 50  0000 C CNN
 | 
			
		||||
F 2 "" H 5600 4850 50  0000 C CNN
 | 
			
		||||
F 3 "" H 5600 4850 50  0000 C CNN
 | 
			
		||||
	1    5600 4850
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5600 2600 5600 3150
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5600 3550 5600 3700
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5600 4700 5600 4850
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5200 3350 5300 3350
 | 
			
		||||
Text HLabel 4700 3050 0    60   Input ~ 0
 | 
			
		||||
PWM
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4700 3050 4700 3350
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4700 3350 4900 3350
 | 
			
		||||
$Comp
 | 
			
		||||
L R R10
 | 
			
		||||
U 1 1 577960FD
 | 
			
		||||
P 5600 2450
 | 
			
		||||
F 0 "R10" V 5680 2450 50  0000 C CNN
 | 
			
		||||
F 1 "1K" H 5600 2450 50  0000 C CNN
 | 
			
		||||
F 2 "footprints:Resistor_Horizontal_RM7mm" V 5530 2450 50  0001 C CNN
 | 
			
		||||
F 3 "" H 5600 2450 50  0000 C CNN
 | 
			
		||||
F 4 "680EBK-ND" H 5600 2450 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    5600 2450
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5600 2100 5600 2300
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	3800 1000 3800 5450
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	3800 5450 7650 5450
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	7650 5450 7650 1000
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	7650 1350 3800 1350
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	7650 1000 3800 1000
 | 
			
		||||
Text Notes 5350 1250 0    60   ~ 12
 | 
			
		||||
BUZZER CIRCUIT
 | 
			
		||||
$Comp
 | 
			
		||||
L VDD-RESCUE-simonShield #PWR018
 | 
			
		||||
U 1 1 5777FCD4
 | 
			
		||||
P 5600 2100
 | 
			
		||||
F 0 "#PWR018" H 5600 1950 50  0001 C CNN
 | 
			
		||||
F 1 "VDD" H 5600 2250 50  0000 C CNN
 | 
			
		||||
F 2 "" H 5600 2100 50  0000 C CNN
 | 
			
		||||
F 3 "" H 5600 2100 50  0000 C CNN
 | 
			
		||||
	1    5600 2100
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$EndSCHEMATC
 | 
			
		||||
							
								
								
									
										260
									
								
								samples/KiCad Schematic/ciaaConector.sch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										260
									
								
								samples/KiCad Schematic/ciaaConector.sch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,260 @@
 | 
			
		||||
EESchema Schematic File Version 2
 | 
			
		||||
LIBS:simonLib
 | 
			
		||||
LIBS:power
 | 
			
		||||
LIBS:simonShield-cache
 | 
			
		||||
EELAYER 25 0
 | 
			
		||||
EELAYER END
 | 
			
		||||
$Descr A4 11693 8268
 | 
			
		||||
encoding utf-8
 | 
			
		||||
Sheet 4 4
 | 
			
		||||
Title "Poncho Simon EDU-CIAA"
 | 
			
		||||
Date "2016-07-26"
 | 
			
		||||
Rev "1.0"
 | 
			
		||||
Comp "Proyecto CIAA"
 | 
			
		||||
Comment1 "Juan Agustin Bassi"
 | 
			
		||||
Comment2 "CESE - Diseño PCB"
 | 
			
		||||
Comment3 "Licencia BSD"
 | 
			
		||||
Comment4 ""
 | 
			
		||||
$EndDescr
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR029
 | 
			
		||||
U 1 1 57781CE9
 | 
			
		||||
P 3200 3000
 | 
			
		||||
F 0 "#PWR029" H 3200 2750 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 3200 2850 50  0000 C CNN
 | 
			
		||||
F 2 "" H 3200 3000 50  0000 C CNN
 | 
			
		||||
F 3 "" H 3200 3000 50  0000 C CNN
 | 
			
		||||
	1    3200 3000
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L Conn_Poncho2P_2x_20x2 XA?
 | 
			
		||||
U 2 1 57781CEF
 | 
			
		||||
P 3900 3050
 | 
			
		||||
AR Path="/57781CEF" Ref="XA?"  Part="2" 
 | 
			
		||||
AR Path="/57781B52/57781CEF" Ref="XA1"  Part="2" 
 | 
			
		||||
F 0 "XA1" H 4200 3450 60  0000 C CNN
 | 
			
		||||
F 1 "Conn_Poncho2P_2x_20x2" H 4250 1350 60  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Conn_Poncho_SinBorde" H 3900 3050 60  0001 C CNN
 | 
			
		||||
F 3 "" H 3900 3050 60  0000 C CNN
 | 
			
		||||
F 4 "952-2121-ND" H 3900 3050 60  0001 C CNN "Digikey#"
 | 
			
		||||
	2    3900 3050
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L PWR_JUMPER P1
 | 
			
		||||
U 1 1 57781CF6
 | 
			
		||||
P 4250 2250
 | 
			
		||||
F 0 "P1" H 4250 2400 50  0000 C CNN
 | 
			
		||||
F 1 "PWR_JUMPER" H 4250 2100 50  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Pin_Header_Straight_2x02" H 4250 1050 50  0001 C CNN
 | 
			
		||||
F 3 "" H 4250 1050 50  0000 C CNN
 | 
			
		||||
F 4 "952-2121-ND" H 4250 2250 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    4250 2250
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
NoConn ~ 4850 2850
 | 
			
		||||
NoConn ~ 4850 2950
 | 
			
		||||
NoConn ~ 4850 3050
 | 
			
		||||
NoConn ~ 4850 3150
 | 
			
		||||
NoConn ~ 4850 3250
 | 
			
		||||
NoConn ~ 4850 3350
 | 
			
		||||
NoConn ~ 4850 3450
 | 
			
		||||
NoConn ~ 3650 4050
 | 
			
		||||
NoConn ~ 3650 3950
 | 
			
		||||
NoConn ~ 3650 3850
 | 
			
		||||
NoConn ~ 3650 3750
 | 
			
		||||
NoConn ~ 3650 3650
 | 
			
		||||
NoConn ~ 3650 3550
 | 
			
		||||
NoConn ~ 3650 3450
 | 
			
		||||
NoConn ~ 3650 3350
 | 
			
		||||
NoConn ~ 3650 3250
 | 
			
		||||
NoConn ~ 3650 3050
 | 
			
		||||
NoConn ~ 3650 2950
 | 
			
		||||
Text HLabel 4850 3750 2    60   Input ~ 0
 | 
			
		||||
BTN_CFG_1
 | 
			
		||||
Text HLabel 4850 3850 2    60   Input ~ 0
 | 
			
		||||
BTN_CFG_2
 | 
			
		||||
Text HLabel 4850 4450 2    60   Input ~ 0
 | 
			
		||||
BTN_CFG_3
 | 
			
		||||
Text HLabel 4850 4650 2    60   Input ~ 0
 | 
			
		||||
BTN_CFG_4
 | 
			
		||||
Text HLabel 3650 4350 0    60   Input ~ 0
 | 
			
		||||
LED_4
 | 
			
		||||
Text HLabel 4850 4350 2    60   Input ~ 0
 | 
			
		||||
LED_3
 | 
			
		||||
Text HLabel 4850 4050 2    60   Input ~ 0
 | 
			
		||||
LED_2
 | 
			
		||||
Text HLabel 4850 3550 2    60   Input ~ 0
 | 
			
		||||
LED_1
 | 
			
		||||
Text HLabel 3650 4450 0    60   Input ~ 0
 | 
			
		||||
BTN_LED_4
 | 
			
		||||
Text HLabel 4850 4550 2    60   Input ~ 0
 | 
			
		||||
BTN_LED_3
 | 
			
		||||
Text HLabel 4850 3950 2    60   Input ~ 0
 | 
			
		||||
BTN_LED_2
 | 
			
		||||
Text HLabel 4850 3650 2    60   Input ~ 0
 | 
			
		||||
BTN_LED_1
 | 
			
		||||
Text HLabel 3650 3150 0    60   Input ~ 0
 | 
			
		||||
PWM
 | 
			
		||||
$Comp
 | 
			
		||||
L Conn_Poncho2P_2x_20x2 XA1
 | 
			
		||||
U 1 1 577946F6
 | 
			
		||||
P 7400 3000
 | 
			
		||||
F 0 "XA1" H 7700 3400 60  0000 C CNN
 | 
			
		||||
F 1 "Conn_Poncho2P_2x_20x2" H 7750 1300 60  0000 C CNN
 | 
			
		||||
F 2 "simonShield:Conn_Poncho_SinBorde" H 7400 3000 60  0001 C CNN
 | 
			
		||||
F 3 "" H 7400 3000 60  0000 C CNN
 | 
			
		||||
F 4 "952-2121-ND" H 7400 3000 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    7400 3000
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
NoConn ~ 7150 2700
 | 
			
		||||
NoConn ~ 7150 2800
 | 
			
		||||
NoConn ~ 7150 2900
 | 
			
		||||
NoConn ~ 7150 3000
 | 
			
		||||
NoConn ~ 7150 3100
 | 
			
		||||
NoConn ~ 7150 3200
 | 
			
		||||
NoConn ~ 7150 3300
 | 
			
		||||
NoConn ~ 7150 3400
 | 
			
		||||
NoConn ~ 7150 3500
 | 
			
		||||
NoConn ~ 7150 3600
 | 
			
		||||
NoConn ~ 7150 3700
 | 
			
		||||
NoConn ~ 7150 3800
 | 
			
		||||
NoConn ~ 7150 3900
 | 
			
		||||
NoConn ~ 7150 4000
 | 
			
		||||
NoConn ~ 7150 4100
 | 
			
		||||
NoConn ~ 7150 4200
 | 
			
		||||
NoConn ~ 7150 4300
 | 
			
		||||
NoConn ~ 7150 4400
 | 
			
		||||
NoConn ~ 7150 4500
 | 
			
		||||
NoConn ~ 7150 4600
 | 
			
		||||
NoConn ~ 8350 4600
 | 
			
		||||
NoConn ~ 8350 4500
 | 
			
		||||
NoConn ~ 8350 4400
 | 
			
		||||
NoConn ~ 8350 4300
 | 
			
		||||
NoConn ~ 8350 4200
 | 
			
		||||
NoConn ~ 8350 4100
 | 
			
		||||
NoConn ~ 8350 4000
 | 
			
		||||
NoConn ~ 8350 3900
 | 
			
		||||
NoConn ~ 8350 3800
 | 
			
		||||
NoConn ~ 8350 3700
 | 
			
		||||
NoConn ~ 8350 3600
 | 
			
		||||
NoConn ~ 8350 3500
 | 
			
		||||
NoConn ~ 8350 3400
 | 
			
		||||
NoConn ~ 8350 3300
 | 
			
		||||
NoConn ~ 8350 3200
 | 
			
		||||
NoConn ~ 8350 3100
 | 
			
		||||
NoConn ~ 8350 3000
 | 
			
		||||
NoConn ~ 8350 2900
 | 
			
		||||
NoConn ~ 8350 2800
 | 
			
		||||
NoConn ~ 8350 2700
 | 
			
		||||
Text Notes 5450 1150 0    60   ~ 12
 | 
			
		||||
EDU-CIAA NXP CONNECTORS
 | 
			
		||||
Text Notes 4100 1300 0    60   ~ 12
 | 
			
		||||
P2
 | 
			
		||||
Text Notes 7700 1300 0    60   ~ 12
 | 
			
		||||
P1
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR030
 | 
			
		||||
U 1 1 578F601E
 | 
			
		||||
P 3400 4750
 | 
			
		||||
F 0 "#PWR030" H 3400 4500 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 3400 4600 50  0000 C CNN
 | 
			
		||||
F 2 "" H 3400 4750 50  0000 C CNN
 | 
			
		||||
F 3 "" H 3400 4750 50  0000 C CNN
 | 
			
		||||
	1    3400 4750
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L GND #PWR031
 | 
			
		||||
U 1 1 57781D17
 | 
			
		||||
P 5150 2900
 | 
			
		||||
F 0 "#PWR031" H 5150 2650 50  0001 C CNN
 | 
			
		||||
F 1 "GND" H 5150 2750 50  0000 C CNN
 | 
			
		||||
F 2 "" H 5150 2900 50  0000 C CNN
 | 
			
		||||
F 3 "" H 5150 2900 50  0000 C CNN
 | 
			
		||||
	1    5150 2900
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L C_100nF C1
 | 
			
		||||
U 1 1 57781D10
 | 
			
		||||
P 5150 2550
 | 
			
		||||
F 0 "C1" H 5150 2650 40  0000 L CNN
 | 
			
		||||
F 1 "C_100nF" H 5156 2465 40  0000 L CNN
 | 
			
		||||
F 2 "simonShield:C_Disc_D3_P2.5" H 5188 2400 30  0001 C CNN
 | 
			
		||||
F 3 "" H 5150 2550 60  0000 C CNN
 | 
			
		||||
F 4 "BC1160TRND" H 5150 2550 60  0001 C CNN "Digikey#"
 | 
			
		||||
	1    5150 2550
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
$Comp
 | 
			
		||||
L VCC #PWR032
 | 
			
		||||
U 1 1 5798B140
 | 
			
		||||
P 4800 2050
 | 
			
		||||
F 0 "#PWR032" H 4800 1900 50  0001 C CNN
 | 
			
		||||
F 1 "VCC" H 4800 2200 50  0000 C CNN
 | 
			
		||||
F 2 "" H 4800 2050 50  0000 C CNN
 | 
			
		||||
F 3 "" H 4800 2050 50  0000 C CNN
 | 
			
		||||
	1    4800 2050
 | 
			
		||||
	1    0    0    -1  
 | 
			
		||||
$EndComp
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4850 2750 4900 2750
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4900 2750 4900 2500
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4900 2500 3800 2500
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3800 2500 3800 2300
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3800 2300 4000 2300
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3650 2750 3600 2750
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3600 2750 3600 2200
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3600 2200 4000 2200
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3200 2850 3200 3000
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3650 2850 3200 2850
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	1950 1050 1950 5450
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	1950 5450 9850 5450
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	9850 5450 9850 1050
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	9850 1050 1950 1050
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	1950 1200 9850 1200
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	9850 1350 1950 1350
 | 
			
		||||
Wire Notes Line
 | 
			
		||||
	6050 1200 6050 5450
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3650 4650 3400 4650
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3400 4550 3400 4750
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	3650 4550 3400 4550
 | 
			
		||||
Connection ~ 3400 4650
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5150 2750 5150 2900
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4500 2200 4800 2200
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4800 2300 4800 2050
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	4500 2300 5150 2300
 | 
			
		||||
Connection ~ 4800 2200
 | 
			
		||||
Wire Wire Line
 | 
			
		||||
	5150 2300 5150 2350
 | 
			
		||||
Connection ~ 4800 2300
 | 
			
		||||
NoConn ~ 3650 4250
 | 
			
		||||
NoConn ~ 3650 4150
 | 
			
		||||
NoConn ~ 4850 4150
 | 
			
		||||
NoConn ~ 4850 4250
 | 
			
		||||
$EndSCHEMATC
 | 
			
		||||
							
								
								
									
										137
									
								
								samples/KiCad Schematic/gedda-junk.sch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								samples/KiCad Schematic/gedda-junk.sch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,137 @@
 | 
			
		||||
v 20080706 2
 | 
			
		||||
T 10000 20000 9 10 1 0 0 0 1
 | 
			
		||||
_0_0_   0.sym
 | 
			
		||||
T 10000 19800 9 10 1 0 0 0 1
 | 
			
		||||
_1_1_   1.sym
 | 
			
		||||
T 10000 19600 9 10 1 0 0 0 1
 | 
			
		||||
_2_2_   2.sym
 | 
			
		||||
T 10000 19400 9 10 1 0 0 0 1
 | 
			
		||||
_3_3_   3.sym
 | 
			
		||||
T 10000 19200 9 10 1 0 0 0 1
 | 
			
		||||
_4_4_   4.sym
 | 
			
		||||
T 10000 19000 9 10 1 0 0 0 1
 | 
			
		||||
_5_5_   5.sym
 | 
			
		||||
T 10000 18800 9 10 1 0 0 0 1
 | 
			
		||||
_6_6_   6.sym
 | 
			
		||||
T 10000 18600 9 10 1 0 0 0 1
 | 
			
		||||
_7_7_   7.sym
 | 
			
		||||
T 10000 18400 9 10 1 0 0 0 1
 | 
			
		||||
_8_8_   8.sym
 | 
			
		||||
T 10000 18200 9 10 1 0 0 0 1
 | 
			
		||||
_9_9_   9.sym
 | 
			
		||||
T 18000 17200 9 10 1 0 0 0 1
 | 
			
		||||
_q_q_   q_.sym
 | 
			
		||||
v 20130925 2
 | 
			
		||||
C 40000 40000 0 0 0 title-B.sym
 | 
			
		||||
N 43500 47000 44200 47000 4
 | 
			
		||||
N 44200 47000 44200 49400 4
 | 
			
		||||
N 44200 49400 41800 49400 4
 | 
			
		||||
N 41800 47300 41800 49400 4
 | 
			
		||||
N 41800 47300 41500 47300 4
 | 
			
		||||
N 41500 47300 41500 45600 4
 | 
			
		||||
N 41500 45600 41600 45600 4
 | 
			
		||||
N 41600 45600 41600 44600 4
 | 
			
		||||
N 41100 44600 41600 44600 4
 | 
			
		||||
N 41100 44600 41100 42900 4
 | 
			
		||||
N 41100 42900 42400 42900 4
 | 
			
		||||
N 42400 42900 42400 43600 4
 | 
			
		||||
N 42400 43600 41000 43600 4
 | 
			
		||||
N 41000 43600 41000 41300 4
 | 
			
		||||
U 45300 49600 45300 43900 10 0
 | 
			
		||||
U 45300 43900 53800 43900 10 0
 | 
			
		||||
U 53800 43900 53800 45900 10 0
 | 
			
		||||
U 53800 45900 53100 45900 10 0
 | 
			
		||||
U 53100 45900 53100 47300 10 0
 | 
			
		||||
U 53100 47300 50500 47300 10 0
 | 
			
		||||
V 48500 47400 900 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
 | 
			
		||||
P 47300 49100 50100 49100 1 0 0
 | 
			
		||||
{
 | 
			
		||||
T 47300 49100 5 10 0 0 0 0 1
 | 
			
		||||
pintype=unknown
 | 
			
		||||
T 50155 49095 5 10 1 1 0 0 1
 | 
			
		||||
pinlabel=unknown
 | 
			
		||||
T 50005 49145 5 10 1 1 0 6 1
 | 
			
		||||
pinnumber=0
 | 
			
		||||
T 47300 49100 5 10 0 0 0 0 1
 | 
			
		||||
pinseq=0
 | 
			
		||||
}
 | 
			
		||||
P 51800 50000 51800 48500 1 0 0
 | 
			
		||||
{
 | 
			
		||||
T 51800 50000 5 10 0 0 0 0 1
 | 
			
		||||
pintype=unknown
 | 
			
		||||
T 51800 48445 5 10 1 1 90 6 1
 | 
			
		||||
pinlabel=unknown
 | 
			
		||||
T 51750 48595 5 10 1 1 90 0 1
 | 
			
		||||
pinnumber=0
 | 
			
		||||
T 51800 50000 5 10 0 0 0 0 1
 | 
			
		||||
pinseq=0
 | 
			
		||||
}
 | 
			
		||||
P 54500 48500 54500 47900 1 0 0
 | 
			
		||||
{
 | 
			
		||||
T 54500 48500 5 10 0 0 0 0 1
 | 
			
		||||
pintype=unknown
 | 
			
		||||
T 54500 47845 5 10 1 1 90 6 1
 | 
			
		||||
pinlabel=unknown
 | 
			
		||||
T 54450 47995 5 10 1 1 90 0 1
 | 
			
		||||
pinnumber=0
 | 
			
		||||
T 54500 48500 5 10 0 0 0 0 1
 | 
			
		||||
pinseq=0
 | 
			
		||||
}
 | 
			
		||||
C 46700 49800 1 0 0 af_output_transformer-1.sym
 | 
			
		||||
{
 | 
			
		||||
T 48000 52200 5 10 0 0 0 0 1
 | 
			
		||||
device=AF_OUTPUT_TRANSFORMER
 | 
			
		||||
T 48000 51900 5 10 1 1 0 0 1
 | 
			
		||||
refdes=U?
 | 
			
		||||
}
 | 
			
		||||
C 42900 41300 1 0 0 af_output_transformer-1.sym
 | 
			
		||||
{
 | 
			
		||||
T 44200 43700 5 10 0 0 0 0 1
 | 
			
		||||
device=AF_OUTPUT_TRANSFORMER
 | 
			
		||||
T 44200 43400 5 10 1 1 0 0 1
 | 
			
		||||
refdes=U?
 | 
			
		||||
}
 | 
			
		||||
T 48100 42000 9 10 1 0 0 0 1
 | 
			
		||||
NFI_LOL
 | 
			
		||||
C 42200 44500 1 0 0 ssrelay-spdt-lcc110-1.sym
 | 
			
		||||
{
 | 
			
		||||
T 42500 47100 5 10 0 0 0 0 1
 | 
			
		||||
device=LCC110
 | 
			
		||||
T 42500 46700 5 10 0 0 0 0 1
 | 
			
		||||
symversion=0.1
 | 
			
		||||
T 42500 46250 5 10 1 1 0 0 1
 | 
			
		||||
refdes=U?
 | 
			
		||||
T 42500 46900 5 10 0 0 0 0 1
 | 
			
		||||
footprint=DIP8
 | 
			
		||||
}
 | 
			
		||||
U 53200 50000 53200 47900 10 0
 | 
			
		||||
U 53200 47900 53700 47900 10 0
 | 
			
		||||
U 53700 47900 53700 46500 10 0
 | 
			
		||||
U 53700 46500 54200 46500 10 0
 | 
			
		||||
U 54200 46500 54200 43800 10 0
 | 
			
		||||
U 54200 43800 45500 43800 10 0
 | 
			
		||||
U 45500 43800 45500 42600 10 0
 | 
			
		||||
U 45500 42600 49200 42600 10 0
 | 
			
		||||
U 49200 42600 49200 41500 10 0
 | 
			
		||||
U 49200 41500 47700 41500 10 0
 | 
			
		||||
U 47700 41500 47700 42200 10 0
 | 
			
		||||
U 47700 42200 45300 42200 10 0
 | 
			
		||||
U 45300 42200 45300 40500 10 0
 | 
			
		||||
U 45300 40500 40900 40500 10 0
 | 
			
		||||
U 40900 40500 40900 41000 10 0
 | 
			
		||||
U 40900 41000 40500 41000 10 0
 | 
			
		||||
U 40500 41000 40500 50300 10 0
 | 
			
		||||
U 40500 50300 45800 50300 10 0
 | 
			
		||||
U 45800 50300 45800 49700 10 0
 | 
			
		||||
U 45800 49700 45300 49700 10 0
 | 
			
		||||
U 45300 49700 45300 48100 10 0
 | 
			
		||||
U 45300 48100 43600 48100 10 0
 | 
			
		||||
C 42500 47400 1 0 0 switch-dip12.sym
 | 
			
		||||
{
 | 
			
		||||
T 42800 51700 5 10 1 1 0 0 1
 | 
			
		||||
footprint=SWITCH_DIP12
 | 
			
		||||
T 42800 51975 5 8 0 0 0 0 1
 | 
			
		||||
device=SWITCH_DIP12
 | 
			
		||||
T 42800 51350 5 10 1 1 0 0 1
 | 
			
		||||
refdes=S?
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										176
									
								
								samples/MAXScript/rolloutCreator.ms
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								samples/MAXScript/rolloutCreator.ms
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,176 @@
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
--   
 | 
			
		||||
--  File:		rolloutCreator.ms
 | 
			
		||||
--  Description:	Localization friendly helper struct for dynamically creating rollouts
 | 
			
		||||
--  By:		Ravi Karra [Discreet] 			ravi.karra@discreet.com
 | 
			
		||||
--	 
 | 
			
		||||
--  Version:	1.01
 | 
			
		||||
--  Version:	1.02 - Larry Minton [Discreet] 
 | 
			
		||||
--						changed <string1> += <string2> to append string1 string2
 | 
			
		||||
--						added addText method
 | 
			
		||||
--  Declarations:
 | 
			
		||||
/*
 | 
			
		||||
	rolloutCreator <rollout_name> <rollout_caption> [width:] [height:]
 | 
			
		||||
		creates an instance of rolloutCreator, assign it to a variable
 | 
			
		||||
		width - width of the rollout/dialog to be created
 | 
			
		||||
		height - of the rollout/dialog to be created
 | 
			
		||||
		
 | 
			
		||||
		eg:
 | 
			
		||||
	 	rci = rolloutCreator "myRollout" "My Rollout"
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
	.begin()
 | 
			
		||||
		this function needs to be called immediately after the instance is created, this does the initialization
 | 
			
		||||
 | 
			
		||||
	.addLocal <local_name> [init:]
 | 
			
		||||
		<local_name> 
 | 
			
		||||
		name of the local
 | 
			
		||||
		
 | 
			
		||||
		[init:]
 | 
			
		||||
		what the local should be initialized to
 | 
			
		||||
	
 | 
			
		||||
	.addControl <control_type> <control_name> <control_caption> [paramStr:<string>] =
 | 
			
		||||
		adds a control to the rollout
 | 
			
		||||
		
 | 
			
		||||
		<control_type>
 | 
			
		||||
		can be any of named rolloutControls eg: #button, #spinner, #activeXControl etc
 | 
			
		||||
		
 | 
			
		||||
		<control_name>
 | 
			
		||||
		variable name of the control by which it is referred eg: #btnButton
 | 
			
		||||
		
 | 
			
		||||
		<control_caption>
 | 
			
		||||
		caption of the control "My Button"
 | 
			
		||||
		
 | 
			
		||||
		[paramStr:]
 | 
			
		||||
		an optional string representation of all the keyword parameters that needs to be passed to the control
 | 
			
		||||
		eg: "width:100 height:20 align:#right"
 | 
			
		||||
		
 | 
			
		||||
		eg:
 | 
			
		||||
		rci.addControl #button #myButton "My Button"
 | 
			
		||||
	
 | 
			
		||||
	.addHandler <control_name> <event_type> [paramStr:<string>]  [codeStr:<string>] [filter:<boolean>]
 | 
			
		||||
		adds an event handler for the controls previously added 
 | 
			
		||||
		
 | 
			
		||||
		<control_name>
 | 
			
		||||
		the variable passed during the control creation
 | 
			
		||||
		 
 | 
			
		||||
		<event_type>
 | 
			
		||||
		any of the events supported by the control, eg: #changed, #pressed, #selected
 | 
			
		||||
		
 | 
			
		||||
		[paramStr:<string>]
 | 
			
		||||
		an optional string representation of all the positional and keyword parameters that are passed to the event	
 | 
			
		||||
 | 
			
		||||
		[codeStr:<string>]
 | 
			
		||||
		a string representation of the event handler code, if the string contains sub-strings, enclose them in two character '@' 
 | 
			
		||||
		and pass on\true for the filter: parameter
 | 
			
		||||
 | 
			
		||||
		[filter:<boolean>]
 | 
			
		||||
		if true, converts '@' to quote in codeStr
 | 
			
		||||
				
 | 
			
		||||
		eg:
 | 
			
		||||
		rci.addHandler #myButton #pressed codeStr:"MessageBox @Hey@" filter:on
 | 
			
		||||
		will add an event handler for button named "myButton". When the button is clicked, messagebox pops up with text "hey" in it.
 | 
			
		||||
		
 | 
			
		||||
	.addText <string> [filter:<boolean>]
 | 
			
		||||
		adds string to rollout definition. Typically used for function definitions.
 | 
			
		||||
 | 
			
		||||
		[filter:<boolean>]
 | 
			
		||||
		if true, converts '@' to quote in string
 | 
			
		||||
				
 | 
			
		||||
	.end()
 | 
			
		||||
		this function has to be called whenever all the required control and their event handler's are called. This function forms 
 | 
			
		||||
		the rollout string, evaluates it and returns the definition which can passed to createDialog and addRollout functions.
 | 
			
		||||
	
 | 
			
		||||
	Complete Example:
 | 
			
		||||
		 rci = rolloutCreator "myRollout" "My Rollout"
 | 
			
		||||
		 rci.begin()
 | 
			
		||||
			rci.addControl #button #myButton "My Button"
 | 
			
		||||
			rci.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Isn't this cool@ title:@Wow@"
 | 
			
		||||
		createDialog (rci.end())
 | 
			
		||||
*/
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __rcCounter == undefined then global __rcCounter = 0
 | 
			
		||||
struct rolloutCreator
 | 
			
		||||
(
 | 
			
		||||
	-- variables
 | 
			
		||||
	name, caption, str, def, width, height, quote="\"",
 | 
			
		||||
	
 | 
			
		||||
	-- functions
 | 
			
		||||
	fn begin = 
 | 
			
		||||
( 
 | 
			
		||||
		if name == undefined then
 | 
			
		||||
	(
 | 
			
		||||
			__rcCounter += 1
 | 
			
		||||
			name = "rolloutCreator" + __rcCounter as string
 | 
			
		||||
	)
 | 
			
		||||
		if caption == undefined then caption = ""
 | 
			
		||||
		str = ""
 | 
			
		||||
	),
 | 
			
		||||
	
 | 
			
		||||
	fn addLocal name init: = 
 | 
			
		||||
(
 | 
			
		||||
		local dStr = "\tlocal " + name as string
 | 
			
		||||
		if init != unsupplied then append dStr (" = " + init as string)
 | 
			
		||||
		append dStr "\n"
 | 
			
		||||
		append str dStr
 | 
			
		||||
	),
 | 
			
		||||
 | 
			
		||||
	fn addControl type name caption paramStr:"" =
 | 
			
		||||
(	
 | 
			
		||||
		append str ("\t" + type as string + " " + name as string + " " + quote + caption + quote + paramStr + "\n")
 | 
			
		||||
	),
 | 
			
		||||
	
 | 
			
		||||
	fn strFilter codeStr =
 | 
			
		||||
(
 | 
			
		||||
			local last_is_at = codeStr[codeStr.count] == "@"
 | 
			
		||||
			local fltStr = filterString codeStr "@"
 | 
			
		||||
			local rep = "\""
 | 
			
		||||
			codeStr = (if (codeStr[1] == "@") then rep else "") + fltStr[1]
 | 
			
		||||
			for i=2 to fltStr.count do
 | 
			
		||||
		(
 | 
			
		||||
				append codeStr (rep + fltStr[i])
 | 
			
		||||
		)
 | 
			
		||||
			if last_is_at then append codeStr rep
 | 
			
		||||
			codeStr
 | 
			
		||||
	),
 | 
			
		||||
 | 
			
		||||
	fn addHandler ctrl event paramStr:"" filter:on codeStr:"" =
 | 
			
		||||
(
 | 
			
		||||
		if filter do codeStr = (strFilter codeStr)
 | 
			
		||||
		append str ("\non " + ctrl as string + " " + event as string + " " + paramStr as string + " do \n(\n" + codeStr + ";ok\n)\n")
 | 
			
		||||
	),
 | 
			
		||||
	
 | 
			
		||||
	fn addText txt filter:on =
 | 
			
		||||
(
 | 
			
		||||
		if filter do txt = (strFilter txt )
 | 
			
		||||
		append str ("\t " + txt + "\n")
 | 
			
		||||
	),
 | 
			
		||||
	
 | 
			
		||||
	fn end = 
 | 
			
		||||
( 
 | 
			
		||||
		local dStr = "rollout " + name + " " + quote + caption + quote
 | 
			
		||||
		if width != undefined then
 | 
			
		||||
 			append dStr (" width:" + width as string)
 | 
			
		||||
		if height != undefined then
 | 
			
		||||
			append dStr (" height:" + height as string)
 | 
			
		||||
		append dStr "\n(\n" 
 | 
			
		||||
		append dStr str
 | 
			
		||||
		append dStr "\n)\n"
 | 
			
		||||
		str = dStr
 | 
			
		||||
		def = execute str
 | 
			
		||||
)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
/*-- Usage
 | 
			
		||||
-- Create an instance of the rolloutCreator passing the name and the caption
 | 
			
		||||
rfTest = rolloutCreator "rfTestN" "rfTestC" --width:300 height:100
 | 
			
		||||
-- Start creating the rollout
 | 
			
		||||
rfTest.begin()
 | 
			
		||||
	rfTest.addControl #button #myButton "My Button"			-- add a button
 | 
			
		||||
--	rfTest.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Hey@"
 | 
			
		||||
rfTest.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Look to the \@Light\@ thing@" 
 | 
			
		||||
rfTest.end()
 | 
			
		||||
createDialog rfTest.def
 | 
			
		||||
*/
 | 
			
		||||
							
								
								
									
										248
									
								
								samples/Makefile/filenames/Makefile.wat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										248
									
								
								samples/Makefile/filenames/Makefile.wat
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,248 @@
 | 
			
		||||
#
 | 
			
		||||
#                     The FreeType Project LICENSE
 | 
			
		||||
#                     ----------------------------
 | 
			
		||||
# 
 | 
			
		||||
#                        Copyright 1996-1999 by
 | 
			
		||||
#           David Turner, Robert Wilhelm, and Werner Lemberg
 | 
			
		||||
# 
 | 
			
		||||
# 
 | 
			
		||||
# 
 | 
			
		||||
# Introduction
 | 
			
		||||
# ============
 | 
			
		||||
# 
 | 
			
		||||
#   The FreeType  Project is distributed in  several archive packages;
 | 
			
		||||
#   some of them may contain, in addition to the FreeType font engine,
 | 
			
		||||
#   various tools and  contributions which rely on, or  relate to, the
 | 
			
		||||
#   FreeType Project.
 | 
			
		||||
# 
 | 
			
		||||
#   This  license applies  to all  files found  in such  packages, and
 | 
			
		||||
#   which do not  fall under their own explicit  license.  The license
 | 
			
		||||
#   affects  thus  the  FreeType   font  engine,  the  test  programs,
 | 
			
		||||
#   documentation and makefiles, at the very least.
 | 
			
		||||
# 
 | 
			
		||||
#   This  license   was  inspired  by  the  BSD,   Artistic,  and  IJG
 | 
			
		||||
#   (Independent JPEG  Group) licenses, which  all encourage inclusion
 | 
			
		||||
#   and  use of  free  software in  commercial  and freeware  products
 | 
			
		||||
#   alike.  As a consequence, its main points are that:
 | 
			
		||||
# 
 | 
			
		||||
#     o We don't promise that this software works.  However, we are be
 | 
			
		||||
#       interested in any kind of bug reports. (`as is' distribution)
 | 
			
		||||
# 
 | 
			
		||||
#     o You can  use this software for whatever you  want, in parts or
 | 
			
		||||
#       full form, without having to pay us. (`royalty-free' usage)
 | 
			
		||||
# 
 | 
			
		||||
#     o You may not pretend that  you wrote this software.  If you use
 | 
			
		||||
#       it, or  only parts of it,  in a program,  you must acknowledge
 | 
			
		||||
#       somewhere in your documentation  that you've used the FreeType
 | 
			
		||||
#       code. (`credits')
 | 
			
		||||
# 
 | 
			
		||||
#   We  specifically  permit  and  encourage  the  inclusion  of  this
 | 
			
		||||
#   software,  with  or without modifications, in commercial products,
 | 
			
		||||
#   provided that all warranty or  liability claims are assumed by the
 | 
			
		||||
#   product vendor.
 | 
			
		||||
# 
 | 
			
		||||
# 
 | 
			
		||||
# Legal Terms
 | 
			
		||||
# ===========
 | 
			
		||||
# 
 | 
			
		||||
# 0. Definitions
 | 
			
		||||
# --------------
 | 
			
		||||
# 
 | 
			
		||||
#   Throughout this license,  the terms `package', `FreeType Project',
 | 
			
		||||
#   and  `FreeType  archive' refer  to  the  set  of files  originally
 | 
			
		||||
#   distributed  by the  authors  (David Turner,  Robert Wilhelm,  and
 | 
			
		||||
#   Werner Lemberg) as the `FreeType project', be they named as alpha,
 | 
			
		||||
#   beta or final release.
 | 
			
		||||
# 
 | 
			
		||||
#   `You' refers to  the licensee, or person using  the project, where
 | 
			
		||||
#   `using' is a generic term including compiling the project's source
 | 
			
		||||
#   code as  well as linking it  to form a  `program' or `executable'.
 | 
			
		||||
#   This  program is  referred to  as  `a program  using the  FreeType
 | 
			
		||||
#   engine'.
 | 
			
		||||
# 
 | 
			
		||||
#   This  license applies  to all  files distributed  in  the original
 | 
			
		||||
#   FreeType  archive,   including  all  source   code,  binaries  and
 | 
			
		||||
#   documentation,  unless  otherwise  stated   in  the  file  in  its
 | 
			
		||||
#   original, unmodified form as  distributed in the original archive.
 | 
			
		||||
#   If you are  unsure whether or not a particular  file is covered by
 | 
			
		||||
#   this license, you must contact us to verify this.
 | 
			
		||||
# 
 | 
			
		||||
#   The FreeType  project is copyright (C) 1996-1999  by David Turner,
 | 
			
		||||
#   Robert Wilhelm, and Werner Lemberg.  All rights reserved except as
 | 
			
		||||
#   specified below.
 | 
			
		||||
# 
 | 
			
		||||
# 1. No Warranty
 | 
			
		||||
# --------------
 | 
			
		||||
# 
 | 
			
		||||
#   THE FREETYPE ARCHIVE  IS PROVIDED `AS IS' WITHOUT  WARRANTY OF ANY
 | 
			
		||||
#   KIND, EITHER EXPRESSED OR  IMPLIED, INCLUDING, BUT NOT LIMITED TO,
 | 
			
		||||
#   WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR
 | 
			
		||||
#   PURPOSE.  IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
 | 
			
		||||
#   BE LIABLE  FOR ANY DAMAGES CAUSED  BY THE USE OR  THE INABILITY TO
 | 
			
		||||
#   USE, OF THE FREETYPE PROJECT.
 | 
			
		||||
# 
 | 
			
		||||
#   As  you have  not signed  this license,  you are  not  required to
 | 
			
		||||
#   accept  it.   However,  as  the FreeType  project  is  copyrighted
 | 
			
		||||
#   material, only  this license, or  another one contracted  with the
 | 
			
		||||
#   authors, grants you  the right to use, distribute,  and modify it.
 | 
			
		||||
#   Therefore,  by  using,  distributing,  or modifying  the  FreeType
 | 
			
		||||
#   project, you indicate that you understand and accept all the terms
 | 
			
		||||
#   of this license.
 | 
			
		||||
# 
 | 
			
		||||
# 2. Redistribution
 | 
			
		||||
# -----------------
 | 
			
		||||
# 
 | 
			
		||||
#   Redistribution and use in source and binary forms, with or without
 | 
			
		||||
#   modification, are permitted provided that the following conditions
 | 
			
		||||
#   are met:
 | 
			
		||||
# 
 | 
			
		||||
#     o Redistribution  of source code  must retain this  license file
 | 
			
		||||
#       (`licence.txt') unaltered; any additions, deletions or changes
 | 
			
		||||
#       to   the  original   files  must   be  clearly   indicated  in
 | 
			
		||||
#       accompanying  documentation.   The  copyright notices  of  the
 | 
			
		||||
#       unaltered, original  files must be preserved in  all copies of
 | 
			
		||||
#       source files.
 | 
			
		||||
# 
 | 
			
		||||
#     o Redistribution in binary form must provide a  disclaimer  that
 | 
			
		||||
#       states  that  the software is based in part of the work of the
 | 
			
		||||
#       FreeType Team,  in  the  distribution  documentation.  We also
 | 
			
		||||
#       encourage you to put an URL to the FreeType web page  in  your
 | 
			
		||||
#       documentation, though this isn't mandatory.
 | 
			
		||||
# 
 | 
			
		||||
#   These conditions  apply to any  software derived from or  based on
 | 
			
		||||
#   the FreeType code, not just  the unmodified files.  If you use our
 | 
			
		||||
#   work, you  must acknowledge us.  However,  no fee need  be paid to
 | 
			
		||||
#   us.
 | 
			
		||||
# 
 | 
			
		||||
# 3. Advertising
 | 
			
		||||
# --------------
 | 
			
		||||
# 
 | 
			
		||||
#   The names of  FreeType's authors and contributors may  not be used
 | 
			
		||||
#   to endorse or promote  products derived from this software without
 | 
			
		||||
#   specific prior written permission.
 | 
			
		||||
#   
 | 
			
		||||
#   We suggest,  but do not require, that  you use one or  more of the
 | 
			
		||||
#   following phrases to refer  to this software in your documentation
 | 
			
		||||
#   or advertising  materials: `FreeType Project',  `FreeType Engine',
 | 
			
		||||
#   `FreeType library', or `FreeType Distribution'.
 | 
			
		||||
# 
 | 
			
		||||
# 4. Contacts
 | 
			
		||||
# -----------
 | 
			
		||||
# 
 | 
			
		||||
#   There are two mailing lists related to FreeType:
 | 
			
		||||
# 
 | 
			
		||||
#     o freetype@freetype.org
 | 
			
		||||
# 
 | 
			
		||||
#       Discusses general use and applications of FreeType, as well as
 | 
			
		||||
#       future and  wanted additions to the  library and distribution.
 | 
			
		||||
#       If  you are looking  for support,  start in  this list  if you
 | 
			
		||||
#       haven't found anything to help you in the documentation.
 | 
			
		||||
# 
 | 
			
		||||
#     o devel@freetype.org
 | 
			
		||||
# 
 | 
			
		||||
#       Discusses bugs,  as well  as engine internals,  design issues,
 | 
			
		||||
#       specific licenses, porting, etc.
 | 
			
		||||
# 
 | 
			
		||||
#     o http://www.freetype.org
 | 
			
		||||
# 
 | 
			
		||||
#       Holds the current  FreeType web page, which will  allow you to
 | 
			
		||||
#       download  our  latest  development  version  and  read  online
 | 
			
		||||
#       documentation.
 | 
			
		||||
# 
 | 
			
		||||
#   You can also contact us individually at:
 | 
			
		||||
# 
 | 
			
		||||
#     David Turner      <david.turner@freetype.org>
 | 
			
		||||
#     Robert Wilhelm    <robert.wilhelm@freetype.org>
 | 
			
		||||
#     Werner Lemberg    <werner.lemberg@freetype.org>
 | 
			
		||||
# 
 | 
			
		||||
# 
 | 
			
		||||
# --- end of license ---
 | 
			
		||||
#
 | 
			
		||||
# This file is part of the FreeType project.
 | 
			
		||||
#
 | 
			
		||||
# This builds the Watcom library with Watcom's wcc386 under OS/2.
 | 
			
		||||
#
 | 
			
		||||
# You'll need Watcom's wmake.
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
# Invoke by "wmake -f arch\os2\Makefile.wat" when in the "lib" directory
 | 
			
		||||
#
 | 
			
		||||
# This will build "freetype\lib\libttf.lib"
 | 
			
		||||
 | 
			
		||||
ARCH = arch\os2
 | 
			
		||||
FT_MAKEFILE = $(ARCH)\Makefile.wat
 | 
			
		||||
FT_MAKE = wmake -h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.EXTENSIONS:
 | 
			
		||||
.EXTENSIONS: .lib .obj .c .h
 | 
			
		||||
.obj:.;.\extend;.\$(ARCH)
 | 
			
		||||
.c:.;.\extend;.\$(ARCH)
 | 
			
		||||
.h:.;.\extend;.\$(ARCH)
 | 
			
		||||
 | 
			
		||||
CC = wcc386
 | 
			
		||||
 | 
			
		||||
CCFLAGS = /otexanl+ /s /w5 /zq -Iarch\os2 -I. -Iextend
 | 
			
		||||
 | 
			
		||||
TTFILE   = .\ttfile.c
 | 
			
		||||
TTMEMORY = .\ttmemory.c
 | 
			
		||||
TTMUTEX  = .\ttmutex.c
 | 
			
		||||
 | 
			
		||||
TTFILE_OBJ = ttfile.obj
 | 
			
		||||
TTMEMORY_OBJ = ttmemory.obj
 | 
			
		||||
TTMUTEX_OBJ = ttmutex.obj
 | 
			
		||||
 | 
			
		||||
PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX)
 | 
			
		||||
PORT_OBJS = $(TTFILE_OBJ) $(TTMEMORY_OBJ) $(TTMUTEX_OBJ)
 | 
			
		||||
 | 
			
		||||
SRC_X = extend\ftxgasp.c extend\ftxkern.c  extend\ftxpost.c &
 | 
			
		||||
        extend\ftxcmap.c extend\ftxwidth.c extend\ftxsbit.c &
 | 
			
		||||
        extend\ftxgsub.c extend\ftxgpos.c  extend\ftxopen.c &
 | 
			
		||||
        extend\ftxgdef.c
 | 
			
		||||
 | 
			
		||||
OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj  extend\ftxpost.obj &
 | 
			
		||||
         extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxsbit.obj &
 | 
			
		||||
         extend\ftxgsub.obj extend\ftxgpos.obj  extend\ftxopen.obj &
 | 
			
		||||
         extend\ftxgdef.obj
 | 
			
		||||
 | 
			
		||||
SRC_M = ttapi.c     ttcache.c   ttcalc.c   ttcmap.c  &
 | 
			
		||||
        ttgload.c   ttinterp.c  ttload.c   ttobjs.c  &
 | 
			
		||||
        ttraster.c  ttextend.c  $(PORT)
 | 
			
		||||
 | 
			
		||||
OBJS_M = ttapi.obj     ttcache.obj   ttcalc.obj   ttcmap.obj  &
 | 
			
		||||
         ttgload.obj   ttinterp.obj  ttload.obj   ttobjs.obj  &
 | 
			
		||||
         ttraster.obj  ttextend.obj  $(PORT_OBJS) $(OBJS_X)
 | 
			
		||||
 | 
			
		||||
SRC_S = freetype.c
 | 
			
		||||
OBJ_S = freetype.obj
 | 
			
		||||
OBJS_S = $(OBJ_S) $(OBJS_X)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.c.obj:
 | 
			
		||||
  $(CC) $(CCFLAGS) $[* /fo=$[*.obj
 | 
			
		||||
 | 
			
		||||
all: .symbolic
 | 
			
		||||
  $(FT_MAKE) -f $(FT_MAKEFILE) libttf.lib
 | 
			
		||||
 | 
			
		||||
debug: .symbolic
 | 
			
		||||
  $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_M)" libttf.lib
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
libttf.lib: $(OBJS_M)
 | 
			
		||||
  wlib -q -n libttf.lib $(OBJS_M)
 | 
			
		||||
 | 
			
		||||
# is this correct? Know nothing about wmake and the Watcom compiler...
 | 
			
		||||
$(OBJ_S): $(SRC_S) $(SRC_M)
 | 
			
		||||
  $(CC) $(CCFLAGS) $(SRC_S) /fo=$(OBJ_S)
 | 
			
		||||
 | 
			
		||||
clean: .symbolic
 | 
			
		||||
  @-erase $(OBJS_M)
 | 
			
		||||
  @-erase *.err
 | 
			
		||||
 | 
			
		||||
distclean: .symbolic clean
 | 
			
		||||
  @-erase libttf.lib
 | 
			
		||||
 | 
			
		||||
new: .symbolic
 | 
			
		||||
  @-wtouch *.c
 | 
			
		||||
 | 
			
		||||
# end of Makefile.wat
 | 
			
		||||
							
								
								
									
										106
									
								
								samples/Nearley/nearley-language-bootstrapped.ne
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								samples/Nearley/nearley-language-bootstrapped.ne
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,106 @@
 | 
			
		||||
# nearley grammar
 | 
			
		||||
@builtin "string.ne"
 | 
			
		||||
 | 
			
		||||
@{%
 | 
			
		||||
 | 
			
		||||
function insensitive(sl) {
 | 
			
		||||
    var s = sl.literal;
 | 
			
		||||
    result = [];
 | 
			
		||||
    for (var i=0; i<s.length; i++) {
 | 
			
		||||
        var c = s.charAt(i);
 | 
			
		||||
        if (c.toUpperCase() !== c || c.toLowerCase() !== c) {
 | 
			
		||||
            result.push(new RegExp("[" + c.toLowerCase() + c.toUpperCase() + "]"));
 | 
			
		||||
        } else {
 | 
			
		||||
            result.push({literal: c});
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return {subexpression: [{tokens: result, postprocess: function(d) {return d.join(""); }}]};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
%}
 | 
			
		||||
 | 
			
		||||
final -> whit? prog whit?  {% function(d) { return d[1]; } %}
 | 
			
		||||
 | 
			
		||||
prog -> prod  {% function(d) { return [d[0]]; } %}
 | 
			
		||||
      | prod whit prog  {% function(d) { return [d[0]].concat(d[2]); } %}
 | 
			
		||||
 | 
			
		||||
prod -> word whit? ("-"|"="):+ ">" whit? expression+  {% function(d) { return {name: d[0], rules: d[5]}; } %}
 | 
			
		||||
      | word "[" wordlist "]" whit? ("-"|"="):+ ">" whit? expression+ {% function(d) {return {macro: d[0], args: d[2], exprs: d[8]}} %}
 | 
			
		||||
      | "@" whit? js  {% function(d) { return {body: d[2]}; } %}
 | 
			
		||||
      | "@" word whit word  {% function(d) { return {config: d[1], value: d[3]}; } %}
 | 
			
		||||
      | "@include"  whit? string {% function(d) {return {include: d[2].literal, builtin: false}} %}
 | 
			
		||||
      | "@builtin"  whit? string {% function(d) {return {include: d[2].literal, builtin: true }} %}
 | 
			
		||||
 | 
			
		||||
expression+ -> completeexpression
 | 
			
		||||
             | expression+ whit? "|" whit? completeexpression  {% function(d) { return d[0].concat([d[4]]); } %}
 | 
			
		||||
 | 
			
		||||
expressionlist -> completeexpression
 | 
			
		||||
             | expressionlist whit? "," whit? completeexpression {% function(d) { return d[0].concat([d[4]]); } %}
 | 
			
		||||
 | 
			
		||||
wordlist -> word
 | 
			
		||||
            | wordlist whit? "," whit? word {% function(d) { return d[0].concat([d[4]]); } %}
 | 
			
		||||
 | 
			
		||||
completeexpression -> expr  {% function(d) { return {tokens: d[0]}; } %}
 | 
			
		||||
                    | expr whit? js  {% function(d) { return {tokens: d[0], postprocess: d[2]}; } %}
 | 
			
		||||
 | 
			
		||||
expr_member ->
 | 
			
		||||
      word {% id %}
 | 
			
		||||
    | "$" word {% function(d) {return {mixin: d[1]}} %}
 | 
			
		||||
    | word "[" expressionlist "]" {% function(d) {return {macrocall: d[0], args: d[2]}} %} 
 | 
			
		||||
    | string "i":? {% function(d) { if (d[1]) {return insensitive(d[0]); } else {return d[0]; } } %}
 | 
			
		||||
    | "%" word {% function(d) {return {token: d[1]}} %}
 | 
			
		||||
    | charclass {% id %}
 | 
			
		||||
    | "(" whit? expression+ whit? ")" {% function(d) {return {'subexpression': d[2]} ;} %}
 | 
			
		||||
    | expr_member whit? ebnf_modifier {% function(d) {return {'ebnf': d[0], 'modifier': d[2]}; } %}
 | 
			
		||||
 | 
			
		||||
ebnf_modifier -> ":+" {% id %} | ":*" {% id %} | ":?" {% id %}
 | 
			
		||||
 | 
			
		||||
expr -> expr_member
 | 
			
		||||
      | expr whit expr_member  {% function(d){ return d[0].concat([d[2]]); } %}
 | 
			
		||||
 | 
			
		||||
word -> [\w\?\+]  {% function(d){ return d[0]; } %}
 | 
			
		||||
      | word [\w\?\+]  {% function(d){ return d[0]+d[1]; } %}
 | 
			
		||||
 | 
			
		||||
string -> dqstring {% function(d) {return { literal: d[0] }; } %}
 | 
			
		||||
#string -> "\"" charset "\""  {% function(d) { return { literal: d[1].join("") }; } %}
 | 
			
		||||
#
 | 
			
		||||
#charset -> null
 | 
			
		||||
#         | charset char  {% function(d) { return d[0].concat([d[1]]); } %}
 | 
			
		||||
#
 | 
			
		||||
#char -> [^\\"]  {% function(d) { return d[0]; } %}
 | 
			
		||||
#      | "\\" .  {% function(d) { return JSON.parse("\""+"\\"+d[1]+"\""); } %}
 | 
			
		||||
 | 
			
		||||
charclass -> "."  {% function(d) { return new RegExp("."); } %}
 | 
			
		||||
           | "[" charclassmembers "]"  {% function(d) { return new RegExp("[" + d[1].join('') + "]"); } %}
 | 
			
		||||
 | 
			
		||||
charclassmembers -> null
 | 
			
		||||
                  | charclassmembers charclassmember  {% function(d) { return d[0].concat([d[1]]); } %}
 | 
			
		||||
 | 
			
		||||
charclassmember -> [^\\\]]  {% function(d) { return d[0]; } %}
 | 
			
		||||
                 | "\\" .  {% function(d) { return d[0] + d[1]; } %}
 | 
			
		||||
 | 
			
		||||
js -> "{" "%" jscode "%" "}"  {% function(d) { return d[2]; } %}
 | 
			
		||||
 | 
			
		||||
jscode -> null  {% function() {return "";} %}
 | 
			
		||||
        | jscode [^%]  {% function(d) {return d[0] + d[1];} %}
 | 
			
		||||
        | jscode "%" [^}] {% function(d) {return d[0] + d[1] + d[2]; } %}
 | 
			
		||||
 | 
			
		||||
# Whitespace with a comment
 | 
			
		||||
whit -> whitraw
 | 
			
		||||
      | whitraw? comment whit?
 | 
			
		||||
 | 
			
		||||
# Optional whitespace with a comment
 | 
			
		||||
whit? -> null
 | 
			
		||||
       | whit
 | 
			
		||||
 | 
			
		||||
# Literally a string of whitespace
 | 
			
		||||
whitraw -> [\s]
 | 
			
		||||
         | whitraw [\s]
 | 
			
		||||
 | 
			
		||||
# A string of whitespace OR the empty string
 | 
			
		||||
whitraw? -> null
 | 
			
		||||
          | whitraw
 | 
			
		||||
 | 
			
		||||
comment -> "#" commentchars "\n"
 | 
			
		||||
commentchars -> null
 | 
			
		||||
              | commentchars [^\n]
 | 
			
		||||
							
								
								
									
										230
									
								
								samples/OpenEdge ABL/test-win.w
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								samples/OpenEdge ABL/test-win.w
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,230 @@
 | 
			
		||||
&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
&Scoped-define WINDOW-NAME C-Win
 | 
			
		||||
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS C-Win 
 | 
			
		||||
/*------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
  File: 
 | 
			
		||||
 | 
			
		||||
  Description: 
 | 
			
		||||
 | 
			
		||||
  Input Parameters:
 | 
			
		||||
      <none>
 | 
			
		||||
 | 
			
		||||
  Output Parameters:
 | 
			
		||||
      <none>
 | 
			
		||||
 | 
			
		||||
  Author: 
 | 
			
		||||
 | 
			
		||||
  Created: 
 | 
			
		||||
 | 
			
		||||
------------------------------------------------------------------------*/
 | 
			
		||||
/*          This .W file was created with the Progress AppBuilder.      */
 | 
			
		||||
/*----------------------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
/* Create an unnamed pool to store all the widgets created 
 | 
			
		||||
     by this procedure. This is a good default which assures
 | 
			
		||||
     that this procedure's triggers and internal procedures 
 | 
			
		||||
     will execute in this procedure's storage, and that proper
 | 
			
		||||
     cleanup will occur on deletion of the procedure. */
 | 
			
		||||
 | 
			
		||||
CREATE WIDGET-POOL.
 | 
			
		||||
 | 
			
		||||
/* ***************************  Definitions  ************************** */
 | 
			
		||||
 | 
			
		||||
/* Parameters Definitions ---                                           */
 | 
			
		||||
 | 
			
		||||
/* Local Variable Definitions ---                                       */
 | 
			
		||||
 | 
			
		||||
/* _UIB-CODE-BLOCK-END */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK 
 | 
			
		||||
 | 
			
		||||
/* ********************  Preprocessor Definitions  ******************** */
 | 
			
		||||
 | 
			
		||||
&Scoped-define PROCEDURE-TYPE Window
 | 
			
		||||
&Scoped-define DB-AWARE no
 | 
			
		||||
 | 
			
		||||
/* Name of designated FRAME-NAME and/or first browse and/or first query */
 | 
			
		||||
&Scoped-define FRAME-NAME DEFAULT-FRAME
 | 
			
		||||
 | 
			
		||||
/* Custom List Definitions                                              */
 | 
			
		||||
/* List-1,List-2,List-3,List-4,List-5,List-6                            */
 | 
			
		||||
 | 
			
		||||
/* _UIB-PREPROCESSOR-BLOCK-END */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ***********************  Control Definitions  ********************** */
 | 
			
		||||
 | 
			
		||||
/* Define the widget handle for the window                              */
 | 
			
		||||
DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.
 | 
			
		||||
 | 
			
		||||
/* ************************  Frame Definitions  *********************** */
 | 
			
		||||
 | 
			
		||||
DEFINE FRAME DEFAULT-FRAME
 | 
			
		||||
    WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY 
 | 
			
		||||
         SIDE-LABELS NO-UNDERLINE THREE-D 
 | 
			
		||||
         AT COL 1 ROW 1
 | 
			
		||||
         SIZE 80 BY 16 WIDGET-ID 100.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* *********************** Procedure Settings ************************ */
 | 
			
		||||
 | 
			
		||||
&ANALYZE-SUSPEND _PROCEDURE-SETTINGS
 | 
			
		||||
/* Settings for THIS-PROCEDURE
 | 
			
		||||
   Type: Window
 | 
			
		||||
   Allow: Basic,Browse,DB-Fields,Window,Query
 | 
			
		||||
   Other Settings: COMPILE
 | 
			
		||||
 */
 | 
			
		||||
&ANALYZE-RESUME _END-PROCEDURE-SETTINGS
 | 
			
		||||
 | 
			
		||||
/* *************************  Create Window  ************************** */
 | 
			
		||||
 | 
			
		||||
&ANALYZE-SUSPEND _CREATE-WINDOW
 | 
			
		||||
IF SESSION:DISPLAY-TYPE = "GUI":U THEN
 | 
			
		||||
  CREATE WINDOW C-Win ASSIGN
 | 
			
		||||
         HIDDEN             = YES
 | 
			
		||||
         TITLE              = "<insert window title>"
 | 
			
		||||
         HEIGHT             = 16
 | 
			
		||||
         WIDTH              = 80
 | 
			
		||||
         MAX-HEIGHT         = 16
 | 
			
		||||
         MAX-WIDTH          = 80
 | 
			
		||||
         VIRTUAL-HEIGHT     = 16
 | 
			
		||||
         VIRTUAL-WIDTH      = 80
 | 
			
		||||
         RESIZE             = yes
 | 
			
		||||
         SCROLL-BARS        = no
 | 
			
		||||
         STATUS-AREA        = no
 | 
			
		||||
         BGCOLOR            = ?
 | 
			
		||||
         FGCOLOR            = ?
 | 
			
		||||
         KEEP-FRAME-Z-ORDER = yes
 | 
			
		||||
         THREE-D            = yes
 | 
			
		||||
         MESSAGE-AREA       = no
 | 
			
		||||
         SENSITIVE          = yes.
 | 
			
		||||
ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
 | 
			
		||||
/* END WINDOW DEFINITION                                                */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ***********  Runtime Attributes and AppBuilder Settings  *********** */
 | 
			
		||||
 | 
			
		||||
&ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
 | 
			
		||||
/* SETTINGS FOR WINDOW C-Win
 | 
			
		||||
  VISIBLE,,RUN-PERSISTENT                                               */
 | 
			
		||||
/* SETTINGS FOR FRAME DEFAULT-FRAME
 | 
			
		||||
   FRAME-NAME                                                           */
 | 
			
		||||
IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
 | 
			
		||||
THEN C-Win:HIDDEN = no.
 | 
			
		||||
 | 
			
		||||
/* _RUN-TIME-ATTRIBUTES-END */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ************************  Control Triggers  ************************ */
 | 
			
		||||
 | 
			
		||||
&Scoped-define SELF-NAME C-Win
 | 
			
		||||
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
 | 
			
		||||
ON END-ERROR OF C-Win /* <insert window title> */
 | 
			
		||||
OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
 | 
			
		||||
  /* This case occurs when the user presses the "Esc" key.
 | 
			
		||||
     In a persistently run window, just ignore this.  If we did not, the
 | 
			
		||||
     application would exit. */
 | 
			
		||||
  IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
 | 
			
		||||
END.
 | 
			
		||||
 | 
			
		||||
/* _UIB-CODE-BLOCK-END */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win
 | 
			
		||||
ON WINDOW-CLOSE OF C-Win /* <insert window title> */
 | 
			
		||||
DO:
 | 
			
		||||
  /* This event will close the window and terminate the procedure.  */
 | 
			
		||||
  APPLY "CLOSE":U TO THIS-PROCEDURE.
 | 
			
		||||
  RETURN NO-APPLY.
 | 
			
		||||
END.
 | 
			
		||||
 | 
			
		||||
/* _UIB-CODE-BLOCK-END */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
&UNDEFINE SELF-NAME
 | 
			
		||||
 | 
			
		||||
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ***************************  Main Block  *************************** */
 | 
			
		||||
 | 
			
		||||
/* Set CURRENT-WINDOW: this will parent dialog-boxes and frames.        */
 | 
			
		||||
ASSIGN CURRENT-WINDOW                = {&WINDOW-NAME} 
 | 
			
		||||
       THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.
 | 
			
		||||
 | 
			
		||||
/* The CLOSE event can be used from inside or outside the procedure to  */
 | 
			
		||||
/* terminate it.                                                        */
 | 
			
		||||
ON CLOSE OF THIS-PROCEDURE 
 | 
			
		||||
   RUN disable_UI.
 | 
			
		||||
 | 
			
		||||
/* Best default for GUI applications is...                              */
 | 
			
		||||
PAUSE 0 BEFORE-HIDE.
 | 
			
		||||
 | 
			
		||||
/* Now enable the interface and wait for the exit condition.            */
 | 
			
		||||
/* (NOTE: handle ERROR and END-KEY so cleanup code will always fire.    */
 | 
			
		||||
MAIN-BLOCK:
 | 
			
		||||
DO ON ERROR   UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
 | 
			
		||||
   ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
 | 
			
		||||
  RUN enable_UI.
 | 
			
		||||
  IF NOT THIS-PROCEDURE:PERSISTENT THEN
 | 
			
		||||
    WAIT-FOR CLOSE OF THIS-PROCEDURE.
 | 
			
		||||
END.
 | 
			
		||||
 | 
			
		||||
/* _UIB-CODE-BLOCK-END */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* **********************  Internal Procedures  *********************** */
 | 
			
		||||
 | 
			
		||||
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Win  _DEFAULT-DISABLE
 | 
			
		||||
PROCEDURE disable_UI :
 | 
			
		||||
/*------------------------------------------------------------------------------
 | 
			
		||||
  Purpose:     DISABLE the User Interface
 | 
			
		||||
  Parameters:  <none>
 | 
			
		||||
  Notes:       Here we clean-up the user-interface by deleting
 | 
			
		||||
               dynamic widgets we have created and/or hide 
 | 
			
		||||
               frames.  This procedure is usually called when
 | 
			
		||||
               we are ready to "clean-up" after running.
 | 
			
		||||
------------------------------------------------------------------------------*/
 | 
			
		||||
  /* Delete the WINDOW we created */
 | 
			
		||||
  IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
 | 
			
		||||
  THEN DELETE WIDGET C-Win.
 | 
			
		||||
  IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
 | 
			
		||||
END PROCEDURE.
 | 
			
		||||
 | 
			
		||||
/* _UIB-CODE-BLOCK-END */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Win  _DEFAULT-ENABLE
 | 
			
		||||
PROCEDURE enable_UI :
 | 
			
		||||
/*------------------------------------------------------------------------------
 | 
			
		||||
  Purpose:     ENABLE the User Interface
 | 
			
		||||
  Parameters:  <none>
 | 
			
		||||
  Notes:       Here we display/view/enable the widgets in the
 | 
			
		||||
               user-interface.  In addition, OPEN all queries
 | 
			
		||||
               associated with each FRAME and BROWSE.
 | 
			
		||||
               These statements here are based on the "Other 
 | 
			
		||||
               Settings" section of the widget Property Sheets.
 | 
			
		||||
------------------------------------------------------------------------------*/
 | 
			
		||||
  VIEW FRAME DEFAULT-FRAME IN WINDOW C-Win.
 | 
			
		||||
  {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
 | 
			
		||||
  VIEW C-Win.
 | 
			
		||||
END PROCEDURE.
 | 
			
		||||
 | 
			
		||||
/* _UIB-CODE-BLOCK-END */
 | 
			
		||||
&ANALYZE-RESUME
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										59
									
								
								samples/Pan/ceph-raid.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								samples/Pan/ceph-raid.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
unique template site/filesystems/ceph-raid;
 | 
			
		||||
 | 
			
		||||
prefix '/system/blockdevices';
 | 
			
		||||
 | 
			
		||||
variable CEPH_OSD_DISKS = {
 | 
			
		||||
    # SAS disks partitions
 | 
			
		||||
    disks = list();
 | 
			
		||||
    foreach (disk; data; value('/hardware/harddisks')) {
 | 
			
		||||
        if (data['capacity'] > 1000 * GB) {
 | 
			
		||||
            append(disks, disk);
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
    disks;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
'partitions' = {
 | 
			
		||||
    foreach (idx; disk; CEPH_OSD_DISKS) {
 | 
			
		||||
        partitions_add(
 | 
			
		||||
            disk, dict(
 | 
			
		||||
                format('%s1', disk), 10 * GB,
 | 
			
		||||
                format('%s2', disk), 5 * GB,
 | 
			
		||||
                format('%s3', disk), -1));
 | 
			
		||||
        SELF[format('%s1', disk)]['offset'] = 1;
 | 
			
		||||
    };
 | 
			
		||||
    SELF;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#raid for data
 | 
			
		||||
'md' = {
 | 
			
		||||
    for (i = 0; i < length(CEPH_OSD_DISKS); i = i + 2) {
 | 
			
		||||
        for (j = 2; j <= 3; j = j + 1) {
 | 
			
		||||
            SELF[escape(format('md/%s0%s%d', CEPH_OSD_DISKS[i], CEPH_OSD_DISKS[i+1], j ))] = dict(
 | 
			
		||||
                "device_list", list(format('partitions/%s%d', CEPH_OSD_DISKS[i], j), format('partitions/%s%d', CEPH_OSD_DISKS[i+1], j)),
 | 
			
		||||
                "raid_level", 'RAID0',
 | 
			
		||||
                "metadata", '1.2',
 | 
			
		||||
            );
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
    SELF;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# ceph OSD and journal fs
 | 
			
		||||
'/system/filesystems' = {
 | 
			
		||||
    # ga over software raids..
 | 
			
		||||
    foreach (disk; data; value('/system/blockdevices/md')) { #check for data part/disk
 | 
			
		||||
        if (match(unescape(disk), '^md/.+0.+3$')) {
 | 
			
		||||
            append(merge(CEPH_FSOPTS_BASE, CEPH_DISK_OPTIONS[CEPH_FS], dict(
 | 
			
		||||
                'mountpoint', format('/var/lib/ceph/osd/%s', replace('md/([a-z0A-Z]+)[0-9]*$', '$1', unescape(disk))),
 | 
			
		||||
                'block_device', format('md/%s', disk),
 | 
			
		||||
            )));
 | 
			
		||||
        } else if (match(unescape(disk), '^md/.+0.+2$')) {
 | 
			
		||||
            append(merge(CEPH_FSOPTS_DUMMY, dict(
 | 
			
		||||
                'mountpoint', format('/dummy/%s', unescape(disk)),
 | 
			
		||||
                'block_device', format('md/%s', disk)
 | 
			
		||||
            )));
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
    SELF;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										11
									
								
								samples/Pan/cluster-A.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								samples/Pan/cluster-A.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
structure template site/nagios/hosts/cluster-A;
 | 
			
		||||
 | 
			
		||||
# let Nagios server A monitor B
 | 
			
		||||
# just an example to make the templates compile
 | 
			
		||||
"nagios-slave-B.example.org" = create (NAGIOS_QUATTOR_HOST);
 | 
			
		||||
"nagios-slave-B.example.org/alias" = "slave B";
 | 
			
		||||
"nagios-slave-B.example.org/hostgroups" = list( "quattor-nodes" );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# "another-host-in-A.example.org" = create (NAGIOS_QUATTOR_HOST);
 | 
			
		||||
# "another-host-in-A.example.org/alias" = "another monitored host in cluster A";
 | 
			
		||||
							
								
								
									
										18
									
								
								samples/Pan/databases.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								samples/Pan/databases.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
template site/databases;
 | 
			
		||||
 | 
			
		||||
# Defines the mapping between the full hostname and the IP
 | 
			
		||||
# address.
 | 
			
		||||
final variable DB_IP = dict(
 | 
			
		||||
    escape("one"), "192.168.0.24",
 | 
			
		||||
    escape("hyp01"), "192.168.0.25",
 | 
			
		||||
    escape("vm"), "192.168.0.26",
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
# Defines the mapping between the full hostname and the
 | 
			
		||||
# physical machine.
 | 
			
		||||
# A different hardware template must be used for each machine
 | 
			
		||||
final variable DB_MACHINE = dict(
 | 
			
		||||
    escape("one"), "hardware/machine/ibm/x3550/x_KDXXXX",
 | 
			
		||||
    escape("hyp01"), "hardware/machine/ibm/hs21xm/blade_99HXXXX",
 | 
			
		||||
    escape("vm"), "hardware/machine/one/example",
 | 
			
		||||
);
 | 
			
		||||
							
								
								
									
										56
									
								
								samples/Pan/functions.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								samples/Pan/functions.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
################################################################################
 | 
			
		||||
# This is 'namespaces/standard/pan/functions.tpl', a pan-templates's file
 | 
			
		||||
################################################################################
 | 
			
		||||
#
 | 
			
		||||
# VERSION:    3.2.7, 21/08/09 22:22
 | 
			
		||||
# AUTHOR:     Martin Bock
 | 
			
		||||
# MAINTAINER: Example Maintainer <support@example.org>
 | 
			
		||||
# LICENSE:    http://cern.ch/eu-datagrid/license.html
 | 
			
		||||
#
 | 
			
		||||
################################################################################
 | 
			
		||||
# Coding style: emulate <TAB> characters with 4 spaces, thanks!
 | 
			
		||||
################################################################################
 | 
			
		||||
#
 | 
			
		||||
# Function definitions
 | 
			
		||||
#
 | 
			
		||||
################################################################################
 | 
			
		||||
 | 
			
		||||
declaration template pan/functions;
 | 
			
		||||
 | 
			
		||||
include 'pan/types';
 | 
			
		||||
 | 
			
		||||
############################################################
 | 
			
		||||
##=
 | 
			
		||||
## @function push
 | 
			
		||||
## @# push zero or more values onto the end of a list.
 | 
			
		||||
##+If the list does not exist or is not defined a new list is
 | 
			
		||||
##+created.
 | 
			
		||||
## @syntax value:element
 | 
			
		||||
## @param:value... the values to push onto list
 | 
			
		||||
## @example
 | 
			
		||||
##+# "/data" will contain list (1,2,3,4)
 | 
			
		||||
##+"/data" = list(1,2);
 | 
			
		||||
##+"/data" = push(3,4);
 | 
			
		||||
##=
 | 
			
		||||
############################################################
 | 
			
		||||
function push = {
 | 
			
		||||
    # Get the reference to SELF or create an empty list
 | 
			
		||||
    # as necessary.
 | 
			
		||||
    if (exists(SELF) && is_list(SELF)) {
 | 
			
		||||
        v = SELF;
 | 
			
		||||
    } else if (!exists(SELF) || !is_defined(SELF)) {
 | 
			
		||||
        v = list();
 | 
			
		||||
    } else {
 | 
			
		||||
        error("push can only be applied to a list");
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Merge the arguments into the given array.  Neither the
 | 
			
		||||
    # first/next or merge functions can be used because the
 | 
			
		||||
    # ARGV array cannot be directly referenced.
 | 
			
		||||
    i = 0;
 | 
			
		||||
    while (i < ARGC) {
 | 
			
		||||
        v[length(v)] = ARGV[i];
 | 
			
		||||
        i = i + 1;
 | 
			
		||||
    };
 | 
			
		||||
    v;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										22
									
								
								samples/Pan/infernalis.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								samples/Pan/infernalis.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
unique template site/ceph/server/infernalis;
 | 
			
		||||
 | 
			
		||||
include 'components/dirperm/config';
 | 
			
		||||
 | 
			
		||||
"/software/components/dirperm/paths" = {
 | 
			
		||||
    foreach (idx; mp; value('/system/filesystems')) {
 | 
			
		||||
        if (match(mp['mountpoint'], format('^%s', CEPH_OSD_MP_BASE))) {
 | 
			
		||||
            append(SELF, dict(
 | 
			
		||||
                "path", mp['mountpoint'],
 | 
			
		||||
                "owner", "ceph:ceph",
 | 
			
		||||
                "perm", "0755",
 | 
			
		||||
                "type", "d",
 | 
			
		||||
            ));
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
    SELF;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
include 'common/sysctl/service';
 | 
			
		||||
prefix "/software/components/metaconfig/services/{/etc/sysctl.conf}/contents";
 | 
			
		||||
 | 
			
		||||
'kernel.pid_max' = 4194303;
 | 
			
		||||
							
								
								
									
										20
									
								
								samples/Pan/libvirt.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								samples/Pan/libvirt.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
unique template site/ceph/client/libvirt;
 | 
			
		||||
 | 
			
		||||
include 'site/ceph/client/config';
 | 
			
		||||
 | 
			
		||||
variable CEPH_LIBVIRT_USER ?= 'oneadmin';
 | 
			
		||||
variable CEPH_LIBVIRT_GROUP ?= CEPH_LIBVIRT_USER;
 | 
			
		||||
prefix '/software/components/metaconfig/services/{/etc/ceph/ceph.client.libvirt.keyring}';
 | 
			
		||||
 | 
			
		||||
"contents" = if (is_defined(CEPH_LIBVIRT_SECRET)) {
 | 
			
		||||
    dict("client.libvirt", dict(
 | 
			
		||||
        "key", CEPH_LIBVIRT_SECRET,
 | 
			
		||||
        )
 | 
			
		||||
    );
 | 
			
		||||
} else {
 | 
			
		||||
    dict();
 | 
			
		||||
};
 | 
			
		||||
'module' = 'tiny';
 | 
			
		||||
'mode' = 0600;
 | 
			
		||||
'owner' = CEPH_LIBVIRT_USER;
 | 
			
		||||
'group' = CEPH_LIBVIRT_GROUP;
 | 
			
		||||
							
								
								
									
										19
									
								
								samples/Pan/link.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								samples/Pan/link.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
unique template site/dcache/link;
 | 
			
		||||
 | 
			
		||||
include 'components/dcache/config';
 | 
			
		||||
 | 
			
		||||
## links
 | 
			
		||||
## default preference value
 | 
			
		||||
"/software/components/dcache/link/def_pref" = "10";
 | 
			
		||||
## list of links that will be ignored during configuration
 | 
			
		||||
"/software/components/dcache/link/ignore_link" = list();
 | 
			
		||||
##
 | 
			
		||||
"/software/components/dcache/link/links" = dict(
 | 
			
		||||
    ## out_buf_write: all outside to write to the storage through this buffer
 | 
			
		||||
    "out", dict("ugroup", list("all_net", "any_store"), "pgroup", list("out_buf"), "read", "10", "write", "10", "cache", "10"),
 | 
			
		||||
    "in", dict("ugroup", list("in_net", "any_store"), "pgroup", list("priv"), "read", "20", "write", "20", "cache", "20"),
 | 
			
		||||
    "dteam", dict("ugroup", list("dteam_store"), "pgroup", list("out_buf"), "read", "10", "write", "10", "cache", "10"),
 | 
			
		||||
    "ops", dict("ugroup", list("ops_store"), "pgroup", list("out_buf"), "read", "10", "write", "10", "cache", "10"),
 | 
			
		||||
    "cms", dict("ugroup", list("cms_store"), "pgroup", list("out_buf"), "read", "10", "write", "10", "cache", "10"),
 | 
			
		||||
    "test", dict("ugroup", list("test_store"), "pgroup", list("behar_test"), "read", "10", "write", "10", "cache", "10"),
 | 
			
		||||
);
 | 
			
		||||
							
								
								
									
										29
									
								
								samples/Pan/mysql.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								samples/Pan/mysql.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
unique template common/opennebula/mysql;
 | 
			
		||||
 | 
			
		||||
prefix "/software/packages";
 | 
			
		||||
"{mysql-server}" = dict();
 | 
			
		||||
 | 
			
		||||
include 'components/mysql/config';
 | 
			
		||||
 | 
			
		||||
prefix  "/software/components/mysql";
 | 
			
		||||
"serviceName" = {
 | 
			
		||||
    if (RPM_BASE_FLAVOUR_VERSIONID == 7) {
 | 
			
		||||
        "mariadb";
 | 
			
		||||
    } else {
 | 
			
		||||
        "mysqld";
 | 
			
		||||
    };
 | 
			
		||||
};
 | 
			
		||||
prefix "/software/components/mysql/servers/one";
 | 
			
		||||
"host" = FULL_HOSTNAME; # localhost is added by component
 | 
			
		||||
"adminpwd" = OPENNEBULA_MYSQL_ADMIN;
 | 
			
		||||
"adminuser" = "root";
 | 
			
		||||
 | 
			
		||||
prefix "/software/components/mysql/databases/opennebula";
 | 
			
		||||
"server" = "one";
 | 
			
		||||
"users/oneadmin/password" = OPENNEBULA_MYSQL_ONEADMIN;
 | 
			
		||||
"users/oneadmin/rights" = list("ALL PRIVILEGES");
 | 
			
		||||
"createDb" = false; # if false, run script
 | 
			
		||||
"initScript/file" = "/dev/null";
 | 
			
		||||
 | 
			
		||||
prefix "/software/components/chkconfig/service";
 | 
			
		||||
"mysqld" = dict("on", "", "startstop", true);
 | 
			
		||||
							
								
								
									
										18
									
								
								samples/Pan/nodes_properties.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								samples/Pan/nodes_properties.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
template config/nodes_properties;
 | 
			
		||||
 | 
			
		||||
variable SITES ?= list('example');
 | 
			
		||||
 | 
			
		||||
#variable NEW_NODES_PROPS ?= {
 | 
			
		||||
 | 
			
		||||
variable NODES_PROPS = {
 | 
			
		||||
    nodes_add = dict();
 | 
			
		||||
    nodes_props = dict();
 | 
			
		||||
    allsites = SITES;
 | 
			
		||||
    ok = first(allsites, k, v);
 | 
			
		||||
    while (ok) {
 | 
			
		||||
        nodes_add = merge(create(format("config/%s_nodes_properties", v)), nodes_props);
 | 
			
		||||
        nodes_props = merge(nodes_add[v], nodes_props);
 | 
			
		||||
        ok = next(allsites, k, v);
 | 
			
		||||
    };
 | 
			
		||||
    nodes_props;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										14
									
								
								samples/Pan/onevm.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								samples/Pan/onevm.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
unique template site/one/onevm;
 | 
			
		||||
 | 
			
		||||
include 'components/chkconfig/config';
 | 
			
		||||
 | 
			
		||||
# set opennebula map
 | 
			
		||||
include 'quattor/aii/opennebula/schema';
 | 
			
		||||
bind "/system/opennebula" = opennebula_vmtemplate;
 | 
			
		||||
 | 
			
		||||
include 'site/config-vm';
 | 
			
		||||
 | 
			
		||||
include 'quattor/aii/opennebula/default';
 | 
			
		||||
 | 
			
		||||
"/software/packages/{acpid}" = dict();
 | 
			
		||||
"/software/components/chkconfig/service/acpid" = dict('on', '', 'startstop', true);
 | 
			
		||||
							
								
								
									
										26
									
								
								samples/Pan/osd-fetch.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								samples/Pan/osd-fetch.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
unique template site/ceph/osdschemas/osd-fetch;
 | 
			
		||||
 | 
			
		||||
prefix '/software/components/ceph/clusters/ceph';
 | 
			
		||||
 | 
			
		||||
variable FETCHED_OSDS = {
 | 
			
		||||
    t = dict();
 | 
			
		||||
    rep = 2;
 | 
			
		||||
    foreach(idx; host; CEPH_NODES) {
 | 
			
		||||
        prof = replace('.data$', '.os', host);
 | 
			
		||||
        d = value(format('%s:/software/components/ceph/localdaemons/osds', prof));
 | 
			
		||||
        t[shorten_fqdn(host)] = dict(
 | 
			
		||||
            'fqdn', host,
 | 
			
		||||
            'osds', d
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        numosd = length(d);
 | 
			
		||||
        if (numosd > rep){
 | 
			
		||||
            rep = numosd;
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
    all = dict('osdhosts', t, 'maxosd', rep);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
'osdhosts' = FETCHED_OSDS['osdhosts'];
 | 
			
		||||
variable CEPH_OSD_DOWN_REPORTERS ?= FETCHED_OSDS['maxosd'] + 2;
 | 
			
		||||
variable CEPH_OSD_DOWN_REPORTS ?=  CEPH_OSD_DOWN_REPORTERS + CEPH_OSD_DOWN_REPORTERS / 4 + 1;
 | 
			
		||||
							
								
								
									
										45
									
								
								samples/Pan/pakiti.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								samples/Pan/pakiti.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
#
 | 
			
		||||
# Generated by RepositoryTask on 12/09/13 15:41
 | 
			
		||||
#
 | 
			
		||||
# name = pakiti
 | 
			
		||||
# owner = support@example.org
 | 
			
		||||
# url = http://quattor.web.lal.in2p3.fr/packages/pakiti
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
structure template repository/pakiti;
 | 
			
		||||
 | 
			
		||||
"name" = "pakiti";
 | 
			
		||||
"owner" = "support@example.org";
 | 
			
		||||
"protocols" = list(
 | 
			
		||||
    dict("name", "http",
 | 
			
		||||
    "url", "http://quattor.web.lal.in2p3.fr/packages/pakiti")
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
"contents" = dict(
 | 
			
		||||
    # pkg = pakiti-client-2.1.4-1-noarch
 | 
			
		||||
escape("pakiti-client-2.1.4-1-noarch"), dict("name", "pakiti-client", "version", "2.1.4-1", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-client-2.1.4-2-noarch
 | 
			
		||||
escape("pakiti-client-2.1.4-2-noarch"), dict("name", "pakiti-client", "version", "2.1.4-2", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-client-2.1.4-3-noarch
 | 
			
		||||
escape("pakiti-client-2.1.4-3-noarch"), dict("name", "pakiti-client", "version", "2.1.4-3", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-client-2.1.4-4-noarch
 | 
			
		||||
escape("pakiti-client-2.1.4-4-noarch"), dict("name", "pakiti-client", "version", "2.1.4-4", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-client-2.1.5-0-noarch
 | 
			
		||||
escape("pakiti-client-2.1.5-0-noarch"), dict("name", "pakiti-client", "version", "2.1.5-0", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-client-manual-2.1.4-2-noarch
 | 
			
		||||
escape("pakiti-client-manual-2.1.4-2-noarch"), dict("name", "pakiti-client-manual", "version", "2.1.4-2", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-client-manual-2.1.4-3-noarch
 | 
			
		||||
escape("pakiti-client-manual-2.1.4-3-noarch"), dict("name", "pakiti-client-manual", "version", "2.1.4-3", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-client-manual-2.1.4-4-noarch
 | 
			
		||||
escape("pakiti-client-manual-2.1.4-4-noarch"), dict("name", "pakiti-client-manual", "version", "2.1.4-4", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-server-2.1.4-1-noarch
 | 
			
		||||
escape("pakiti-server-2.1.4-1-noarch"), dict("name", "pakiti-server", "version", "2.1.4-1", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-server-2.1.4-2-noarch
 | 
			
		||||
escape("pakiti-server-2.1.4-2-noarch"), dict("name", "pakiti-server", "version", "2.1.4-2", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-server-2.1.4-3-noarch
 | 
			
		||||
escape("pakiti-server-2.1.4-3-noarch"), dict("name", "pakiti-server", "version", "2.1.4-3", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-server-2.1.4-4-noarch
 | 
			
		||||
escape("pakiti-server-2.1.4-4-noarch"), dict("name", "pakiti-server", "version", "2.1.4-4", "arch", "noarch"),
 | 
			
		||||
    # pkg = pakiti-server-2.1.5-0-noarch
 | 
			
		||||
escape("pakiti-server-2.1.5-0-noarch"), dict("name", "pakiti-server", "version", "2.1.5-0", "arch", "noarch"),
 | 
			
		||||
);
 | 
			
		||||
							
								
								
									
										30
									
								
								samples/Pan/purge_fqan_accounts.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								samples/Pan/purge_fqan_accounts.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
# Template installing a script to remove all accounts with 'fqan' in
 | 
			
		||||
# their name. Used after fixing VOConfigTask in SCDB 2.3.2 to remove
 | 
			
		||||
# obsolete accounts not removed by ncm-accounts.
 | 
			
		||||
#
 | 
			
		||||
# The script is added and executed only on nodes where NODE_VO_ACCOUNTS
 | 
			
		||||
# is true. It is intended to be run as GLITE_BASE_CONFIG_SITE (define
 | 
			
		||||
# this variable to the script namespace).
 | 
			
		||||
#
 | 
			
		||||
# Michel Jouvin - 13/9/09
 | 
			
		||||
 | 
			
		||||
unique template site/misc/purge_fqan_accounts;
 | 
			
		||||
 | 
			
		||||
variable LAL_PURGE_ACCOUNTS_SCRIPT = '/tmp/purge_fqan_accounts';
 | 
			
		||||
 | 
			
		||||
include 'components/filecopy/config';
 | 
			
		||||
 | 
			
		||||
'/software/components/filecopy/services' = {
 | 
			
		||||
    if ( is_defined(NODE_VO_ACCOUNTS) && NODE_VO_ACCOUNTS ) {
 | 
			
		||||
        debug('Adding purge_fqan_accounts');
 | 
			
		||||
        SELF[escape(LAL_PURGE_ACCOUNTS_SCRIPT)] = dict(
 | 
			
		||||
            'config', file_contents('site/misc/purge_fqan_accounts.sh'),
 | 
			
		||||
            'owner', 'root:root',
 | 
			
		||||
            'perms', '0755',
 | 
			
		||||
            'restart', LAL_PURGE_ACCOUNTS_SCRIPT,
 | 
			
		||||
        );
 | 
			
		||||
    } else {
 | 
			
		||||
        debug(format('VO accounts disabled (NODE_VO_ACCOUNTS=%s', NODE_VO_ACCOUNTS));
 | 
			
		||||
    };
 | 
			
		||||
    SELF;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										30
									
								
								samples/Pan/resources.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								samples/Pan/resources.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
unique template site/one/resources;
 | 
			
		||||
 | 
			
		||||
# datastores templates
 | 
			
		||||
prefix "/software/components/opennebula/datastores/0";
 | 
			
		||||
"name" = "ceph.example";
 | 
			
		||||
"bridge_list" = list(FULL_HOSTNAME); # for now, do this from the headnode
 | 
			
		||||
"ceph_host" = CEPH_MON_HOSTS;
 | 
			
		||||
"ceph_secret" = CEPH_LIBVIRT_UUID;
 | 
			
		||||
"ceph_user" = "libvirt";
 | 
			
		||||
"ceph_user_key" = CEPH_LIBVIRT_SECRET;
 | 
			
		||||
"datastore_capacity_check" = true;
 | 
			
		||||
"pool_name" = "one";
 | 
			
		||||
"type" = "IMAGE_DS";
 | 
			
		||||
"rbd_format" = 2;
 | 
			
		||||
 | 
			
		||||
prefix "/software/components/opennebula/datastores/1";
 | 
			
		||||
"name" = "nfs.example";
 | 
			
		||||
"datastore_capacity_check" = true;
 | 
			
		||||
"ds_mad" = "fs";
 | 
			
		||||
"tm_mad" = "shared";
 | 
			
		||||
"type" = "IMAGE_DS";
 | 
			
		||||
 | 
			
		||||
# untouchables resources
 | 
			
		||||
prefix "/software/components/opennebula/untouchables";
 | 
			
		||||
"datastores" = list('system');
 | 
			
		||||
 | 
			
		||||
# extra conf
 | 
			
		||||
prefix "/software/components/opennebula";
 | 
			
		||||
"ssh_multiplex" = true;
 | 
			
		||||
"tm_system_ds" = "ssh";
 | 
			
		||||
							
								
								
									
										20
									
								
								samples/Pan/simple.pan
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								samples/Pan/simple.pan
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
unique template site/ceph/osdlocal/simple;
 | 
			
		||||
 | 
			
		||||
variable CEPH_JOURNAL_PART ?= dict();
 | 
			
		||||
 | 
			
		||||
prefix '/software/components/ceph';
 | 
			
		||||
 | 
			
		||||
'localdaemons/osds' = {
 | 
			
		||||
    d = dict();
 | 
			
		||||
    foreach(idx; osdmnt; value('/system/filesystems')) {
 | 
			
		||||
        part = osdmnt['block_device'];
 | 
			
		||||
        disk = replace('\S+/([a-zA-Z]+)[0-9]*$', '$1', part);
 | 
			
		||||
        if (match(osdmnt['mountpoint'], '/var/lib/ceph/osd/\w+')){
 | 
			
		||||
            d[escape(osdmnt['mountpoint'])] = dict(
 | 
			
		||||
                'journal_path', format('/dev/%s%d', disk, CEPH_JOURNAL_PART['data']),
 | 
			
		||||
                'crush_weight', weight_of(part),
 | 
			
		||||
            );
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
    d;
 | 
			
		||||
};
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user