mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Compare commits
	
		
			76 Commits
		
	
	
		
			v5.1.0
			...
			kivikakk/g
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | adfb438a42 | ||
|  | 0ed1b821d7 | ||
|  | 1a769c4665 | ||
|  | e7e64bf39a | ||
|  | e4b9430024 | ||
|  | a76805e40d | ||
|  | 8d27845f8c | ||
|  | 9a8ab45b6f | ||
|  | e335d48625 | ||
|  | 4f46155c05 | ||
|  | 38901d51d2 | ||
|  | ded0dc74e0 | ||
|  | c5d1bb5370 | ||
|  | c8ca48856b | ||
|  | 7be6fb0138 | ||
|  | 8c516655bc | ||
|  | 9dceffce2f | ||
|  | 33be70eb28 | ||
|  | 9c4dc3047c | ||
|  | d8e5f3c965 | ||
|  | 71bf640a47 | ||
|  | c9b3d19c6f | ||
|  | 0f4955e5d5 | ||
|  | d968b0e9ee | ||
|  | 1f5ed3b3fe | ||
|  | 297be948d1 | ||
|  | b4492e7205 | ||
|  | c05bc99004 | ||
|  | 99eaf5faf9 | ||
|  | 21babbceb1 | ||
|  | 15885701cd | ||
|  | 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 | 
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -8,3 +8,6 @@ lib/linguist/samples.json | ||||
| /node_modules | ||||
| test/fixtures/ace_modes.json | ||||
| /vendor/gems/ | ||||
| /tmp | ||||
| *.bundle | ||||
| *.so | ||||
|   | ||||
							
								
								
									
										64
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -169,9 +169,6 @@ | ||||
| [submodule "vendor/grammars/Agda.tmbundle"] | ||||
| 	path = vendor/grammars/Agda.tmbundle | ||||
| 	url = https://github.com/mokus0/Agda.tmbundle | ||||
| [submodule "vendor/grammars/Julia.tmbundle"] | ||||
| 	path = vendor/grammars/Julia.tmbundle | ||||
| 	url = https://github.com/JuliaEditorSupport/Julia.tmbundle | ||||
| [submodule "vendor/grammars/ooc.tmbundle"] | ||||
| 	path = vendor/grammars/ooc.tmbundle | ||||
| 	url = https://github.com/nilium/ooc.tmbundle | ||||
| @@ -400,10 +397,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 | ||||
| @@ -446,9 +439,6 @@ | ||||
| [submodule "vendor/grammars/sublime-golo"] | ||||
| 	path = vendor/grammars/sublime-golo | ||||
| 	url = https://github.com/TypeUnsafe/sublime-golo | ||||
| [submodule "vendor/grammars/JSyntax"] | ||||
| 	path = vendor/grammars/JSyntax | ||||
| 	url = https://github.com/bcj/JSyntax | ||||
| [submodule "vendor/grammars/TXL"] | ||||
| 	path = vendor/grammars/TXL | ||||
| 	url = https://github.com/MikeHoffert/Sublime-Text-TXL-syntax | ||||
| @@ -569,9 +559,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 +781,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 | ||||
| @@ -863,3 +847,51 @@ | ||||
| [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-yara"] | ||||
| 	path = vendor/grammars/language-yara | ||||
| 	url = https://github.com/blacktop/language-yara | ||||
| [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 | ||||
| [submodule "vendor/grammars/atom-language-julia"] | ||||
| 	path = vendor/grammars/atom-language-julia | ||||
| 	url = https://github.com/JuliaEditorSupport/atom-language-julia | ||||
| [submodule "vendor/grammars/language-cwl"] | ||||
| 	path = vendor/grammars/language-cwl | ||||
| 	url = https://github.com/manabuishii/language-cwl | ||||
| [submodule "vendor/grammars/Syntax-highlighting-for-PostCSS"] | ||||
| 	path = vendor/grammars/Syntax-highlighting-for-PostCSS | ||||
| 	url = https://github.com/hudochenkov/Syntax-highlighting-for-PostCSS | ||||
| [submodule "vendor/grammars/javadoc.tmbundle"] | ||||
| 	path = vendor/grammars/javadoc.tmbundle | ||||
| 	url = https://github.com/textmate/javadoc.tmbundle | ||||
| [submodule "vendor/grammars/JSyntax"] | ||||
| 	path = vendor/grammars/JSyntax | ||||
| 	url = https://github.com/tikkanz/JSyntax | ||||
|   | ||||
| @@ -19,10 +19,6 @@ rvm: | ||||
|   - 2.3.3 | ||||
|   - 2.4.0 | ||||
|  | ||||
| matrix: | ||||
|   allow_failures: | ||||
|   - rvm: 2.4.0 | ||||
|  | ||||
| notifications: | ||||
|   disabled: true | ||||
|  | ||||
| @@ -31,3 +27,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! | ||||
| @@ -93,6 +93,7 @@ Linguist is maintained with :heart: by: | ||||
| - **@BenEddy** (GitHub staff) | ||||
| - **@Caged** (GitHub staff) | ||||
| - **@grantr** (GitHub staff) | ||||
| - **@kivikakk** (GitHub staff) | ||||
| - **@larsbrinkhoff** | ||||
| - **@lildude** (GitHub staff) | ||||
| - **@pchaigno** | ||||
|   | ||||
							
								
								
									
										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 | ||||
|   | ||||
							
								
								
									
										20
									
								
								Rakefile
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								Rakefile
									
									
									
									
									
								
							| @@ -1,6 +1,7 @@ | ||||
| require 'bundler/setup' | ||||
| require 'rake/clean' | ||||
| require 'rake/testtask' | ||||
| require 'rake/extensiontask' | ||||
| require 'yaml' | ||||
| require 'yajl' | ||||
| require 'open-uri' | ||||
| @@ -10,8 +11,14 @@ task :default => :test | ||||
|  | ||||
| Rake::TestTask.new | ||||
|  | ||||
| gem_spec = Gem::Specification.load('github-linguist.gemspec') | ||||
|  | ||||
| Rake::ExtensionTask.new('linguist', gem_spec) do |ext| | ||||
|   ext.lib_dir = File.join('lib', 'linguist') | ||||
| end | ||||
|  | ||||
| # Extend test task to check for samples and fetch latest Ace modes | ||||
| task :test => [:check_samples, :fetch_ace_modes] | ||||
| task :test => [:compile, :check_samples, :fetch_ace_modes] | ||||
|  | ||||
| desc "Check that we have samples.json generated" | ||||
| task :check_samples do | ||||
| @@ -34,15 +41,22 @@ task :fetch_ace_modes do | ||||
|   end | ||||
| end | ||||
|  | ||||
| task :samples do | ||||
| task :samples => :compile do | ||||
|   require 'linguist/samples' | ||||
|   json = Yajl.dump(Linguist::Samples.data, :pretty => true) | ||||
|   File.write 'lib/linguist/samples.json', json | ||||
| end | ||||
|  | ||||
| task :flex do | ||||
|   if `flex -V` !~ /^flex \d+\.\d+\.\d+/ | ||||
|     fail "flex not detected" | ||||
|   end | ||||
|   system "cd ext/linguist && flex tokenizer.l" | ||||
| end | ||||
|  | ||||
| task :build_gem => :samples do | ||||
|   rm_rf "grammars" | ||||
|   sh "script/convert-grammars" | ||||
|   sh "script/grammar-compiler compile -o grammars || true" | ||||
|   languages = YAML.load_file("lib/linguist/languages.yml") | ||||
|   File.write("lib/linguist/languages.json", Yajl.dump(languages)) | ||||
|   `gem build github-linguist.gemspec` | ||||
|   | ||||
| @@ -117,9 +117,8 @@ def git_linguist(args) | ||||
|   end | ||||
|  | ||||
|   parser.parse!(args) | ||||
|  | ||||
|   git_dir = `git rev-parse --git-dir`.strip | ||||
|   raise "git-linguist must be run in a Git repository (#{Dir.pwd})" unless $?.success? | ||||
|   raise "git-linguist must be run in a Git repository" unless $?.success? | ||||
|   wrapper = GitLinguist.new(git_dir, commit, incremental) | ||||
|  | ||||
|   case args.pop | ||||
| @@ -141,6 +140,10 @@ def git_linguist(args) | ||||
|     $stderr.print(parser.help) | ||||
|     exit 1 | ||||
|   end | ||||
| rescue Exception => e | ||||
|   $stderr.puts e.message | ||||
|   $stderr.puts e.backtrace | ||||
|   exit 1 | ||||
| end | ||||
|  | ||||
| git_linguist(ARGV) | ||||
|   | ||||
							
								
								
									
										3
									
								
								ext/linguist/extconf.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ext/linguist/extconf.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| require 'mkmf' | ||||
| dir_config('linguist') | ||||
| create_makefile('linguist/linguist') | ||||
							
								
								
									
										2226
									
								
								ext/linguist/lex.linguist_yy.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2226
									
								
								ext/linguist/lex.linguist_yy.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										336
									
								
								ext/linguist/lex.linguist_yy.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										336
									
								
								ext/linguist/lex.linguist_yy.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,336 @@ | ||||
| #ifndef linguist_yyHEADER_H | ||||
| #define linguist_yyHEADER_H 1 | ||||
| #define linguist_yyIN_HEADER 1 | ||||
|  | ||||
| #line 6 "lex.linguist_yy.h" | ||||
|  | ||||
| #define  YY_INT_ALIGNED short int | ||||
|  | ||||
| /* A lexical scanner generated by flex */ | ||||
|  | ||||
| #define FLEX_SCANNER | ||||
| #define YY_FLEX_MAJOR_VERSION 2 | ||||
| #define YY_FLEX_MINOR_VERSION 5 | ||||
| #define YY_FLEX_SUBMINOR_VERSION 35 | ||||
| #if YY_FLEX_SUBMINOR_VERSION > 0 | ||||
| #define FLEX_BETA | ||||
| #endif | ||||
|  | ||||
| /* First, we deal with  platform-specific or compiler-specific issues. */ | ||||
|  | ||||
| /* begin standard C headers. */ | ||||
| #include <stdio.h> | ||||
| #include <string.h> | ||||
| #include <errno.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| /* end standard C headers. */ | ||||
|  | ||||
| /* flex integer type definitions */ | ||||
|  | ||||
| #ifndef FLEXINT_H | ||||
| #define FLEXINT_H | ||||
|  | ||||
| /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ | ||||
|  | ||||
| #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L | ||||
|  | ||||
| /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, | ||||
|  * if you want the limit (max/min) macros for int types.  | ||||
|  */ | ||||
| #ifndef __STDC_LIMIT_MACROS | ||||
| #define __STDC_LIMIT_MACROS 1 | ||||
| #endif | ||||
|  | ||||
| #include <inttypes.h> | ||||
| typedef int8_t flex_int8_t; | ||||
| typedef uint8_t flex_uint8_t; | ||||
| typedef int16_t flex_int16_t; | ||||
| typedef uint16_t flex_uint16_t; | ||||
| typedef int32_t flex_int32_t; | ||||
| typedef uint32_t flex_uint32_t; | ||||
| typedef uint64_t flex_uint64_t; | ||||
| #else | ||||
| typedef signed char flex_int8_t; | ||||
| typedef short int flex_int16_t; | ||||
| typedef int flex_int32_t; | ||||
| typedef unsigned char flex_uint8_t;  | ||||
| typedef unsigned short int flex_uint16_t; | ||||
| typedef unsigned int flex_uint32_t; | ||||
| #endif /* ! C99 */ | ||||
|  | ||||
| /* Limits of integral types. */ | ||||
| #ifndef INT8_MIN | ||||
| #define INT8_MIN               (-128) | ||||
| #endif | ||||
| #ifndef INT16_MIN | ||||
| #define INT16_MIN              (-32767-1) | ||||
| #endif | ||||
| #ifndef INT32_MIN | ||||
| #define INT32_MIN              (-2147483647-1) | ||||
| #endif | ||||
| #ifndef INT8_MAX | ||||
| #define INT8_MAX               (127) | ||||
| #endif | ||||
| #ifndef INT16_MAX | ||||
| #define INT16_MAX              (32767) | ||||
| #endif | ||||
| #ifndef INT32_MAX | ||||
| #define INT32_MAX              (2147483647) | ||||
| #endif | ||||
| #ifndef UINT8_MAX | ||||
| #define UINT8_MAX              (255U) | ||||
| #endif | ||||
| #ifndef UINT16_MAX | ||||
| #define UINT16_MAX             (65535U) | ||||
| #endif | ||||
| #ifndef UINT32_MAX | ||||
| #define UINT32_MAX             (4294967295U) | ||||
| #endif | ||||
|  | ||||
| #endif /* ! FLEXINT_H */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|  | ||||
| /* The "const" storage-class-modifier is valid. */ | ||||
| #define YY_USE_CONST | ||||
|  | ||||
| #else	/* ! __cplusplus */ | ||||
|  | ||||
| /* C99 requires __STDC__ to be defined as 1. */ | ||||
| #if defined (__STDC__) | ||||
|  | ||||
| #define YY_USE_CONST | ||||
|  | ||||
| #endif	/* defined (__STDC__) */ | ||||
| #endif	/* ! __cplusplus */ | ||||
|  | ||||
| #ifdef YY_USE_CONST | ||||
| #define yyconst const | ||||
| #else | ||||
| #define yyconst | ||||
| #endif | ||||
|  | ||||
| /* An opaque pointer. */ | ||||
| #ifndef YY_TYPEDEF_YY_SCANNER_T | ||||
| #define YY_TYPEDEF_YY_SCANNER_T | ||||
| typedef void* yyscan_t; | ||||
| #endif | ||||
|  | ||||
| /* For convenience, these vars (plus the bison vars far below) | ||||
|    are macros in the reentrant scanner. */ | ||||
| #define yyin yyg->yyin_r | ||||
| #define yyout yyg->yyout_r | ||||
| #define yyextra yyg->yyextra_r | ||||
| #define yyleng yyg->yyleng_r | ||||
| #define yytext yyg->yytext_r | ||||
| #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) | ||||
| #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) | ||||
| #define yy_flex_debug yyg->yy_flex_debug_r | ||||
|  | ||||
| /* Size of default input buffer. */ | ||||
| #ifndef YY_BUF_SIZE | ||||
| #define YY_BUF_SIZE 16384 | ||||
| #endif | ||||
|  | ||||
| #ifndef YY_TYPEDEF_YY_BUFFER_STATE | ||||
| #define YY_TYPEDEF_YY_BUFFER_STATE | ||||
| typedef struct yy_buffer_state *YY_BUFFER_STATE; | ||||
| #endif | ||||
|  | ||||
| #ifndef YY_TYPEDEF_YY_SIZE_T | ||||
| #define YY_TYPEDEF_YY_SIZE_T | ||||
| typedef size_t yy_size_t; | ||||
| #endif | ||||
|  | ||||
| #ifndef YY_STRUCT_YY_BUFFER_STATE | ||||
| #define YY_STRUCT_YY_BUFFER_STATE | ||||
| struct yy_buffer_state | ||||
| 	{ | ||||
| 	FILE *yy_input_file; | ||||
|  | ||||
| 	char *yy_ch_buf;		/* input buffer */ | ||||
| 	char *yy_buf_pos;		/* current position in input buffer */ | ||||
|  | ||||
| 	/* Size of input buffer in bytes, not including room for EOB | ||||
| 	 * characters. | ||||
| 	 */ | ||||
| 	yy_size_t yy_buf_size; | ||||
|  | ||||
| 	/* Number of characters read into yy_ch_buf, not including EOB | ||||
| 	 * characters. | ||||
| 	 */ | ||||
| 	yy_size_t yy_n_chars; | ||||
|  | ||||
| 	/* Whether we "own" the buffer - i.e., we know we created it, | ||||
| 	 * and can realloc() it to grow it, and should free() it to | ||||
| 	 * delete it. | ||||
| 	 */ | ||||
| 	int yy_is_our_buffer; | ||||
|  | ||||
| 	/* Whether this is an "interactive" input source; if so, and | ||||
| 	 * if we're using stdio for input, then we want to use getc() | ||||
| 	 * instead of fread(), to make sure we stop fetching input after | ||||
| 	 * each newline. | ||||
| 	 */ | ||||
| 	int yy_is_interactive; | ||||
|  | ||||
| 	/* Whether we're considered to be at the beginning of a line. | ||||
| 	 * If so, '^' rules will be active on the next match, otherwise | ||||
| 	 * not. | ||||
| 	 */ | ||||
| 	int yy_at_bol; | ||||
|  | ||||
|     int yy_bs_lineno; /**< The line count. */ | ||||
|     int yy_bs_column; /**< The column count. */ | ||||
|      | ||||
| 	/* Whether to try to fill the input buffer when we reach the | ||||
| 	 * end of it. | ||||
| 	 */ | ||||
| 	int yy_fill_buffer; | ||||
|  | ||||
| 	int yy_buffer_status; | ||||
|  | ||||
| 	}; | ||||
| #endif /* !YY_STRUCT_YY_BUFFER_STATE */ | ||||
|  | ||||
| void linguist_yyrestart (FILE *input_file ,yyscan_t yyscanner ); | ||||
| void linguist_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); | ||||
| YY_BUFFER_STATE linguist_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); | ||||
| void linguist_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); | ||||
| void linguist_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner ); | ||||
| void linguist_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); | ||||
| void linguist_yypop_buffer_state (yyscan_t yyscanner ); | ||||
|  | ||||
| YY_BUFFER_STATE linguist_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); | ||||
| YY_BUFFER_STATE linguist_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); | ||||
| YY_BUFFER_STATE linguist_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); | ||||
|  | ||||
| void *linguist_yyalloc (yy_size_t ,yyscan_t yyscanner ); | ||||
| void *linguist_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); | ||||
| void linguist_yyfree (void * ,yyscan_t yyscanner ); | ||||
|  | ||||
| /* Begin user sect3 */ | ||||
|  | ||||
| #define yytext_ptr yytext_r | ||||
|  | ||||
| #ifdef YY_HEADER_EXPORT_START_CONDITIONS | ||||
| #define INITIAL 0 | ||||
| #define sgml 1 | ||||
| #define c_comment 2 | ||||
| #define xml_comment 3 | ||||
| #define haskell_comment 4 | ||||
| #define ocaml_comment 5 | ||||
| #define python_dcomment 6 | ||||
| #define python_scomment 7 | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #ifndef YY_NO_UNISTD_H | ||||
| /* Special case for "unistd.h", since it is non-ANSI. We include it way | ||||
|  * down here because we want the user's section 1 to have been scanned first. | ||||
|  * The user has a chance to override it with an option. | ||||
|  */ | ||||
| #include <unistd.h> | ||||
| #endif | ||||
|  | ||||
| #define YY_EXTRA_TYPE struct tokenizer_extra * | ||||
|  | ||||
| int linguist_yylex_init (yyscan_t* scanner); | ||||
|  | ||||
| int linguist_yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner); | ||||
|  | ||||
| /* Accessor methods to globals. | ||||
|    These are made visible to non-reentrant scanners for convenience. */ | ||||
|  | ||||
| int linguist_yylex_destroy (yyscan_t yyscanner ); | ||||
|  | ||||
| int linguist_yyget_debug (yyscan_t yyscanner ); | ||||
|  | ||||
| void linguist_yyset_debug (int debug_flag ,yyscan_t yyscanner ); | ||||
|  | ||||
| YY_EXTRA_TYPE linguist_yyget_extra (yyscan_t yyscanner ); | ||||
|  | ||||
| void linguist_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner ); | ||||
|  | ||||
| FILE *linguist_yyget_in (yyscan_t yyscanner ); | ||||
|  | ||||
| void linguist_yyset_in  (FILE * in_str ,yyscan_t yyscanner ); | ||||
|  | ||||
| FILE *linguist_yyget_out (yyscan_t yyscanner ); | ||||
|  | ||||
| void linguist_yyset_out  (FILE * out_str ,yyscan_t yyscanner ); | ||||
|  | ||||
| yy_size_t linguist_yyget_leng (yyscan_t yyscanner ); | ||||
|  | ||||
| char *linguist_yyget_text (yyscan_t yyscanner ); | ||||
|  | ||||
| int linguist_yyget_lineno (yyscan_t yyscanner ); | ||||
|  | ||||
| void linguist_yyset_lineno (int line_number ,yyscan_t yyscanner ); | ||||
|  | ||||
| /* Macros after this point can all be overridden by user definitions in | ||||
|  * section 1. | ||||
|  */ | ||||
|  | ||||
| #ifndef YY_SKIP_YYWRAP | ||||
| #ifdef __cplusplus | ||||
| extern "C" int linguist_yywrap (yyscan_t yyscanner ); | ||||
| #else | ||||
| extern int linguist_yywrap (yyscan_t yyscanner ); | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| #ifndef yytext_ptr | ||||
| static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner); | ||||
| #endif | ||||
|  | ||||
| #ifdef YY_NEED_STRLEN | ||||
| static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); | ||||
| #endif | ||||
|  | ||||
| #ifndef YY_NO_INPUT | ||||
|  | ||||
| #endif | ||||
|  | ||||
| /* Amount of stuff to slurp up with each read. */ | ||||
| #ifndef YY_READ_BUF_SIZE | ||||
| #define YY_READ_BUF_SIZE 8192 | ||||
| #endif | ||||
|  | ||||
| /* Number of entries by which start-condition stack grows. */ | ||||
| #ifndef YY_START_STACK_INCR | ||||
| #define YY_START_STACK_INCR 25 | ||||
| #endif | ||||
|  | ||||
| /* Default declaration of generated scanner - a define so the user can | ||||
|  * easily add parameters. | ||||
|  */ | ||||
| #ifndef YY_DECL | ||||
| #define YY_DECL_IS_OURS 1 | ||||
|  | ||||
| extern int linguist_yylex (yyscan_t yyscanner); | ||||
|  | ||||
| #define YY_DECL int linguist_yylex (yyscan_t yyscanner) | ||||
| #endif /* !YY_DECL */ | ||||
|  | ||||
| /* yy_get_previous_state - get the state just before the EOB char was reached */ | ||||
|  | ||||
| #undef YY_NEW_FILE | ||||
| #undef YY_FLUSH_BUFFER | ||||
| #undef yy_set_bol | ||||
| #undef yy_new_buffer | ||||
| #undef yy_set_interactive | ||||
| #undef YY_DO_BEFORE_ACTION | ||||
|  | ||||
| #ifdef YY_DECL_IS_OURS | ||||
| #undef YY_DECL_IS_OURS | ||||
| #undef YY_DECL | ||||
| #endif | ||||
|  | ||||
| #line 118 "tokenizer.l" | ||||
|  | ||||
|  | ||||
| #line 335 "lex.linguist_yy.h" | ||||
| #undef linguist_yyIN_HEADER | ||||
| #endif /* linguist_yyHEADER_H */ | ||||
							
								
								
									
										75
									
								
								ext/linguist/linguist.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								ext/linguist/linguist.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | ||||
| #include "ruby.h" | ||||
| #include "linguist.h" | ||||
| #include "lex.linguist_yy.h" | ||||
|  | ||||
| // Anything longer is unlikely to be useful. | ||||
| #define MAX_TOKEN_LEN 32 | ||||
|  | ||||
| int linguist_yywrap(yyscan_t yyscanner) { | ||||
| 	return 1; | ||||
| } | ||||
|  | ||||
| static VALUE rb_tokenizer_extract_tokens(VALUE self, VALUE rb_data) { | ||||
| 	YY_BUFFER_STATE buf; | ||||
| 	yyscan_t scanner; | ||||
| 	struct tokenizer_extra extra; | ||||
| 	VALUE ary, s; | ||||
| 	long len; | ||||
| 	int r; | ||||
|  | ||||
| 	Check_Type(rb_data, T_STRING); | ||||
|  | ||||
| 	len = RSTRING_LEN(rb_data); | ||||
| 	if (len > 100000) | ||||
| 		len = 100000; | ||||
|  | ||||
| 	linguist_yylex_init_extra(&extra, &scanner); | ||||
| 	buf = linguist_yy_scan_bytes(RSTRING_PTR(rb_data), (int) len, scanner); | ||||
|  | ||||
| 	ary = rb_ary_new(); | ||||
| 	do { | ||||
| 		extra.type = NO_ACTION; | ||||
| 		extra.token = NULL; | ||||
| 		r = linguist_yylex(scanner); | ||||
| 		switch (extra.type) { | ||||
| 		case NO_ACTION: | ||||
| 			break; | ||||
| 		case REGULAR_TOKEN: | ||||
| 			len = strlen(extra.token); | ||||
| 			if (len <= MAX_TOKEN_LEN) | ||||
| 				rb_ary_push(ary, rb_str_new(extra.token, len)); | ||||
| 			free(extra.token); | ||||
| 			break; | ||||
| 		case SHEBANG_TOKEN: | ||||
| 			len = strlen(extra.token); | ||||
| 			if (len <= MAX_TOKEN_LEN) { | ||||
| 				s = rb_str_new2("SHEBANG#!"); | ||||
| 				rb_str_cat(s, extra.token, len); | ||||
| 				rb_ary_push(ary, s); | ||||
| 			} | ||||
| 			free(extra.token); | ||||
| 			break; | ||||
| 		case SGML_TOKEN: | ||||
| 			len = strlen(extra.token); | ||||
| 			if (len <= MAX_TOKEN_LEN) { | ||||
| 				s = rb_str_new(extra.token, len); | ||||
| 				rb_str_cat2(s, ">"); | ||||
| 				rb_ary_push(ary, s); | ||||
| 			} | ||||
| 			free(extra.token); | ||||
| 			break; | ||||
| 		} | ||||
| 	} while (r); | ||||
|  | ||||
| 	linguist_yy_delete_buffer(buf, scanner); | ||||
| 	linguist_yylex_destroy(scanner); | ||||
|  | ||||
| 	return ary; | ||||
| } | ||||
|  | ||||
| __attribute__((visibility("default"))) void Init_linguist() { | ||||
| 	VALUE rb_mLinguist = rb_define_module("Linguist"); | ||||
| 	VALUE rb_cTokenizer = rb_define_class_under(rb_mLinguist, "Tokenizer", rb_cObject); | ||||
|  | ||||
| 	rb_define_method(rb_cTokenizer, "extract_tokens", rb_tokenizer_extract_tokens, 1); | ||||
| } | ||||
							
								
								
									
										11
									
								
								ext/linguist/linguist.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								ext/linguist/linguist.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| enum tokenizer_type { | ||||
|   NO_ACTION, | ||||
|   REGULAR_TOKEN, | ||||
|   SHEBANG_TOKEN, | ||||
|   SGML_TOKEN, | ||||
| }; | ||||
|  | ||||
| struct tokenizer_extra { | ||||
|   char *token; | ||||
|   enum tokenizer_type type; | ||||
| }; | ||||
							
								
								
									
										119
									
								
								ext/linguist/tokenizer.l
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								ext/linguist/tokenizer.l
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,119 @@ | ||||
| %{ | ||||
|  | ||||
| #include "linguist.h" | ||||
|  | ||||
| #define feed_token(tok, typ) do { \ | ||||
|     yyextra->token = (tok); \ | ||||
|     yyextra->type = (typ); \ | ||||
|   } while (0) | ||||
|  | ||||
| #define eat_until_eol() do { \ | ||||
|     int c; \ | ||||
|     while ((c = input(yyscanner)) != '\n' && c != EOF && c); \ | ||||
|     if (c == EOF || !c) \ | ||||
|       return 0; \ | ||||
|   } while (0) | ||||
|  | ||||
| #define eat_until_unescaped(q) do { \ | ||||
|     int c; \ | ||||
|     while ((c = input(yyscanner)) != EOF && c) { \ | ||||
|       if (c == '\n') \ | ||||
|         break; \ | ||||
|       if (c == '\\') { \ | ||||
|         c = input(yyscanner); \ | ||||
|         if (c == EOF || !c) \ | ||||
|           return 0; \ | ||||
|       } else if (c == q) \ | ||||
|         break; \ | ||||
|     } \ | ||||
|     if (c == EOF || !c) \ | ||||
|       return 0; \ | ||||
|   } while (0) | ||||
|  | ||||
| %} | ||||
|  | ||||
| %option never-interactive yywrap reentrant nounput warn nodefault header-file="lex.linguist_yy.h" extra-type="struct tokenizer_extra *" prefix="linguist_yy" | ||||
| %x sgml c_comment xml_comment haskell_comment ocaml_comment python_dcomment python_scomment | ||||
|  | ||||
| %% | ||||
|  | ||||
| ^#![ \t]*([[:alnum:]_\/]*\/)?env([ \t]+([^ \t=]*=[^ \t]*))*[ \t]+[[:alpha:]_]+ { | ||||
|     const char *off = strrchr(yytext, ' '); | ||||
|     if (!off) | ||||
|       off = yytext; | ||||
|     else | ||||
|       ++off; | ||||
|     feed_token(strdup(off), SHEBANG_TOKEN); | ||||
|     eat_until_eol(); | ||||
|     return 1; | ||||
|   } | ||||
|  | ||||
| ^#![ \t]*[[:alpha:]_\/]+ { | ||||
|     const char *off = strrchr(yytext, '/'); | ||||
|     if (!off) | ||||
|       off = yytext; | ||||
|     else | ||||
|       ++off; | ||||
|     if (strcmp(off, "env") == 0) { | ||||
|       eat_until_eol(); | ||||
|     } else { | ||||
|       feed_token(strdup(off), SHEBANG_TOKEN); | ||||
|       eat_until_eol(); | ||||
|       return 1; | ||||
|     } | ||||
|   } | ||||
|  | ||||
| ^[ \t]*(\/\/|--|\#|%|\")" ".*   { /* nothing */ } | ||||
|  | ||||
| "/*"                              { BEGIN(c_comment); } | ||||
|   /* See below for xml_comment start. */ | ||||
| "{-"                              { BEGIN(haskell_comment); } | ||||
| "(*"                              { BEGIN(ocaml_comment); } | ||||
| "\"\"\""                          { BEGIN(python_dcomment); } | ||||
| "'''"                             { BEGIN(python_scomment); } | ||||
|  | ||||
| <c_comment,xml_comment,haskell_comment,ocaml_comment,python_dcomment,python_scomment>.|\n { /* nothing */ } | ||||
| <c_comment>"*/"                   { BEGIN(INITIAL); } | ||||
| <xml_comment>"-->"                { BEGIN(INITIAL); } | ||||
| <haskell_comment>"-}"             { BEGIN(INITIAL); } | ||||
| <ocaml_comment>"*)"               { BEGIN(INITIAL); } | ||||
| <python_dcomment>"\"\"\""         { BEGIN(INITIAL); } | ||||
| <python_scomment>"'''"            { BEGIN(INITIAL); } | ||||
|  | ||||
| \"\"|''                           { /* nothing */ } | ||||
| \"                                { eat_until_unescaped('"'); } | ||||
| '                                 { eat_until_unescaped('\''); } | ||||
| (0x[0-9a-fA-F]([0-9a-fA-F]|\.)*|[0-9]([0-9]|\.)*)([uU][lL]{0,2}|([eE][-+][0-9]*)?[fFlL]*) { /* nothing */ } | ||||
| \<[[:alnum:]_!./?-]+              { | ||||
|     if (strcmp(yytext, "<!--") == 0) { | ||||
|      BEGIN(xml_comment); | ||||
|     } else { | ||||
|       feed_token(strdup(yytext), SGML_TOKEN); | ||||
|       BEGIN(sgml); | ||||
|       return 1; | ||||
|     } | ||||
|   } | ||||
| <sgml>[[:alnum:]_]+=\"            { feed_token(strndup(yytext, strlen(yytext) - 1), REGULAR_TOKEN); eat_until_unescaped('"'); return 1; } | ||||
| <sgml>[[:alnum:]_]+='             { feed_token(strndup(yytext, strlen(yytext) - 1), REGULAR_TOKEN); eat_until_unescaped('\''); return 1; } | ||||
| <sgml>[[:alnum:]_]+=[[:alnum:]_]* { feed_token(strdup(yytext), REGULAR_TOKEN); *(strchr(yyextra->token, '=') + 1) = 0; return 1; } | ||||
| <sgml>[[:alnum:]_]+               { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; } | ||||
| <sgml>\>                          { BEGIN(INITIAL); } | ||||
| <sgml>.|\n                        { /* nothing */ } | ||||
| ;|\{|\}|\(|\)|\[|\]               { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; } | ||||
| [[:alnum:]_.@#/*]+                { | ||||
|     if (strncmp(yytext, "/*", 2) == 0) { | ||||
|       if (strlen(yytext) >= 4 && strcmp(yytext + strlen(yytext) - 2, "*/") == 0) { | ||||
|         /* nothing */ | ||||
|       } else { | ||||
|         BEGIN(c_comment); | ||||
|       } | ||||
|     } else { | ||||
|       feed_token(strdup(yytext), REGULAR_TOKEN); | ||||
|       return 1; | ||||
|     } | ||||
|   } | ||||
| \<\<?|\+|\-|\*|\/|%|&&?|\|\|?     { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; } | ||||
| .|\n                              { /* nothing */ } | ||||
|  | ||||
| %% | ||||
|  | ||||
| @@ -10,15 +10,17 @@ Gem::Specification.new do |s| | ||||
|   s.homepage = "https://github.com/github/linguist" | ||||
|   s.license  = "MIT" | ||||
|  | ||||
|   s.files = Dir['lib/**/*'] + Dir['grammars/*'] + ['LICENSE'] | ||||
|   s.files = Dir['lib/**/*'] + Dir['ext/**/*'] + Dir['grammars/*'] + ['LICENSE'] | ||||
|   s.executables = ['linguist', 'git-linguist'] | ||||
|   s.extensions = ['ext/linguist/extconf.rb'] | ||||
|  | ||||
|   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' | ||||
|  | ||||
|   s.add_development_dependency 'minitest', '>= 5.0' | ||||
|   s.add_development_dependency 'rake-compiler', '~> 0.9' | ||||
|   s.add_development_dependency 'mocha' | ||||
|   s.add_development_dependency 'plist', '~>3.1' | ||||
|   s.add_development_dependency 'pry' | ||||
|   | ||||
							
								
								
									
										59
									
								
								grammars.yml
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								grammars.yml
									
									
									
									
									
								
							| @@ -1,4 +1,3 @@ | ||||
| --- | ||||
| https://bitbucket.org/Clams/sublimesystemverilog/get/default.tar.gz: | ||||
| - source.systemverilog | ||||
| - source.ucfconstraints | ||||
| @@ -45,8 +44,6 @@ vendor/grammars/Isabelle.tmbundle: | ||||
| - source.isabelle.theory | ||||
| vendor/grammars/JSyntax: | ||||
| - source.j | ||||
| vendor/grammars/Julia.tmbundle: | ||||
| - source.julia | ||||
| vendor/grammars/Lean.tmbundle: | ||||
| - source.lean | ||||
| vendor/grammars/LiveScript.tmbundle: | ||||
| @@ -130,6 +127,9 @@ vendor/grammars/SublimePuppet: | ||||
| - source.puppet | ||||
| vendor/grammars/SublimeXtend: | ||||
| - source.xtend | ||||
| vendor/grammars/Syntax-highlighting-for-PostCSS: | ||||
| - source.css.postcss.sugarss | ||||
| - source.postcss | ||||
| vendor/grammars/TLA: | ||||
| - source.tla | ||||
| vendor/grammars/TXL: | ||||
| @@ -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: | ||||
| @@ -187,6 +192,9 @@ vendor/grammars/atom-language-1c-bsl: | ||||
| vendor/grammars/atom-language-clean: | ||||
| - source.clean | ||||
| - text.restructuredtext.clean | ||||
| vendor/grammars/atom-language-julia: | ||||
| - source.julia | ||||
| - source.julia.console | ||||
| vendor/grammars/atom-language-p4: | ||||
| - source.p4 | ||||
| vendor/grammars/atom-language-perl6: | ||||
| @@ -252,6 +260,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: | ||||
| @@ -333,6 +343,8 @@ vendor/grammars/java.tmbundle: | ||||
| - source.java-properties | ||||
| - text.html.jsp | ||||
| - text.junit-test-report | ||||
| vendor/grammars/javadoc.tmbundle: | ||||
| - text.html.javadoc | ||||
| vendor/grammars/javascript-objective-j.tmbundle: | ||||
| - source.js.objj | ||||
| vendor/grammars/jflex.tmbundle: | ||||
| @@ -350,6 +362,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: | ||||
| @@ -377,9 +391,12 @@ vendor/grammars/language-csound: | ||||
| - source.csound-score | ||||
| vendor/grammars/language-css: | ||||
| - source.css | ||||
| vendor/grammars/language-cwl: | ||||
| - source.cwl | ||||
| vendor/grammars/language-emacs-lisp: | ||||
| - source.emacs.lisp | ||||
| vendor/grammars/language-fontforge: | ||||
| - source.afm | ||||
| - source.fontforge | ||||
| - source.opentype | ||||
| - text.sfd | ||||
| @@ -393,6 +410,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 +418,7 @@ vendor/grammars/language-haskell: | ||||
| - source.cabal | ||||
| - source.haskell | ||||
| - source.hsc2hs | ||||
| - source.hsig | ||||
| - text.tex.latex.haskell | ||||
| vendor/grammars/language-inform7: | ||||
| - source.inform7 | ||||
| @@ -429,8 +448,16 @@ 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 | ||||
| @@ -450,6 +477,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 | ||||
| @@ -476,6 +507,8 @@ vendor/grammars/language-yaml: | ||||
| - source.yaml | ||||
| vendor/grammars/language-yang: | ||||
| - source.yang | ||||
| vendor/grammars/language-yara: | ||||
| - source.yara | ||||
| vendor/grammars/latex.tmbundle: | ||||
| - text.bibtex | ||||
| - text.log.latex | ||||
| @@ -542,7 +575,7 @@ vendor/grammars/opa.tmbundle: | ||||
| - source.opa | ||||
| vendor/grammars/openscad.tmbundle: | ||||
| - source.scad | ||||
| vendor/grammars/oz-tmbundle/Syntaxes/Oz.tmLanguage: | ||||
| vendor/grammars/oz-tmbundle: | ||||
| - source.oz | ||||
| vendor/grammars/parrot: | ||||
| - source.parrot.pir | ||||
| @@ -577,13 +610,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 | ||||
| @@ -609,6 +637,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: | ||||
| @@ -616,6 +646,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: | ||||
| @@ -637,6 +669,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 | ||||
| @@ -662,11 +696,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: | ||||
| @@ -699,6 +728,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: | ||||
|   | ||||
| @@ -275,10 +275,8 @@ module Linguist | ||||
|           # also--importantly--without having to duplicate many (potentially | ||||
|           # large) strings. | ||||
|           begin | ||||
|             encoded_newlines = ["\r\n", "\r", "\n"]. | ||||
|               map { |nl| nl.encode(ruby_encoding, "ASCII-8BIT").force_encoding(data.encoding) } | ||||
|  | ||||
|             data.split(Regexp.union(encoded_newlines), -1) | ||||
|              | ||||
|             data.split(encoded_newlines_re, -1) | ||||
|           rescue Encoding::ConverterNotFoundError | ||||
|             # The data is not splittable in the detected encoding.  Assume it's | ||||
|             # one big line. | ||||
| @@ -289,6 +287,51 @@ module Linguist | ||||
|         end | ||||
|     end | ||||
|  | ||||
|     def encoded_newlines_re | ||||
|       @encoded_newlines_re ||= Regexp.union(["\r\n", "\r", "\n"]. | ||||
|                                               map { |nl| nl.encode(ruby_encoding, "ASCII-8BIT").force_encoding(data.encoding) }) | ||||
|  | ||||
|     end | ||||
|  | ||||
|     def first_lines(n) | ||||
|       return lines[0...n] if defined? @lines | ||||
|       return [] unless viewable? && data | ||||
|  | ||||
|       i, c = 0, 0 | ||||
|       while c < n && j = data.index(encoded_newlines_re, i) | ||||
|         i = j + $&.length | ||||
|         c += 1 | ||||
|       end | ||||
|       data[0...i].split(encoded_newlines_re, -1) | ||||
|     end | ||||
|  | ||||
|     def last_lines(n) | ||||
|       if defined? @lines | ||||
|         if n >= @lines.length | ||||
|           @lines | ||||
|         else | ||||
|           lines[-n..-1] | ||||
|         end | ||||
|       end | ||||
|       return [] unless viewable? && data | ||||
|  | ||||
|       no_eol = true | ||||
|       i, c = data.length, 0 | ||||
|       k = i | ||||
|       while c < n && j = data.rindex(encoded_newlines_re, i - 1) | ||||
|         if c == 0 && j + $&.length == i | ||||
|           no_eol = false | ||||
|           n += 1 | ||||
|         end | ||||
|         i = j | ||||
|         k = j + $&.length | ||||
|         c += 1 | ||||
|       end | ||||
|       r = data[k..-1].split(encoded_newlines_re, -1) | ||||
|       r.pop if !no_eol | ||||
|       r | ||||
|     end | ||||
|  | ||||
|     # Public: Get number of lines of code | ||||
|     # | ||||
|     # Requires Blob#data | ||||
|   | ||||
| @@ -3,6 +3,8 @@ require 'linguist/tokenizer' | ||||
| module Linguist | ||||
|   # Language bayesian classifier. | ||||
|   class Classifier | ||||
|     CLASSIFIER_CONSIDER_BYTES = 50 * 1024 | ||||
|  | ||||
|     # Public: Use the classifier to detect language of the blob. | ||||
|     # | ||||
|     # blob               - An object that quacks like a blob. | ||||
| @@ -17,7 +19,7 @@ module Linguist | ||||
|     # Returns an Array of Language objects, most probable first. | ||||
|     def self.call(blob, possible_languages) | ||||
|       language_names = possible_languages.map(&:name) | ||||
|       classify(Samples.cache, blob.data, language_names).map do |name, _| | ||||
|       classify(Samples.cache, blob.data[0...CLASSIFIER_CONSIDER_BYTES], language_names).map do |name, _| | ||||
|         Language[name] # Return the actual Language objects | ||||
|       end | ||||
|     end | ||||
|   | ||||
| @@ -23,21 +23,21 @@ module Linguist | ||||
|     # | ||||
|     # Returns a String like '100644' | ||||
|     def mode | ||||
|       File.stat(@fullpath).mode.to_s(8) | ||||
|       @mode ||= File.stat(@fullpath).mode.to_s(8) | ||||
|     end | ||||
|  | ||||
|     # Public: Read file contents. | ||||
|     # | ||||
|     # Returns a String. | ||||
|     def data | ||||
|       File.read(@fullpath) | ||||
|       @data ||= File.read(@fullpath) | ||||
|     end | ||||
|  | ||||
|     # Public: Get byte size | ||||
|     # | ||||
|     # Returns an Integer. | ||||
|     def size | ||||
|       File.size(@fullpath) | ||||
|       @size ||= File.size(@fullpath) | ||||
|     end | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -52,6 +52,8 @@ module Linguist | ||||
|     # Return true or false | ||||
|     def generated? | ||||
|       xcode_file? || | ||||
|       cocoapods? || | ||||
|       carthage_build? || | ||||
|       generated_net_designer_file? || | ||||
|       generated_net_specflow_feature_file? || | ||||
|       composer_lock? || | ||||
| @@ -81,7 +83,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? | ||||
| @@ -94,6 +97,20 @@ module Linguist | ||||
|       ['.nib', '.xcworkspacedata', '.xcuserstate'].include?(extname) | ||||
|     end | ||||
|  | ||||
|     # Internal: Is the blob part of Pods/, which contains dependencies not meant for humans in pull requests. | ||||
|     # | ||||
|     # Returns true or false. | ||||
|     def cocoapods? | ||||
|       !!name.match(/(^Pods|\/Pods)\//) | ||||
|     end | ||||
|  | ||||
|     # Internal: Is the blob part of Carthage/Build/, which contains dependencies not meant for humans in pull requests. | ||||
|     # | ||||
|     # Returns true or false. | ||||
|     def carthage_build? | ||||
|       !!name.match(/(^|\/)Carthage\/Build\//) | ||||
|     end | ||||
|  | ||||
|     # Internal: Is the blob minified files? | ||||
|     # | ||||
|     # Consider a file minified if the average line length is | ||||
| @@ -243,7 +260,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 +274,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 +512,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 | ||||
|   | ||||
| @@ -1,6 +1,8 @@ | ||||
| module Linguist | ||||
|   # A collection of simple heuristics that can be used to better analyze languages. | ||||
|   class Heuristics | ||||
|     HEURISTICS_CONSIDER_BYTES = 50 * 1024 | ||||
|  | ||||
|     # Public: Use heuristics to detect language of the blob. | ||||
|     # | ||||
|     # blob               - An object that quacks like a blob. | ||||
| @@ -14,12 +16,11 @@ module Linguist | ||||
|     # | ||||
|     # Returns an Array of languages, or empty if none matched or were inconclusive. | ||||
|     def self.call(blob, candidates) | ||||
|       data = blob.data | ||||
|       data = blob.data[0...HEURISTICS_CONSIDER_BYTES] | ||||
|  | ||||
|       @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 +29,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 +43,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 | ||||
| @@ -66,7 +73,25 @@ module Linguist | ||||
|     end | ||||
|  | ||||
|     # Common heuristics | ||||
|     CPlusPlusRegex = Regexp.union( | ||||
|         /^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>/, | ||||
|         /^\s*template\s*</, | ||||
|         /^[ \t]*try/, | ||||
|         /^[ \t]*catch\s*\(/, | ||||
|         /^[ \t]*(class|(using[ \t]+)?namespace)\s+\w+/, | ||||
|         /^[ \t]*(private|public|protected):$/, | ||||
|         /std::\w+/) | ||||
|     ObjectiveCRegex = /^\s*(@(interface|class|protocol|property|end|synchronised|selector|implementation)\b|#import\s+.+\.h[">])/ | ||||
|     Perl5Regex = /\buse\s+(?:strict\b|v?5\.)/ | ||||
|     Perl6Regex = /^\s*(?:use\s+v6\b|\bmodule\b|\b(?:my\s+)?class\b)/ | ||||
|  | ||||
|     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) | ||||
| @@ -206,8 +231,7 @@ module Linguist | ||||
|     disambiguate ".h" do |data| | ||||
|       if ObjectiveCRegex.match(data) | ||||
|         Language["Objective-C"] | ||||
|       elsif (/^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>/.match(data) || | ||||
|         /^\s*template\s*</.match(data) || /^[ \t]*try/.match(data) || /^[ \t]*catch\s*\(/.match(data) || /^[ \t]*(class|(using[ \t]+)?namespace)\s+\w+/.match(data) || /^[ \t]*(private|public|protected):$/.match(data) || /std::\w+/.match(data)) | ||||
|       elsif CPlusPlusRegex.match(data) | ||||
|         Language["C++"] | ||||
|       end | ||||
|     end | ||||
| @@ -337,31 +361,25 @@ module Linguist | ||||
|     disambiguate ".pl" do |data| | ||||
|       if /^[^#]*:-/.match(data) | ||||
|         Language["Prolog"] | ||||
|       elsif /use strict|use\s+v?5\./.match(data) | ||||
|       elsif Perl5Regex.match(data) | ||||
|         Language["Perl"] | ||||
|       elsif /^(use v6|(my )?class|module)/.match(data) | ||||
|       elsif Perl6Regex.match(data) | ||||
|         Language["Perl 6"] | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     disambiguate ".pm" do |data| | ||||
|       if /^\s*(?:use\s+v6\s*;|(?:\bmy\s+)?class|module)\b/.match(data) | ||||
|       if Perl5Regex.match(data) | ||||
|         Language["Perl"] | ||||
|       elsif Perl6Regex.match(data) | ||||
|         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 | ||||
|  | ||||
|     disambiguate ".pro" do |data| | ||||
|       if /^[^#]+:-/.match(data) | ||||
|       if /^[^\[#]+:-/.match(data) | ||||
|         Language["Prolog"] | ||||
|       elsif data.include?("last_client=") | ||||
|         Language["INI"] | ||||
| @@ -443,12 +461,12 @@ module Linguist | ||||
|     end | ||||
|      | ||||
|     disambiguate ".t" do |data| | ||||
|       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["Perl 6"] | ||||
|       elsif /\buse\s+(?:strict\b|v?5\.)/.match(data) | ||||
|       if Perl5Regex.match(data) | ||||
|         Language["Perl"] | ||||
|       elsif Perl6Regex.match(data) | ||||
|         Language["Perl 6"] | ||||
|       elsif /^\s*%[ \t]+|^\s*var\s+\w+\s*:=\s*\w+/.match(data) | ||||
|         Language["Turing"] | ||||
|       end | ||||
|     end | ||||
|      | ||||
| @@ -461,7 +479,7 @@ module Linguist | ||||
|     end | ||||
|  | ||||
|     disambiguate ".ts" do |data| | ||||
|       if data.include?("<TS") | ||||
|       if /<TS\b/.match(data) | ||||
|         Language["XML"] | ||||
|       else | ||||
|         Language["TypeScript"] | ||||
| @@ -484,5 +502,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,8 +109,8 @@ module Linguist | ||||
|     # | ||||
|     # Returns the Language or nil if none was found. | ||||
|     def self.find_by_name(name) | ||||
|       return nil if name.to_s.empty? | ||||
|       name && (@name_index[name.downcase] || @name_index[name.split(',').first.downcase]) | ||||
|       return nil if !name.is_a?(String) || name.to_s.empty? | ||||
|       name && (@name_index[name.downcase] || @name_index[name.split(',', 2).first.downcase]) | ||||
|     end | ||||
|  | ||||
|     # Public: Look up Language by one of its aliases. | ||||
| @@ -124,8 +124,8 @@ module Linguist | ||||
|     # | ||||
|     # Returns the Language or nil if none was found. | ||||
|     def self.find_by_alias(name) | ||||
|       return nil if name.to_s.empty? | ||||
|       name && (@alias_index[name.downcase] || @alias_index[name.split(',').first.downcase]) | ||||
|       return nil if !name.is_a?(String) || name.to_s.empty? | ||||
|       name && (@alias_index[name.downcase] || @alias_index[name.split(',', 2).first.downcase]) | ||||
|     end | ||||
|  | ||||
|     # Public: Look up Languages by filename. | ||||
| @@ -214,15 +214,12 @@ 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 | ||||
|  | ||||
|       name = name.split(',').first | ||||
|       return nil if name.to_s.empty? | ||||
|  | ||||
|       @index[name.downcase] | ||||
|       @index[name.split(',', 2).first.downcase] | ||||
|     end | ||||
|  | ||||
|     # Public: A List of popular languages | ||||
|   | ||||
| @@ -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: | ||||
| @@ -774,6 +807,19 @@ Common Lisp: | ||||
|   codemirror_mode: commonlisp | ||||
|   codemirror_mime_type: text/x-common-lisp | ||||
|   language_id: 66 | ||||
| Common Workflow Language: | ||||
|   alias: cwl | ||||
|   type: programming | ||||
|   ace_mode: yaml | ||||
|   codemirror_mode: yaml | ||||
|   codemirror_mime_type: text/x-yaml | ||||
|   extensions: | ||||
|   - ".cwl" | ||||
|   interpreters: | ||||
|   - cwl-runner | ||||
|   color: "#B5314C" | ||||
|   tm_scope: source.cwl | ||||
|   language_id: 988547172 | ||||
| Component Pascal: | ||||
|   type: programming | ||||
|   color: "#B0CE4E" | ||||
| @@ -843,7 +889,7 @@ Csound: | ||||
|   - ".orc" | ||||
|   - ".udo" | ||||
|   tm_scope: source.csound | ||||
|   ace_mode: text | ||||
|   ace_mode: csound_orchestra | ||||
|   language_id: 73 | ||||
| Csound Document: | ||||
|   type: programming | ||||
| @@ -852,7 +898,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 +907,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 +1020,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 +1128,7 @@ EQ: | ||||
|   codemirror_mime_type: text/x-csharp | ||||
|   language_id: 96 | ||||
| Eagle: | ||||
|   type: markup | ||||
|   color: "#814C05" | ||||
|   type: data | ||||
|   extensions: | ||||
|   - ".sch" | ||||
|   - ".brd" | ||||
| @@ -1104,6 +1157,15 @@ Ecere Projects: | ||||
|   codemirror_mode: javascript | ||||
|   codemirror_mime_type: application/json | ||||
|   language_id: 98 | ||||
| Edje Data Collection: | ||||
|   type: data | ||||
|   extensions: | ||||
|   - ".edc" | ||||
|   tm_scope: source.json | ||||
|   ace_mode: json | ||||
|   codemirror_mode: javascript | ||||
|   codemirror_mime_type: application/json | ||||
|   language_id: 342840478 | ||||
| Eiffel: | ||||
|   type: programming | ||||
|   color: "#946d57" | ||||
| @@ -1457,6 +1519,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 | ||||
| @@ -1570,6 +1655,7 @@ GraphQL: | ||||
|   type: data | ||||
|   extensions: | ||||
|   - ".graphql" | ||||
|   - ".gql" | ||||
|   tm_scope: source.graphql | ||||
|   ace_mode: text | ||||
|   language_id: 139 | ||||
| @@ -1767,7 +1853,7 @@ Harbour: | ||||
|   language_id: 156 | ||||
| Haskell: | ||||
|   type: programming | ||||
|   color: "#29b544" | ||||
|   color: "#5e5086" | ||||
|   extensions: | ||||
|   - ".hs" | ||||
|   - ".hsc" | ||||
| @@ -1833,6 +1919,8 @@ INI: | ||||
|   - ".prefs" | ||||
|   - ".pro" | ||||
|   - ".properties" | ||||
|   filenames: | ||||
|   - buildozer.spec | ||||
|   tm_scope: source.ini | ||||
|   aliases: | ||||
|   - dosini | ||||
| @@ -1855,6 +1943,7 @@ IRC log: | ||||
|   language_id: 164 | ||||
| Idris: | ||||
|   type: programming | ||||
|   color: "#b30000" | ||||
|   extensions: | ||||
|   - ".idr" | ||||
|   - ".lidr" | ||||
| @@ -2043,6 +2132,7 @@ JavaScript: | ||||
|   - ".jsfl" | ||||
|   - ".jsm" | ||||
|   - ".jss" | ||||
|   - ".mjs" | ||||
|   - ".njs" | ||||
|   - ".pac" | ||||
|   - ".sjs" | ||||
| @@ -2114,15 +2204,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 | ||||
| @@ -2146,9 +2258,9 @@ Kotlin: | ||||
|   language_id: 189 | ||||
| LFE: | ||||
|   type: programming | ||||
|   color: "#4C3023" | ||||
|   extensions: | ||||
|   - ".lfe" | ||||
|   group: Erlang | ||||
|   tm_scope: source.lisp | ||||
|   ace_mode: lisp | ||||
|   codemirror_mode: commonlisp | ||||
| @@ -2557,7 +2669,7 @@ Mathematica: | ||||
|   language_id: 224 | ||||
| Matlab: | ||||
|   type: programming | ||||
|   color: "#bb92ac" | ||||
|   color: "#e16737" | ||||
|   aliases: | ||||
|   - octave | ||||
|   extensions: | ||||
| @@ -2684,6 +2796,7 @@ Monkey: | ||||
|   type: programming | ||||
|   extensions: | ||||
|   - ".monkey" | ||||
|   - ".monkey2" | ||||
|   ace_mode: text | ||||
|   tm_scope: source.monkey | ||||
|   language_id: 236 | ||||
| @@ -2733,6 +2846,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" | ||||
| @@ -2784,7 +2906,7 @@ NewLisp: | ||||
|   codemirror_mime_type: text/x-common-lisp | ||||
|   language_id: 247 | ||||
| Nginx: | ||||
|   type: markup | ||||
|   type: data | ||||
|   extensions: | ||||
|   - ".nginxconf" | ||||
|   - ".vhost" | ||||
| @@ -2796,7 +2918,6 @@ Nginx: | ||||
|   ace_mode: text | ||||
|   codemirror_mode: nginx | ||||
|   codemirror_mime_type: text/x-nginx-conf | ||||
|   color: "#9469E9" | ||||
|   language_id: 248 | ||||
| Nim: | ||||
|   type: programming | ||||
| @@ -2971,6 +3092,7 @@ OpenEdge ABL: | ||||
|   extensions: | ||||
|   - ".p" | ||||
|   - ".cls" | ||||
|   - ".w" | ||||
|   tm_scope: source.abl | ||||
|   ace_mode: text | ||||
|   language_id: 264 | ||||
| @@ -3214,7 +3336,6 @@ Perl: | ||||
|   - ".ph" | ||||
|   - ".plx" | ||||
|   - ".pm" | ||||
|   - ".pod" | ||||
|   - ".psgi" | ||||
|   - ".t" | ||||
|   filenames: | ||||
| @@ -3300,6 +3421,8 @@ Pod: | ||||
|   wrap: true | ||||
|   extensions: | ||||
|   - ".pod" | ||||
|   interpreters: | ||||
|   - perl | ||||
|   tm_scope: none | ||||
|   language_id: 288 | ||||
| PogoScript: | ||||
| @@ -3317,12 +3440,21 @@ Pony: | ||||
|   tm_scope: source.pony | ||||
|   ace_mode: text | ||||
|   language_id: 290 | ||||
| PostCSS: | ||||
|   type: markup | ||||
|   tm_scope: source.postcss | ||||
|   group: CSS | ||||
|   extensions: | ||||
|   - ".pcss" | ||||
|   ace_mode: text | ||||
|   language_id: 262764437 | ||||
| PostScript: | ||||
|   type: markup | ||||
|   color: "#da291c" | ||||
|   extensions: | ||||
|   - ".ps" | ||||
|   - ".eps" | ||||
|   - ".pfa" | ||||
|   tm_scope: source.postscript | ||||
|   aliases: | ||||
|   - postscr | ||||
| @@ -3382,7 +3514,7 @@ Propeller Spin: | ||||
|   ace_mode: text | ||||
|   language_id: 296 | ||||
| Protocol Buffer: | ||||
|   type: markup | ||||
|   type: data | ||||
|   aliases: | ||||
|   - protobuf | ||||
|   - Protocol Buffers | ||||
| @@ -3427,8 +3559,7 @@ Puppet: | ||||
|   tm_scope: source.puppet | ||||
|   language_id: 299 | ||||
| Pure Data: | ||||
|   type: programming | ||||
|   color: "#91de79" | ||||
|   type: data | ||||
|   extensions: | ||||
|   - ".pd" | ||||
|   tm_scope: none | ||||
| @@ -3482,6 +3613,7 @@ Python: | ||||
|   - ".gclient" | ||||
|   - BUCK | ||||
|   - BUILD | ||||
|   - BUILD.bazel | ||||
|   - SConscript | ||||
|   - SConstruct | ||||
|   - Snakefile | ||||
| @@ -3752,10 +3884,10 @@ Ring: | ||||
|   type: programming | ||||
|   color: "#0e60e3" | ||||
|   extensions: | ||||
|   - .ring | ||||
|   - ".ring" | ||||
|   tm_scope: source.ring | ||||
|   ace_mode: text | ||||
|   language_id: 431   | ||||
|   language_id: 431 | ||||
| RobotFramework: | ||||
|   type: programming | ||||
|   extensions: | ||||
| @@ -4056,6 +4188,7 @@ Scheme: | ||||
|   color: "#1e4aec" | ||||
|   extensions: | ||||
|   - ".scm" | ||||
|   - ".sch" | ||||
|   - ".sld" | ||||
|   - ".sls" | ||||
|   - ".sps" | ||||
| @@ -4302,6 +4435,14 @@ Sublime Text Config: | ||||
|   - ".sublime_metrics" | ||||
|   - ".sublime_session" | ||||
|   language_id: 423 | ||||
| SugarSS: | ||||
|   type: markup | ||||
|   tm_scope: source.css.postcss.sugarss | ||||
|   group: CSS | ||||
|   extensions: | ||||
|   - ".sss" | ||||
|   ace_mode: text | ||||
|   language_id: 826404698 | ||||
| SuperCollider: | ||||
|   type: programming | ||||
|   color: "#46390b" | ||||
| @@ -4599,8 +4740,8 @@ UrWeb: | ||||
|   ace_mode: text | ||||
|   language_id: 383 | ||||
| VCL: | ||||
|   group: Perl | ||||
|   type: programming | ||||
|   color: "#0298c3" | ||||
|   extensions: | ||||
|   - ".vcl" | ||||
|   tm_scope: source.varnish.vcl | ||||
| @@ -4712,8 +4853,7 @@ Wavefront Object: | ||||
|   ace_mode: text | ||||
|   language_id: 393 | ||||
| Web Ontology Language: | ||||
|   type: markup | ||||
|   color: "#9cc9dd" | ||||
|   type: data | ||||
|   extensions: | ||||
|   - ".owl" | ||||
|   tm_scope: text.xml | ||||
| @@ -4794,12 +4934,16 @@ XML: | ||||
|   - ".ant" | ||||
|   - ".axml" | ||||
|   - ".builds" | ||||
|   - ".ccproj" | ||||
|   - ".ccxml" | ||||
|   - ".clixml" | ||||
|   - ".cproject" | ||||
|   - ".cscfg" | ||||
|   - ".csdef" | ||||
|   - ".csl" | ||||
|   - ".csproj" | ||||
|   - ".ct" | ||||
|   - ".depproj" | ||||
|   - ".dita" | ||||
|   - ".ditamap" | ||||
|   - ".ditaval" | ||||
| @@ -4822,6 +4966,8 @@ XML: | ||||
|   - ".mm" | ||||
|   - ".mod" | ||||
|   - ".mxml" | ||||
|   - ".natvis" | ||||
|   - ".ndproj" | ||||
|   - ".nproj" | ||||
|   - ".nuspec" | ||||
|   - ".odd" | ||||
| @@ -4829,6 +4975,7 @@ XML: | ||||
|   - ".pkgproj" | ||||
|   - ".plist" | ||||
|   - ".pluginspec" | ||||
|   - ".proj" | ||||
|   - ".props" | ||||
|   - ".ps1xml" | ||||
|   - ".psc1" | ||||
| @@ -4839,6 +4986,7 @@ XML: | ||||
|   - ".sch" | ||||
|   - ".scxml" | ||||
|   - ".sfproj" | ||||
|   - ".shproj" | ||||
|   - ".srdf" | ||||
|   - ".storyboard" | ||||
|   - ".stTheme" | ||||
| @@ -4891,12 +5039,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 | ||||
| @@ -4981,6 +5137,7 @@ YAML: | ||||
|   - ".yml.mysql" | ||||
|   filenames: | ||||
|   - ".clang-format" | ||||
|   - ".clang-tidy" | ||||
|   ace_mode: yaml | ||||
|   codemirror_mode: yaml | ||||
|   codemirror_mime_type: text/x-yaml | ||||
| @@ -4992,6 +5149,14 @@ YANG: | ||||
|   tm_scope: source.yang | ||||
|   ace_mode: text | ||||
|   language_id: 408 | ||||
| YARA: | ||||
|   type: data | ||||
|   ace_mode: text | ||||
|   extensions: | ||||
|   - ".yar" | ||||
|   - ".yara" | ||||
|   tm_scope: source.yara | ||||
|   language_id: 805122868 | ||||
| Yacc: | ||||
|   type: programming | ||||
|   extensions: | ||||
| @@ -5090,6 +5255,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 | ||||
|   | ||||
| @@ -109,8 +109,8 @@ module Linguist | ||||
|       # Returns an Array with one Language if the blob has a Vim or Emacs modeline | ||||
|       # that matches a Language name or alias. Returns an empty array if no match. | ||||
|       def self.call(blob, _ = nil) | ||||
|         header = blob.lines.first(SEARCH_SCOPE).join("\n") | ||||
|         footer = blob.lines.last(SEARCH_SCOPE).join("\n") | ||||
|         header = blob.first_lines(SEARCH_SCOPE).join("\n") | ||||
|         footer = blob.last_lines(SEARCH_SCOPE).join("\n") | ||||
|         Array(Language.find_by_alias(modeline(header + footer))) | ||||
|       end | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| require 'strscan' | ||||
| require 'linguist/linguist' | ||||
|  | ||||
| module Linguist | ||||
|   # Generic programming language tokenizer. | ||||
| @@ -15,191 +16,5 @@ module Linguist | ||||
|     def self.tokenize(data) | ||||
|       new.extract_tokens(data) | ||||
|     end | ||||
|  | ||||
|     # Read up to 100KB | ||||
|     BYTE_LIMIT = 100_000 | ||||
|  | ||||
|     # Start state on token, ignore anything till the next newline | ||||
|     SINGLE_LINE_COMMENTS = [ | ||||
|       '//', # C | ||||
|       '--', # Ada, Haskell, AppleScript | ||||
|       '#',  # Ruby | ||||
|       '%',  # Tex | ||||
|       '"',  # Vim | ||||
|     ] | ||||
|  | ||||
|     # Start state on opening token, ignore anything until the closing | ||||
|     # token is reached. | ||||
|     MULTI_LINE_COMMENTS = [ | ||||
|       ['/*', '*/'],    # C | ||||
|       ['<!--', '-->'], # XML | ||||
|       ['{-', '-}'],    # Haskell | ||||
|       ['(*', '*)'],    # Coq | ||||
|       ['"""', '"""'],  # Python | ||||
|       ["'''", "'''"]   # Python | ||||
|     ] | ||||
|  | ||||
|     START_SINGLE_LINE_COMMENT =  Regexp.compile(SINGLE_LINE_COMMENTS.map { |c| | ||||
|       "\s*#{Regexp.escape(c)} " | ||||
|     }.join("|")) | ||||
|  | ||||
|     START_MULTI_LINE_COMMENT =  Regexp.compile(MULTI_LINE_COMMENTS.map { |c| | ||||
|       Regexp.escape(c[0]) | ||||
|     }.join("|")) | ||||
|  | ||||
|     # Internal: Extract generic tokens from data. | ||||
|     # | ||||
|     # data - String to scan. | ||||
|     # | ||||
|     # Examples | ||||
|     # | ||||
|     #   extract_tokens("printf('Hello')") | ||||
|     #   # => ['printf', '(', ')'] | ||||
|     # | ||||
|     # Returns Array of token Strings. | ||||
|     def extract_tokens(data) | ||||
|       s = StringScanner.new(data) | ||||
|  | ||||
|       tokens = [] | ||||
|       until s.eos? | ||||
|         break if s.pos >= BYTE_LIMIT | ||||
|  | ||||
|         if token = s.scan(/^#!.+$/) | ||||
|           if name = extract_shebang(token) | ||||
|             tokens << "SHEBANG#!#{name}" | ||||
|           end | ||||
|  | ||||
|         # Single line comment | ||||
|         elsif s.beginning_of_line? && token = s.scan(START_SINGLE_LINE_COMMENT) | ||||
|           # tokens << token.strip | ||||
|           s.skip_until(/\n|\Z/) | ||||
|  | ||||
|         # Multiline comments | ||||
|         elsif token = s.scan(START_MULTI_LINE_COMMENT) | ||||
|           # tokens << token | ||||
|           close_token = MULTI_LINE_COMMENTS.assoc(token)[1] | ||||
|           s.skip_until(Regexp.compile(Regexp.escape(close_token))) | ||||
|           # tokens << close_token | ||||
|  | ||||
|         # Skip single or double quoted strings | ||||
|         elsif s.scan(/"/) | ||||
|           if s.peek(1) == "\"" | ||||
|             s.getch | ||||
|           else | ||||
|             s.skip_until(/(?<!\\)"/) | ||||
|           end | ||||
|         elsif s.scan(/'/) | ||||
|           if s.peek(1) == "'" | ||||
|             s.getch | ||||
|           else | ||||
|             s.skip_until(/(?<!\\)'/) | ||||
|           end | ||||
|  | ||||
|         # Skip number literals | ||||
|         elsif s.scan(/(0x\h(\h|\.)*|\d(\d|\.)*)([uU][lL]{0,2}|([eE][-+]\d*)?[fFlL]*)/) | ||||
|  | ||||
|         # SGML style brackets | ||||
|         elsif token = s.scan(/<[^\s<>][^<>]*>/) | ||||
|           extract_sgml_tokens(token).each { |t| tokens << t } | ||||
|  | ||||
|         # Common programming punctuation | ||||
|         elsif token = s.scan(/;|\{|\}|\(|\)|\[|\]/) | ||||
|           tokens << token | ||||
|  | ||||
|         # Regular token | ||||
|         elsif token = s.scan(/[\w\.@#\/\*]+/) | ||||
|           tokens << token | ||||
|  | ||||
|         # Common operators | ||||
|         elsif token = s.scan(/<<?|\+|\-|\*|\/|%|&&?|\|\|?/) | ||||
|           tokens << token | ||||
|  | ||||
|         else | ||||
|           s.getch | ||||
|         end | ||||
|       end | ||||
|  | ||||
|       tokens | ||||
|     end | ||||
|  | ||||
|     # Internal: Extract normalized shebang command token. | ||||
|     # | ||||
|     # Examples | ||||
|     # | ||||
|     #   extract_shebang("#!/usr/bin/ruby") | ||||
|     #   # => "ruby" | ||||
|     # | ||||
|     #   extract_shebang("#!/usr/bin/env node") | ||||
|     #   # => "node" | ||||
|     # | ||||
|     #   extract_shebang("#!/usr/bin/env A=B foo=bar awk -f") | ||||
|     #   # => "awk" | ||||
|     # | ||||
|     # Returns String token or nil it couldn't be parsed. | ||||
|     def extract_shebang(data) | ||||
|       s = StringScanner.new(data) | ||||
|  | ||||
|       if path = s.scan(/^#!\s*\S+/) | ||||
|         script = path.split('/').last | ||||
|         if script == 'env' | ||||
|           s.scan(/\s+/) | ||||
|           s.scan(/.*=[^\s]+\s+/) | ||||
|           script = s.scan(/\S+/) | ||||
|         end | ||||
|         script = script[/[^\d]+/, 0] if script | ||||
|         return script | ||||
|       end | ||||
|  | ||||
|       nil | ||||
|     end | ||||
|  | ||||
|     # Internal: Extract tokens from inside SGML tag. | ||||
|     # | ||||
|     # data - SGML tag String. | ||||
|     # | ||||
|     # Examples | ||||
|     # | ||||
|     #   extract_sgml_tokens("<a href='' class=foo>") | ||||
|     #   # => ["<a>", "href="] | ||||
|     # | ||||
|     # Returns Array of token Strings. | ||||
|     def extract_sgml_tokens(data) | ||||
|       s = StringScanner.new(data) | ||||
|  | ||||
|       tokens = [] | ||||
|  | ||||
|       until s.eos? | ||||
|         # Emit start token | ||||
|         if token = s.scan(/<\/?[^\s>]+/) | ||||
|           tokens << "#{token}>" | ||||
|  | ||||
|         # Emit attributes with trailing = | ||||
|         elsif token = s.scan(/\w+=/) | ||||
|           tokens << token | ||||
|  | ||||
|           # Then skip over attribute value | ||||
|           if s.scan(/"/) | ||||
|             s.skip_until(/[^\\]"/) | ||||
|           elsif s.scan(/'/) | ||||
|             s.skip_until(/[^\\]'/) | ||||
|           else | ||||
|             s.skip_until(/\w+/) | ||||
|           end | ||||
|  | ||||
|         # Emit lone attributes | ||||
|         elsif token = s.scan(/\w+/) | ||||
|           tokens << token | ||||
|  | ||||
|         # Stop at the end of the tag | ||||
|         elsif s.scan(/>/) | ||||
|           s.terminate | ||||
|  | ||||
|         else | ||||
|           s.getch | ||||
|         end | ||||
|       end | ||||
|  | ||||
|       tokens | ||||
|     end | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -19,9 +19,7 @@ | ||||
| - (^|/)dist/ | ||||
|  | ||||
| # C deps | ||||
| #  https://github.com/joyent/node | ||||
| - ^deps/ | ||||
| - ^tools/ | ||||
| - (^|/)configure$ | ||||
| - (^|/)config.guess$ | ||||
| - (^|/)config.sub$ | ||||
| @@ -65,6 +63,7 @@ | ||||
|  | ||||
| # Font Awesome | ||||
| - (^|/)font-awesome\.(css|less|scss|styl)$ | ||||
| - (^|/)font-awesome/.*\.(css|less|scss|styl)$ | ||||
|  | ||||
| # Foundation css | ||||
| - (^|/)foundation\.(css|less|scss|styl)$ | ||||
| @@ -81,6 +80,9 @@ | ||||
| # Animate.css | ||||
| - (^|/)animate\.(css|less|scss|styl)$ | ||||
|  | ||||
| # Select2 | ||||
| - (^|/)select2/.*\.(css|scss|js)$ | ||||
|  | ||||
| # Vendored dependencies | ||||
| - third[-_]?party/ | ||||
| - 3rd[-_]?party/ | ||||
| @@ -119,6 +121,15 @@ | ||||
| # jQuery File Upload | ||||
| - (^|/)jquery\.fileupload(-\w+)?\.js$ | ||||
|  | ||||
| # jQuery dataTables | ||||
| - jquery.dataTables.js | ||||
|  | ||||
| # bootboxjs | ||||
| - bootbox.js | ||||
|  | ||||
| # pdf-worker | ||||
| - pdf.worker.js | ||||
|  | ||||
| # Slick | ||||
| - (^|/)slick\.\w+.js$ | ||||
|  | ||||
| @@ -135,6 +146,9 @@ | ||||
| - .sublime-project | ||||
| - .sublime-workspace | ||||
|  | ||||
| # VS Code workspace files | ||||
| - .vscode | ||||
|  | ||||
| # Prototype | ||||
| - (^|/)prototype(.*)\.js$ | ||||
| - (^|/)effects\.js$ | ||||
| @@ -191,6 +205,9 @@ | ||||
| # React | ||||
| - (^|/)react(-[^.]*)?\.js$ | ||||
|  | ||||
| # flow-typed | ||||
| - (^|/)flow-typed/.*\.js$ | ||||
|  | ||||
| # Modernizr | ||||
| - (^|/)modernizr\-\d\.\d+(\.\d+)?\.js$ | ||||
| - (^|/)modernizr\.custom\.\d+\.js$ | ||||
| @@ -224,10 +241,7 @@ | ||||
| - \.imageset/ | ||||
|  | ||||
| # Carthage | ||||
| - ^Carthage/ | ||||
|  | ||||
| # Cocoapods | ||||
| - ^Pods/ | ||||
| - (^|/)Carthage/ | ||||
|  | ||||
| # Sparkle | ||||
| - (^|/)Sparkle/ | ||||
|   | ||||
| @@ -1,3 +1,3 @@ | ||||
| module Linguist | ||||
|   VERSION = "5.1.0" | ||||
|   VERSION = "5.3.3" | ||||
| end | ||||
|   | ||||
| @@ -1,7 +0,0 @@ | ||||
| { | ||||
|   "repository": "https://github.com/github/linguist", | ||||
|   "dependencies": { | ||||
|     "season": "~>5.4" | ||||
|   }, | ||||
|   "license": "MIT" | ||||
| } | ||||
							
								
								
									
										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 | ||||
|  | ||||
							
								
								
									
										36
									
								
								samples/Common Workflow Language/trunk-peak-score.cwl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								samples/Common Workflow Language/trunk-peak-score.cwl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| #!/usr/bin/env cwl-runner | ||||
| # Originally from | ||||
| # https://github.com/Duke-GCB/GGR-cwl/blob/54e897263a702ff1074c8ac814b4bf7205d140dd/utils/trunk-peak-score.cwl | ||||
| # Released under the MIT License: | ||||
| # https://github.com/Duke-GCB/GGR-cwl/blob/54e897263a702ff1074c8ac814b4bf7205d140dd/LICENSE | ||||
| # Converted to CWL v1.0 syntax using | ||||
| # https://github.com/common-workflow-language/cwl-upgrader | ||||
| # and polished by Michael R. Crusoe <mrc@commonwl.org> | ||||
| # All modifications also released under the MIT License | ||||
| cwlVersion: v1.0 | ||||
| class: CommandLineTool | ||||
| doc: Trunk scores in ENCODE bed6+4 files | ||||
|  | ||||
| hints: | ||||
|   DockerRequirement: | ||||
|     dockerPull: dukegcb/workflow-utils | ||||
|  | ||||
| inputs: | ||||
|   peaks: | ||||
|     type: File | ||||
|   sep: | ||||
|     type: string | ||||
|     default: \t | ||||
|  | ||||
| outputs: | ||||
|   trunked_scores_peaks: | ||||
|     type: stdout | ||||
|  | ||||
| baseCommand: awk | ||||
|  | ||||
| arguments: | ||||
| - -F $(inputs.sep) | ||||
| - BEGIN{OFS=FS}$5>1000{$5=1000}{print} | ||||
| - $(inputs.peaks.path) | ||||
|  | ||||
| stdout: $(inputs.peaks.nameroot).trunked_scores$(inputs.peaks.nameext) | ||||
							
								
								
									
										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" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										2061
									
								
								samples/Edje Data Collection/mild.edc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2061
									
								
								samples/Edje Data Collection/mild.edc
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										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? | ||||
| } | ||||
							
								
								
									
										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 | ||||
|  | ||||
							
								
								
									
										2074
									
								
								samples/Perl/feedgnuplot
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2074
									
								
								samples/Perl/feedgnuplot
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										13
									
								
								samples/PostCSS/sample.pcss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								samples/PostCSS/sample.pcss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| @define-mixin size $size { | ||||
|   width: $size; | ||||
| } | ||||
|  | ||||
| $big: 100px; | ||||
|  | ||||
| /* Main block */ | ||||
| .block { | ||||
|   &_logo { | ||||
|     background: inline("./logo.png"); | ||||
|     @mixin size $big; | ||||
|   } | ||||
| } | ||||
							
								
								
									
										78
									
								
								samples/PostScript/lambda.pfa
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								samples/PostScript/lambda.pfa
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| %!PS-AdobeFont-1.0: Greek_Lambda_Character-Regular 020.017 | ||||
| %%Title: Greek_Lambda_Character-Regular | ||||
| %Version: 020.017 | ||||
| %%CreationDate: Sun Jul 23 23:14:02 2017 | ||||
| %%Creator: John Gardner /ThatGuyLinguistWatchersAreSickOf | ||||
| %Copyright: NONE. NADA. PUBLIC DOMAIN, BOI | ||||
| % Generated by FontForge 20170719 (http://fontforge.sf.net/) | ||||
| %%EndComments | ||||
|  | ||||
| 10 dict begin | ||||
| /FontType 1 def | ||||
| /FontMatrix [0.000488281 0 0 0.000488281 0 0 ]readonly def | ||||
| /FontName /Greek_Lambda_Character-Regular def | ||||
| /FontBBox {68 -362 1158 1556 }readonly def | ||||
| /PaintType 0 def | ||||
| /FontInfo 11 dict dup begin | ||||
|  /version (020.017) readonly def | ||||
|  /Notice (NONE. NADA. PUBLIC DOMAIN, BOI) readonly def | ||||
|  /FullName (Greek_Lambda_Character Regular) readonly def | ||||
|  /FamilyName (Greek_Lambda_Character) readonly def | ||||
|  /Weight (Regular) readonly def | ||||
|  /FSType 8 def | ||||
|  /ItalicAngle 0 def | ||||
|  /isFixedPitch false def | ||||
|  /UnderlinePosition -175 def | ||||
|  /UnderlineThickness 90 def | ||||
|  /ascent 1556 def | ||||
| end readonly def | ||||
| /Encoding 256 array | ||||
|  0 1 255 { 1 index exch /.notdef put} for | ||||
| dup 13/uni000D put | ||||
| dup 32/space put | ||||
| readonly def | ||||
| currentdict end | ||||
| currentfile eexec | ||||
| 743F8413F3636CA85A9FFEFB50B4BB27302A5F6C876586CCC1670A7EF5521E6ADE15AAB4 | ||||
| DD2DDDB83735311FC63DB80D2C96AECFA05BB67F865EA35934B4B79A203A8DD489B09C79 | ||||
| FF6EB9DBCFD889C3E73F8C94BC342AF671D6F688870A62EE1A0DF216E150FFEC64A8C2B7 | ||||
| 509AD05C011599C1AD84E6C4B668E07EA219BD72663D8AF4CA8EC8E23AA90DE90BE940C6 | ||||
| 6DB849CEDB3B64961365A7CCE47F4FC9E30FDEE4B14B90C2E0D8C344EBC974EABF417B3D | ||||
| 28251A78ACEE2BFC4212B1E3E9C7EBC3262821EE98E538713C64DF0BC13C19337B1307DE | ||||
| 427F2C8C4FF2126B9FF99DDDFB332AF3EBCD23349171C5C7E66B1C53EF39C35516C0DC7D | ||||
| D6F70D59C28603519559B710C0128C22BA268D330AE02690534939E5B58BAAB00A59B0E6 | ||||
| E515E80A04F2B315A00FB1CA49A4B0259167BBA9852544092955FE0883DBCD89B739AA94 | ||||
| 8C6277B54019E9870B44E5A998F0F2175545F602CC4630E4BE01E35F4CEFDD7D1B737358 | ||||
| 1B2D6F612B23AFAF221AB18CD868E7548EE5064762971F8868940F26134CA7BB40734220 | ||||
| 06EEBE10B5F5251FE36B0E794D8B0D7AC814F4C30BB5A0435C203748B40217BEAF506328 | ||||
| D30E9417382B228FF6DF97A71135B613CC3EF4CDD8276711842C3DB0D31A25883544FFF5 | ||||
| D8719874AD10816F3EB272D5C245440127B9F2967DC46EAF4BED77FF2C2585A355EB586E | ||||
| 09BE8BA3D104EA174EA004DCE00066F7606EEF55376E332566235B8F4283D63E2AE5F2E3 | ||||
| 6A6940BED4FA83C6E82C444B2D790BAA36E641908C61F6409CA09D9723B2F169BE42B166 | ||||
| 5E704AA69D594B2A22C631D030029B772C3C200A0A483A13403E2EF19274B73860FFEA37 | ||||
| 521C65865A79A5429EED01C0F95AB6F66F030BF14CCB42A6DA2435B74135BB5D35EF6DC6 | ||||
| FE48D29690417795B9D7AA2A3D66B7A175F8B6C23AFB5A472343C2DFDCC242C27033DD6F | ||||
| B65B1CD5DC29B9DA455FAAC3A9408BB9B61C2B701741C34CE88EBFF05B7045CBEAC8788E | ||||
| 548F0E642277D4F9AED30A3431070805910970243FD069130D641AFAE28754B1355618B8 | ||||
| 706D163027980F2A76A59E0B9D2FB92BF17943129A8A6FB15CBF6D376C464329E24A118B | ||||
| 8E38987CDD4CD5F214B26D65BEEDB2ECD7502861747089298A653654062A3AD5AC4FC4AF | ||||
| 5DEF7BDD4C5CDBC828A1F12235F68522B45BE0C2D6FB663B51E76BF559815F41C25EC7F8 | ||||
| 17A92B9E139F3E6D27A8512A261EE576459DE603F386516E46B8326574E900101A8D49C9 | ||||
| E8798E734F56C4E2D78B14D6B14E96F3523F3F34464235C96F94609852F90A0A1B51CE14 | ||||
| 25EC76E65E5D1C5D2EEC730FC438F4083A806C67D0A1566D0E6EF70DC38E64DCA44DFA66 | ||||
| 20073E848BDFDB2B793AFE29B47917D87CB8320F48A7C083CAAD2CA20C25D705D78B33D5 | ||||
| A5EAB8C671A57BBC3C896DE54C71B8F860B640B7C30199A2443353E3727FA99C168DB4E8 | ||||
| ABE021B7DDB526E30B2075028BD8D387D32E025E458D05E3A25B9BC94ED54F7A0FCA3D61 | ||||
| 604D2F49A205CBDF5FBDD5D3E1D31C6F7310CC155982689FA1F5723DDAE2EDEB5E69F03C | ||||
| 4CCDBBCB348E57AF222744A07DCCE69236EB29499A87C0A201EDD6A402EA23C035732184 | ||||
| 339049E8C101388304CD20EAA8554A9B6E4F2B126A0593F4401992E73F7BFEF89DE3DFDE | ||||
| DA548E3EE05D5B4EE0D114F916 | ||||
| 0000000000000000000000000000000000000000000000000000000000000000 | ||||
| 0000000000000000000000000000000000000000000000000000000000000000 | ||||
| 0000000000000000000000000000000000000000000000000000000000000000 | ||||
| 0000000000000000000000000000000000000000000000000000000000000000 | ||||
| 0000000000000000000000000000000000000000000000000000000000000000 | ||||
| 0000000000000000000000000000000000000000000000000000000000000000 | ||||
| 0000000000000000000000000000000000000000000000000000000000000000 | ||||
| 0000000000000000000000000000000000000000000000000000000000000000 | ||||
| cleartomark | ||||
							
								
								
									
										784
									
								
								samples/Scheme/sboyer.sch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										784
									
								
								samples/Scheme/sboyer.sch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,784 @@ | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ; File:         sboyer.sch | ||||
| ; Description:  The Boyer benchmark | ||||
| ; Author:       Bob Boyer | ||||
| ; Created:      5-Apr-85 | ||||
| ; Modified:     10-Apr-85 14:52:20 (Bob Shaw) | ||||
| ;               22-Jul-87 (Will Clinger) | ||||
| ;               2-Jul-88 (Will Clinger -- distinguished #f and the empty list) | ||||
| ;               13-Feb-97 (Will Clinger -- fixed bugs in unifier and rules, | ||||
| ;                          rewrote to eliminate property lists, and added | ||||
| ;                          a scaling parameter suggested by Bob Boyer) | ||||
| ;               19-Mar-99 (Will Clinger -- cleaned up comments) | ||||
| ;               4-Apr-01 (Will Clinger -- changed four 1- symbols to sub1) | ||||
| ; Language:     Scheme | ||||
| ; Status:       Public Domain | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
|  | ||||
| ;;; SBOYER -- Logic programming benchmark, originally written by Bob Boyer. | ||||
| ;;; Much less CONS-intensive than NBOYER because it uses Henry Baker's | ||||
| ;;; "sharing cons". | ||||
|  | ||||
| ; Note:  The version of this benchmark that appears in Dick Gabriel's book | ||||
| ; contained several bugs that are corrected here.  These bugs are discussed | ||||
| ; by Henry Baker, "The Boyer Benchmark Meets Linear Logic", ACM SIGPLAN Lisp | ||||
| ; Pointers 6(4), October-December 1993, pages 3-10.  The fixed bugs are: | ||||
| ; | ||||
| ;    The benchmark now returns a boolean result. | ||||
| ;    FALSEP and TRUEP use TERM-MEMBER? rather than MEMV (which is called MEMBER | ||||
| ;         in Common Lisp) | ||||
| ;    ONE-WAY-UNIFY1 now treats numbers correctly | ||||
| ;    ONE-WAY-UNIFY1-LST now treats empty lists correctly | ||||
| ;    Rule 19 has been corrected (this rule was not touched by the original | ||||
| ;         benchmark, but is used by this version) | ||||
| ;    Rules 84 and 101 have been corrected (but these rules are never touched | ||||
| ;         by the benchmark) | ||||
| ; | ||||
| ; According to Baker, these bug fixes make the benchmark 10-25% slower. | ||||
| ; Please do not compare the timings from this benchmark against those of | ||||
| ; the original benchmark. | ||||
| ; | ||||
| ; This version of the benchmark also prints the number of rewrites as a sanity | ||||
| ; check, because it is too easy for a buggy version to return the correct | ||||
| ; boolean result.  The correct number of rewrites is | ||||
| ; | ||||
| ;     n      rewrites       peak live storage (approximate, in bytes) | ||||
| ;     0         95024 | ||||
| ;     1        591777 | ||||
| ;     2       1813975 | ||||
| ;     3       5375678 | ||||
| ;     4      16445406 | ||||
| ;     5      51507739 | ||||
|  | ||||
| ; Sboyer is a 2-phase benchmark. | ||||
| ; The first phase attaches lemmas to symbols.  This phase is not timed, | ||||
| ; but it accounts for very little of the runtime anyway. | ||||
| ; The second phase creates the test problem, and tests to see | ||||
| ; whether it is implied by the lemmas. | ||||
|  | ||||
| (define (sboyer-benchmark . args) | ||||
|   (let ((n (if (null? args) 0 (car args)))) | ||||
|     (setup-boyer) | ||||
|     (run-benchmark (string-append "sboyer" | ||||
|                                   (number->string n)) | ||||
|                    1 | ||||
|                    (lambda () (test-boyer n)) | ||||
|                    (lambda (rewrites) | ||||
|                      (and (number? rewrites) | ||||
|                           (case n | ||||
|                            ((0)  (= rewrites 95024)) | ||||
|                            ((1)  (= rewrites 591777)) | ||||
|                            ((2)  (= rewrites 1813975)) | ||||
|                            ((3)  (= rewrites 5375678)) | ||||
|                            ((4)  (= rewrites 16445406)) | ||||
|                            ((5)  (= rewrites 51507739)) | ||||
|                            ; If it works for n <= 5, assume it works. | ||||
|                            (else #t))))))) | ||||
|  | ||||
| (define (setup-boyer) #t) ; assigned below | ||||
| (define (test-boyer) #t)  ; assigned below | ||||
|  | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ; | ||||
| ; The first phase. | ||||
| ; | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
|  | ||||
| ; In the original benchmark, it stored a list of lemmas on the | ||||
| ; property lists of symbols. | ||||
| ; In the new benchmark, it maintains an association list of | ||||
| ; symbols and symbol-records, and stores the list of lemmas | ||||
| ; within the symbol-records. | ||||
|  | ||||
| (let () | ||||
|    | ||||
|   (define (setup) | ||||
|     (add-lemma-lst | ||||
|      (quote ((equal (compile form) | ||||
|                     (reverse (codegen (optimize form) | ||||
|                                       (nil)))) | ||||
|              (equal (eqp x y) | ||||
|                     (equal (fix x) | ||||
|                            (fix y))) | ||||
|              (equal (greaterp x y) | ||||
|                     (lessp y x)) | ||||
|              (equal (lesseqp x y) | ||||
|                     (not (lessp y x))) | ||||
|              (equal (greatereqp x y) | ||||
|                     (not (lessp x y))) | ||||
|              (equal (boolean x) | ||||
|                     (or (equal x (t)) | ||||
|                         (equal x (f)))) | ||||
|              (equal (iff x y) | ||||
|                     (and (implies x y) | ||||
|                          (implies y x))) | ||||
|              (equal (even1 x) | ||||
|                     (if (zerop x) | ||||
|                         (t) | ||||
|                         (odd (sub1 x)))) | ||||
|              (equal (countps- l pred) | ||||
|                     (countps-loop l pred (zero))) | ||||
|              (equal (fact- i) | ||||
|                     (fact-loop i 1)) | ||||
|              (equal (reverse- x) | ||||
|                     (reverse-loop x (nil))) | ||||
|              (equal (divides x y) | ||||
|                     (zerop (remainder y x))) | ||||
|              (equal (assume-true var alist) | ||||
|                     (cons (cons var (t)) | ||||
|                           alist)) | ||||
|              (equal (assume-false var alist) | ||||
|                     (cons (cons var (f)) | ||||
|                           alist)) | ||||
|              (equal (tautology-checker x) | ||||
|                     (tautologyp (normalize x) | ||||
|                                 (nil))) | ||||
|              (equal (falsify x) | ||||
|                     (falsify1 (normalize x) | ||||
|                               (nil))) | ||||
|              (equal (prime x) | ||||
|                     (and (not (zerop x)) | ||||
|                          (not (equal x (add1 (zero)))) | ||||
|                          (prime1 x (sub1 x)))) | ||||
|              (equal (and p q) | ||||
|                     (if p (if q (t) | ||||
|                                 (f)) | ||||
|                           (f))) | ||||
|              (equal (or p q) | ||||
|                     (if p (t) | ||||
|                           (if q (t) | ||||
|                                 (f)))) | ||||
|              (equal (not p) | ||||
|                     (if p (f) | ||||
|                           (t))) | ||||
|              (equal (implies p q) | ||||
|                     (if p (if q (t) | ||||
|                                 (f)) | ||||
|                           (t))) | ||||
|              (equal (fix x) | ||||
|                     (if (numberp x) | ||||
|                         x | ||||
|                         (zero))) | ||||
|              (equal (if (if a b c) | ||||
|                         d e) | ||||
|                     (if a (if b d e) | ||||
|                           (if c d e))) | ||||
|              (equal (zerop x) | ||||
|                     (or (equal x (zero)) | ||||
|                         (not (numberp x)))) | ||||
|              (equal (plus (plus x y) | ||||
|                           z) | ||||
|                     (plus x (plus y z))) | ||||
|              (equal (equal (plus a b) | ||||
|                            (zero)) | ||||
|                     (and (zerop a) | ||||
|                          (zerop b))) | ||||
|              (equal (difference x x) | ||||
|                     (zero)) | ||||
|              (equal (equal (plus a b) | ||||
|                            (plus a c)) | ||||
|                     (equal (fix b) | ||||
|                            (fix c))) | ||||
|              (equal (equal (zero) | ||||
|                            (difference x y)) | ||||
|                     (not (lessp y x))) | ||||
|              (equal (equal x (difference x y)) | ||||
|                     (and (numberp x) | ||||
|                          (or (equal x (zero)) | ||||
|                              (zerop y)))) | ||||
|              (equal (meaning (plus-tree (append x y)) | ||||
|                              a) | ||||
|                     (plus (meaning (plus-tree x) | ||||
|                                    a) | ||||
|                           (meaning (plus-tree y) | ||||
|                                    a))) | ||||
|              (equal (meaning (plus-tree (plus-fringe x)) | ||||
|                              a) | ||||
|                     (fix (meaning x a))) | ||||
|              (equal (append (append x y) | ||||
|                             z) | ||||
|                     (append x (append y z))) | ||||
|              (equal (reverse (append a b)) | ||||
|                     (append (reverse b) | ||||
|                             (reverse a))) | ||||
|              (equal (times x (plus y z)) | ||||
|                     (plus (times x y) | ||||
|                           (times x z))) | ||||
|              (equal (times (times x y) | ||||
|                            z) | ||||
|                     (times x (times y z))) | ||||
|              (equal (equal (times x y) | ||||
|                            (zero)) | ||||
|                     (or (zerop x) | ||||
|                         (zerop y))) | ||||
|              (equal (exec (append x y) | ||||
|                           pds envrn) | ||||
|                     (exec y (exec x pds envrn) | ||||
|                             envrn)) | ||||
|              (equal (mc-flatten x y) | ||||
|                     (append (flatten x) | ||||
|                             y)) | ||||
|              (equal (member x (append a b)) | ||||
|                     (or (member x a) | ||||
|                         (member x b))) | ||||
|              (equal (member x (reverse y)) | ||||
|                     (member x y)) | ||||
|              (equal (length (reverse x)) | ||||
|                     (length x)) | ||||
|              (equal (member a (intersect b c)) | ||||
|                     (and (member a b) | ||||
|                          (member a c))) | ||||
|              (equal (nth (zero) | ||||
|                          i) | ||||
|                     (zero)) | ||||
|              (equal (exp i (plus j k)) | ||||
|                     (times (exp i j) | ||||
|                            (exp i k))) | ||||
|              (equal (exp i (times j k)) | ||||
|                     (exp (exp i j) | ||||
|                          k)) | ||||
|              (equal (reverse-loop x y) | ||||
|                     (append (reverse x) | ||||
|                             y)) | ||||
|              (equal (reverse-loop x (nil)) | ||||
|                     (reverse x)) | ||||
|              (equal (count-list z (sort-lp x y)) | ||||
|                     (plus (count-list z x) | ||||
|                           (count-list z y))) | ||||
|              (equal (equal (append a b) | ||||
|                            (append a c)) | ||||
|                     (equal b c)) | ||||
|              (equal (plus (remainder x y) | ||||
|                           (times y (quotient x y))) | ||||
|                     (fix x)) | ||||
|              (equal (power-eval (big-plus1 l i base) | ||||
|                                 base) | ||||
|                     (plus (power-eval l base) | ||||
|                           i)) | ||||
|              (equal (power-eval (big-plus x y i base) | ||||
|                                 base) | ||||
|                     (plus i (plus (power-eval x base) | ||||
|                                   (power-eval y base)))) | ||||
|              (equal (remainder y 1) | ||||
|                     (zero)) | ||||
|              (equal (lessp (remainder x y) | ||||
|                            y) | ||||
|                     (not (zerop y))) | ||||
|              (equal (remainder x x) | ||||
|                     (zero)) | ||||
|              (equal (lessp (quotient i j) | ||||
|                            i) | ||||
|                     (and (not (zerop i)) | ||||
|                          (or (zerop j) | ||||
|                              (not (equal j 1))))) | ||||
|              (equal (lessp (remainder x y) | ||||
|                            x) | ||||
|                     (and (not (zerop y)) | ||||
|                          (not (zerop x)) | ||||
|                          (not (lessp x y)))) | ||||
|              (equal (power-eval (power-rep i base) | ||||
|                                 base) | ||||
|                     (fix i)) | ||||
|              (equal (power-eval (big-plus (power-rep i base) | ||||
|                                           (power-rep j base) | ||||
|                                           (zero) | ||||
|                                           base) | ||||
|                                 base) | ||||
|                     (plus i j)) | ||||
|              (equal (gcd x y) | ||||
|                     (gcd y x)) | ||||
|              (equal (nth (append a b) | ||||
|                          i) | ||||
|                     (append (nth a i) | ||||
|                             (nth b (difference i (length a))))) | ||||
|              (equal (difference (plus x y) | ||||
|                                 x) | ||||
|                     (fix y)) | ||||
|              (equal (difference (plus y x) | ||||
|                                 x) | ||||
|                     (fix y)) | ||||
|              (equal (difference (plus x y) | ||||
|                                 (plus x z)) | ||||
|                     (difference y z)) | ||||
|              (equal (times x (difference c w)) | ||||
|                     (difference (times c x) | ||||
|                                 (times w x))) | ||||
|              (equal (remainder (times x z) | ||||
|                                z) | ||||
|                     (zero)) | ||||
|              (equal (difference (plus b (plus a c)) | ||||
|                                 a) | ||||
|                     (plus b c)) | ||||
|              (equal (difference (add1 (plus y z)) | ||||
|                                 z) | ||||
|                     (add1 y)) | ||||
|              (equal (lessp (plus x y) | ||||
|                            (plus x z)) | ||||
|                     (lessp y z)) | ||||
|              (equal (lessp (times x z) | ||||
|                            (times y z)) | ||||
|                     (and (not (zerop z)) | ||||
|                          (lessp x y))) | ||||
|              (equal (lessp y (plus x y)) | ||||
|                     (not (zerop x))) | ||||
|              (equal (gcd (times x z) | ||||
|                          (times y z)) | ||||
|                     (times z (gcd x y))) | ||||
|              (equal (value (normalize x) | ||||
|                            a) | ||||
|                     (value x a)) | ||||
|              (equal (equal (flatten x) | ||||
|                            (cons y (nil))) | ||||
|                     (and (nlistp x) | ||||
|                          (equal x y))) | ||||
|              (equal (listp (gopher x)) | ||||
|                     (listp x)) | ||||
|              (equal (samefringe x y) | ||||
|                     (equal (flatten x) | ||||
|                            (flatten y))) | ||||
|              (equal (equal (greatest-factor x y) | ||||
|                            (zero)) | ||||
|                     (and (or (zerop y) | ||||
|                              (equal y 1)) | ||||
|                          (equal x (zero)))) | ||||
|              (equal (equal (greatest-factor x y) | ||||
|                            1) | ||||
|                     (equal x 1)) | ||||
|              (equal (numberp (greatest-factor x y)) | ||||
|                     (not (and (or (zerop y) | ||||
|                                   (equal y 1)) | ||||
|                               (not (numberp x))))) | ||||
|              (equal (times-list (append x y)) | ||||
|                     (times (times-list x) | ||||
|                            (times-list y))) | ||||
|              (equal (prime-list (append x y)) | ||||
|                     (and (prime-list x) | ||||
|                          (prime-list y))) | ||||
|              (equal (equal z (times w z)) | ||||
|                     (and (numberp z) | ||||
|                          (or (equal z (zero)) | ||||
|                              (equal w 1)))) | ||||
|              (equal (greatereqp x y) | ||||
|                     (not (lessp x y))) | ||||
|              (equal (equal x (times x y)) | ||||
|                     (or (equal x (zero)) | ||||
|                         (and (numberp x) | ||||
|                              (equal y 1)))) | ||||
|              (equal (remainder (times y x) | ||||
|                                y) | ||||
|                     (zero)) | ||||
|              (equal (equal (times a b) | ||||
|                            1) | ||||
|                     (and (not (equal a (zero))) | ||||
|                          (not (equal b (zero))) | ||||
|                          (numberp a) | ||||
|                          (numberp b) | ||||
|                          (equal (sub1 a) | ||||
|                                 (zero)) | ||||
|                          (equal (sub1 b) | ||||
|                                 (zero)))) | ||||
|              (equal (lessp (length (delete x l)) | ||||
|                            (length l)) | ||||
|                     (member x l)) | ||||
|              (equal (sort2 (delete x l)) | ||||
|                     (delete x (sort2 l))) | ||||
|              (equal (dsort x) | ||||
|                     (sort2 x)) | ||||
|              (equal (length (cons x1 | ||||
|                                   (cons x2 | ||||
|                                         (cons x3 (cons x4 | ||||
|                                                        (cons x5 | ||||
|                                                              (cons x6 x7))))))) | ||||
|                     (plus 6 (length x7))) | ||||
|              (equal (difference (add1 (add1 x)) | ||||
|                                 2) | ||||
|                     (fix x)) | ||||
|              (equal (quotient (plus x (plus x y)) | ||||
|                               2) | ||||
|                     (plus x (quotient y 2))) | ||||
|              (equal (sigma (zero) | ||||
|                            i) | ||||
|                     (quotient (times i (add1 i)) | ||||
|                               2)) | ||||
|              (equal (plus x (add1 y)) | ||||
|                     (if (numberp y) | ||||
|                         (add1 (plus x y)) | ||||
|                         (add1 x))) | ||||
|              (equal (equal (difference x y) | ||||
|                            (difference z y)) | ||||
|                     (if (lessp x y) | ||||
|                         (not (lessp y z)) | ||||
|                         (if (lessp z y) | ||||
|                             (not (lessp y x)) | ||||
|                             (equal (fix x) | ||||
|                                    (fix z))))) | ||||
|              (equal (meaning (plus-tree (delete x y)) | ||||
|                              a) | ||||
|                     (if (member x y) | ||||
|                         (difference (meaning (plus-tree y) | ||||
|                                              a) | ||||
|                                     (meaning x a)) | ||||
|                         (meaning (plus-tree y) | ||||
|                                  a))) | ||||
|              (equal (times x (add1 y)) | ||||
|                     (if (numberp y) | ||||
|                         (plus x (times x y)) | ||||
|                         (fix x))) | ||||
|              (equal (nth (nil) | ||||
|                          i) | ||||
|                     (if (zerop i) | ||||
|                         (nil) | ||||
|                         (zero))) | ||||
|              (equal (last (append a b)) | ||||
|                     (if (listp b) | ||||
|                         (last b) | ||||
|                         (if (listp a) | ||||
|                             (cons (car (last a)) | ||||
|                                   b) | ||||
|                             b))) | ||||
|              (equal (equal (lessp x y) | ||||
|                            z) | ||||
|                     (if (lessp x y) | ||||
|                         (equal (t) z) | ||||
|                         (equal (f) z))) | ||||
|              (equal (assignment x (append a b)) | ||||
|                     (if (assignedp x a) | ||||
|                         (assignment x a) | ||||
|                         (assignment x b))) | ||||
|              (equal (car (gopher x)) | ||||
|                     (if (listp x) | ||||
|                         (car (flatten x)) | ||||
|                         (zero))) | ||||
|              (equal (flatten (cdr (gopher x))) | ||||
|                     (if (listp x) | ||||
|                         (cdr (flatten x)) | ||||
|                         (cons (zero) | ||||
|                               (nil)))) | ||||
|              (equal (quotient (times y x) | ||||
|                               y) | ||||
|                     (if (zerop y) | ||||
|                         (zero) | ||||
|                         (fix x))) | ||||
|              (equal (get j (set i val mem)) | ||||
|                     (if (eqp j i) | ||||
|                         val | ||||
|                         (get j mem))))))) | ||||
|    | ||||
|   (define (add-lemma-lst lst) | ||||
|     (cond ((null? lst) | ||||
|            #t) | ||||
|           (else (add-lemma (car lst)) | ||||
|                 (add-lemma-lst (cdr lst))))) | ||||
|    | ||||
|   (define (add-lemma term) | ||||
|     (cond ((and (pair? term) | ||||
|                 (eq? (car term) | ||||
|                      (quote equal)) | ||||
|                 (pair? (cadr term))) | ||||
|            (put (car (cadr term)) | ||||
|                 (quote lemmas) | ||||
|                 (cons | ||||
|                  (translate-term term) | ||||
|                  (get (car (cadr term)) (quote lemmas))))) | ||||
|           (else (error "ADD-LEMMA did not like term:  " term)))) | ||||
|    | ||||
|   ; Translates a term by replacing its constructor symbols by symbol-records. | ||||
|    | ||||
|   (define (translate-term term) | ||||
|     (cond ((not (pair? term)) | ||||
|            term) | ||||
|           (else (cons (symbol->symbol-record (car term)) | ||||
|                       (translate-args (cdr term)))))) | ||||
|    | ||||
|   (define (translate-args lst) | ||||
|     (cond ((null? lst) | ||||
|            '()) | ||||
|           (else (cons (translate-term (car lst)) | ||||
|                       (translate-args (cdr lst)))))) | ||||
|    | ||||
|   ; For debugging only, so the use of MAP does not change | ||||
|   ; the first-order character of the benchmark. | ||||
|    | ||||
|   (define (untranslate-term term) | ||||
|     (cond ((not (pair? term)) | ||||
|            term) | ||||
|           (else (cons (get-name (car term)) | ||||
|                       (map untranslate-term (cdr term)))))) | ||||
|    | ||||
|   ; A symbol-record is represented as a vector with two fields: | ||||
|   ; the symbol (for debugging) and | ||||
|   ; the list of lemmas associated with the symbol. | ||||
|    | ||||
|   (define (put sym property value) | ||||
|     (put-lemmas! (symbol->symbol-record sym) value)) | ||||
|    | ||||
|   (define (get sym property) | ||||
|     (get-lemmas (symbol->symbol-record sym))) | ||||
|    | ||||
|   (define (symbol->symbol-record sym) | ||||
|     (let ((x (assq sym *symbol-records-alist*))) | ||||
|       (if x | ||||
|           (cdr x) | ||||
|           (let ((r (make-symbol-record sym))) | ||||
|             (set! *symbol-records-alist* | ||||
|                   (cons (cons sym r) | ||||
|                         *symbol-records-alist*)) | ||||
|             r)))) | ||||
|    | ||||
|   ; Association list of symbols and symbol-records. | ||||
|    | ||||
|   (define *symbol-records-alist* '()) | ||||
|    | ||||
|   ; A symbol-record is represented as a vector with two fields: | ||||
|   ; the symbol (for debugging) and | ||||
|   ; the list of lemmas associated with the symbol. | ||||
|    | ||||
|   (define (make-symbol-record sym) | ||||
|     (vector sym '())) | ||||
|    | ||||
|   (define (put-lemmas! symbol-record lemmas) | ||||
|     (vector-set! symbol-record 1 lemmas)) | ||||
|    | ||||
|   (define (get-lemmas symbol-record) | ||||
|     (vector-ref symbol-record 1)) | ||||
|    | ||||
|   (define (get-name symbol-record) | ||||
|     (vector-ref symbol-record 0)) | ||||
|    | ||||
|   (define (symbol-record-equal? r1 r2) | ||||
|     (eq? r1 r2)) | ||||
|    | ||||
|   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
|   ; | ||||
|   ; The second phase. | ||||
|   ; | ||||
|   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
|    | ||||
|   (define (test n) | ||||
|     (let ((term | ||||
|            (apply-subst | ||||
|             (translate-alist | ||||
|              (quote ((x f (plus (plus a b) | ||||
|                                 (plus c (zero)))) | ||||
|                      (y f (times (times a b) | ||||
|                                  (plus c d))) | ||||
|                      (z f (reverse (append (append a b) | ||||
|                                            (nil)))) | ||||
|                      (u equal (plus a b) | ||||
|                               (difference x y)) | ||||
|                      (w lessp (remainder a b) | ||||
|                               (member a (length b)))))) | ||||
|             (translate-term | ||||
|              (do ((term | ||||
|                    (quote (implies (and (implies x y) | ||||
|                                         (and (implies y z) | ||||
|                                              (and (implies z u) | ||||
|                                                   (implies u w)))) | ||||
|                                    (implies x w))) | ||||
|                    (list 'or term '(f))) | ||||
|                   (n n (- n 1))) | ||||
|                  ((zero? n) term)))))) | ||||
|     (tautp term))) | ||||
|    | ||||
|   (define (translate-alist alist) | ||||
|     (cond ((null? alist) | ||||
|            '()) | ||||
|           (else (cons (cons (caar alist) | ||||
|                             (translate-term (cdar alist))) | ||||
|                       (translate-alist (cdr alist)))))) | ||||
|    | ||||
|   (define (apply-subst alist term) | ||||
|     (cond ((not (pair? term)) | ||||
|            (let ((temp-temp (assq term alist))) | ||||
|              (if temp-temp | ||||
|                  (cdr temp-temp) | ||||
|                  term))) | ||||
|           (else (cons (car term) | ||||
|                       (apply-subst-lst alist (cdr term)))))) | ||||
|    | ||||
|   (define (apply-subst-lst alist lst) | ||||
|     (cond ((null? lst) | ||||
|            '()) | ||||
|           (else (cons (apply-subst alist (car lst)) | ||||
|                       (apply-subst-lst alist (cdr lst)))))) | ||||
|    | ||||
|   (define (tautp x) | ||||
|     (tautologyp (rewrite x) | ||||
|                 '() '())) | ||||
|    | ||||
|   (define (tautologyp x true-lst false-lst) | ||||
|     (cond ((truep x true-lst) | ||||
|            #t) | ||||
|           ((falsep x false-lst) | ||||
|            #f) | ||||
|           ((not (pair? x)) | ||||
|            #f) | ||||
|           ((eq? (car x) if-constructor) | ||||
|            (cond ((truep (cadr x) | ||||
|                          true-lst) | ||||
|                   (tautologyp (caddr x) | ||||
|                               true-lst false-lst)) | ||||
|                  ((falsep (cadr x) | ||||
|                           false-lst) | ||||
|                   (tautologyp (cadddr x) | ||||
|                               true-lst false-lst)) | ||||
|                  (else (and (tautologyp (caddr x) | ||||
|                                         (cons (cadr x) | ||||
|                                               true-lst) | ||||
|                                         false-lst) | ||||
|                             (tautologyp (cadddr x) | ||||
|                                         true-lst | ||||
|                                         (cons (cadr x) | ||||
|                                               false-lst)))))) | ||||
|           (else #f))) | ||||
|    | ||||
|   (define if-constructor '*) ; becomes (symbol->symbol-record 'if) | ||||
|    | ||||
|   (define rewrite-count 0) ; sanity check | ||||
|    | ||||
|   ; The next procedure is Henry Baker's sharing CONS, which avoids | ||||
|   ; allocation if the result is already in hand. | ||||
|   ; The REWRITE and REWRITE-ARGS procedures have been modified to | ||||
|   ; use SCONS instead of CONS. | ||||
|    | ||||
|   (define (scons x y original) | ||||
|     (if (and (eq? x (car original)) | ||||
|              (eq? y (cdr original))) | ||||
|         original | ||||
|         (cons x y))) | ||||
|    | ||||
|   (define (rewrite term) | ||||
|     (set! rewrite-count (+ rewrite-count 1)) | ||||
|     (cond ((not (pair? term)) | ||||
|            term) | ||||
|           (else (rewrite-with-lemmas (scons (car term) | ||||
|                                             (rewrite-args (cdr term)) | ||||
|                                             term) | ||||
|                                      (get-lemmas (car term)))))) | ||||
|    | ||||
|   (define (rewrite-args lst) | ||||
|     (cond ((null? lst) | ||||
|            '()) | ||||
|           (else (scons (rewrite (car lst)) | ||||
|                        (rewrite-args (cdr lst)) | ||||
|                        lst)))) | ||||
|    | ||||
|   (define (rewrite-with-lemmas term lst) | ||||
|     (cond ((null? lst) | ||||
|            term) | ||||
|           ((one-way-unify term (cadr (car lst))) | ||||
|            (rewrite (apply-subst unify-subst (caddr (car lst))))) | ||||
|           (else (rewrite-with-lemmas term (cdr lst))))) | ||||
|    | ||||
|   (define unify-subst '*) | ||||
|    | ||||
|   (define (one-way-unify term1 term2) | ||||
|     (begin (set! unify-subst '()) | ||||
|            (one-way-unify1 term1 term2))) | ||||
|    | ||||
|   (define (one-way-unify1 term1 term2) | ||||
|     (cond ((not (pair? term2)) | ||||
|            (let ((temp-temp (assq term2 unify-subst))) | ||||
|              (cond (temp-temp | ||||
|                     (term-equal? term1 (cdr temp-temp))) | ||||
|                    ((number? term2)          ; This bug fix makes | ||||
|                     (equal? term1 term2))    ; nboyer 10-25% slower! | ||||
|                    (else | ||||
|                     (set! unify-subst (cons (cons term2 term1) | ||||
|                                             unify-subst)) | ||||
|                     #t)))) | ||||
|           ((not (pair? term1)) | ||||
|            #f) | ||||
|           ((eq? (car term1) | ||||
|                 (car term2)) | ||||
|            (one-way-unify1-lst (cdr term1) | ||||
|                                (cdr term2))) | ||||
|           (else #f))) | ||||
|    | ||||
|   (define (one-way-unify1-lst lst1 lst2) | ||||
|     (cond ((null? lst1) | ||||
|            (null? lst2)) | ||||
|           ((null? lst2) | ||||
|            #f) | ||||
|           ((one-way-unify1 (car lst1) | ||||
|                            (car lst2)) | ||||
|            (one-way-unify1-lst (cdr lst1) | ||||
|                                (cdr lst2))) | ||||
|           (else #f))) | ||||
|    | ||||
|   (define (falsep x lst) | ||||
|     (or (term-equal? x false-term) | ||||
|         (term-member? x lst))) | ||||
|    | ||||
|   (define (truep x lst) | ||||
|     (or (term-equal? x true-term) | ||||
|         (term-member? x lst))) | ||||
|    | ||||
|   (define false-term '*)  ; becomes (translate-term '(f)) | ||||
|   (define true-term '*)   ; becomes (translate-term '(t)) | ||||
|    | ||||
|   ; The next two procedures were in the original benchmark | ||||
|   ; but were never used. | ||||
|    | ||||
|   (define (trans-of-implies n) | ||||
|     (translate-term | ||||
|      (list (quote implies) | ||||
|            (trans-of-implies1 n) | ||||
|            (list (quote implies) | ||||
|                  0 n)))) | ||||
|    | ||||
|   (define (trans-of-implies1 n) | ||||
|     (cond ((equal? n 1) | ||||
|            (list (quote implies) | ||||
|                  0 1)) | ||||
|           (else (list (quote and) | ||||
|                       (list (quote implies) | ||||
|                             (- n 1) | ||||
|                             n) | ||||
|                       (trans-of-implies1 (- n 1)))))) | ||||
|    | ||||
|   ; Translated terms can be circular structures, which can't be | ||||
|   ; compared using Scheme's equal? and member procedures, so we | ||||
|   ; use these instead. | ||||
|    | ||||
|   (define (term-equal? x y) | ||||
|     (cond ((pair? x) | ||||
|            (and (pair? y) | ||||
|                 (symbol-record-equal? (car x) (car y)) | ||||
|                 (term-args-equal? (cdr x) (cdr y)))) | ||||
|           (else (equal? x y)))) | ||||
|    | ||||
|   (define (term-args-equal? lst1 lst2) | ||||
|     (cond ((null? lst1) | ||||
|            (null? lst2)) | ||||
|           ((null? lst2) | ||||
|            #f) | ||||
|           ((term-equal? (car lst1) (car lst2)) | ||||
|            (term-args-equal? (cdr lst1) (cdr lst2))) | ||||
|           (else #f))) | ||||
|    | ||||
|   (define (term-member? x lst) | ||||
|     (cond ((null? lst) | ||||
|            #f) | ||||
|           ((term-equal? x (car lst)) | ||||
|            #t) | ||||
|           (else (term-member? x (cdr lst))))) | ||||
|    | ||||
|   (set! setup-boyer | ||||
|         (lambda () | ||||
|           (set! *symbol-records-alist* '()) | ||||
|           (set! if-constructor (symbol->symbol-record 'if)) | ||||
|           (set! false-term (translate-term '(f))) | ||||
|           (set! true-term  (translate-term '(t))) | ||||
|           (setup))) | ||||
|    | ||||
|   (set! test-boyer | ||||
|         (lambda (n) | ||||
|           (set! rewrite-count 0) | ||||
|           (let ((answer (test n))) | ||||
|             (write rewrite-count) | ||||
|             (display " rewrites") | ||||
|             (newline) | ||||
|             (if answer | ||||
|                 rewrite-count | ||||
|                 #f))))) | ||||
							
								
								
									
										10
									
								
								samples/SugarSS/sample.sss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								samples/SugarSS/sample.sss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| @define-mixin size $size | ||||
|   width: $size | ||||
|  | ||||
| $big: 100px | ||||
|  | ||||
| // Main block | ||||
| .block | ||||
|   &_logo | ||||
|     background: inline("./logo.png") | ||||
|     @mixin size $big | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user