7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-19 14:11:41 +00:00

ADDED: Remove unused pads

This option removes copper layers from pads and vias where they are not
connected to other board elements.  This allows the inner layers to be
more closely routed if the via landing pad is not needed.

Fixes https://gitlab.com/kicad/code/kicad/issues/1835
This commit is contained in:
Seth Hillbrand 2020-07-27 12:41:50 -07:00
parent 2fc266ef02
commit 5fc6b74c89
39 changed files with 3634 additions and 49 deletions

View File

@ -381,6 +381,7 @@ set( BMAPS_MID
pad_enumerate
pad_number
pads_mask_layers
pads_remove
path
pagelayout_load
pagelayout_normal_view_mode
@ -556,6 +557,9 @@ set( BMAPS_BIG
)
set( BMAPS_OTHER
pads_remove_unused
pads_remove_unused_keep_bottom
pads_reset_unused
stroke_dash
stroke_dashdot
stroke_dot

View File

@ -0,0 +1,60 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps_png/bitmaps_list.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x02, 0xb2, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xe5, 0x55, 0x4b, 0x4f, 0x53,
0x61, 0x10, 0xfd, 0x4a, 0x5f, 0x50, 0x62, 0xa9, 0x09, 0x94, 0x10, 0x53, 0x5a, 0x0a, 0xa1, 0xcd,
0xe5, 0xa5, 0x48, 0x4a, 0xe8, 0x8a, 0x94, 0x0d, 0x2c, 0xc4, 0xbd, 0xee, 0xd4, 0x18, 0x11, 0x37,
0xfe, 0x02, 0xfb, 0x14, 0xe4, 0x51, 0x0a, 0xa5, 0x22, 0x09, 0x0d, 0x08, 0x26, 0xec, 0x5c, 0x91,
0xf0, 0x0b, 0x94, 0x8d, 0x61, 0xe1, 0x42, 0x34, 0x08, 0x6e, 0x54, 0x76, 0x4a, 0x43, 0x0b, 0x8d,
0xd0, 0x3b, 0x9e, 0xb9, 0x52, 0x22, 0x55, 0x11, 0x8c, 0x90, 0x28, 0x93, 0x9c, 0xdc, 0xc9, 0x77,
0x67, 0xe6, 0x7c, 0x77, 0xd2, 0x9e, 0x23, 0xc4, 0xaf, 0xc2, 0x2b, 0x24, 0xe0, 0x86, 0xda, 0xab,
0x1e, 0xd3, 0x05, 0x75, 0x0b, 0x5a, 0xbf, 0x76, 0x59, 0xe3, 0xd7, 0x7c, 0x54, 0xfb, 0xd4, 0x9f,
0x19, 0xc8, 0x3f, 0xf0, 0x99, 0x2e, 0xa0, 0x5b, 0xe0, 0x1a, 0xae, 0x55, 0x7a, 0x0e, 0x1d, 0x3e,
0x71, 0x19, 0x03, 0x5e, 0x63, 0x40, 0xb2, 0x6c, 0xb0, 0x2c, 0xe9, 0x8c, 0x39, 0xa9, 0x69, 0xa2,
0x89, 0xdc, 0x53, 0x6e, 0x6a, 0x99, 0x6c, 0xa1, 0xda, 0xf1, 0x5a, 0x92, 0x1e, 0x4a, 0xd4, 0x30,
0xde, 0x40, 0x8d, 0x13, 0x8d, 0x54, 0xf7, 0xa8, 0x8e, 0x2a, 0xa3, 0x95, 0x64, 0xee, 0x37, 0xa7,
0xb4, 0x01, 0x6d, 0x0a, 0x97, 0x58, 0x11, 0x7e, 0x71, 0x13, 0xa4, 0xf6, 0x3d, 0xf4, 0x8a, 0xa2,
0xfd, 0x24, 0x41, 0x71, 0x4e, 0xed, 0x57, 0x6f, 0xba, 0x26, 0x5c, 0xd4, 0x3e, 0xdb, 0x4e, 0x1d,
0xb3, 0x1d, 0x7b, 0xc0, 0xc0, 0x4d, 0x95, 0x57, 0x25, 0x8b, 0x7b, 0x82, 0xd0, 0x7c, 0x54, 0x7c,
0xca, 0x5d, 0x57, 0x3e, 0x88, 0xde, 0x97, 0x0e, 0x94, 0x26, 0x73, 0xc9, 0x9a, 0xe3, 0xcd, 0xb2,
0xb1, 0xc7, 0xb8, 0x91, 0xe7, 0xcb, 0x93, 0x55, 0x3e, 0x15, 0x23, 0x83, 0x95, 0xca, 0x86, 0x90,
0x81, 0xb2, 0xd0, 0x07, 0xf5, 0x84, 0x7e, 0x19, 0x73, 0xb6, 0xb1, 0x99, 0x55, 0x3c, 0x57, 0x80,
0xb7, 0xc0, 0xd3, 0x1f, 0x57, 0x87, 0xcf, 0xc4, 0xb0, 0x6e, 0xac, 0x6f, 0x09, 0x5f, 0xb0, 0x6d,
0x08, 0x1a, 0x12, 0xe6, 0x41, 0x73, 0xc2, 0x12, 0xb1, 0x6c, 0xd9, 0x47, 0xec, 0x3b, 0x8e, 0x51,
0x07, 0x55, 0xc7, 0xaa, 0x89, 0x73, 0x4b, 0xd8, 0xb2, 0x65, 0x1e, 0x30, 0x27, 0xf2, 0x83, 0xf9,
0x09, 0xae, 0x45, 0xcf, 0x2b, 0xf4, 0x76, 0x61, 0xb0, 0x51, 0x1c, 0x29, 0x46, 0x84, 0x1e, 0x4d,
0xe7, 0x81, 0x2b, 0xb8, 0x61, 0x97, 0x7d, 0xd8, 0xfe, 0xa0, 0xa8, 0xa7, 0x88, 0x4c, 0xbd, 0x26,
0xb2, 0x45, 0x6c, 0xbd, 0x7c, 0xa6, 0xbc, 0xfb, 0x56, 0xa3, 0x13, 0x7f, 0x2b, 0xd2, 0xe9, 0xb4,
0xdd, 0x3a, 0x64, 0xa5, 0x8a, 0xe1, 0x0a, 0x99, 0x88, 0xac, 0xe2, 0xb8, 0x02, 0xc3, 0x6d, 0x35,
0xb1, 0x1a, 0x92, 0x62, 0x12, 0x71, 0x7e, 0x9c, 0x44, 0xa6, 0x99, 0x97, 0x33, 0x33, 0xc0, 0x13,
0xe4, 0x67, 0x8f, 0x8d, 0xe8, 0xc4, 0x56, 0xf7, 0xff, 0x11, 0x9d, 0xe4, 0x8f, 0xe1, 0xcc, 0xfc,
0xf2, 0x7c, 0x78, 0x6e, 0x79, 0x6e, 0x88, 0xf3, 0x7f, 0x6c, 0x75, 0x5e, 0xe1, 0xc4, 0x3f, 0xff,
0x3a, 0xd4, 0x78, 0x14, 0x4a, 0xfe, 0x1c, 0xf2, 0xf2, 0xc6, 0x39, 0xea, 0x5c, 0x53, 0x88, 0x22,
0x15, 0xe4, 0x88, 0x3a, 0xd6, 0xf8, 0x0c, 0x7a, 0xf7, 0x0c, 0xfa, 0x16, 0x45, 0xfd, 0x35, 0xa5,
0xe7, 0x80, 0x81, 0x46, 0xc8, 0xfa, 0xc5, 0x3d, 0x04, 0xc4, 0x5d, 0x34, 0xae, 0x6a, 0x02, 0x9a,
0xcd, 0xe2, 0xbe, 0xe2, 0x94, 0x6d, 0xd8, 0x46, 0xd2, 0x98, 0x44, 0xf5, 0xe3, 0xf5, 0xd4, 0x36,
0xdd, 0x46, 0x59, 0xa2, 0xce, 0xd9, 0x4e, 0x72, 0x4f, 0xba, 0x15, 0x0b, 0x61, 0x2b, 0x81, 0xa5,
0x6c, 0xc0, 0x26, 0x92, 0xac, 0x77, 0xb8, 0xe0, 0xa5, 0x9f, 0x11, 0xbd, 0x3b, 0xac, 0xdc, 0x33,
0x41, 0x96, 0x88, 0x9f, 0x55, 0xd1, 0xaa, 0xf4, 0xf7, 0x56, 0xc2, 0x6a, 0xcf, 0xc4, 0x6c, 0x35,
0x22, 0x24, 0xca, 0x72, 0x89, 0xd8, 0x1d, 0x5f, 0xec, 0x62, 0x11, 0x2a, 0xfc, 0x05, 0xb7, 0xca,
0x14, 0x86, 0x0a, 0x09, 0xb6, 0x40, 0x2c, 0xa2, 0x0c, 0xd8, 0x80, 0x5c, 0x10, 0x2a, 0xd8, 0xf1,
0x3c, 0xf6, 0x64, 0x3c, 0x53, 0x9e, 0x4c, 0x49, 0x7f, 0x49, 0xaa, 0x75, 0xba, 0x75, 0x1f, 0x89,
0x2b, 0xee, 0x22, 0xb6, 0x18, 0xb6, 0x1a, 0x45, 0x90, 0x0f, 0x0c, 0xb6, 0x09, 0x7f, 0xde, 0x1d,
0x76, 0x59, 0xc5, 0x26, 0xee, 0x1b, 0xd6, 0xd1, 0x9c, 0x28, 0x8f, 0x94, 0xb3, 0x4d, 0x64, 0x1c,
0x31, 0x07, 0x31, 0x38, 0xe7, 0x33, 0xb6, 0x10, 0x5c, 0x62, 0x7d, 0xd7, 0x26, 0x96, 0xd0, 0x7b,
0xfb, 0xcf, 0x6c, 0xc2, 0x2f, 0x2e, 0x60, 0xe7, 0x57, 0x81, 0x6e, 0x6b, 0xd8, 0xda, 0x97, 0x63,
0x13, 0xdd, 0xca, 0x3b, 0xae, 0xf9, 0xed, 0x17, 0x9c, 0x76, 0x09, 0xd2, 0xc7, 0x17, 0xe3, 0xb7,
0x18, 0x9c, 0x8b, 0x53, 0x1d, 0x5f, 0x01, 0xf4, 0xbb, 0xc2, 0x3a, 0x41, 0xf8, 0xc5, 0xf2, 0x00,
0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE pads_remove_xpm[1] = {{ png, sizeof( png ), "pads_remove_xpm" }};
//EOF

View File

@ -0,0 +1,174 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps_png/bitmaps_list.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x96, 0x08, 0x06, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x71,
0xe2, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x55, 0x2d, 0x00, 0x00, 0x55,
0x2d, 0x01, 0x6a, 0xe7, 0x70, 0xe8, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f,
0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x00, 0x52, 0x74,
0x45, 0x58, 0x74, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x00, 0x43, 0x43, 0x20,
0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x41, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
0x65, 0x61, 0x74, 0x69, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x62, 0x79, 0x2d, 0x73, 0x61,
0x2f, 0x34, 0x2e, 0x30, 0x2f, 0xc3, 0x54, 0x62, 0x05, 0x00, 0x00, 0x09, 0x31, 0x49, 0x44, 0x41,
0x54, 0x78, 0x9c, 0xed, 0xdd, 0x7d, 0x8c, 0x1c, 0x75, 0x1d, 0xc7, 0xf1, 0xf7, 0x6f, 0xf6, 0xe1,
0x7a, 0xcf, 0xbd, 0x72, 0xd4, 0x52, 0xb0, 0x14, 0xaf, 0x0f, 0x16, 0xc1, 0xb4, 0x8a, 0x7d, 0x10,
0x1a, 0x9b, 0x88, 0xf8, 0x47, 0xd3, 0x14, 0x2d, 0x0f, 0x41, 0x34, 0x20, 0x31, 0x6a, 0x62, 0xd0,
0x40, 0x43, 0x78, 0xb0, 0x25, 0x63, 0x4b, 0x72, 0x1a, 0xff, 0x20, 0xa9, 0x8d, 0x06, 0xf9, 0x43,
0x4c, 0x20, 0xa0, 0x92, 0x00, 0x06, 0x48, 0x11, 0x42, 0x1a, 0xb1, 0x55, 0x8f, 0x5a, 0x1a, 0x44,
0x4b, 0x6b, 0x4f, 0xe8, 0x95, 0x87, 0x4b, 0x7b, 0x57, 0x5a, 0xae, 0x77, 0x7b, 0xb7, 0x7b, 0x3b,
0x3f, 0xff, 0xd8, 0x23, 0x1c, 0xbb, 0x53, 0x6f, 0x9f, 0x86, 0xd9, 0xd9, 0xfd, 0xbc, 0x92, 0xfd,
0xe3, 0x6e, 0x27, 0xb3, 0xdf, 0x9d, 0x7c, 0x66, 0xe6, 0xb7, 0x33, 0xbf, 0xdf, 0x6f, 0x40, 0x44,
0x44, 0x44, 0x44, 0x44, 0x44, 0x1a, 0x97, 0x09, 0xbb, 0x80, 0x9a, 0xf2, 0x00, 0x09, 0x86, 0xe8,
0x26, 0x4b, 0x37, 0x90, 0xc4, 0xa3, 0x09, 0x68, 0x99, 0x7a, 0xb7, 0x0d, 0x83, 0xc5, 0x32, 0x0a,
0x80, 0x43, 0x0a, 0x18, 0x07, 0xd2, 0xc4, 0x18, 0xa2, 0x9b, 0x21, 0xbe, 0x47, 0x26, 0x9c, 0xc2,
0x6b, 0x4f, 0x63, 0x05, 0xcb, 0xa5, 0x03, 0xb8, 0x18, 0x43, 0x0f, 0xb0, 0x08, 0x4b, 0x0f, 0xf0,
0x29, 0xe0, 0x5c, 0x60, 0x2e, 0x30, 0xbb, 0xc2, 0x4f, 0x38, 0x05, 0x1c, 0x07, 0x4e, 0x00, 0xfd,
0x40, 0x3f, 0x86, 0x7e, 0x2c, 0xfd, 0x34, 0xf3, 0x2f, 0xee, 0x64, 0xa4, 0xc2, 0xf5, 0x47, 0x46,
0x7d, 0x07, 0x6b, 0x3b, 0xcb, 0xf0, 0x58, 0x87, 0x65, 0x25, 0xb0, 0x12, 0xf8, 0x34, 0xe0, 0x84,
0x54, 0x8d, 0x07, 0x1c, 0x04, 0xfa, 0xa6, 0x5e, 0x2f, 0xe2, 0x72, 0x38, 0xa4, 0x5a, 0x02, 0x57,
0x7f, 0xc1, 0xda, 0xc6, 0x2a, 0x3c, 0x36, 0x01, 0x1b, 0x81, 0x25, 0x61, 0x97, 0x33, 0x83, 0xd7,
0x81, 0xa7, 0x80, 0xc7, 0x71, 0xd9, 0x17, 0x76, 0x31, 0xd5, 0x54, 0x3f, 0xc1, 0x72, 0xb9, 0x12,
0xf8, 0x09, 0xf0, 0xc5, 0xb0, 0x4b, 0x29, 0xd3, 0x21, 0x0c, 0x4f, 0x62, 0xd9, 0x8f, 0xc1, 0x86,
0x5d, 0x4c, 0xd1, 0x2c, 0x29, 0x1c, 0x46, 0x88, 0xf3, 0x1a, 0xf7, 0x30, 0xfc, 0xc1, 0xbf, 0xa3,
0x1f, 0xac, 0xed, 0x2c, 0x25, 0xcb, 0x6f, 0x81, 0x55, 0x61, 0x97, 0xd2, 0xe0, 0x32, 0xc0, 0xe3,
0x24, 0xd8, 0xcc, 0x8f, 0x79, 0x37, 0xda, 0xc1, 0x72, 0x59, 0x0d, 0x3c, 0x07, 0x74, 0x54, 0x75,
0xbd, 0x96, 0x7a, 0xd8, 0xe5, 0xc2, 0xf2, 0x16, 0xf0, 0xa5, 0xe8, 0x6e, 0xbe, 0x5e, 0xba, 0x98,
0xe0, 0x10, 0xb9, 0x5f, 0x74, 0x52, 0x5b, 0xfe, 0x1e, 0xd6, 0x2f, 0xa4, 0xca, 0x4d, 0xb0, 0x19,
0x85, 0xaa, 0x56, 0xad, 0x8a, 0x6e, 0xb0, 0x60, 0x6d, 0xd8, 0x05, 0xc8, 0xd9, 0x45, 0x39, 0x58,
0x73, 0xaa, 0xbe, 0xc6, 0xe8, 0xfc, 0x16, 0xab, 0x79, 0x51, 0x0e, 0xd6, 0xab, 0x55, 0x5f, 0x63,
0x74, 0x5b, 0x9c, 0x35, 0x27, 0xca, 0xc1, 0x7a, 0x30, 0xec, 0x02, 0xe4, 0xec, 0x62, 0x61, 0x17,
0x50, 0xb6, 0xdd, 0xbc, 0xc9, 0x3a, 0xba, 0xc9, 0xdd, 0xaa, 0x91, 0xda, 0xf2, 0x7c, 0x74, 0x83,
0x05, 0xb0, 0x9b, 0x5d, 0xac, 0xa3, 0x19, 0x58, 0x83, 0x4e, 0x64, 0xb5, 0xe2, 0x20, 0x70, 0x75,
0xb4, 0x83, 0x05, 0xb0, 0x9b, 0x17, 0x58, 0xc7, 0x8b, 0xc0, 0x42, 0xe0, 0xa2, 0xaa, 0xae, 0x5b,
0x17, 0x4a, 0x4b, 0x71, 0x1a, 0xf8, 0x15, 0xb3, 0xf8, 0x16, 0x5b, 0x18, 0xae, 0xaf, 0xcd, 0x96,
0xbb, 0x01, 0x7d, 0x1b, 0xb0, 0x1e, 0x68, 0x0b, 0xbb, 0x9c, 0x22, 0x8d, 0x01, 0x7f, 0xc6, 0xe1,
0x11, 0x72, 0x7b, 0x7b, 0xf4, 0x78, 0xa4, 0x38, 0x8f, 0xff, 0x4c, 0xef, 0x8f, 0x56, 0x5f, 0xc1,
0xfa, 0x80, 0xcb, 0x2c, 0x0c, 0x5f, 0xc6, 0xb2, 0x11, 0x58, 0x07, 0x2c, 0x0e, 0xb9, 0xa2, 0xe9,
0x2c, 0x70, 0x18, 0xd8, 0x8d, 0xe1, 0x29, 0xba, 0x78, 0x91, 0x1f, 0x32, 0x11, 0x76, 0x51, 0xd5,
0x56, 0x9f, 0xc1, 0xca, 0xd7, 0x4b, 0x17, 0xe9, 0xa9, 0x3e, 0x59, 0x96, 0xcf, 0x00, 0x8b, 0x80,
0x1e, 0x2a, 0xef, 0xd8, 0x37, 0x93, 0x53, 0xc0, 0x11, 0x72, 0x1d, 0xfe, 0xfe, 0x09, 0xf4, 0x61,
0x79, 0x19, 0x97, 0x53, 0x01, 0x7f, 0x6e, 0xe8, 0x1a, 0x23, 0x58, 0x67, 0xe3, 0xd2, 0x8d, 0x43,
0x0f, 0x96, 0xb9, 0x40, 0x37, 0xd0, 0xbd, 0x61, 0xc9, 0x86, 0xaf, 0x77, 0x36, 0x75, 0xae, 0x7c,
0xf8, 0xd5, 0x87, 0x8b, 0xba, 0x14, 0x73, 0xf3, 0xf2, 0x9b, 0xed, 0xf1, 0x33, 0xc7, 0xff, 0xf2,
0xec, 0x91, 0x67, 0xff, 0x08, 0x0c, 0x4d, 0xbd, 0x8e, 0x93, 0xa4, 0x7f, 0x7a, 0x37, 0x92, 0x46,
0xd3, 0xd8, 0xc1, 0xf2, 0x61, 0xad, 0xdd, 0x36, 0x92, 0x1e, 0xb9, 0xbb, 0xa3, 0xb7, 0x23, 0x5e,
0xcc, 0xf2, 0xe9, 0xad, 0x69, 0x2f, 0xe1, 0x24, 0xb6, 0x18, 0x63, 0x7a, 0x83, 0xae, 0x2d, 0x4a,
0xa2, 0x7c, 0x81, 0x54, 0x6a, 0x98, 0x82, 0x25, 0x81, 0x50, 0xb0, 0xfc, 0x58, 0x35, 0x11, 0x2a,
0xa5, 0x60, 0x15, 0x2a, 0xa9, 0x8f, 0x83, 0xb5, 0x16, 0xd4, 0x56, 0x2d, 0xa0, 0x60, 0x49, 0x20,
0x14, 0x2c, 0x09, 0x84, 0x82, 0xe5, 0xc3, 0x18, 0x9d, 0xd9, 0x2a, 0xa5, 0x60, 0x15, 0x52, 0x1b,
0xab, 0x0a, 0x14, 0x2c, 0x09, 0x84, 0x82, 0x25, 0x81, 0x50, 0xb0, 0x7c, 0x18, 0x9d, 0xd9, 0x2a,
0xa6, 0x60, 0x55, 0xc8, 0xa2, 0x36, 0x96, 0x1f, 0x05, 0x4b, 0x02, 0xa1, 0x60, 0x49, 0x20, 0x14,
0x2c, 0x09, 0x84, 0x82, 0x55, 0xc8, 0x96, 0x71, 0x81, 0x54, 0x6d, 0xac, 0x3c, 0x0a, 0x56, 0xe5,
0x34, 0x30, 0xdf, 0x87, 0x82, 0x25, 0x81, 0x50, 0xb0, 0x0a, 0xd9, 0x44, 0x2c, 0x61, 0xae, 0x58,
0x70, 0x05, 0x6d, 0xc9, 0xb3, 0x8f, 0x20, 0xeb, 0x9a, 0xd5, 0xc5, 0xfa, 0xc5, 0xeb, 0x89, 0x39,
0x31, 0x83, 0x4e, 0x85, 0x05, 0x8a, 0xea, 0xd7, 0xdd, 0x60, 0x0e, 0xc4, 0x4c, 0x6c, 0xfc, 0xa5,
0x6f, 0xbf, 0xd4, 0x02, 0x30, 0x32, 0x31, 0x92, 0x3d, 0x93, 0x39, 0xe3, 0x8d, 0x65, 0xc6, 0x48,
0x67, 0xd3, 0xb4, 0x26, 0x5b, 0x69, 0x4f, 0xb4, 0x9b, 0xd9, 0xcd, 0xb3, 0x63, 0x06, 0x63, 0xb2,
0x5e, 0x36, 0x05, 0x1c, 0x08, 0xb9, 0xe6, 0x9a, 0xa3, 0x3d, 0xcd, 0x87, 0xb5, 0xb6, 0x89, 0xdc,
0xb0, 0xfd, 0x65, 0xc0, 0xf9, 0xc0, 0x2c, 0xa0, 0x7d, 0xea, 0xed, 0x71, 0x20, 0x05, 0x1c, 0x05,
0xf6, 0x00, 0xaf, 0x19, 0x63, 0xbc, 0x30, 0xea, 0x14, 0x69, 0x38, 0x3a, 0x62, 0xe5, 0xb1, 0xd6,
0x2e, 0x07, 0xbe, 0x4f, 0x69, 0xdb, 0xe6, 0x09, 0x63, 0xcc, 0xae, 0x80, 0x4a, 0x8a, 0x24, 0xb5,
0xb1, 0x0a, 0x6d, 0xb2, 0xd8, 0xef, 0x1e, 0x7b, 0xff, 0xd8, 0xe4, 0x4c, 0x0b, 0x8e, 0x4f, 0x8e,
0xdb, 0xc5, 0x5d, 0x8b, 0x93, 0xc6, 0x98, 0x37, 0x00, 0x05, 0x6b, 0x1a, 0x05, 0xcb, 0xc7, 0xc8,
0xc4, 0x48, 0xf6, 0xc2, 0xfb, 0x2f, 0x4c, 0x14, 0xb3, 0x6c, 0x66, 0x6b, 0xc6, 0x8b, 0x1b, 0x6d,
0xc6, 0x7c, 0xba, 0xdc, 0x20, 0x81, 0x50, 0xb0, 0x24, 0x10, 0x0a, 0x96, 0x0f, 0xdd, 0x2b, 0xac,
0x9c, 0x82, 0x55, 0xa8, 0xb4, 0xc1, 0x14, 0xba, 0x55, 0xe8, 0x4b, 0xc1, 0x92, 0x40, 0x28, 0x58,
0x12, 0x08, 0x05, 0xcb, 0x4f, 0xe9, 0x93, 0x82, 0xa8, 0x8d, 0x95, 0x47, 0xc1, 0x2a, 0x54, 0xce,
0x80, 0x55, 0xc9, 0xa3, 0x60, 0x49, 0x20, 0x14, 0x2c, 0x09, 0x84, 0x82, 0xe5, 0x43, 0x93, 0x82,
0x54, 0x4e, 0xc1, 0x2a, 0xa4, 0x49, 0x41, 0xaa, 0x40, 0xc1, 0x92, 0x40, 0x28, 0x58, 0x12, 0x08,
0x05, 0xcb, 0x87, 0x26, 0x05, 0xa9, 0x9c, 0x82, 0x55, 0x21, 0x4d, 0x0a, 0xe2, 0x4f, 0xc1, 0x92,
0x40, 0x28, 0x58, 0x12, 0x08, 0x05, 0xab, 0x50, 0x39, 0x73, 0x37, 0x48, 0x1e, 0x05, 0xab, 0x72,
0x7a, 0x0e, 0xab, 0x0f, 0x05, 0x4b, 0x02, 0xa1, 0x60, 0x49, 0x20, 0x34, 0x6e, 0xa9, 0x90, 0x4d,
0x38, 0x09, 0xe7, 0x96, 0x15, 0xb7, 0x70, 0x60, 0xf0, 0x00, 0x03, 0xa7, 0x07, 0x48, 0x65, 0x52,
0x8c, 0x66, 0x46, 0x01, 0x48, 0x38, 0x09, 0xda, 0x92, 0x6d, 0x2c, 0xed, 0x5e, 0xca, 0x9a, 0x0b,
0xd6, 0x10, 0x77, 0xe2, 0x0e, 0x3a, 0x15, 0xca, 0x4c, 0xac, 0xb5, 0x97, 0xa7, 0xb3, 0xe9, 0x7f,
0x5b, 0x1f, 0x9e, 0xe7, 0x7d, 0xf4, 0x6f, 0xeb, 0x4d, 0x66, 0xbc, 0xcc, 0x7e, 0x6b, 0xed, 0xe5,
0x61, 0xd7, 0x5d, 0x6b, 0xb4, 0xa7, 0x9d, 0x85, 0xb5, 0xf6, 0x3c, 0x72, 0x93, 0x82, 0xcc, 0x03,
0xda, 0x80, 0x0e, 0x20, 0x06, 0xbc, 0x07, 0x4c, 0x00, 0x03, 0x40, 0x9f, 0x31, 0x66, 0x34, 0xb4,
0x22, 0x45, 0x1a, 0x8d, 0x8e, 0x58, 0x79, 0xac, 0xb5, 0x49, 0xe0, 0x12, 0x4a, 0xdb, 0x36, 0x6f,
0x1b, 0x63, 0x06, 0x03, 0x2a, 0x49, 0xea, 0x81, 0xb5, 0xf6, 0x2e, 0xbf, 0xf6, 0xd5, 0x0c, 0xee,
0x0a, 0xbb, 0xee, 0x5a, 0xa3, 0x5f, 0x85, 0x85, 0x5a, 0xc7, 0x32, 0x63, 0xd9, 0x8d, 0x8f, 0x6d,
0x8c, 0x15, 0xb3, 0xf0, 0xae, 0x1b, 0x77, 0xd9, 0x98, 0x53, 0xd4, 0xa2, 0x0d, 0x45, 0xc1, 0xf2,
0x31, 0xe9, 0x4d, 0xda, 0x17, 0xfe, 0xfb, 0x42, 0x51, 0xcb, 0x5a, 0x34, 0x4c, 0xc7, 0x8f, 0x2e,
0x90, 0x4a, 0x20, 0x14, 0x2c, 0x1f, 0xba, 0x09, 0x5d, 0x39, 0x05, 0xab, 0x50, 0x39, 0x93, 0x82,
0x28, 0x89, 0x79, 0x14, 0x2c, 0x09, 0x84, 0x82, 0x25, 0x81, 0x50, 0xb0, 0xfc, 0x94, 0x3e, 0x29,
0x88, 0xe4, 0x51, 0xb0, 0x0a, 0x69, 0xc0, 0x6a, 0x15, 0x28, 0x58, 0x12, 0x08, 0x05, 0x4b, 0x02,
0xa1, 0x60, 0xf9, 0xd0, 0x75, 0xac, 0xca, 0x29, 0x58, 0x85, 0xd4, 0xc6, 0xaa, 0x82, 0xc6, 0xbd,
0x57, 0xe8, 0x32, 0x1f, 0x87, 0x1e, 0x2c, 0x0b, 0x81, 0x6e, 0x2c, 0xdd, 0xc0, 0xb9, 0x0f, 0xec,
0x7b, 0x60, 0xed, 0x0d, 0x97, 0xde, 0x50, 0xf4, 0x0e, 0x67, 0xb1, 0x66, 0x67, 0xdf, 0xce, 0x6f,
0xe0, 0xb2, 0x00, 0x38, 0x01, 0x0c, 0x61, 0x18, 0xc6, 0xf2, 0x06, 0x70, 0x04, 0x97, 0x86, 0xec,
0x4e, 0x53, 0xff, 0xc1, 0xfa, 0x19, 0xed, 0xa4, 0xf8, 0x3c, 0x86, 0x55, 0x58, 0xbe, 0x00, 0x2c,
0x01, 0x7a, 0x80, 0x16, 0x7c, 0x1e, 0x06, 0x37, 0x38, 0x3a, 0x58, 0xd2, 0x14, 0xdb, 0x16, 0x6b,
0x06, 0xcf, 0x0c, 0x5e, 0x0c, 0x5c, 0x3c, 0xed, 0x9f, 0x1f, 0x72, 0x19, 0x05, 0xfa, 0x81, 0x43,
0x40, 0x1f, 0xd0, 0x47, 0x2b, 0xff, 0xe0, 0x0e, 0xea, 0xba, 0xe7, 0x69, 0x3d, 0x06, 0xcb, 0xb0,
0x8d, 0xcb, 0xf0, 0xb8, 0x1a, 0x58, 0x4f, 0x8a, 0x4b, 0x80, 0x58, 0x88, 0xd3, 0xb1, 0xb7, 0x02,
0x9f, 0x9d, 0x7a, 0x5d, 0x0b, 0xc0, 0x28, 0x59, 0x5c, 0x5e, 0x05, 0x9e, 0xc6, 0xe1, 0x29, 0xee,
0x65, 0x3f, 0x75, 0xf6, 0x6c, 0xe9, 0xfa, 0x09, 0x96, 0xcb, 0x5c, 0xe0, 0x47, 0xc0, 0x4d, 0x78,
0x9c, 0x5f, 0xc9, 0xaa, 0x4a, 0x9d, 0x6d, 0xa6, 0x8c, 0xc6, 0x7e, 0x0c, 0x58, 0x01, 0xac, 0xc0,
0x63, 0x2b, 0x2e, 0x03, 0xc0, 0x43, 0x24, 0xd9, 0xc1, 0x3d, 0x0c, 0x97, 0xba, 0xb2, 0x5a, 0xf4,
0x61, 0xb0, 0x76, 0xd0, 0xc4, 0x7b, 0x7c, 0x07, 0xcb, 0x35, 0xc0, 0x52, 0x72, 0x4f, 0x15, 0x8d,
0x02, 0x03, 0x34, 0x03, 0x49, 0x42, 0x68, 0x44, 0x57, 0x69, 0xd6, 0xe4, 0x05, 0xc0, 0xbd, 0xa4,
0xb9, 0x1d, 0x97, 0x07, 0x81, 0xfb, 0x70, 0x39, 0x59, 0x8d, 0x15, 0x87, 0x25, 0x17, 0x2c, 0x97,
0x85, 0x9c, 0xe4, 0x19, 0xa6, 0xb7, 0x13, 0x24, 0x0c, 0x6d, 0xc0, 0x6d, 0xc0, 0xf5, 0xb8, 0x5c,
0x8b, 0xcb, 0xde, 0xb0, 0x0b, 0x2a, 0x97, 0xc3, 0xcf, 0x69, 0x25, 0xf7, 0x10, 0x47, 0x85, 0xaa,
0x76, 0xcc, 0x07, 0x9e, 0xc3, 0xe5, 0xb2, 0xb0, 0x0b, 0x29, 0x97, 0xc3, 0x28, 0xb7, 0x92, 0x3b,
0xf5, 0x09, 0xb9, 0x53, 0x5b, 0x8d, 0x5c, 0x20, 0x6d, 0x03, 0x7e, 0xcd, 0xef, 0x89, 0x64, 0x87,
0x7a, 0x07, 0xb8, 0x3e, 0xec, 0x22, 0xa2, 0xcc, 0x62, 0x3f, 0x6c, 0xec, 0x17, 0xdb, 0xdc, 0x2a,
0xbe, 0x59, 0xb6, 0x82, 0xd7, 0x59, 0x59, 0x7a, 0x55, 0xe1, 0x73, 0xd0, 0xd1, 0xaa, 0x7a, 0x8a,
0x3d, 0xd0, 0x95, 0x72, 0x40, 0xb4, 0x2c, 0x2f, 0xa7, 0x94, 0xb0, 0x39, 0x40, 0x3a, 0xec, 0x22,
0x6a, 0x89, 0xc5, 0x12, 0x33, 0x31, 0x9a, 0x62, 0x4d, 0x33, 0x2e, 0xdb, 0x9e, 0x6c, 0xc7, 0x60,
0x82, 0x3d, 0x75, 0xda, 0x68, 0x5e, 0x7e, 0x88, 0x03, 0x2f, 0x03, 0x57, 0x86, 0x5d, 0x48, 0xad,
0x38, 0x99, 0x3a, 0x49, 0x4b, 0xa2, 0x85, 0xe1, 0x3b, 0x87, 0x39, 0x78, 0xe2, 0x20, 0x03, 0xa7,
0x07, 0x18, 0xcb, 0x8c, 0x31, 0x96, 0x19, 0x23, 0x6b, 0xb3, 0x24, 0x63, 0x49, 0x3a, 0x9a, 0x3a,
0x58, 0x3c, 0x67, 0x31, 0x97, 0x7e, 0xe2, 0x52, 0x62, 0x26, 0xc6, 0xc9, 0x54, 0x60, 0x57, 0x06,
0xb2, 0xc0, 0xdf, 0x82, 0x5a, 0x79, 0x90, 0x0c, 0x2e, 0xd7, 0x00, 0x7f, 0x08, 0xbb, 0x90, 0x5a,
0xe1, 0x18, 0x87, 0xd5, 0x17, 0xac, 0xe6, 0xaa, 0x9e, 0xab, 0x58, 0xd6, 0xbd, 0x8c, 0x79, 0x6d,
0xf3, 0x68, 0x4d, 0xb6, 0xd2, 0xd9, 0xd4, 0x89, 0x63, 0x1c, 0x4e, 0x4f, 0x9c, 0x66, 0x62, 0x72,
0x82, 0xa3, 0xa7, 0x8e, 0xb2, 0xf7, 0xad, 0xbd, 0xec, 0x19, 0xd8, 0xc3, 0x2b, 0x83, 0xaf, 0xe0,
0x59, 0x9f, 0xfb, 0x43, 0x7e, 0x4a, 0x9b, 0xff, 0xef, 0x97, 0xb8, 0xfc, 0xa0, 0xbc, 0x6f, 0x12,
0xae, 0xdc, 0x57, 0x74, 0xf9, 0x1d, 0x70, 0x5d, 0xb8, 0xa5, 0x48, 0x9e, 0xe7, 0xe9, 0x60, 0x23,
0xb7, 0x93, 0x0a, 0xbb, 0x90, 0x72, 0xe4, 0xee, 0xe2, 0x9f, 0xc7, 0x37, 0x81, 0x9d, 0xe0, 0x77,
0x5b, 0x56, 0x3e, 0x66, 0x1e, 0x70, 0x3f, 0x73, 0xd8, 0x10, 0xd5, 0x50, 0x41, 0xfe, 0x41, 0xd9,
0x65, 0x11, 0x86, 0xaf, 0x61, 0xe9, 0x29, 0x78, 0xaf, 0x96, 0x19, 0xba, 0xa6, 0x7e, 0x3d, 0xf5,
0x10, 0x46, 0x1f, 0xb3, 0xea, 0x4c, 0x6f, 0x9b, 0x01, 0x1e, 0x23, 0x46, 0x2f, 0x5b, 0x39, 0x58,
0xf1, 0xda, 0x42, 0x16, 0x9d, 0xf0, 0x14, 0x63, 0x3b, 0x17, 0x91, 0xe5, 0x46, 0xe0, 0x6a, 0xe0,
0x73, 0xd4, 0xfe, 0xf7, 0xb3, 0xc0, 0x3e, 0x0c, 0x4f, 0x60, 0x79, 0x64, 0xea, 0x66, 0x74, 0x5d,
0xa8, 0xf5, 0x0d, 0x5f, 0xbe, 0xfb, 0xf8, 0x24, 0x93, 0xac, 0x07, 0xd6, 0x00, 0x2b, 0xc9, 0x5d,
0xaf, 0x0b, 0xfb, 0xfb, 0x7a, 0xc0, 0xeb, 0xe4, 0xfa, 0x65, 0xfd, 0x95, 0x38, 0xcf, 0xb0, 0x85,
0xb7, 0x43, 0xae, 0x29, 0x10, 0x61, 0x6f, 0xe8, 0x8f, 0xcf, 0x4f, 0xe9, 0x64, 0xfc, 0x23, 0x1d,
0xfd, 0x7a, 0x80, 0x45, 0xc0, 0x45, 0x40, 0x4b, 0x95, 0x3f, 0x6d, 0x14, 0xa6, 0x7a, 0x90, 0x42,
0x3f, 0x86, 0x7e, 0x2c, 0x87, 0x80, 0x7d, 0xb8, 0xbc, 0x5f, 0xe5, 0xcf, 0xaa, 0x49, 0x8d, 0x13,
0xac, 0xff, 0xc7, 0xa5, 0x85, 0x38, 0xe7, 0xe0, 0xd1, 0xbd, 0xe3, 0xab, 0x3b, 0xee, 0xe8, 0x6c,
0xea, 0xbc, 0xee, 0xa6, 0x27, 0x6f, 0x2a, 0xea, 0x1e, 0xdd, 0xa3, 0x9b, 0x1e, 0xb5, 0xef, 0x8c,
0xbc, 0xf3, 0x9b, 0xcd, 0x7f, 0xda, 0xfc, 0x0b, 0xe2, 0x0c, 0xd3, 0xc2, 0x50, 0x94, 0x1b, 0xdd,
0xd5, 0xa2, 0x60, 0xe5, 0xb1, 0xd6, 0x6e, 0x1b, 0x49, 0x8f, 0xdc, 0xdd, 0xd1, 0xdb, 0x51, 0x54,
0x27, 0xc8, 0xf4, 0xd6, 0xb4, 0x97, 0x70, 0x12, 0x5b, 0x8c, 0x31, 0xbd, 0x41, 0xd7, 0x16, 0x25,
0x1a, 0xa5, 0x23, 0x81, 0x50, 0xb0, 0x24, 0x10, 0x0a, 0x96, 0x1f, 0x4d, 0x0a, 0x52, 0x31, 0x05,
0xab, 0x90, 0x06, 0xac, 0x56, 0x81, 0x82, 0x25, 0x81, 0x50, 0xb0, 0x24, 0x10, 0x0a, 0x96, 0x04,
0x42, 0xc1, 0xf2, 0x51, 0x46, 0x8f, 0x50, 0xb5, 0xb1, 0xf2, 0x28, 0x58, 0x85, 0xca, 0x69, 0xbc,
0x4b, 0x1e, 0x05, 0x4b, 0x02, 0xa1, 0x60, 0x49, 0x20, 0x14, 0x2c, 0x1f, 0xa5, 0x4e, 0x0a, 0x82,
0xda, 0x58, 0x05, 0x14, 0xac, 0x0a, 0x95, 0x32, 0x97, 0x56, 0x23, 0x51, 0xb0, 0x24, 0x10, 0x0a,
0x96, 0x04, 0x42, 0xc1, 0x2a, 0x64, 0x6b, 0x64, 0x52, 0x90, 0x48, 0x53, 0xb0, 0x2a, 0x57, 0x9d,
0x31, 0x3a, 0x75, 0x46, 0xc1, 0x92, 0x40, 0x28, 0x58, 0x85, 0x4a, 0x3a, 0x15, 0xea, 0x79, 0x85,
0xfe, 0xea, 0x67, 0x72, 0xdb, 0xea, 0x49, 0x35, 0xc7, 0x9b, 0x63, 0x87, 0x6f, 0x3d, 0x3c, 0xb9,
0xff, 0xdd, 0xfd, 0xf1, 0x63, 0xa7, 0x8f, 0xf9, 0x4e, 0x0a, 0xb2, 0xe4, 0x9c, 0x25, 0x76, 0xed,
0x82, 0xb5, 0xd9, 0xe6, 0x78, 0x73, 0x1c, 0x34, 0x78, 0x22, 0x9f, 0xf6, 0xb4, 0x3c, 0xd6, 0xda,
0x16, 0x60, 0x13, 0xf0, 0x95, 0x49, 0x3b, 0x79, 0x89, 0xb5, 0x76, 0xbe, 0xc1, 0xb4, 0xc4, 0x4c,
0xac, 0xd5, 0x18, 0xe3, 0x4c, 0x7a, 0x93, 0x67, 0x80, 0x34, 0x86, 0x37, 0xe3, 0x26, 0xfe, 0x12,
0xb0, 0x17, 0x78, 0xda, 0x18, 0x33, 0x16, 0x6a, 0xe1, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x12, 0xb6, 0xff, 0x01, 0x70, 0xda,
0xa4, 0xc4, 0xc6, 0xbc, 0xdf, 0x19, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
0x60, 0x82,
};
const BITMAP_OPAQUE pads_remove_unused_xpm[1] = {{ png, sizeof( png ), "pads_remove_unused_xpm" }};
//EOF

View File

@ -0,0 +1,208 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps_png/bitmaps_list.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x90, 0x08, 0x06, 0x00, 0x00, 0x00, 0x16, 0x4d, 0xb9,
0x35, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x55, 0x2d, 0x00, 0x00, 0x55,
0x2d, 0x01, 0x6a, 0xe7, 0x70, 0xe8, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f,
0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x00, 0x52, 0x74,
0x45, 0x58, 0x74, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x00, 0x43, 0x43, 0x20,
0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x41, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
0x65, 0x61, 0x74, 0x69, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x62, 0x79, 0x2d, 0x73, 0x61,
0x2f, 0x34, 0x2e, 0x30, 0x2f, 0xc3, 0x54, 0x62, 0x05, 0x00, 0x00, 0x0b, 0x5b, 0x49, 0x44, 0x41,
0x54, 0x78, 0x9c, 0xed, 0xdd, 0x7d, 0x70, 0x54, 0xd5, 0x19, 0xc7, 0xf1, 0xef, 0xb9, 0xbb, 0x49,
0xd8, 0x04, 0x12, 0x25, 0xc1, 0x60, 0x50, 0x50, 0x82, 0x26, 0x2d, 0x8a, 0xd6, 0x0a, 0xa8, 0xc0,
0xd4, 0x56, 0x1c, 0x3b, 0x03, 0x1d, 0xb1, 0x3a, 0x82, 0xa5, 0xb6, 0xd5, 0xe9, 0x8c, 0x55, 0x8b,
0xd6, 0x69, 0x67, 0x5a, 0x85, 0xb1, 0x47, 0x41, 0xdb, 0x3a, 0xc2, 0xb4, 0x53, 0xeb, 0x4b, 0x47,
0xa5, 0xb4, 0x33, 0xb6, 0x6a, 0x5f, 0x18, 0x28, 0x5a, 0xdf, 0x2a, 0x76, 0x06, 0x6c, 0x03, 0x6d,
0x81, 0xa9, 0xa2, 0x2d, 0x26, 0x4a, 0xd0, 0x20, 0x04, 0x94, 0x10, 0xc2, 0x26, 0xd9, 0xdd, 0xd3,
0x3f, 0xee, 0x42, 0x30, 0xbb, 0x64, 0x5f, 0xc8, 0xdd, 0xb3, 0xf7, 0xee, 0xf3, 0x99, 0xd9, 0x3f,
0x48, 0xce, 0xde, 0xfb, 0x10, 0x7e, 0xec, 0x9e, 0x7b, 0xf6, 0xdc, 0x27, 0x20, 0x84, 0x10, 0x42,
0x08, 0x21, 0x82, 0x4e, 0xd9, 0x2e, 0xa0, 0x68, 0x68, 0x46, 0x00, 0x75, 0x38, 0xd4, 0x62, 0xa8,
0xc3, 0x50, 0x81, 0xa2, 0x0a, 0x00, 0x43, 0x15, 0x50, 0x9e, 0x1c, 0x19, 0x45, 0x71, 0x38, 0xf9,
0xf5, 0x83, 0x28, 0x7a, 0x51, 0x74, 0x12, 0xa2, 0x93, 0x3a, 0x3a, 0xb9, 0x89, 0x7e, 0x2b, 0xf5,
0xfb, 0x50, 0x69, 0x85, 0x6f, 0x29, 0x67, 0x11, 0x67, 0x32, 0x8a, 0x46, 0x0c, 0x93, 0x80, 0x46,
0xe0, 0x4c, 0x60, 0x2c, 0x30, 0x72, 0x98, 0xce, 0x72, 0x00, 0xe8, 0x00, 0xda, 0x80, 0x1d, 0xc7,
0x3c, 0xb6, 0xa1, 0xd9, 0x35, 0x4c, 0xe7, 0x08, 0x84, 0xe0, 0x86, 0x4f, 0x13, 0x46, 0x31, 0x0b,
0xc3, 0xe7, 0x80, 0x69, 0xc9, 0x47, 0xad, 0xe5, 0xaa, 0x3e, 0x00, 0x5a, 0x50, 0xb4, 0x60, 0x78,
0x05, 0xcd, 0x26, 0xc0, 0x58, 0xae, 0xc9, 0x9a, 0x60, 0x85, 0xef, 0x19, 0x42, 0xbc, 0xc9, 0x97,
0x80, 0x2f, 0x03, 0x73, 0x80, 0xd1, 0x96, 0x2b, 0xca, 0xe4, 0x03, 0x60, 0x0d, 0xf0, 0x2c, 0x9a,
0xbf, 0xda, 0x2e, 0xa6, 0xd0, 0x82, 0x11, 0x3e, 0x4d, 0x39, 0xb0, 0x00, 0xb8, 0x0b, 0x68, 0xb2,
0x5c, 0x4d, 0xbe, 0x76, 0x01, 0x2f, 0x01, 0x2d, 0x40, 0xc2, 0x72, 0x2d, 0xb9, 0x51, 0x7c, 0x84,
0xe1, 0xf5, 0x5c, 0xa7, 0x15, 0xfe, 0x0f, 0x9f, 0xe6, 0x12, 0xe0, 0xd7, 0xb8, 0xf3, 0x37, 0x61,
0x4f, 0x02, 0xf8, 0x13, 0x70, 0x1b, 0x9a, 0x0f, 0xb2, 0x79, 0x82, 0xbf, 0xc3, 0xa7, 0x99, 0x0b,
0xfc, 0x81, 0x81, 0x2b, 0x51, 0x61, 0xdf, 0x4e, 0xc2, 0xcc, 0x64, 0x09, 0xed, 0x99, 0x06, 0x3a,
0x85, 0xa8, 0xc6, 0x13, 0x9a, 0xd3, 0x80, 0xdf, 0x21, 0xc1, 0x2b, 0x36, 0xe3, 0x89, 0xf1, 0x64,
0x36, 0x03, 0xfd, 0x1b, 0x3e, 0xf8, 0x01, 0x24, 0xd7, 0xe1, 0xd2, 0x29, 0xd9, 0x6b, 0xc8, 0xa2,
0x30, 0x1b, 0xcd, 0xf9, 0x99, 0x06, 0xf9, 0x39, 0x7c, 0x17, 0x0f, 0xf9, 0xdd, 0x5c, 0x27, 0x14,
0x12, 0xd6, 0xe1, 0x76, 0x69, 0xa6, 0x01, 0x7e, 0x0e, 0xdf, 0xa8, 0x61, 0x3d, 0x9a, 0xbf, 0x67,
0xbf, 0xc5, 0xe8, 0xe4, 0x4c, 0x03, 0xfc, 0x1c, 0xbe, 0x7f, 0xdb, 0x2e, 0x40, 0x0c, 0xe9, 0xfd,
0x4c, 0x03, 0xfc, 0x1c, 0xbe, 0x5f, 0x20, 0x6f, 0x96, 0xc5, 0x2a, 0x06, 0xfc, 0x25, 0xd3, 0xa0,
0x50, 0x01, 0x0a, 0xf1, 0xc6, 0x7a, 0xde, 0xe3, 0x52, 0x6a, 0xc8, 0x34, 0xf7, 0x13, 0x36, 0x3c,
0x86, 0xe6, 0xa9, 0x4c, 0x83, 0xfc, 0x1b, 0x3e, 0x80, 0xf5, 0xbc, 0xc8, 0xe7, 0x31, 0xc0, 0x2c,
0xfc, 0xfd, 0x2a, 0x1e, 0x24, 0x2f, 0x53, 0xcd, 0x0d, 0xbc, 0x40, 0x2c, 0xd3, 0x40, 0x7f, 0x87,
0x0f, 0x60, 0x3d, 0xaf, 0xf1, 0x05, 0xd6, 0x61, 0x18, 0x0b, 0x9c, 0x8d, 0x5c, 0x3a, 0xd8, 0xd2,
0x06, 0xdc, 0x0b, 0xdc, 0xce, 0x9d, 0xf4, 0x65, 0xf3, 0x84, 0x60, 0xfd, 0x43, 0xdd, 0xcb, 0xb9,
0x24, 0xb8, 0x1d, 0x98, 0x87, 0xfd, 0x1d, 0x2c, 0xd9, 0xda, 0x0d, 0x3c, 0x0f, 0xfc, 0x0a, 0x7c,
0xba, 0xe5, 0xaa, 0x8c, 0x43, 0x2c, 0xe6, 0xc3, 0x5c, 0x9f, 0x16, 0xac, 0xf0, 0x1d, 0xe1, 0xee,
0x6e, 0x99, 0x05, 0x5c, 0x89, 0xbb, 0xde, 0x74, 0x0e, 0x10, 0xb6, 0x5a, 0xd3, 0x80, 0x28, 0xee,
0x95, 0xfa, 0xab, 0x38, 0xac, 0xe6, 0x6e, 0x36, 0x53, 0xa2, 0x17, 0x4e, 0xc1, 0x0c, 0xdf, 0x60,
0x2b, 0x88, 0xd0, 0xcd, 0x05, 0x24, 0x98, 0x8a, 0x1b, 0xc4, 0x46, 0x60, 0x12, 0x70, 0x9a, 0x87,
0x67, 0x8d, 0x03, 0x3b, 0x71, 0x37, 0x92, 0xbe, 0x83, 0x62, 0x1b, 0x8a, 0x16, 0xea, 0xd9, 0x26,
0xbb, 0x9d, 0x5d, 0xa5, 0x11, 0xbe, 0xe3, 0x71, 0x43, 0x39, 0x91, 0x04, 0x63, 0x80, 0x53, 0x50,
0x8c, 0xb9, 0xfe, 0xdc, 0xeb, 0x17, 0x86, 0x9d, 0xf0, 0xf4, 0x95, 0x5b, 0x56, 0x66, 0xbc, 0x80,
0x71, 0x94, 0xc3, 0xa2, 0x69, 0x8b, 0x68, 0xfd, 0xa8, 0x75, 0xed, 0xda, 0xff, 0xad, 0x5d, 0x07,
0xec, 0x41, 0xd1, 0x89, 0x62, 0x0f, 0x71, 0xda, 0xd0, 0xd9, 0xcd, 0x7d, 0x4a, 0x55, 0x69, 0x87,
0x2f, 0x0d, 0x63, 0xcc, 0xf2, 0x8e, 0xee, 0x8e, 0x45, 0x0d, 0xcb, 0x1b, 0xca, 0x32, 0x8d, 0x2d,
0x0f, 0x95, 0xd3, 0xbb, 0xa4, 0x17, 0xe0, 0x56, 0xa5, 0xd4, 0xc3, 0xde, 0x57, 0x17, 0x2c, 0xb2,
0x3c, 0x21, 0xac, 0x91, 0xf0, 0x09, 0x6b, 0x24, 0x7c, 0x69, 0xa8, 0x2c, 0x67, 0x23, 0xc6, 0x94,
0xe4, 0x45, 0xea, 0xb0, 0x91, 0xf0, 0xa5, 0xca, 0x27, 0x51, 0x32, 0x77, 0xce, 0x83, 0x84, 0x4f,
0x58, 0x23, 0xe1, 0x13, 0xd6, 0x48, 0xf8, 0xd2, 0x50, 0x2a, 0xcb, 0x39, 0x5f, 0x69, 0x7e, 0x30,
0x31, 0x6c, 0x24, 0x7c, 0xa9, 0x64, 0xce, 0x57, 0x20, 0x12, 0x3e, 0x61, 0x8d, 0x84, 0x4f, 0x58,
0x23, 0xe1, 0x4b, 0x43, 0xd6, 0xf9, 0x0a, 0x43, 0xc2, 0x97, 0x4a, 0xe6, 0x7c, 0x05, 0x22, 0xe1,
0x13, 0xd6, 0x48, 0xf8, 0x84, 0x35, 0x12, 0xbe, 0x34, 0x64, 0x9d, 0xaf, 0x30, 0x24, 0x7c, 0xa9,
0x64, 0xce, 0x57, 0x20, 0x12, 0x3e, 0x61, 0x8d, 0x84, 0x4f, 0x58, 0x23, 0xe1, 0x4b, 0x65, 0x22,
0xe1, 0x88, 0x33, 0x73, 0xfc, 0x4c, 0xaa, 0x2b, 0xaa, 0x8f, 0x3b, 0xa8, 0xbe, 0xaa, 0x9e, 0x79,
0xcd, 0xf3, 0x8e, 0xfc, 0x51, 0xde, 0x76, 0xf3, 0x20, 0x3f, 0xb4, 0x41, 0x8c, 0x31, 0xd7, 0x26,
0x4c, 0x62, 0xa5, 0xa3, 0x9c, 0x4a, 0x80, 0xee, 0xbe, 0xee, 0x78, 0x34, 0x16, 0x4d, 0xf4, 0xc4,
0x7a, 0x30, 0xc6, 0x50, 0xee, 0x94, 0x53, 0x55, 0x5e, 0xe5, 0x54, 0x57, 0x54, 0x87, 0x00, 0xe2,
0x26, 0xfe, 0x51, 0x48, 0x85, 0xae, 0x56, 0x4a, 0xbd, 0x6a, 0xb7, 0x72, 0xff, 0x91, 0xf0, 0xa5,
0x61, 0x8c, 0x29, 0xc7, 0xed, 0x01, 0xd3, 0x04, 0x9c, 0x0a, 0x44, 0x18, 0x68, 0xf9, 0x75, 0x00,
0xe8, 0x05, 0x5a, 0x81, 0xd7, 0x95, 0x52, 0x6f, 0x59, 0x29, 0x52, 0x08, 0x91, 0x3f, 0x79, 0xe5,
0x1b, 0xc4, 0x18, 0x33, 0x1d, 0xb8, 0x31, 0xc7, 0xa7, 0x3d, 0xa5, 0x94, 0x7a, 0xcd, 0x8b, 0x7a,
0x82, 0xac, 0x58, 0x5a, 0x48, 0x14, 0x93, 0xf9, 0xb1, 0x44, 0xec, 0x9b, 0xdb, 0xf7, 0x6e, 0x1f,
0xb2, 0xab, 0x40, 0x82, 0x84, 0x63, 0x8c, 0x71, 0xce, 0x1f, 0x7b, 0x7e, 0x08, 0xd8, 0x02, 0x48,
0xf8, 0x72, 0x24, 0xe1, 0x4b, 0xe3, 0xc3, 0x43, 0x1f, 0xc6, 0xa7, 0x3c, 0x3a, 0xa5, 0x22, 0xd3,
0xb8, 0x8a, 0x50, 0x05, 0xd1, 0x25, 0xd1, 0x42, 0x94, 0x14, 0x48, 0xb2, 0xd4, 0x22, 0xac, 0x91,
0xf0, 0x09, 0x6b, 0x24, 0x7c, 0x69, 0x38, 0x2a, 0xbb, 0x1f, 0xcb, 0x31, 0x1b, 0x0b, 0xe4, 0xc2,
0x2d, 0x0f, 0x12, 0xbe, 0x54, 0xb2, 0x55, 0xa5, 0x40, 0x24, 0x7c, 0xc2, 0x1a, 0x09, 0x9f, 0xb0,
0x46, 0xc2, 0x97, 0x46, 0x1e, 0x37, 0x10, 0xc9, 0x9c, 0x2f, 0x0f, 0x12, 0xbe, 0x54, 0x32, 0xe7,
0x2b, 0x10, 0x09, 0x9f, 0xb0, 0x46, 0xc2, 0x27, 0xac, 0x91, 0xf0, 0xa5, 0x21, 0x37, 0x10, 0x15,
0x86, 0x84, 0x2f, 0x95, 0xdc, 0x40, 0x54, 0x20, 0x12, 0x3e, 0x61, 0x8d, 0x84, 0x4f, 0x58, 0x23,
0xe1, 0x4b, 0x43, 0x1a, 0x05, 0x15, 0x86, 0x84, 0x2f, 0x95, 0xcc, 0xf9, 0x0a, 0x44, 0xc2, 0x27,
0xac, 0x91, 0xf0, 0x09, 0x6b, 0x24, 0x7c, 0x69, 0xc8, 0x3a, 0x5f, 0x61, 0x48, 0xf8, 0x52, 0xc9,
0x9c, 0xaf, 0x40, 0x24, 0x7c, 0xc2, 0x1a, 0x09, 0x9f, 0xb0, 0x46, 0x6e, 0x9d, 0x4c, 0x65, 0x2a,
0xc3, 0x95, 0xa1, 0xf9, 0x93, 0xe7, 0xb3, 0x65, 0xf7, 0x16, 0x3a, 0xba, 0x3b, 0xe8, 0xea, 0xed,
0xfa, 0xc4, 0x80, 0x48, 0x38, 0x42, 0x73, 0x5d, 0x33, 0x33, 0xc6, 0xcf, 0x38, 0xf2, 0x25, 0x79,
0xdb, 0x15, 0x27, 0xce, 0x18, 0xf3, 0xc5, 0xfe, 0x78, 0x7f, 0xbb, 0x19, 0xe4, 0x70, 0xff, 0xe1,
0xd8, 0xc1, 0xde, 0x83, 0xb1, 0x63, 0xbf, 0x96, 0x48, 0x24, 0x12, 0x7d, 0xf1, 0xbe, 0x37, 0x8c,
0x31, 0xd3, 0x6c, 0xd7, 0xed, 0x47, 0xf2, 0x3f, 0xf6, 0x38, 0x8c, 0x31, 0x93, 0x80, 0x4f, 0xe1,
0x36, 0x0a, 0x1a, 0x89, 0xdb, 0x2c, 0x48, 0x01, 0x51, 0xa0, 0x0b, 0xd8, 0x09, 0x6c, 0x54, 0x4a,
0x75, 0x1d, 0xf7, 0x20, 0x42, 0x88, 0xe2, 0x24, 0xaf, 0x7c, 0x83, 0x18, 0x63, 0xca, 0x80, 0xd3,
0x73, 0x78, 0xca, 0x49, 0x40, 0xbb, 0x52, 0x6a, 0xaf, 0x47, 0x25, 0x89, 0x52, 0x61, 0x8c, 0xd1,
0x83, 0xe7, 0x7b, 0x59, 0xb8, 0xd9, 0x76, 0xdd, 0x7e, 0x24, 0x57, 0xbb, 0xa9, 0xaa, 0xf7, 0x1d,
0xde, 0x17, 0x5b, 0xf0, 0xfb, 0x05, 0x19, 0x7f, 0x36, 0x65, 0x4e, 0x19, 0xcf, 0x2d, 0x7c, 0xae,
0x10, 0x35, 0x05, 0x92, 0x84, 0x2f, 0x8d, 0x68, 0x2c, 0x6a, 0x5e, 0x6e, 0x7d, 0x39, 0xe3, 0xb8,
0x8a, 0x50, 0xc6, 0x46, 0x56, 0x62, 0x08, 0xb2, 0xc8, 0x2c, 0xac, 0x91, 0xf0, 0xa5, 0x91, 0x47,
0xa3, 0x20, 0x91, 0x07, 0x09, 0x5f, 0x2a, 0xd9, 0x58, 0x50, 0x20, 0x12, 0x3e, 0x61, 0x8d, 0x84,
0x4f, 0x58, 0x23, 0xe1, 0x4b, 0x43, 0x6e, 0x20, 0x2a, 0x0c, 0x09, 0x5f, 0x2a, 0x99, 0xf3, 0x15,
0x88, 0x84, 0x4f, 0x58, 0x23, 0xe1, 0x13, 0xd6, 0x48, 0xf8, 0x84, 0x35, 0x12, 0xbe, 0x34, 0xf2,
0xb8, 0x7b, 0x4d, 0xe6, 0x7c, 0x79, 0x28, 0xdd, 0xcf, 0x76, 0x35, 0x95, 0x38, 0x34, 0x62, 0x38,
0x03, 0xa8, 0xc3, 0x50, 0x0b, 0xd4, 0x3f, 0xfd, 0x9f, 0xa7, 0xaf, 0x98, 0x35, 0x61, 0x56, 0x28,
0x97, 0x43, 0x3d, 0xb8, 0xf1, 0xc1, 0xaf, 0xa0, 0x69, 0x00, 0x3a, 0x8f, 0x79, 0xb4, 0x32, 0x9a,
0x36, 0x6e, 0xa3, 0x77, 0xd8, 0x6b, 0x0f, 0x88, 0xe0, 0x87, 0x4f, 0x13, 0x06, 0xce, 0x01, 0xa6,
0x01, 0x53, 0x81, 0xb3, 0x81, 0x49, 0x40, 0x03, 0x89, 0xd4, 0xe1, 0xed, 0x5d, 0xed, 0x24, 0x4c,
0x9a, 0x6f, 0x0c, 0xe1, 0xbd, 0x03, 0xef, 0x5d, 0x8c, 0xfb, 0x2b, 0x52, 0x3f, 0x69, 0x3f, 0x09,
0x34, 0xed, 0xc0, 0x0e, 0xe0, 0x6d, 0x14, 0x2d, 0x38, 0xb4, 0x10, 0xe7, 0x6d, 0x74, 0xba, 0xb3,
0x97, 0x96, 0x60, 0x86, 0x6f, 0x29, 0x67, 0x11, 0xe7, 0x2a, 0x60, 0x0e, 0x70, 0x21, 0x50, 0x69,
0xa9, 0x12, 0x07, 0x98, 0x90, 0x7c, 0x5c, 0x86, 0xe1, 0x16, 0xe2, 0x00, 0x1c, 0x40, 0xf3, 0x77,
0x60, 0x0d, 0xb0, 0x06, 0xcd, 0x2e, 0x4b, 0xf5, 0x59, 0x15, 0x9c, 0xf0, 0x69, 0xaa, 0x51, 0xdc,
0x8c, 0xe1, 0x6b, 0xc4, 0xf9, 0xf4, 0x89, 0x1c, 0x2a, 0xeb, 0x39, 0x5f, 0x72, 0x91, 0x39, 0xdb,
0x45, 0xe9, 0x63, 0xd4, 0x00, 0x57, 0x24, 0x1f, 0x0f, 0xa1, 0xd9, 0x0c, 0x3c, 0xce, 0x68, 0x56,
0x95, 0xd2, 0xdb, 0xf4, 0x40, 0xf8, 0x9e, 0x21, 0xc4, 0x76, 0xae, 0xc5, 0x70, 0x35, 0xee, 0x6f,
0xd8, 0xb6, 0xf5, 0x6a, 0x91, 0x2b, 0x07, 0x45, 0x0d, 0x86, 0x1a, 0xcc, 0x89, 0x5f, 0x40, 0x59,
0xd8, 0xa9, 0xa2, 0x70, 0xa7, 0x03, 0x53, 0xd9, 0xcf, 0x0f, 0xb9, 0x87, 0x15, 0x9c, 0xcc, 0x43,
0xa5, 0x10, 0x42, 0x37, 0x7c, 0xf7, 0x51, 0xcf, 0x9b, 0xac, 0x06, 0x2e, 0xb2, 0x5b, 0x4e, 0x9e,
0x82, 0xf3, 0x29, 0x57, 0x03, 0x86, 0x07, 0xd9, 0xcf, 0xf5, 0x68, 0xae, 0x41, 0xb3, 0xc3, 0x76,
0x41, 0x5e, 0x72, 0xd0, 0x8c, 0xa0, 0x9f, 0xe7, 0xf1, 0x6b, 0xf0, 0x82, 0xe9, 0x3c, 0x60, 0x3d,
0xcb, 0x98, 0x60, 0xbb, 0x10, 0x2f, 0x39, 0x28, 0x6e, 0x02, 0x3e, 0x63, 0xbb, 0x90, 0x62, 0x92,
0xf5, 0xc6, 0x02, 0x6f, 0x5f, 0x72, 0xc7, 0x11, 0xe3, 0x21, 0x2f, 0x4f, 0x60, 0x9b, 0x83, 0x61,
0xa1, 0xed, 0x22, 0x8a, 0x49, 0x3e, 0x3b, 0x55, 0xb2, 0xbd, 0x40, 0xc9, 0xc3, 0x5c, 0x34, 0x13,
0xbd, 0x3a, 0xb8, 0x6d, 0x0e, 0x30, 0xd9, 0x76, 0x11, 0x62, 0x48, 0x17, 0xd8, 0x2e, 0xc0, 0x2b,
0x0e, 0x24, 0x57, 0x9e, 0x04, 0xe0, 0xbe, 0x95, 0x66, 0x7b, 0x0f, 0xc7, 0x91, 0x71, 0x79, 0x2c,
0xb5, 0xe4, 0xa2, 0xdb, 0xcb, 0x83, 0xdb, 0x14, 0x06, 0xb6, 0x00, 0xb3, 0x6c, 0x17, 0x52, 0x2c,
0x7a, 0xfa, 0x7b, 0x18, 0x3b, 0x72, 0x2c, 0x3b, 0xef, 0xd8, 0xc9, 0x96, 0x0e, 0xb7, 0x4b, 0xd5,
0xc7, 0xd1, 0x8f, 0x89, 0xc6, 0xa2, 0xc4, 0x12, 0x31, 0xaa, 0xca, 0xab, 0x18, 0x55, 0x3e, 0x8a,
0xa6, 0xba, 0x26, 0xa6, 0x8f, 0x9b, 0x0e, 0xc0, 0xa1, 0xfe, 0x43, 0x5e, 0x95, 0x13, 0x03, 0x36,
0x7b, 0x75, 0x70, 0xdb, 0x14, 0x9a, 0x6f, 0x00, 0x2b, 0x6d, 0x17, 0x52, 0x2c, 0x22, 0xe1, 0x08,
0x73, 0xcf, 0x9e, 0xcb, 0xec, 0x89, 0xb3, 0x69, 0xae, 0x6b, 0x66, 0x5c, 0xf5, 0x38, 0x22, 0xe1,
0x08, 0x91, 0xb2, 0x08, 0x0a, 0x45, 0x34, 0x16, 0xa5, 0xa7, 0xbf, 0x87, 0xb6, 0x8f, 0xdb, 0xd8,
0xb0, 0x73, 0x03, 0x1b, 0xdb, 0x37, 0xf2, 0x4a, 0xdb, 0x2b, 0xc4, 0x12, 0x31, 0x2f, 0xca, 0xf9,
0x19, 0x9a, 0xef, 0x78, 0x71, 0xe0, 0x62, 0xa0, 0xd0, 0x38, 0xc0, 0x0b, 0xc0, 0x6c, 0xdb, 0xc5,
0x88, 0x4f, 0x78, 0x15, 0xf7, 0x82, 0xa3, 0xc7, 0x76, 0x21, 0x5e, 0x71, 0xd0, 0x24, 0xa8, 0x62,
0x1e, 0xf0, 0xac, 0xed, 0x62, 0xc4, 0x51, 0xbf, 0x24, 0xe0, 0xc1, 0x83, 0xc1, 0xfb, 0xd0, 0xee,
0xe5, 0x62, 0x12, 0x5c, 0x83, 0xfb, 0xf1, 0x9a, 0x9f, 0x7a, 0x41, 0x9c, 0x04, 0xc9, 0xad, 0x51,
0xfe, 0x65, 0x80, 0x75, 0xc0, 0x7d, 0xc9, 0x4d, 0x07, 0x81, 0x17, 0xac, 0x4d, 0x90, 0xee, 0x7f,
0x9e, 0xaf, 0x03, 0x57, 0x02, 0x63, 0x6d, 0x97, 0x93, 0xa5, 0x56, 0x60, 0x35, 0xf0, 0x04, 0x9a,
0x37, 0x6d, 0x17, 0x53, 0x48, 0xc1, 0x0a, 0xdf, 0x11, 0x1a, 0x07, 0x87, 0xe9, 0x24, 0x98, 0x83,
0xbb, 0xcf, 0xee, 0x42, 0xa0, 0xda, 0x72, 0x55, 0x47, 0x74, 0x02, 0x2d, 0xc0, 0xeb, 0x38, 0xac,
0xe5, 0x6e, 0xb6, 0xda, 0x2e, 0xc8, 0x96, 0x60, 0x86, 0x6f, 0x30, 0xf7, 0xa2, 0xaa, 0x19, 0x37,
0x84, 0x4d, 0x40, 0x23, 0xee, 0x86, 0xd2, 0x46, 0xdc, 0xb7, 0x6c, 0x2f, 0x74, 0xe2, 0x6e, 0x22,
0x7d, 0x07, 0xd8, 0x81, 0x62, 0x3b, 0x86, 0x4d, 0x68, 0x5a, 0x3d, 0x3a, 0x9f, 0xef, 0x94, 0x46,
0xf8, 0x86, 0xf2, 0x63, 0x6a, 0x88, 0x52, 0x8f, 0x43, 0x2d, 0x86, 0xba, 0xc5, 0x33, 0x17, 0x7f,
0x5b, 0x29, 0x75, 0xd9, 0xb2, 0xbf, 0x2d, 0xcb, 0xb8, 0x95, 0x3e, 0xe4, 0x84, 0x78, 0x60, 0xf6,
0x03, 0xec, 0xd8, 0xbf, 0x63, 0xd5, 0x23, 0x9b, 0x1f, 0x79, 0x06, 0x87, 0x7d, 0x24, 0xd8, 0x0b,
0xec, 0x41, 0x07, 0x77, 0x71, 0x78, 0xb8, 0x48, 0xf8, 0x06, 0x31, 0xc6, 0x2c, 0xef, 0xe8, 0xee,
0x58, 0xd4, 0xb0, 0xbc, 0xa1, 0x2c, 0xd3, 0xd8, 0xf2, 0x50, 0x39, 0xbd, 0x4b, 0x7a, 0x01, 0x6e,
0x55, 0x4a, 0x3d, 0xec, 0x7d, 0x75, 0xc1, 0x22, 0x77, 0xaf, 0x09, 0x6b, 0x24, 0x7c, 0xc2, 0x1a,
0x09, 0x9f, 0xb0, 0x46, 0xc2, 0x97, 0x46, 0x1e, 0x5d, 0xaa, 0x64, 0xee, 0x9c, 0x07, 0x09, 0x5f,
0xaa, 0xe0, 0xdc, 0x11, 0x52, 0xe4, 0x24, 0x7c, 0xc2, 0x1a, 0x09, 0x9f, 0xb0, 0x46, 0xc2, 0x97,
0x86, 0x34, 0x0a, 0x2a, 0x8c, 0xe0, 0x74, 0x2c, 0xc8, 0x85, 0xdb, 0xbf, 0xe5, 0x0c, 0x14, 0x8d,
0x18, 0x26, 0x00, 0xa7, 0xe0, 0xee, 0x88, 0xa9, 0x5d, 0xb5, 0x75, 0xd5, 0x8c, 0xd9, 0x13, 0x67,
0xe7, 0xf4, 0x73, 0x59, 0xfa, 0xda, 0xd2, 0x6f, 0xa1, 0x99, 0x8a, 0xfb, 0x91, 0xda, 0x3e, 0x60,
0x37, 0xf0, 0x2e, 0x61, 0xde, 0x21, 0x46, 0xbb, 0xf4, 0x65, 0x49, 0x2f, 0xf8, 0xe1, 0xbb, 0x9f,
0x31, 0xf4, 0x31, 0x95, 0x81, 0x46, 0x41, 0x4d, 0xb8, 0xbd, 0x53, 0xc2, 0xe9, 0x2e, 0x2d, 0xf6,
0x1e, 0xda, 0x9b, 0xf3, 0x1d, 0x6c, 0x7b, 0x7a, 0xf6, 0x4c, 0x26, 0xdd, 0x8d, 0x58, 0xee, 0xe6,
0xe6, 0x5e, 0x34, 0x6d, 0xc0, 0x76, 0x14, 0x9b, 0x80, 0x96, 0xe4, 0x67, 0xbc, 0x25, 0xff, 0xab,
0x52, 0x83, 0x17, 0x3e, 0x4d, 0x18, 0xc5, 0x2c, 0x0c, 0x57, 0x02, 0x73, 0xe8, 0x63, 0x92, 0xe5,
0x8a, 0x2a, 0x70, 0x37, 0x35, 0x34, 0x63, 0xb8, 0x2a, 0xf9, 0xb5, 0x04, 0x9a, 0x37, 0x80, 0x3f,
0x03, 0xab, 0xd1, 0x6c, 0xa2, 0x04, 0xaf, 0xb2, 0x83, 0x13, 0x3e, 0xcd, 0x78, 0xe0, 0xbb, 0xc0,
0xc2, 0x64, 0xaf, 0xbd, 0xbc, 0xe5, 0xda, 0x28, 0x28, 0x0f, 0x0e, 0x70, 0x6e, 0xf2, 0x71, 0x27,
0x9a, 0xf7, 0x81, 0x27, 0x80, 0x9f, 0xa3, 0xe9, 0xcc, 0xf7, 0xa0, 0x7e, 0xe3, 0xff, 0x0b, 0x0e,
0xcd, 0x69, 0x68, 0x9e, 0xc4, 0xdd, 0xbe, 0x74, 0x1b, 0x9c, 0x58, 0xf0, 0xf2, 0xe9, 0x42, 0x30,
0x0c, 0xb7, 0x4e, 0x8e, 0x03, 0xee, 0x06, 0xde, 0x45, 0xb3, 0x02, 0xed, 0xd9, 0x36, 0xaf, 0xa2,
0xe2, 0xef, 0xf0, 0xdd, 0xc3, 0x1c, 0x60, 0x1b, 0x70, 0x03, 0x90, 0x71, 0x17, 0x8a, 0x0f, 0x54,
0x01, 0x77, 0x00, 0xdb, 0xd0, 0x5c, 0x68, 0xbb, 0x18, 0xaf, 0xf9, 0x37, 0x7c, 0xf7, 0x70, 0x39,
0x86, 0x3f, 0x02, 0x27, 0xdb, 0x2e, 0xc5, 0x03, 0xa7, 0x03, 0x2f, 0xa1, 0x39, 0xc7, 0x76, 0x21,
0x5e, 0xf2, 0x67, 0xf8, 0x34, 0x23, 0x30, 0x3c, 0x06, 0x94, 0x7b, 0x71, 0xf8, 0x22, 0x69, 0x14,
0x74, 0x12, 0xf0, 0x28, 0x01, 0x5e, 0x43, 0xf4, 0x67, 0xf8, 0x14, 0x97, 0x03, 0x67, 0x7a, 0x71,
0xe8, 0x82, 0x34, 0x0a, 0xca, 0xfe, 0x14, 0x33, 0xd0, 0xc1, 0xed, 0xa5, 0xe3, 0xcf, 0xf0, 0xc1,
0x14, 0xdb, 0x05, 0x9c, 0x90, 0x5c, 0xb2, 0xaa, 0x38, 0xcf, 0xb3, 0x3a, 0x2c, 0xf3, 0x6b, 0xf8,
0xf6, 0xdb, 0x2e, 0xa0, 0x80, 0x02, 0xbb, 0xf4, 0xe2, 0xcf, 0x75, 0x3e, 0xc3, 0x06, 0xdc, 0x37,
0xaf, 0x61, 0x9f, 0x0f, 0xc5, 0x12, 0x31, 0xea, 0x47, 0xd6, 0xb3, 0xe6, 0xba, 0x35, 0x6c, 0xdd,
0xbd, 0x95, 0x5d, 0x5d, 0xbb, 0x38, 0xd4, 0x7f, 0xe8, 0x68, 0xa3, 0xa0, 0x8a, 0x50, 0x05, 0x35,
0x23, 0x6a, 0x68, 0xaa, 0x6d, 0xe2, 0x92, 0xd3, 0x2f, 0x01, 0x20, 0x9e, 0xf0, 0xac, 0xd1, 0x57,
0x2f, 0x65, 0x41, 0x6e, 0x14, 0xe4, 0x57, 0x9a, 0xdf, 0x02, 0x0b, 0x86, 0xfb, 0xb0, 0x0d, 0xa3,
0x1a, 0xb8, 0x65, 0xea, 0x2d, 0x47, 0x1b, 0x05, 0xd5, 0x54, 0xd4, 0xa4, 0x1d, 0xd7, 0xd9, 0xd3,
0xc9, 0xc6, 0xf6, 0x8d, 0x6c, 0x68, 0xdf, 0xc0, 0xe3, 0xff, 0x7a, 0x9c, 0xfd, 0x87, 0x3d, 0x79,
0x31, 0xfe, 0x11, 0x9a, 0xbb, 0xbc, 0x38, 0x70, 0x31, 0xf0, 0x6f, 0xf8, 0xdc, 0x5b, 0x1e, 0x5f,
0xc4, 0xfd, 0xcc, 0x76, 0xf8, 0x0c, 0x7a, 0x3d, 0xad, 0x2c, 0xab, 0x24, 0x12, 0x8e, 0x50, 0x33,
0xc2, 0x0d, 0x61, 0x77, 0x5f, 0x37, 0xd1, 0x58, 0x94, 0xae, 0x5e, 0xcf, 0x3f, 0x9a, 0x5d, 0x0d,
0xcc, 0x47, 0xd3, 0xe7, 0xf5, 0x89, 0x6c, 0xf1, 0x6f, 0xf8, 0x00, 0x34, 0x23, 0x81, 0x9f, 0x02,
0x37, 0xe2, 0xf7, 0xbf, 0xcb, 0x80, 0x18, 0xf0, 0x00, 0xa7, 0xa2, 0xb9, 0x89, 0x7e, 0xdb, 0xc5,
0x78, 0x29, 0x18, 0xff, 0x60, 0x9a, 0x29, 0xc0, 0xf7, 0x80, 0xeb, 0xf0, 0xeb, 0x3c, 0x16, 0xfa,
0x80, 0xa7, 0x81, 0x65, 0x68, 0xfe, 0x6b, 0xbb, 0x98, 0x42, 0x08, 0x46, 0xf8, 0x8e, 0x70, 0x7f,
0xed, 0xd5, 0x57, 0x81, 0x79, 0xf8, 0x63, 0x39, 0x26, 0x01, 0xfc, 0x03, 0x58, 0x4d, 0x19, 0xbf,
0x61, 0x31, 0x1d, 0xb6, 0x0b, 0x2a, 0xa4, 0x60, 0x85, 0xef, 0x58, 0x9a, 0x89, 0x28, 0xe6, 0x60,
0xb8, 0x08, 0x77, 0x5e, 0x68, 0x7b, 0x6b, 0x15, 0xb8, 0x61, 0xdb, 0x8e, 0xdb, 0x28, 0x68, 0x23,
0x65, 0xac, 0x2b, 0xb5, 0xc0, 0x1d, 0x2b, 0xb8, 0xe1, 0x1b, 0xec, 0x7e, 0x6a, 0xe9, 0xe3, 0xb3,
0x28, 0x9a, 0x30, 0x4c, 0x82, 0xa3, 0x8f, 0x09, 0x0c, 0x7f, 0x2f, 0xc2, 0x1e, 0xdc, 0xd6, 0x67,
0x3b, 0x18, 0x68, 0x16, 0xf4, 0x16, 0x11, 0xfe, 0xc9, 0xf7, 0x39, 0x38, 0xcc, 0xe7, 0xf2, 0xad,
0xd2, 0x09, 0xdf, 0x50, 0x7e, 0xc2, 0x28, 0x0e, 0x33, 0x06, 0x87, 0x31, 0x18, 0xea, 0x80, 0xd1,
0x18, 0x22, 0x00, 0xa8, 0xe4, 0xc6, 0x05, 0x43, 0x04, 0x45, 0x1c, 0xe8, 0xc3, 0x10, 0x87, 0xa3,
0x3b, 0x91, 0xbb, 0x81, 0xfd, 0x38, 0xec, 0x4d, 0x36, 0x09, 0xea, 0x0c, 0x7a, 0x47, 0x51, 0x21,
0x84, 0x10, 0x42, 0x08, 0x21, 0xb2, 0xf5, 0x7f, 0xca, 0xef, 0x2f, 0x6b, 0x77, 0x6b, 0xc4, 0x1d,
0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE pads_remove_unused_keep_bottom_xpm[1] = {{ png, sizeof( png ), "pads_remove_unused_keep_bottom_xpm" }};
//EOF

View File

@ -0,0 +1,263 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps_png/bitmaps_list.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x90, 0x08, 0x06, 0x00, 0x00, 0x00, 0x16, 0x4d, 0xb9,
0x35, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x55, 0x2d, 0x00, 0x00, 0x55,
0x2d, 0x01, 0x6a, 0xe7, 0x70, 0xe8, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f,
0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x00, 0x52, 0x74,
0x45, 0x58, 0x74, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x00, 0x43, 0x43, 0x20,
0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x53, 0x68, 0x61, 0x72,
0x65, 0x41, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
0x65, 0x61, 0x74, 0x69, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x62, 0x79, 0x2d, 0x73, 0x61,
0x2f, 0x34, 0x2e, 0x30, 0x2f, 0xc3, 0x54, 0x62, 0x05, 0x00, 0x00, 0x0e, 0xc3, 0x49, 0x44, 0x41,
0x54, 0x78, 0x9c, 0xed, 0xdd, 0x7b, 0x94, 0x1e, 0x75, 0x7d, 0xc7, 0xf1, 0xd7, 0x3c, 0xbb, 0x9b,
0xb0, 0xb9, 0x2d, 0x90, 0x0d, 0xb9, 0x80, 0x44, 0x48, 0x60, 0x93, 0x72, 0x6b, 0xd1, 0x70, 0x91,
0xc4, 0xd2, 0x12, 0xeb, 0x69, 0xa1, 0x82, 0x0a, 0x05, 0x54, 0x6c, 0xb5, 0xe7, 0xa8, 0x05, 0xc1,
0x5a, 0x3d, 0x07, 0x35, 0x5e, 0x26, 0x10, 0x15, 0x11, 0xa9, 0xa5, 0x88, 0x55, 0x41, 0x8a, 0xf4,
0xb4, 0x80, 0xd5, 0x72, 0x82, 0xd4, 0x0b, 0x4d, 0x09, 0x7a, 0x08, 0x75, 0x83, 0x92, 0xe4, 0xa8,
0x88, 0xe6, 0x02, 0x49, 0x30, 0x17, 0x96, 0x40, 0x62, 0x12, 0x76, 0x93, 0xdd, 0x67, 0xfa, 0xc7,
0x3c, 0xbb, 0x09, 0xc9, 0xc2, 0x5e, 0xf2, 0xcc, 0xce, 0x33, 0xf3, 0xcc, 0xfb, 0x9c, 0x39, 0x39,
0xe7, 0xc9, 0x3c, 0xbf, 0xdf, 0x67, 0x93, 0xcf, 0xce, 0xfc, 0x2e, 0xdf, 0xf9, 0x0c, 0x05, 0x05,
0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x79, 0x27, 0x48, 0x5b, 0x40, 0xcd, 0x10, 0x3a, 0x0c,
0xad, 0x4a, 0x26, 0x8a, 0xb4, 0x8a, 0x8c, 0x16, 0x18, 0x0b, 0x22, 0x63, 0x31, 0xaa, 0x72, 0x66,
0xa7, 0xc0, 0x4b, 0x95, 0xcf, 0x7f, 0x2f, 0xd0, 0x25, 0xd0, 0xa1, 0x41, 0x87, 0x56, 0x1d, 0xde,
0x6f, 0x6f, 0x2a, 0xfa, 0x33, 0x48, 0x7d, 0x99, 0xef, 0x7a, 0x27, 0xe8, 0x71, 0x92, 0xc0, 0x0c,
0x91, 0x99, 0x98, 0x81, 0xe3, 0x30, 0x05, 0xe3, 0xaa, 0xd4, 0xcb, 0x76, 0x6c, 0xc2, 0x3a, 0xac,
0xde, 0xef, 0x58, 0x25, 0xb4, 0xb1, 0x4a, 0x7d, 0xe4, 0x82, 0xfc, 0x9a, 0x2f, 0xd4, 0x28, 0x30,
0x4f, 0xe4, 0x8f, 0x71, 0x46, 0xe5, 0x98, 0x98, 0xb2, 0xaa, 0xdf, 0xa1, 0x5d, 0xa0, 0x5d, 0x64,
0x89, 0xd0, 0x72, 0x44, 0x29, 0x6b, 0x4a, 0x8d, 0x7c, 0x99, 0xef, 0x3e, 0x0d, 0x7e, 0xe5, 0x2f,
0xf1, 0x36, 0x9c, 0x8f, 0x23, 0x53, 0x56, 0x34, 0x10, 0xbf, 0xc3, 0x62, 0x7c, 0x5b, 0xe8, 0x7f,
0xd3, 0x16, 0x33, 0xd2, 0xe4, 0xc3, 0x7c, 0xa1, 0x51, 0xb8, 0x0c, 0x9f, 0x40, 0x5b, 0xca, 0x6a,
0x86, 0xcb, 0x46, 0x3c, 0x84, 0x76, 0x94, 0x53, 0xd6, 0x32, 0x34, 0x02, 0x2f, 0x88, 0x3c, 0x36,
0xd4, 0x61, 0x45, 0xf6, 0xcd, 0x17, 0x7a, 0x03, 0xbe, 0x25, 0x1e, 0xbf, 0x15, 0xa4, 0x47, 0x19,
0xff, 0x85, 0x6b, 0x84, 0x7e, 0x37, 0x98, 0x2f, 0x64, 0xdb, 0x7c, 0xa1, 0x0b, 0xf0, 0x1d, 0xfb,
0x66, 0xa2, 0x05, 0xe9, 0xb3, 0x5e, 0xa3, 0xb9, 0x3e, 0x69, 0xc3, 0x40, 0x27, 0x96, 0x46, 0x42,
0x4d, 0x22, 0x84, 0x8e, 0xc1, 0x3d, 0x0a, 0xe3, 0xd5, 0x1a, 0xc7, 0xea, 0xf6, 0xcd, 0xc1, 0x9c,
0x98, 0x5d, 0xf3, 0xf1, 0x31, 0x2a, 0xeb, 0x70, 0xfd, 0x51, 0xb7, 0x73, 0xc8, 0x9a, 0x60, 0xbe,
0xd0, 0x1f, 0x0e, 0x74, 0x52, 0x96, 0xcd, 0x77, 0xf6, 0xab, 0xfe, 0xed, 0x50, 0x07, 0x14, 0x85,
0x59, 0xab, 0xcd, 0xb9, 0x03, 0x9d, 0x90, 0x65, 0xf3, 0x8d, 0xaf, 0x6a, 0x6b, 0xd9, 0x1e, 0xfd,
0xd6, 0x22, 0x47, 0x0c, 0x74, 0x42, 0x96, 0xcd, 0xf7, 0x44, 0xda, 0x02, 0x0a, 0x5e, 0x95, 0x67,
0x07, 0x3a, 0x21, 0xcb, 0xe6, 0xfb, 0x8a, 0xe2, 0x66, 0x59, 0xab, 0x74, 0xe3, 0x07, 0x03, 0x9d,
0xd4, 0x30, 0x02, 0x42, 0x92, 0x61, 0xa9, 0x67, 0x9c, 0xab, 0xc5, 0x40, 0x63, 0xbf, 0x82, 0x34,
0xf8, 0x9a, 0xd0, 0xbf, 0x0f, 0x74, 0x52, 0x76, 0xcd, 0x07, 0x4b, 0xfd, 0xc8, 0x9f, 0x88, 0x30,
0x4f, 0xb6, 0xaf, 0xe2, 0x79, 0xe2, 0x7f, 0x4c, 0xf0, 0x1e, 0x3f, 0xd4, 0x3d, 0xd0, 0x89, 0xd9,
0x36, 0x1f, 0x2c, 0xf5, 0x88, 0x3f, 0xf5, 0xa0, 0xc8, 0x14, 0x9c, 0xa8, 0x98, 0x3a, 0xa4, 0xc5,
0x3a, 0x5c, 0x87, 0x0f, 0xf9, 0xb8, 0x3d, 0x83, 0xf9, 0x42, 0xbe, 0xfe, 0xa3, 0xae, 0x73, 0x8a,
0xb2, 0x0f, 0xe1, 0x22, 0xe9, 0x57, 0xb0, 0x0c, 0x96, 0xcd, 0xf8, 0x3e, 0xfe, 0x95, 0x8c, 0x96,
0x5c, 0x35, 0xd9, 0x65, 0x81, 0x2d, 0x43, 0xfd, 0x5a, 0xbe, 0xcc, 0xd7, 0x4b, 0x5c, 0xdd, 0x32,
0x0f, 0x17, 0x8a, 0xd7, 0x9b, 0x4e, 0x46, 0x63, 0xaa, 0x9a, 0xf6, 0xd1, 0x29, 0x9e, 0xa9, 0x3f,
0xac, 0xe4, 0x7e, 0x9f, 0xf6, 0xb8, 0x3a, 0x9d, 0x38, 0xe5, 0xd3, 0x7c, 0x07, 0x72, 0xb3, 0x66,
0x3b, 0x9d, 0xae, 0x6c, 0x8e, 0xd8, 0x88, 0x33, 0x30, 0x13, 0xc7, 0x24, 0xd8, 0x6b, 0x0f, 0xd6,
0x8b, 0x0b, 0x49, 0xd7, 0x08, 0xac, 0x12, 0x68, 0x37, 0xd9, 0xaa, 0xa2, 0xda, 0x39, 0xa6, 0x3e,
0xcc, 0xf7, 0x4a, 0xc4, 0xa6, 0x3c, 0x5e, 0xd9, 0x24, 0x1c, 0x25, 0x30, 0xe9, 0x8a, 0x53, 0xae,
0x78, 0x67, 0x63, 0xa9, 0xf1, 0xcc, 0x3b, 0x57, 0xdc, 0x39, 0xe0, 0x04, 0xa6, 0x14, 0x94, 0x5c,
0x7d, 0xc6, 0xd5, 0xd6, 0xbe, 0xb0, 0xf6, 0x81, 0x07, 0x7e, 0xfb, 0xc0, 0x83, 0xd8, 0x2a, 0xd0,
0x21, 0xb0, 0x55, 0x8f, 0x75, 0xc2, 0xc1, 0x8d, 0x7d, 0xea, 0x95, 0xfa, 0x36, 0x5f, 0x3f, 0x44,
0x51, 0xf4, 0xa5, 0x4d, 0x3b, 0x37, 0x5d, 0x3d, 0xed, 0x4b, 0xd3, 0x9a, 0x06, 0x3a, 0x77, 0x54,
0xc3, 0x28, 0x5d, 0x9f, 0xec, 0x82, 0xab, 0x82, 0x20, 0xb8, 0x2d, 0x79, 0x75, 0xf9, 0xa2, 0x58,
0x9e, 0x28, 0x48, 0x8d, 0xc2, 0x7c, 0x05, 0xa9, 0x51, 0x98, 0xaf, 0x1f, 0x82, 0x41, 0x8e, 0x46,
0xa2, 0xa8, 0x2e, 0x27, 0xa9, 0x55, 0xa3, 0x30, 0xdf, 0xc1, 0x0c, 0xc7, 0x51, 0xc5, 0xd8, 0x79,
0x18, 0x14, 0xe6, 0x2b, 0x48, 0x8d, 0xc2, 0x7c, 0x05, 0xa9, 0x51, 0x98, 0xaf, 0x1f, 0x82, 0x60,
0x90, 0x63, 0xbe, 0xfa, 0xdc, 0x98, 0xa8, 0x1a, 0x85, 0xf9, 0x0e, 0xa6, 0x18, 0xf3, 0x8d, 0x10,
0xb5, 0xb2, 0xdf, 0x99, 0x2e, 0xa1, 0x31, 0x68, 0xc5, 0x51, 0x4f, 0x6c, 0x7e, 0xe2, 0xb8, 0x29,
0xe3, 0xa6, 0x0c, 0xe9, 0x97, 0xf2, 0xa1, 0xb5, 0x0f, 0xcd, 0x72, 0x9d, 0xd3, 0x94, 0x74, 0xe8,
0xf6, 0xbc, 0x50, 0x67, 0x32, 0x42, 0xf3, 0x45, 0xfd, 0x98, 0x2f, 0x36, 0xd8, 0xe9, 0xf6, 0xed,
0xed, 0xf6, 0xee, 0xef, 0xce, 0xc0, 0x98, 0xde, 0xd3, 0x96, 0xac, 0x5d, 0xe2, 0xb2, 0x93, 0x2f,
0x1b, 0x52, 0xd3, 0x8b, 0x9f, 0x5a, 0x7c, 0x95, 0xb2, 0xab, 0xfa, 0x72, 0x06, 0x42, 0x2f, 0x62,
0x4d, 0xdf, 0x11, 0x54, 0xf6, 0x76, 0x27, 0x5b, 0x51, 0xec, 0xeb, 0xee, 0x23, 0xbf, 0xe6, 0xbb,
0x41, 0x8b, 0x4e, 0x7f, 0x2e, 0xae, 0x6a, 0x39, 0xd3, 0x10, 0x2a, 0x5b, 0x06, 0x3d, 0xe6, 0x7b,
0xe5, 0x75, 0xbe, 0xc3, 0xf1, 0xba, 0xca, 0x11, 0xdf, 0xc8, 0x23, 0x6c, 0xd2, 0x25, 0xf4, 0x84,
0x38, 0x12, 0x63, 0x89, 0x09, 0x1e, 0xf2, 0x0f, 0x95, 0xb8, 0xb5, 0x3a, 0x24, 0x5f, 0xe6, 0x8b,
0xaf, 0x6e, 0xef, 0xc2, 0xdb, 0x75, 0x3a, 0xd7, 0x30, 0x1e, 0x28, 0x1f, 0xce, 0x24, 0x62, 0xb0,
0x8b, 0xd2, 0x18, 0x8d, 0xb3, 0x2a, 0xc7, 0x35, 0x76, 0xd8, 0x2d, 0xf4, 0x03, 0x7c, 0x1b, 0xff,
0x29, 0x1c, 0xb8, 0xfa, 0x37, 0x4f, 0xe4, 0xc3, 0x7c, 0x5f, 0x30, 0x5e, 0xa7, 0xf7, 0x8a, 0x5c,
0x8b, 0xa9, 0x69, 0xcb, 0x19, 0x02, 0x63, 0xc4, 0x89, 0x5a, 0x6f, 0xc3, 0x0d, 0x16, 0xfa, 0x47,
0xe3, 0x7d, 0xbd, 0x5e, 0xae, 0x86, 0xd9, 0x9f, 0xed, 0x86, 0xfe, 0xc2, 0x4b, 0x7e, 0x2b, 0xf2,
0x65, 0xd9, 0x32, 0xde, 0x81, 0x4c, 0x17, 0xf9, 0xb2, 0x1d, 0x56, 0xba, 0xce, 0x9c, 0xb4, 0xc5,
0x8c, 0x04, 0xd9, 0x36, 0xdf, 0x42, 0x97, 0x8b, 0xf3, 0xed, 0x26, 0x57, 0xb3, 0xd9, 0x41, 0xef,
0xed, 0xbe, 0xda, 0x2d, 0x7a, 0xf8, 0x4b, 0x80, 0x27, 0x28, 0x7b, 0x58, 0xe8, 0x8d, 0xc3, 0x6e,
0x21, 0x23, 0x64, 0xd7, 0x7c, 0x8b, 0x4c, 0x17, 0xb9, 0x43, 0x95, 0x1f, 0x82, 0x1a, 0x4e, 0xb1,
0x40, 0xbf, 0x13, 0x94, 0x43, 0x5b, 0xf9, 0x1b, 0x8b, 0x7b, 0x84, 0x26, 0x1c, 0x52, 0x2b, 0x35,
0x4e, 0x76, 0xcd, 0xd7, 0xed, 0xa3, 0x68, 0x4e, 0x5b, 0x46, 0x82, 0x4c, 0x15, 0xf8, 0xdb, 0xb4,
0x45, 0x24, 0x49, 0x76, 0xcd, 0xa7, 0x0e, 0xc6, 0x45, 0x91, 0x33, 0xd2, 0x96, 0x90, 0x24, 0x59,
0x36, 0x5f, 0x22, 0x33, 0xf5, 0x48, 0x64, 0xec, 0xa8, 0xb1, 0xe6, 0x1e, 0x3b, 0xd7, 0x84, 0xd1,
0xaf, 0x7c, 0xd7, 0x9b, 0x3c, 0x76, 0xb2, 0x8b, 0x66, 0x5d, 0x84, 0x21, 0x2d, 0xb5, 0x0c, 0x95,
0x01, 0x4b, 0xf9, 0xb3, 0x4c, 0x96, 0x97, 0x5a, 0x7e, 0xa6, 0x77, 0x11, 0xb7, 0x1a, 0x44, 0x08,
0xf8, 0xf9, 0xa6, 0x9f, 0x6b, 0x08, 0x1a, 0xfc, 0xe4, 0x3d, 0x3f, 0x01, 0xdb, 0xbb, 0xb6, 0xdb,
0xbd, 0x77, 0xb7, 0x97, 0xf6, 0xbe, 0x24, 0x12, 0x69, 0x2a, 0x35, 0x19, 0x3f, 0x7a, 0xbc, 0x23,
0x0e, 0x8b, 0x43, 0x98, 0x3a, 0x76, 0x77, 0x58, 0xb5, 0x65, 0x55, 0xd5, 0x64, 0xbc, 0x8c, 0xc0,
0xf2, 0x64, 0x1a, 0xae, 0x0d, 0xb2, 0xbb, 0x21, 0x7e, 0xbd, 0xd9, 0x7a, 0xac, 0x94, 0xc0, 0xd5,
0x61, 0x54, 0xc3, 0x28, 0x67, 0x1f, 0x73, 0xb6, 0xb6, 0xd6, 0x36, 0x53, 0xc7, 0x4d, 0xd5, 0xdc,
0xd4, 0xdc, 0x67, 0xb6, 0xed, 0x5d, 0xdb, 0x75, 0x75, 0x77, 0x59, 0xfb, 0xc2, 0x5a, 0x8f, 0x6d,
0x7c, 0xcc, 0xaf, 0x3b, 0x7e, 0x5d, 0xed, 0xee, 0x7b, 0x79, 0x01, 0x27, 0x0a, 0x75, 0x24, 0xd5,
0x41, 0xda, 0x64, 0xd7, 0x7c, 0x10, 0xfa, 0x20, 0x6e, 0x91, 0xf5, 0x9f, 0xe3, 0x60, 0xf6, 0xe2,
0x62, 0xa1, 0xc5, 0x69, 0x0b, 0x49, 0x92, 0x6c, 0x67, 0xb5, 0x2c, 0xd5, 0xee, 0x5c, 0xeb, 0x30,
0x5f, 0xbc, 0x75, 0x95, 0x07, 0xb6, 0xe0, 0x12, 0xa1, 0xff, 0x4e, 0x5b, 0x48, 0xd2, 0x64, 0xdb,
0x7c, 0xb0, 0xd4, 0x4a, 0xf3, 0xfd, 0x9b, 0xb2, 0x06, 0x9c, 0x22, 0xbb, 0x83, 0xf4, 0x6d, 0xf8,
0x22, 0xde, 0x2d, 0xf4, 0x8b, 0xb4, 0xc5, 0x8c, 0x04, 0xf9, 0xba, 0x5d, 0x85, 0x8e, 0xc2, 0x07,
0xf0, 0x76, 0x9c, 0x9a, 0xb2, 0x9a, 0xc1, 0x50, 0xc6, 0x4f, 0x71, 0x9f, 0x66, 0x77, 0xb8, 0xd6,
0xef, 0xd3, 0x16, 0x34, 0x92, 0xe4, 0xcb, 0x7c, 0xfb, 0x13, 0x3a, 0x5e, 0x9c, 0x56, 0xd5, 0xfb,
0xee, 0xb5, 0x29, 0xe9, 0x0a, 0xea, 0xe3, 0x69, 0xbd, 0x25, 0x55, 0x2c, 0x16, 0xda, 0x9c, 0xae,
0x9c, 0xf4, 0xc8, 0xaf, 0xf9, 0x0e, 0x64, 0x91, 0xd7, 0xe8, 0x71, 0x06, 0x4e, 0xde, 0xef, 0x8d,
0x93, 0x33, 0x31, 0x29, 0xa1, 0x1e, 0x9f, 0x15, 0x17, 0x93, 0xae, 0xae, 0xfc, 0xb9, 0x0a, 0xed,
0x42, 0x5b, 0x13, 0xea, 0x2f, 0x73, 0xd4, 0x8f, 0xf9, 0x5e, 0x89, 0x2f, 0x1a, 0x6b, 0x97, 0xa9,
0xe2, 0x32, 0xfa, 0xd6, 0x05, 0xf3, 0x16, 0x5c, 0x1d, 0x04, 0xc1, 0x79, 0x8b, 0x7e, 0xbc, 0x68,
0xc0, 0xf1, 0x70, 0x43, 0xa9, 0xc1, 0x8d, 0xf3, 0x6f, 0xb4, 0xe6, 0x85, 0x35, 0xdf, 0xba, 0x6d,
0xf9, 0x6d, 0xf7, 0xa2, 0x43, 0xa3, 0x2d, 0xc6, 0xd8, 0x5a, 0x2f, 0x65, 0x51, 0x87, 0x42, 0x61,
0xbe, 0x03, 0x28, 0x82, 0x82, 0x46, 0x8e, 0x2c, 0x6f, 0xaf, 0x15, 0x64, 0x9c, 0xc2, 0x7c, 0x05,
0xa9, 0x51, 0x98, 0xaf, 0x1f, 0x86, 0x11, 0x14, 0x54, 0x0c, 0x5f, 0x86, 0x41, 0x61, 0xbe, 0x83,
0x29, 0x62, 0x08, 0x46, 0x88, 0xc2, 0x7c, 0x05, 0xa9, 0x51, 0x98, 0xaf, 0x20, 0x35, 0x0a, 0xf3,
0xf5, 0x43, 0x11, 0x14, 0x34, 0x32, 0x14, 0xe6, 0x3b, 0x98, 0x22, 0x28, 0x68, 0x84, 0xc8, 0x72,
0x25, 0xf3, 0xa1, 0x13, 0x2a, 0x61, 0x9a, 0x92, 0x49, 0x22, 0x47, 0xa1, 0x75, 0xc9, 0xda, 0x25,
0xa7, 0xcf, 0x9e, 0x34, 0x7b, 0x48, 0xd5, 0x3e, 0x77, 0xaf, 0xba, 0xfb, 0x8d, 0x16, 0x7a, 0x5e,
0x64, 0x0b, 0x3a, 0x34, 0x79, 0xce, 0x02, 0x9b, 0x12, 0xd1, 0x9c, 0x23, 0xea, 0xc3, 0x7c, 0xa1,
0x46, 0x71, 0x56, 0xcb, 0x19, 0x98, 0x2d, 0xde, 0xd3, 0x9d, 0x89, 0xe3, 0x30, 0xba, 0x2f, 0xe0,
0x07, 0x4f, 0x6c, 0x7e, 0x42, 0x5b, 0x6b, 0xdb, 0x90, 0x9a, 0x6f, 0x7f, 0xb6, 0xfd, 0x12, 0x91,
0x4b, 0xfa, 0x3e, 0xd8, 0x8b, 0xd0, 0x2e, 0x2f, 0x0f, 0x0b, 0xfa, 0x85, 0x92, 0x76, 0x3d, 0x9e,
0x12, 0xee, 0xdf, 0x63, 0xfd, 0x92, 0x4f, 0xf3, 0x85, 0x4a, 0x4a, 0xce, 0x54, 0xf6, 0x16, 0xcc,
0x15, 0xa7, 0x53, 0x8d, 0x19, 0xe0, 0x5b, 0x7d, 0x54, 0x21, 0x28, 0x88, 0xf8, 0xd9, 0xdb, 0x53,
0xf5, 0x96, 0x76, 0x45, 0xe2, 0x77, 0x12, 0xb1, 0x43, 0x68, 0xb9, 0xc0, 0x23, 0x02, 0x8b, 0x7d,
0xda, 0xca, 0xc1, 0xea, 0xca, 0x1b, 0xf9, 0x32, 0x5f, 0xe8, 0x54, 0x5c, 0x85, 0xb7, 0x28, 0x0f,
0xaf, 0x84, 0x2a, 0xe1, 0xa0, 0x20, 0x98, 0x80, 0xf3, 0x44, 0xce, 0x13, 0xb9, 0x4e, 0x68, 0x1d,
0xbe, 0xab, 0xc1, 0x57, 0x7c, 0xca, 0xba, 0x21, 0x77, 0x9e, 0x61, 0xf2, 0x31, 0xe1, 0x08, 0x9d,
0x25, 0xf4, 0x00, 0x56, 0xe0, 0x7d, 0x6a, 0xa7, 0x76, 0x6f, 0x30, 0x1c, 0x87, 0x8f, 0xe8, 0xf1,
0x1b, 0xa1, 0x6f, 0x09, 0xfd, 0x41, 0xda, 0x82, 0x46, 0x8a, 0x6c, 0x9b, 0xef, 0x6b, 0x9a, 0x84,
0x6e, 0xc1, 0x32, 0x5c, 0x20, 0xdb, 0xb3, 0xce, 0x46, 0x5c, 0x81, 0x15, 0x16, 0xba, 0x36, 0x6d,
0x31, 0x23, 0x41, 0x76, 0xcd, 0x17, 0x2a, 0xd9, 0xe4, 0x1e, 0x5c, 0xad, 0xca, 0xa6, 0xab, 0x4a,
0x50, 0xd0, 0xf0, 0x69, 0x12, 0xb9, 0x41, 0xe8, 0xa6, 0x24, 0x1a, 0xaf, 0x25, 0xb2, 0x6b, 0xbe,
0x38, 0xc7, 0xe4, 0x6d, 0xd5, 0x6e, 0xb6, 0x6a, 0x41, 0x41, 0x87, 0xce, 0x47, 0x84, 0xe6, 0x27,
0xd1, 0x70, 0xad, 0x90, 0x5d, 0xf3, 0x45, 0x3e, 0x36, 0x84, 0x73, 0xb3, 0x4a, 0xae, 0x6f, 0xbf,
0xd9, 0x34, 0xdf, 0xe7, 0x1d, 0x21, 0x1e, 0xa8, 0x0f, 0x8e, 0x5a, 0x1d, 0x09, 0x0e, 0xfc, 0x4b,
0x71, 0xba, 0xda, 0x55, 0x7f, 0xc8, 0x64, 0x73, 0xa9, 0xa5, 0xab, 0xb2, 0x62, 0x96, 0x00, 0x91,
0xc8, 0xf8, 0xd1, 0xe3, 0x5d, 0x7a, 0xd2, 0xa5, 0x56, 0x6c, 0x5e, 0x61, 0xd3, 0xce, 0x4d, 0x76,
0x74, 0xed, 0x78, 0xd9, 0x39, 0xcd, 0x8d, 0xcd, 0x66, 0xb5, 0xce, 0x72, 0xce, 0xb1, 0xe7, 0xe0,
0x10, 0x82, 0x82, 0x06, 0xfe, 0x5a, 0x8f, 0x2c, 0x5f, 0xb7, 0x07, 0x20, 0x9b, 0xe6, 0x0b, 0xed,
0x10, 0x7a, 0x0a, 0xb3, 0xaa, 0xdd, 0xf4, 0xd2, 0xa7, 0x97, 0xba, 0xf4, 0xa4, 0x4b, 0xdd, 0x73,
0xf1, 0x3d, 0x2f, 0xfb, 0x7c, 0xd7, 0xde, 0x5d, 0xba, 0xcb, 0xdd, 0x5a, 0x46, 0xb7, 0xf4, 0x7d,
0x56, 0x8e, 0xca, 0x56, 0x6d, 0x59, 0xe5, 0xb1, 0x8d, 0x8f, 0x55, 0x5b, 0x46, 0x2f, 0x45, 0x50,
0x50, 0x4d, 0x12, 0x7a, 0x17, 0xee, 0xae, 0x6a, 0x9b, 0x95, 0xa4, 0x2a, 0x98, 0x79, 0xe4, 0x4c,
0xb3, 0x5b, 0x67, 0x9b, 0x3a, 0x7e, 0xaa, 0x71, 0xa3, 0xc6, 0x69, 0x6e, 0x6c, 0x16, 0x04, 0x81,
0xce, 0xee, 0x4e, 0x3b, 0xba, 0x76, 0x58, 0xbf, 0x7d, 0xbd, 0x65, 0x1b, 0x96, 0x1d, 0x74, 0x55,
0xac, 0xb2, 0x9a, 0xb9, 0x42, 0xcb, 0x92, 0xea, 0x20, 0x6d, 0xb2, 0x6b, 0x3e, 0x02, 0xa1, 0x6f,
0x90, 0xd3, 0xf4, 0xce, 0xc0, 0x27, 0x7c, 0xc6, 0xe7, 0xd3, 0x96, 0x91, 0x24, 0xd9, 0xce, 0x6a,
0x39, 0xd7, 0xf7, 0xc4, 0x91, 0x13, 0xf3, 0x64, 0x75, 0xf2, 0x74, 0x30, 0xbb, 0x04, 0xae, 0xf4,
0x19, 0xb7, 0xa4, 0x2d, 0x24, 0x69, 0xb2, 0x7c, 0xe5, 0xdb, 0x47, 0x68, 0x16, 0x3e, 0x86, 0x77,
0xc8, 0x6e, 0x50, 0xd0, 0x2e, 0x7c, 0x03, 0x5f, 0x12, 0xda, 0x98, 0xb6, 0x98, 0x91, 0x20, 0x1f,
0xe6, 0xeb, 0x65, 0x91, 0xe9, 0xba, 0xbd, 0x0f, 0x6f, 0x15, 0x97, 0x4e, 0xd5, 0x3a, 0x91, 0x38,
0x61, 0xf5, 0x3b, 0xb8, 0x3d, 0xcf, 0x41, 0x90, 0xfd, 0x91, 0x2f, 0xf3, 0xed, 0x4f, 0xe8, 0x44,
0x81, 0x0b, 0x45, 0xe6, 0xaa, 0xad, 0xa0, 0xa0, 0x67, 0xd0, 0x2e, 0xf0, 0x88, 0x06, 0x8b, 0x7d,
0xd2, 0x86, 0xb4, 0x05, 0xa5, 0x45, 0x7e, 0xcd, 0x77, 0x20, 0xa1, 0x63, 0x71, 0x86, 0xc0, 0x6c,
0x91, 0x19, 0x38, 0x41, 0x1c, 0x16, 0x54, 0xd5, 0x17, 0xc8, 0x54, 0x88, 0xb0, 0xd1, 0xfe, 0x41,
0x41, 0x81, 0x5f, 0x6a, 0xd4, 0x6e, 0x81, 0x2d, 0x09, 0xf4, 0x97, 0x49, 0xea, 0xc7, 0x7c, 0xaf,
0x44, 0x68, 0x8c, 0x46, 0x93, 0x94, 0x1d, 0x25, 0xd2, 0xfa, 0xa9, 0x37, 0x7e, 0xea, 0x9a, 0x06,
0x0d, 0x6f, 0x0a, 0x1f, 0x09, 0x07, 0x15, 0x14, 0x74, 0xf3, 0x9f, 0xdd, 0x6c, 0xcd, 0xb6, 0x35,
0x77, 0xde, 0xd2, 0x7e, 0xcb, 0x3d, 0xd8, 0x8a, 0x0e, 0x74, 0x14, 0xef, 0xdc, 0x1d, 0x98, 0xc2,
0x7c, 0x07, 0x50, 0x04, 0x05, 0x8d, 0x1c, 0x79, 0x59, 0x9e, 0x28, 0xc8, 0x20, 0x85, 0xf9, 0x0a,
0x52, 0xa3, 0x30, 0x5f, 0x3f, 0x0c, 0x23, 0x28, 0xa8, 0x60, 0x18, 0x14, 0xe6, 0x3b, 0x98, 0xe2,
0xa1, 0xf1, 0x11, 0xa2, 0x30, 0x5f, 0x41, 0x6a, 0x14, 0xe6, 0x2b, 0x48, 0x8d, 0xc2, 0x7c, 0x05,
0xa9, 0x51, 0x98, 0xaf, 0x1f, 0x86, 0x91, 0x52, 0x55, 0x8c, 0xf9, 0x86, 0x41, 0x36, 0x2b, 0x99,
0xab, 0x41, 0x68, 0x8c, 0x92, 0x19, 0x22, 0xaf, 0x45, 0xab, 0xc8, 0x44, 0x4c, 0xbe, 0xf7, 0x17,
0xf7, 0xbe, 0x79, 0xde, 0xf4, 0x79, 0x43, 0x2a, 0x35, 0xbb, 0x69, 0xd9, 0x4d, 0xef, 0x10, 0x9a,
0xa6, 0x77, 0x77, 0x23, 0x3e, 0xd6, 0x3a, 0xd2, 0x3a, 0xd7, 0xe8, 0xaa, 0xba, 0xf6, 0x9c, 0x90,
0x7f, 0xf3, 0xbd, 0x3c, 0x24, 0x68, 0x0e, 0x4e, 0x14, 0x87, 0x04, 0x4d, 0xeb, 0x2f, 0xae, 0x67,
0xc3, 0x8e, 0x0d, 0xca, 0xd1, 0xd0, 0x72, 0x7c, 0x9e, 0xd9, 0xfe, 0xcc, 0xd9, 0x38, 0xfb, 0xa0,
0xbf, 0xd8, 0xa6, 0x2c, 0xb4, 0x41, 0xbc, 0xbf, 0xfb, 0x94, 0x40, 0x7b, 0x11, 0x16, 0xb4, 0x8f,
0x7c, 0x9a, 0xef, 0x7a, 0x27, 0xe8, 0xf1, 0x56, 0x9c, 0x8f, 0xd7, 0x1b, 0x42, 0x48, 0x50, 0x95,
0x29, 0x61, 0x7a, 0xe5, 0x38, 0x4f, 0xe4, 0xca, 0xca, 0xa3, 0x4f, 0xdb, 0x85, 0xfe, 0x0f, 0x8b,
0xc5, 0xaf, 0xc0, 0xaa, 0x8b, 0xfa, 0xbd, 0x03, 0xc9, 0x8f, 0xf9, 0x42, 0x13, 0x04, 0xfe, 0x4e,
0xe4, 0xdd, 0x7a, 0x0e, 0x2d, 0xef, 0x64, 0xa8, 0x29, 0x55, 0xc3, 0x78, 0x7a, 0xad, 0x05, 0x6f,
0xae, 0x1c, 0xb7, 0x0a, 0x3d, 0x8e, 0xdb, 0x1d, 0xe9, 0xae, 0x7a, 0xba, 0x4d, 0xef, 0x33, 0xdf,
0x7d, 0x1a, 0x3c, 0xe9, 0xaf, 0x44, 0xde, 0x8e, 0x36, 0xe9, 0x5d, 0x2d, 0x86, 0x4a, 0x49, 0xa0,
0x45, 0xa4, 0x45, 0x74, 0xe8, 0x13, 0xa8, 0x14, 0xa2, 0x6e, 0x03, 0xf1, 0x70, 0x60, 0x8e, 0x6d,
0x3e, 0x63, 0xa1, 0x9b, 0x1d, 0xe1, 0xd6, 0x7a, 0x30, 0x61, 0x6c, 0xbe, 0xcf, 0x9a, 0xec, 0x57,
0xee, 0xc7, 0x59, 0xe9, 0xca, 0x19, 0x26, 0xf9, 0xd9, 0xe5, 0x9a, 0x26, 0x72, 0x93, 0x6d, 0xae,
0x10, 0xba, 0x58, 0x68, 0x75, 0xda, 0x82, 0x92, 0xa4, 0x24, 0x74, 0x98, 0xbd, 0xbe, 0x2f, 0xab,
0xc6, 0xcb, 0x27, 0xa7, 0x61, 0xa9, 0x45, 0xa6, 0xa7, 0x2d, 0x24, 0x49, 0x4a, 0x02, 0xef, 0xc7,
0x1f, 0xa5, 0x2d, 0xa4, 0x96, 0x48, 0x39, 0xa5, 0xaa, 0x97, 0xa3, 0x75, 0xbb, 0x35, 0xc9, 0x0e,
0xd2, 0xa6, 0x24, 0xf2, 0xce, 0xb4, 0x45, 0xd4, 0x12, 0x35, 0x94, 0x52, 0x05, 0x17, 0x54, 0x5e,
0x5a, 0x9d, 0x4b, 0x4a, 0x38, 0x29, 0x6d, 0x11, 0x05, 0xaf, 0xca, 0xe9, 0x69, 0x0b, 0x48, 0x8a,
0x12, 0xc9, 0x85, 0xee, 0x64, 0x91, 0x48, 0xa4, 0x14, 0x0c, 0x6e, 0xd2, 0xdc, 0x7b, 0xde, 0xb0,
0x83, 0x82, 0x06, 0xc7, 0xce, 0x24, 0x1b, 0x4f, 0x93, 0x46, 0x71, 0x8e, 0xf1, 0xbc, 0xb4, 0x85,
0xd4, 0x0a, 0xbb, 0xf7, 0xee, 0x36, 0x65, 0xdc, 0x14, 0xeb, 0x3f, 0xbc, 0xde, 0x8a, 0x4d, 0x71,
0x4a, 0xd5, 0x8b, 0x9d, 0x2f, 0xea, 0xec, 0xee, 0xd4, 0x5d, 0xee, 0x36, 0x76, 0xd4, 0x58, 0xe3,
0x47, 0x8d, 0xd7, 0xd6, 0xda, 0xe6, 0xcc, 0xa3, 0xcf, 0x44, 0x1c, 0x22, 0x94, 0x10, 0xdd, 0x78,
0x3c, 0xa9, 0xc6, 0xd3, 0x26, 0x10, 0xfa, 0x1b, 0xdc, 0x99, 0xb6, 0x90, 0x5a, 0xa1, 0xb9, 0xb1,
0xd9, 0x05, 0x27, 0x5e, 0x60, 0xfe, 0xf1, 0xf3, 0xcd, 0x6a, 0x9d, 0xe5, 0xe8, 0x09, 0x47, 0x6b,
0x6e, 0x6c, 0xd6, 0xdc, 0xd4, 0x2c, 0x10, 0x07, 0x05, 0xed, 0xde, 0xbb, 0xdb, 0xba, 0x17, 0xd7,
0x79, 0x74, 0xfd, 0xa3, 0x96, 0x6d, 0x58, 0x66, 0xc9, 0xba, 0x25, 0xba, 0xcb, 0xdd, 0x49, 0xc8,
0xf9, 0x27, 0xa1, 0xbf, 0x4f, 0xa2, 0xe1, 0x5a, 0x20, 0xa8, 0xbc, 0x85, 0xe7, 0x87, 0xe4, 0x3b,
0x82, 0x35, 0x83, 0x3c, 0x2c, 0x9e, 0x70, 0xec, 0x4e, 0x5b, 0x48, 0x52, 0x94, 0x84, 0xca, 0xc6,
0xba, 0x08, 0xdf, 0x4e, 0x5b, 0x4c, 0x41, 0x1f, 0x5f, 0x97, 0x73, 0xe3, 0x71, 0x60, 0x1d, 0xda,
0x75, 0xce, 0x56, 0x76, 0xb1, 0x78, 0x7b, 0x6d, 0x74, 0x2a, 0x8a, 0x86, 0xc7, 0xe1, 0x54, 0x4a,
0xa3, 0xb2, 0x4b, 0x84, 0x07, 0xf1, 0xd9, 0x4a, 0xd1, 0x41, 0xee, 0xc9, 0x57, 0x11, 0x64, 0xfc,
0xcb, 0xf3, 0xd7, 0xb8, 0x50, 0xed, 0x64, 0xb3, 0x0c, 0xc4, 0x5a, 0xdc, 0x8f, 0x3b, 0x84, 0x7e,
0x95, 0xb6, 0x98, 0x91, 0x24, 0x5f, 0xe6, 0xeb, 0x65, 0xdf, 0xbb, 0xd7, 0xce, 0x17, 0xd7, 0xd9,
0xbd, 0x5e, 0xfc, 0xda, 0xa9, 0x5a, 0xa0, 0x03, 0xed, 0x78, 0x4c, 0xc9, 0x03, 0xf5, 0xfc, 0xee,
0xb5, 0x7c, 0x9a, 0xef, 0x40, 0xe2, 0x49, 0xd5, 0x2c, 0xb1, 0x09, 0xdb, 0xc4, 0x01, 0x41, 0x33,
0x2b, 0x7f, 0x1e, 0x9e, 0x50, 0xaf, 0x1d, 0x7a, 0x43, 0x82, 0x58, 0x2d, 0xf0, 0xa4, 0xc8, 0x72,
0xa1, 0xb5, 0x09, 0xf5, 0x97, 0x39, 0xea, 0xc3, 0x7c, 0xaf, 0xc6, 0x0d, 0x5a, 0x74, 0x9a, 0xac,
0x64, 0xa2, 0x48, 0xeb, 0x82, 0xb9, 0x0b, 0x3e, 0x18, 0x04, 0xc1, 0x79, 0x8b, 0x7e, 0xbc, 0x68,
0x50, 0x41, 0x41, 0x37, 0xce, 0xbf, 0xd1, 0xea, 0x6d, 0xab, 0xef, 0xfa, 0xea, 0xe3, 0x5f, 0xbd,
0x4f, 0xc9, 0xf3, 0xca, 0x9e, 0xc3, 0x56, 0x61, 0x7e, 0x17, 0x87, 0xab, 0x45, 0x61, 0xbe, 0x03,
0x28, 0x82, 0x82, 0x46, 0x8e, 0xe2, 0xe9, 0xb5, 0x82, 0xd4, 0x28, 0xcc, 0x57, 0x90, 0x1a, 0x85,
0xf9, 0x0a, 0x52, 0xa3, 0x30, 0x5f, 0x3f, 0x0c, 0x23, 0xa5, 0xaa, 0x18, 0x3b, 0x0f, 0x83, 0xc2,
0x7c, 0x07, 0x93, 0x9f, 0x27, 0x42, 0x6a, 0x9c, 0xc2, 0x7c, 0x05, 0xa9, 0x51, 0x98, 0xaf, 0x20,
0x35, 0x0a, 0xf3, 0xf5, 0x43, 0x11, 0x14, 0x34, 0x32, 0xe4, 0x27, 0xb1, 0x60, 0x28, 0xc4, 0xf9,
0x2d, 0xaf, 0x15, 0x98, 0x21, 0x32, 0x1d, 0x47, 0x89, 0x2b, 0x62, 0x26, 0xde, 0xb5, 0xf2, 0xae,
0x73, 0xe6, 0x1f, 0x3f, 0x7f, 0x48, 0xff, 0x2e, 0xd7, 0x3f, 0x72, 0xfd, 0x07, 0x84, 0xe6, 0x88,
0xb7, 0xd4, 0x9e, 0xc7, 0x66, 0x3c, 0xad, 0xd1, 0x1a, 0xdd, 0x36, 0x14, 0xb9, 0x2c, 0xfd, 0x93,
0x7f, 0xf3, 0x7d, 0xce, 0x24, 0x7b, 0xcc, 0xb1, 0x2f, 0x28, 0xa8, 0x4d, 0x9c, 0x9d, 0xd2, 0xd8,
0xdf, 0xd4, 0xe2, 0xb9, 0x5d, 0xcf, 0x0d, 0xf9, 0x09, 0xb6, 0xad, 0xbb, 0xb7, 0x9e, 0xa4, 0xbf,
0x07, 0xb1, 0xe2, 0xe2, 0xe6, 0x2e, 0xa1, 0x75, 0x78, 0x52, 0x60, 0x39, 0xda, 0x2b, 0x7b, 0xbc,
0x89, 0xbd, 0x2b, 0x35, 0x2b, 0xe4, 0xcf, 0x7c, 0xa1, 0x46, 0x81, 0x79, 0x22, 0x17, 0xe2, 0x7c,
0x7b, 0xcc, 0x4c, 0x59, 0xd1, 0x68, 0x71, 0x51, 0xc3, 0x2c, 0x91, 0xb7, 0x56, 0x3e, 0x2b, 0x0b,
0xfd, 0x12, 0xdf, 0xc3, 0xfd, 0x42, 0xcb, 0xd5, 0xe1, 0x2c, 0x3b, 0x3f, 0xe6, 0x8b, 0x5f, 0x6f,
0xf5, 0x11, 0xbc, 0xb3, 0x92, 0xb5, 0x37, 0x6c, 0x86, 0x1a, 0x14, 0x34, 0x0c, 0x4a, 0x38, 0xa5,
0x72, 0x7c, 0x5c, 0xe8, 0x59, 0xdc, 0x81, 0x7f, 0xae, 0xa7, 0x97, 0xff, 0x65, 0x7f, 0xc2, 0x11,
0x3a, 0x46, 0xe8, 0x9b, 0xe2, 0xf2, 0xa5, 0x6b, 0x38, 0x34, 0xe3, 0x0d, 0x27, 0x85, 0xa0, 0x0a,
0x8f, 0x4e, 0x1e, 0x8d, 0x4f, 0xe3, 0x69, 0xa1, 0x9b, 0x85, 0x89, 0x95, 0x79, 0xd5, 0x14, 0xd9,
0x36, 0xdf, 0x42, 0xe7, 0x63, 0x15, 0xde, 0x23, 0xbb, 0xef, 0xd9, 0xdd, 0x9f, 0xb1, 0xf8, 0x30,
0x56, 0x09, 0xbd, 0x3e, 0x6d, 0x31, 0x49, 0x93, 0x5d, 0xf3, 0x2d, 0xf4, 0x26, 0x91, 0xef, 0xe2,
0x88, 0xb4, 0xa5, 0x24, 0xc0, 0x6b, 0xf0, 0x90, 0xd0, 0xc9, 0x69, 0x0b, 0x49, 0x92, 0x6c, 0x9a,
0x2f, 0x74, 0x98, 0xc8, 0xd7, 0x30, 0x2a, 0x89, 0xe6, 0x6b, 0x24, 0x28, 0xe8, 0x70, 0xfc, 0x8b,
0x1c, 0xaf, 0x21, 0x66, 0xd3, 0x7c, 0x81, 0x37, 0xe1, 0xb8, 0x24, 0x9a, 0x1e, 0x91, 0xa0, 0xa0,
0xc1, 0x77, 0x71, 0x8e, 0x30, 0xbf, 0x59, 0x3a, 0xd9, 0x34, 0x1f, 0xa7, 0xa6, 0x2d, 0xe0, 0x90,
0x18, 0x8a, 0x57, 0x03, 0xa7, 0x25, 0xa6, 0x23, 0x65, 0xb2, 0x6a, 0xbe, 0x6d, 0x69, 0x0b, 0x18,
0x41, 0x72, 0xbb, 0xf4, 0x92, 0xcd, 0x75, 0xbe, 0xc8, 0xa3, 0xe2, 0x9b, 0x57, 0xd5, 0xc7, 0x43,
0xdd, 0xe5, 0x6e, 0x93, 0xc7, 0x4d, 0xb6, 0xf8, 0xf2, 0xc5, 0x56, 0x6e, 0x5e, 0x69, 0xe3, 0x8e,
0x8d, 0x76, 0xed, 0xdd, 0xd5, 0x17, 0x14, 0x34, 0xba, 0x61, 0xb4, 0x96, 0xc3, 0x5a, 0xb4, 0x4d,
0x6c, 0xf3, 0x86, 0xd7, 0xbc, 0x01, 0xf4, 0x94, 0x13, 0x0b, 0xfa, 0xea, 0xd2, 0x94, 0xe7, 0xa0,
0xa0, 0xac, 0x12, 0xfa, 0x0f, 0x5c, 0x56, 0xed, 0x66, 0xa7, 0x8d, 0x9f, 0xe6, 0xca, 0x39, 0x57,
0xf6, 0x05, 0x05, 0xb5, 0x8c, 0x6e, 0xe9, 0xf7, 0xbc, 0x8e, 0xdd, 0x1d, 0x96, 0x6d, 0x58, 0xe6,
0xd1, 0x0d, 0x8f, 0xba, 0xfd, 0xe7, 0xb7, 0xdb, 0xf6, 0x52, 0x22, 0x17, 0xe3, 0xcf, 0x0b, 0x7d,
0x22, 0x89, 0x86, 0x6b, 0x81, 0xec, 0x9a, 0x2f, 0x7e, 0xe4, 0xf1, 0x47, 0xe2, 0x3d, 0xdb, 0xea,
0x71, 0xc0, 0xf5, 0x74, 0x4c, 0xd3, 0x18, 0xcd, 0x8d, 0xcd, 0x5a, 0x0e, 0x8b, 0x4d, 0xb8, 0x73,
0xcf, 0x4e, 0x9d, 0xdd, 0x9d, 0x76, 0x74, 0x25, 0xbe, 0x35, 0x7b, 0x3f, 0x2e, 0x15, 0xda, 0x93,
0x74, 0x47, 0x69, 0x91, 0x5d, 0xf3, 0x41, 0x68, 0x1c, 0xbe, 0x8c, 0xf7, 0xca, 0xfa, 0xcf, 0xb2,
0x8f, 0x6e, 0xdc, 0x68, 0xaa, 0xd0, 0xfb, 0xed, 0x4d, 0x5b, 0x4c, 0x92, 0xe4, 0xe3, 0x3f, 0x2c,
0x74, 0x2a, 0x3e, 0x8a, 0xcb, 0x65, 0x75, 0x1c, 0xcb, 0x1e, 0xdc, 0x8b, 0x45, 0x42, 0xbf, 0x49,
0x5b, 0xcc, 0x48, 0x90, 0x0f, 0xf3, 0xf5, 0x12, 0xbf, 0xf6, 0xea, 0x5d, 0xb8, 0x48, 0x36, 0x96,
0x63, 0xca, 0xf8, 0x29, 0xee, 0xd7, 0xe4, 0x6e, 0x0b, 0x6c, 0x4a, 0x5b, 0xd0, 0x48, 0x92, 0x2f,
0xf3, 0xed, 0x4f, 0xe8, 0x78, 0x81, 0xf3, 0x45, 0xce, 0x12, 0x8f, 0x0b, 0xd3, 0x2e, 0xad, 0x22,
0x36, 0xdb, 0x93, 0xe2, 0xa0, 0xa0, 0x65, 0x9a, 0x3c, 0x58, 0x6f, 0x86, 0xdb, 0x9f, 0xfc, 0x9a,
0xef, 0x40, 0x3e, 0x67, 0xa2, 0x3d, 0x5e, 0x27, 0xd0, 0x26, 0x32, 0x93, 0xbe, 0x63, 0xba, 0xea,
0x67, 0x11, 0xee, 0x16, 0x47, 0x9f, 0xad, 0xb6, 0x2f, 0x2c, 0xe8, 0xd7, 0x9a, 0xfd, 0xcc, 0xb5,
0x7e, 0x5f, 0xe5, 0xbe, 0x32, 0x4b, 0xfd, 0x98, 0xef, 0xd5, 0xf8, 0x82, 0xf1, 0x5e, 0x32, 0x49,
0xc9, 0x24, 0x91, 0x56, 0x1c, 0x29, 0xd2, 0x0c, 0x82, 0x4a, 0xe1, 0x42, 0xa4, 0x59, 0xa0, 0x07,
0x7b, 0x44, 0x7a, 0xe8, 0xab, 0x44, 0xde, 0x89, 0x6d, 0x4a, 0x9e, 0xab, 0x84, 0x04, 0x75, 0xe4,
0x3d, 0x51, 0xb4, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0x60, 0xb0, 0xfc, 0x3f,
0x37, 0x5c, 0xe7, 0x8f, 0x86, 0xf0, 0x6f, 0x57, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE pads_reset_unused_xpm[1] = {{ png, sizeof( png ), "pads_reset_unused_xpm" }};
//EOF

View File

@ -321,6 +321,10 @@ EXTERN_BITMAP( pad_xpm )
EXTERN_BITMAP( pad_enumerate_xpm )
EXTERN_BITMAP( pad_number_xpm )
EXTERN_BITMAP( pads_mask_layers_xpm )
EXTERN_BITMAP( pads_remove_xpm )
EXTERN_BITMAP( pads_remove_unused_xpm )
EXTERN_BITMAP( pads_remove_unused_keep_bottom_xpm )
EXTERN_BITMAP( pads_reset_unused_xpm )
EXTERN_BITMAP( pagelayout_load_xpm )
EXTERN_BITMAP( pagelayout_normal_view_mode_xpm )
EXTERN_BITMAP( pagelayout_special_view_mode_xpm )

View File

@ -0,0 +1,407 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="553.84998"
inkscape:export-xdpi="553.84998"
inkscape:export-filename="/home/seth/code/kicad/kicad_bare/bitmaps_png/sources/pads_remove_unused.png"
height="26"
width="26"
version="1.1"
id="svg2"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="pads_remove.svg">
<metadata
id="metadata40">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="3840"
inkscape:window-height="2099"
id="namedview38"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="true"
inkscape:zoom="45.254834"
inkscape:cx="4.4344284"
inkscape:cy="16.611474"
inkscape:window-x="0"
inkscape:window-y="37"
inkscape:window-maximized="1"
inkscape:current-layer="layer3"
inkscape:snap-nodes="true"
inkscape:document-rotation="0"
showguides="true"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid3017"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
spacingx="0.5"
spacingy="0.5"
originx="0"
originy="0" />
<sodipodi:guide
position="8.9926755,14.201282"
orientation="1,0"
id="guide28127" />
<sodipodi:guide
position="16.882174,14.796777"
orientation="1,0"
id="guide28129" />
</sodipodi:namedview>
<defs
id="defs4">
<linearGradient
x1="14.463"
y1="12.285"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
x2="34.534"
gradientUnits="userSpaceOnUse"
y2="39.685001"
id="linearGradient3791">
<stop
id="stop3793"
offset="0"
stop-color="#c9c9c9" />
<stop
id="stop3795"
offset="0.40114263"
stop-color="#f8f8f8" />
<stop
id="stop3797"
offset="0.72174245"
stop-color="#e2e2e2" />
<stop
id="stop3799"
offset="0.99654227"
stop-color="#b0b0b0" />
<stop
id="stop3801"
offset="1"
stop-color="#c9c9c9" />
</linearGradient>
<filter
id="c"
height="1.3651"
width="1.2097"
color-interpolation-filters="sRGB"
y="-0.18257"
x="-0.10484">
<feGaussianBlur
stdDeviation="1.5978799"
id="feGaussianBlur7" />
</filter>
<filter
id="d"
height="1.4696"
width="1.4809999"
color-interpolation-filters="sRGB"
y="-0.23481999"
x="-0.24049">
<feGaussianBlur
stdDeviation="1.5978799"
id="feGaussianBlur10" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#ad"
id="linearGradient3095"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.41988578,0,0,0.39843199,7.8528064,8.6668249)"
x1="14.463"
y1="12.285"
x2="34.534"
y2="39.685001" />
<linearGradient
id="ad"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop34" />
<stop
stop-color="#f8f8f8"
offset=".25"
id="stop36" />
<stop
stop-color="#e2e2e2"
offset=".5"
id="stop38" />
<stop
stop-color="#b0b0b0"
offset=".75"
id="stop40" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop42" />
</linearGradient>
<linearGradient
y2="39.685001"
x2="34.534"
y1="12.285"
x1="14.463"
gradientTransform="matrix(0.41988578,0,0,0.39843199,7.3514374,8.725974)"
gradientUnits="userSpaceOnUse"
id="linearGradient3056"
xlink:href="#linearGradient3791"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4067"
id="linearGradient4065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.41988577,0,0,0.39843198,8.071322,8.7437063)"
x1="8.6861582"
y1="9.6206512"
x2="37.265358"
y2="35.973965" />
<linearGradient
id="linearGradient4067"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop4069" />
<stop
stop-color="#f8f8f8"
offset="0.44999999"
id="stop4071" />
<stop
stop-color="#e2e2e2"
offset="0.66666645"
id="stop4073" />
<stop
stop-color="#b0b0b0"
offset="0.95000005"
id="stop4075" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop4077" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4067"
id="linearGradient4083"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.97986422,0,0,-0.90274951,37.705175,18.229565)"
x1="8.6861582"
y1="9.6206512"
x2="37.265358"
y2="35.973965" />
<linearGradient
id="linearGradient3830"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop3832" />
<stop
stop-color="#f8f8f8"
offset="0.44999999"
id="stop3834" />
<stop
stop-color="#e2e2e2"
offset="0.66666645"
id="stop3836" />
<stop
stop-color="#b0b0b0"
offset="0.95000005"
id="stop3838" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop3840" />
</linearGradient>
<linearGradient
y2="35.973965"
x2="37.265358"
y1="9.6206512"
x1="8.6861582"
gradientTransform="matrix(0.41988577,0,0,0.39843198,8.071322,8.7437063)"
gradientUnits="userSpaceOnUse"
id="linearGradient3844"
xlink:href="#linearGradient4067"
inkscape:collect="always" />
</defs>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="BottomPad"
style="display:none">
<path
id="path28015"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 12.957202,22.499999 c 0.696265,0 1.279702,0.173238 1.277922,0.320021 -0.0025,0.209007 -0.541688,0.345838 -1.277922,0.345838 -0.675779,0 -1.194806,-0.207532 -1.194806,-0.345838 0,-0.09975 0.519027,-0.320021 1.194806,-0.320021 z m 0.04091,-0.861955 c -2.54827,0 -4.6140603,0.529189 -4.6140603,1.181976 0,0.652788 2.0657903,1.181977 4.6140603,1.181977 2.54828,0 4.61407,-0.529189 4.61407,-1.181977 0,-0.652787 -2.06579,-1.181976 -4.61407,-1.181976 z" />
</g>
<g
transform="matrix(1.6382539,0,0,1.5572263,1.3665954,0.36314149)"
id="g16">
<rect
height="16"
width="16"
y="0"
x="0"
id="rect18"
style="fill-opacity:0" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Conn1"
style="display:inline">
<path
d="m 13.9961,18.831948 -2,0.002 0.0039,4.3125 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 0.347149,0.01473 0.671362,-0.02756 0.979458,-0.130639 z"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path28011-2-1-7"
sodipodi:nodetypes="cccscc" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Pad1">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998117,19 c 2.546856,0 4.611492,-0.528893 4.611492,-1.181316 0,-0.652423 -2.064636,-1.181316 -4.611492,-1.181316 -2.546853,0 -4.6114892,0.528893 -4.6114892,1.181316 C 8.3866278,18.471107 10.451264,19 12.998117,19 Z m 0,-0.861474 c -0.695877,0 -1.278988,-0.17314 -1.277209,-0.319842 0.0025,-0.208889 0.541386,-0.345644 1.277209,-0.345644 0.6754,0 1.194138,0.207415 1.194138,0.345644 0,0.09969 -0.518738,0.319842 -1.194138,0.319842 z"
id="path28011-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
<path
style="display:inline;fill:none;stroke:#008000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 1,17.828104 H 13.609368"
id="path2990-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="Conn2">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-0"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,13.782119 -2,0.002 0.0039,4.3125 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 0.347149,0.01473 0.671362,-0.02756 0.979458,-0.130639 z" />
</g>
<g
style="display:none"
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Pad2">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998116,11.650933 c -2.510174,0 -4.545076,0.521276 -4.545076,1.164303 0,0.643027 2.034902,1.164303 4.545076,1.164303 2.510178,0 4.54508,-0.521276 4.54508,-1.164303 0,-0.643027 -2.034902,-1.164303 -4.54508,-1.164303 z m 0,0.849067 c 0.685855,0 1.260568,0.170647 1.258814,0.315236 -0.0025,0.205881 -0.533588,0.340666 -1.258814,0.340666 -0.665674,0 -1.176941,-0.204428 -1.176941,-0.340666 0,-0.09826 0.511267,-0.315236 1.176941,-0.315236 z"
id="path28011-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="Conn3">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-9"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,8.6855004 -2,0.002 L 12,13 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 C 13.367691,13.145369 13.691904,13.103079 14,13 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Pad3"
style="display:none">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998117,6.6594104 c -2.485111,0 -4.4996959,0.5160712 -4.4996959,1.1526781 0,0.6366069 2.0145839,1.1526792 4.4996959,1.1526792 2.485114,0 4.499698,-0.5160723 4.499698,-1.1526792 0,-0.6366069 -2.014584,-1.1526781 -4.499698,-1.1526781 z m 0,0.8405896 c 0.679007,0 1.247982,0.1689432 1.246245,0.3120885 -0.0025,0.2038254 -0.528261,0.3372646 -1.246245,0.3372646 -0.659028,0 -1.16519,-0.2023871 -1.16519,-0.3372646 C 11.832927,7.7148135 12.339089,7.5 12.998117,7.5 Z"
id="path28011-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
</g>
<g
inkscape:groupmode="layer"
id="layer9"
inkscape:label="Conn4">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-3"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,3.6855 -2,0.002 L 12,8 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 C 13.367691,8.145369 13.691904,8.103079 14,8 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="TopPad"
style="display:inline">
<path
sodipodi:nodetypes="ssssssssss"
inkscape:connector-curvature="0"
id="path28011"
d="m 12.998117,1.6581699 c -2.488778,0 -4.5063356,0.5168328 -4.5063356,1.1543791 0,0.6375463 2.0175566,1.154379 4.5063356,1.154379 2.488781,0 4.506338,-0.5168327 4.506338,-1.154379 0,-0.6375463 -2.017557,-1.1543791 -4.506338,-1.1543791 z m 0,0.8418301 c 0.680009,0 1.249823,0.1691924 1.248084,0.312549 -0.0025,0.2041261 -0.52904,0.3377622 -1.248084,0.3377622 -0.66,0 -1.166909,-0.2026857 -1.166909,-0.3377622 C 11.831208,2.71513 12.338117,2.5 12.998117,2.5 Z"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2990"
d="M 25.109369,2.8517413 H 12.609368"
style="display:inline;fill:none;stroke:#008000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

(image error) Size: 15 KiB

View File

@ -0,0 +1,407 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="553.84998"
inkscape:export-xdpi="553.84998"
inkscape:export-filename="/home/seth/code/kicad/kicad_bare/bitmaps_png/sources/pads_remove_unused_keep_bottom.png"
height="26"
width="26"
version="1.1"
id="svg2"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="pads_remove_unused.svg">
<metadata
id="metadata40">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="3840"
inkscape:window-height="2099"
id="namedview38"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="true"
inkscape:zoom="45.254834"
inkscape:cx="4.4344284"
inkscape:cy="16.611474"
inkscape:window-x="0"
inkscape:window-y="37"
inkscape:window-maximized="1"
inkscape:current-layer="layer3"
inkscape:snap-nodes="true"
inkscape:document-rotation="0"
showguides="true"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid3017"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
spacingx="0.5"
spacingy="0.5"
originx="0"
originy="0" />
<sodipodi:guide
position="8.9926755,14.201282"
orientation="1,0"
id="guide28127" />
<sodipodi:guide
position="16.882174,14.796777"
orientation="1,0"
id="guide28129" />
</sodipodi:namedview>
<defs
id="defs4">
<linearGradient
x1="14.463"
y1="12.285"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
x2="34.534"
gradientUnits="userSpaceOnUse"
y2="39.685001"
id="linearGradient3791">
<stop
id="stop3793"
offset="0"
stop-color="#c9c9c9" />
<stop
id="stop3795"
offset="0.40114263"
stop-color="#f8f8f8" />
<stop
id="stop3797"
offset="0.72174245"
stop-color="#e2e2e2" />
<stop
id="stop3799"
offset="0.99654227"
stop-color="#b0b0b0" />
<stop
id="stop3801"
offset="1"
stop-color="#c9c9c9" />
</linearGradient>
<filter
id="c"
height="1.3651"
width="1.2097"
color-interpolation-filters="sRGB"
y="-0.18257"
x="-0.10484">
<feGaussianBlur
stdDeviation="1.5978799"
id="feGaussianBlur7" />
</filter>
<filter
id="d"
height="1.4696"
width="1.4809999"
color-interpolation-filters="sRGB"
y="-0.23481999"
x="-0.24049">
<feGaussianBlur
stdDeviation="1.5978799"
id="feGaussianBlur10" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#ad"
id="linearGradient3095"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.41988578,0,0,0.39843199,7.8528064,8.6668249)"
x1="14.463"
y1="12.285"
x2="34.534"
y2="39.685001" />
<linearGradient
id="ad"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop34" />
<stop
stop-color="#f8f8f8"
offset=".25"
id="stop36" />
<stop
stop-color="#e2e2e2"
offset=".5"
id="stop38" />
<stop
stop-color="#b0b0b0"
offset=".75"
id="stop40" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop42" />
</linearGradient>
<linearGradient
y2="39.685001"
x2="34.534"
y1="12.285"
x1="14.463"
gradientTransform="matrix(0.41988578,0,0,0.39843199,7.3514374,8.725974)"
gradientUnits="userSpaceOnUse"
id="linearGradient3056"
xlink:href="#linearGradient3791"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4067"
id="linearGradient4065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.41988577,0,0,0.39843198,8.071322,8.7437063)"
x1="8.6861582"
y1="9.6206512"
x2="37.265358"
y2="35.973965" />
<linearGradient
id="linearGradient4067"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop4069" />
<stop
stop-color="#f8f8f8"
offset="0.44999999"
id="stop4071" />
<stop
stop-color="#e2e2e2"
offset="0.66666645"
id="stop4073" />
<stop
stop-color="#b0b0b0"
offset="0.95000005"
id="stop4075" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop4077" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4067"
id="linearGradient4083"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.97986422,0,0,-0.90274951,37.705175,18.229565)"
x1="8.6861582"
y1="9.6206512"
x2="37.265358"
y2="35.973965" />
<linearGradient
id="linearGradient3830"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop3832" />
<stop
stop-color="#f8f8f8"
offset="0.44999999"
id="stop3834" />
<stop
stop-color="#e2e2e2"
offset="0.66666645"
id="stop3836" />
<stop
stop-color="#b0b0b0"
offset="0.95000005"
id="stop3838" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop3840" />
</linearGradient>
<linearGradient
y2="35.973965"
x2="37.265358"
y1="9.6206512"
x1="8.6861582"
gradientTransform="matrix(0.41988577,0,0,0.39843198,8.071322,8.7437063)"
gradientUnits="userSpaceOnUse"
id="linearGradient3844"
xlink:href="#linearGradient4067"
inkscape:collect="always" />
</defs>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="BottomPad"
style="display:none">
<path
id="path28015"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 12.957202,22.499999 c 0.696265,0 1.279702,0.173238 1.277922,0.320021 -0.0025,0.209007 -0.541688,0.345838 -1.277922,0.345838 -0.675779,0 -1.194806,-0.207532 -1.194806,-0.345838 0,-0.09975 0.519027,-0.320021 1.194806,-0.320021 z m 0.04091,-0.861955 c -2.54827,0 -4.6140603,0.529189 -4.6140603,1.181976 0,0.652788 2.0657903,1.181977 4.6140603,1.181977 2.54828,0 4.61407,-0.529189 4.61407,-1.181977 0,-0.652787 -2.06579,-1.181976 -4.61407,-1.181976 z" />
</g>
<g
transform="matrix(1.6382539,0,0,1.5572263,1.3665954,0.36314149)"
id="g16">
<rect
height="16"
width="16"
y="0"
x="0"
id="rect18"
style="fill-opacity:0" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Conn1"
style="display:inline">
<path
d="m 13.9961,18.831948 -2,0.002 0.0039,4.3125 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 0.347149,0.01473 0.671362,-0.02756 0.979458,-0.130639 z"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path28011-2-1-7"
sodipodi:nodetypes="cccscc" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Pad1">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998117,19 c 2.546856,0 4.611492,-0.528893 4.611492,-1.181316 0,-0.652423 -2.064636,-1.181316 -4.611492,-1.181316 -2.546853,0 -4.6114892,0.528893 -4.6114892,1.181316 C 8.3866278,18.471107 10.451264,19 12.998117,19 Z m 0,-0.861474 c -0.695877,0 -1.278988,-0.17314 -1.277209,-0.319842 0.0025,-0.208889 0.541386,-0.345644 1.277209,-0.345644 0.6754,0 1.194138,0.207415 1.194138,0.345644 0,0.09969 -0.518738,0.319842 -1.194138,0.319842 z"
id="path28011-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
<path
style="display:inline;fill:none;stroke:#008000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 1,17.828104 H 13.609368"
id="path2990-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="Conn2">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-0"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,13.782119 -2,0.002 0.0039,4.3125 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 0.347149,0.01473 0.671362,-0.02756 0.979458,-0.130639 z" />
</g>
<g
style="display:none"
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Pad2">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998116,11.650933 c -2.510174,0 -4.545076,0.521276 -4.545076,1.164303 0,0.643027 2.034902,1.164303 4.545076,1.164303 2.510178,0 4.54508,-0.521276 4.54508,-1.164303 0,-0.643027 -2.034902,-1.164303 -4.54508,-1.164303 z m 0,0.849067 c 0.685855,0 1.260568,0.170647 1.258814,0.315236 -0.0025,0.205881 -0.533588,0.340666 -1.258814,0.340666 -0.665674,0 -1.176941,-0.204428 -1.176941,-0.340666 0,-0.09826 0.511267,-0.315236 1.176941,-0.315236 z"
id="path28011-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="Conn3">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-9"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,8.6855004 -2,0.002 L 12,13 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 C 13.367691,13.145369 13.691904,13.103079 14,13 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Pad3"
style="display:none">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998117,6.6594104 c -2.485111,0 -4.4996959,0.5160712 -4.4996959,1.1526781 0,0.6366069 2.0145839,1.1526792 4.4996959,1.1526792 2.485114,0 4.499698,-0.5160723 4.499698,-1.1526792 0,-0.6366069 -2.014584,-1.1526781 -4.499698,-1.1526781 z m 0,0.8405896 c 0.679007,0 1.247982,0.1689432 1.246245,0.3120885 -0.0025,0.2038254 -0.528261,0.3372646 -1.246245,0.3372646 -0.659028,0 -1.16519,-0.2023871 -1.16519,-0.3372646 C 11.832927,7.7148135 12.339089,7.5 12.998117,7.5 Z"
id="path28011-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
</g>
<g
inkscape:groupmode="layer"
id="layer9"
inkscape:label="Conn4">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-3"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,3.6855 -2,0.002 L 12,8 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 C 13.367691,8.145369 13.691904,8.103079 14,8 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="TopPad"
style="display:inline">
<path
sodipodi:nodetypes="ssssssssss"
inkscape:connector-curvature="0"
id="path28011"
d="m 12.998117,1.6581699 c -2.488778,0 -4.5063356,0.5168328 -4.5063356,1.1543791 0,0.6375463 2.0175566,1.154379 4.5063356,1.154379 2.488781,0 4.506338,-0.5168327 4.506338,-1.154379 0,-0.6375463 -2.017557,-1.1543791 -4.506338,-1.1543791 z m 0,0.8418301 c 0.680009,0 1.249823,0.1691924 1.248084,0.312549 -0.0025,0.2041261 -0.52904,0.3377622 -1.248084,0.3377622 -0.66,0 -1.166909,-0.2026857 -1.166909,-0.3377622 C 11.831208,2.71513 12.338117,2.5 12.998117,2.5 Z"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2990"
d="M 25.109369,2.8517413 H 12.609368"
style="display:inline;fill:none;stroke:#008000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

(image error) Size: 15 KiB

View File

@ -0,0 +1,407 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="553.84998"
inkscape:export-xdpi="553.84998"
inkscape:export-filename="/home/seth/code/kicad/kicad_bare/bitmaps_png/sources/pads_reset_unused.png"
height="26"
width="26"
version="1.1"
id="svg2"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="pads_remove_unused_keep_bottom.svg">
<metadata
id="metadata40">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="3840"
inkscape:window-height="2099"
id="namedview38"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="true"
inkscape:zoom="45.254834"
inkscape:cx="4.4344284"
inkscape:cy="16.611474"
inkscape:window-x="0"
inkscape:window-y="37"
inkscape:window-maximized="1"
inkscape:current-layer="layer3"
inkscape:snap-nodes="true"
inkscape:document-rotation="0"
showguides="true"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid3017"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
spacingx="0.5"
spacingy="0.5"
originx="0"
originy="0" />
<sodipodi:guide
position="8.9926755,14.201282"
orientation="1,0"
id="guide28127" />
<sodipodi:guide
position="16.882174,14.796777"
orientation="1,0"
id="guide28129" />
</sodipodi:namedview>
<defs
id="defs4">
<linearGradient
x1="14.463"
y1="12.285"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
x2="34.534"
gradientUnits="userSpaceOnUse"
y2="39.685001"
id="linearGradient3791">
<stop
id="stop3793"
offset="0"
stop-color="#c9c9c9" />
<stop
id="stop3795"
offset="0.40114263"
stop-color="#f8f8f8" />
<stop
id="stop3797"
offset="0.72174245"
stop-color="#e2e2e2" />
<stop
id="stop3799"
offset="0.99654227"
stop-color="#b0b0b0" />
<stop
id="stop3801"
offset="1"
stop-color="#c9c9c9" />
</linearGradient>
<filter
id="c"
height="1.3651"
width="1.2097"
color-interpolation-filters="sRGB"
y="-0.18257"
x="-0.10484">
<feGaussianBlur
stdDeviation="1.5978799"
id="feGaussianBlur7" />
</filter>
<filter
id="d"
height="1.4696"
width="1.4809999"
color-interpolation-filters="sRGB"
y="-0.23481999"
x="-0.24049">
<feGaussianBlur
stdDeviation="1.5978799"
id="feGaussianBlur10" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#ad"
id="linearGradient3095"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.41988578,0,0,0.39843199,7.8528064,8.6668249)"
x1="14.463"
y1="12.285"
x2="34.534"
y2="39.685001" />
<linearGradient
id="ad"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop34" />
<stop
stop-color="#f8f8f8"
offset=".25"
id="stop36" />
<stop
stop-color="#e2e2e2"
offset=".5"
id="stop38" />
<stop
stop-color="#b0b0b0"
offset=".75"
id="stop40" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop42" />
</linearGradient>
<linearGradient
y2="39.685001"
x2="34.534"
y1="12.285"
x1="14.463"
gradientTransform="matrix(0.41988578,0,0,0.39843199,7.3514374,8.725974)"
gradientUnits="userSpaceOnUse"
id="linearGradient3056"
xlink:href="#linearGradient3791"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4067"
id="linearGradient4065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.41988577,0,0,0.39843198,8.071322,8.7437063)"
x1="8.6861582"
y1="9.6206512"
x2="37.265358"
y2="35.973965" />
<linearGradient
id="linearGradient4067"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop4069" />
<stop
stop-color="#f8f8f8"
offset="0.44999999"
id="stop4071" />
<stop
stop-color="#e2e2e2"
offset="0.66666645"
id="stop4073" />
<stop
stop-color="#b0b0b0"
offset="0.95000005"
id="stop4075" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop4077" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4067"
id="linearGradient4083"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.97986422,0,0,-0.90274951,37.705175,18.229565)"
x1="8.6861582"
y1="9.6206512"
x2="37.265358"
y2="35.973965" />
<linearGradient
id="linearGradient3830"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop3832" />
<stop
stop-color="#f8f8f8"
offset="0.44999999"
id="stop3834" />
<stop
stop-color="#e2e2e2"
offset="0.66666645"
id="stop3836" />
<stop
stop-color="#b0b0b0"
offset="0.95000005"
id="stop3838" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop3840" />
</linearGradient>
<linearGradient
y2="35.973965"
x2="37.265358"
y1="9.6206512"
x1="8.6861582"
gradientTransform="matrix(0.41988577,0,0,0.39843198,8.071322,8.7437063)"
gradientUnits="userSpaceOnUse"
id="linearGradient3844"
xlink:href="#linearGradient4067"
inkscape:collect="always" />
</defs>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="BottomPad"
style="display:inline">
<path
id="path28015"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 12.957202,22.499999 c 0.696265,0 1.279702,0.173238 1.277922,0.320021 -0.0025,0.209007 -0.541688,0.345838 -1.277922,0.345838 -0.675779,0 -1.194806,-0.207532 -1.194806,-0.345838 0,-0.09975 0.519027,-0.320021 1.194806,-0.320021 z m 0.04091,-0.861955 c -2.54827,0 -4.6140603,0.529189 -4.6140603,1.181976 0,0.652788 2.0657903,1.181977 4.6140603,1.181977 2.54828,0 4.61407,-0.529189 4.61407,-1.181977 0,-0.652787 -2.06579,-1.181976 -4.61407,-1.181976 z" />
</g>
<g
transform="matrix(1.6382539,0,0,1.5572263,1.3665954,0.36314149)"
id="g16">
<rect
height="16"
width="16"
y="0"
x="0"
id="rect18"
style="fill-opacity:0" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Conn1"
style="display:inline">
<path
d="m 13.9961,18.831948 -2,0.002 0.0039,4.3125 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 0.347149,0.01473 0.671362,-0.02756 0.979458,-0.130639 z"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path28011-2-1-7"
sodipodi:nodetypes="cccscc" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Pad1">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998117,19 c 2.546856,0 4.611492,-0.528893 4.611492,-1.181316 0,-0.652423 -2.064636,-1.181316 -4.611492,-1.181316 -2.546853,0 -4.6114892,0.528893 -4.6114892,1.181316 C 8.3866278,18.471107 10.451264,19 12.998117,19 Z m 0,-0.861474 c -0.695877,0 -1.278988,-0.17314 -1.277209,-0.319842 0.0025,-0.208889 0.541386,-0.345644 1.277209,-0.345644 0.6754,0 1.194138,0.207415 1.194138,0.345644 0,0.09969 -0.518738,0.319842 -1.194138,0.319842 z"
id="path28011-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
<path
style="display:inline;fill:none;stroke:#008000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 1,17.828104 H 13.609368"
id="path2990-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="Conn2">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-0"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,13.782119 -2,0.002 0.0039,4.3125 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 0.347149,0.01473 0.671362,-0.02756 0.979458,-0.130639 z" />
</g>
<g
style="display:none"
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Pad2">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998116,11.650933 c -2.510174,0 -4.545076,0.521276 -4.545076,1.164303 0,0.643027 2.034902,1.164303 4.545076,1.164303 2.510178,0 4.54508,-0.521276 4.54508,-1.164303 0,-0.643027 -2.034902,-1.164303 -4.54508,-1.164303 z m 0,0.849067 c 0.685855,0 1.260568,0.170647 1.258814,0.315236 -0.0025,0.205881 -0.533588,0.340666 -1.258814,0.340666 -0.665674,0 -1.176941,-0.204428 -1.176941,-0.340666 0,-0.09826 0.511267,-0.315236 1.176941,-0.315236 z"
id="path28011-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="Conn3">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-9"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,8.6855004 -2,0.002 L 12,13 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 C 13.367691,13.145369 13.691904,13.103079 14,13 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Pad3"
style="display:none">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998117,6.6594104 c -2.485111,0 -4.4996959,0.5160712 -4.4996959,1.1526781 0,0.6366069 2.0145839,1.1526792 4.4996959,1.1526792 2.485114,0 4.499698,-0.5160723 4.499698,-1.1526792 0,-0.6366069 -2.014584,-1.1526781 -4.499698,-1.1526781 z m 0,0.8405896 c 0.679007,0 1.247982,0.1689432 1.246245,0.3120885 -0.0025,0.2038254 -0.528261,0.3372646 -1.246245,0.3372646 -0.659028,0 -1.16519,-0.2023871 -1.16519,-0.3372646 C 11.832927,7.7148135 12.339089,7.5 12.998117,7.5 Z"
id="path28011-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
</g>
<g
inkscape:groupmode="layer"
id="layer9"
inkscape:label="Conn4">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-3"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,3.6855 -2,0.002 L 12,8 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 C 13.367691,8.145369 13.691904,8.103079 14,8 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="TopPad"
style="display:inline">
<path
sodipodi:nodetypes="ssssssssss"
inkscape:connector-curvature="0"
id="path28011"
d="m 12.998117,1.6581699 c -2.488778,0 -4.5063356,0.5168328 -4.5063356,1.1543791 0,0.6375463 2.0175566,1.154379 4.5063356,1.154379 2.488781,0 4.506338,-0.5168327 4.506338,-1.154379 0,-0.6375463 -2.017557,-1.1543791 -4.506338,-1.1543791 z m 0,0.8418301 c 0.680009,0 1.249823,0.1691924 1.248084,0.312549 -0.0025,0.2041261 -0.52904,0.3377622 -1.248084,0.3377622 -0.66,0 -1.166909,-0.2026857 -1.166909,-0.3377622 C 11.831208,2.71513 12.338117,2.5 12.998117,2.5 Z"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2990"
d="M 25.109369,2.8517413 H 12.609368"
style="display:inline;fill:none;stroke:#008000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

(image error) Size: 15 KiB

View File

@ -0,0 +1,406 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="553.84998"
inkscape:export-xdpi="553.84998"
inkscape:export-filename="/home/seth/code/kicad/kicad_bare/bitmaps_png/sources/pads_reset_unused.png"
height="26"
width="26"
version="1.1"
id="svg2"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="pads_reset_unused.svg">
<metadata
id="metadata40">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="3840"
inkscape:window-height="2099"
id="namedview38"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="true"
inkscape:zoom="45.254834"
inkscape:cx="4.4344284"
inkscape:cy="16.611474"
inkscape:window-x="0"
inkscape:window-y="37"
inkscape:window-maximized="1"
inkscape:current-layer="layer3"
inkscape:snap-nodes="true"
inkscape:document-rotation="0"
showguides="true"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid3017"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
spacingx="0.5"
spacingy="0.5"
originx="0"
originy="0" />
<sodipodi:guide
position="8.9926755,14.201282"
orientation="1,0"
id="guide28127" />
<sodipodi:guide
position="16.882174,14.796777"
orientation="1,0"
id="guide28129" />
</sodipodi:namedview>
<defs
id="defs4">
<linearGradient
x1="14.463"
y1="12.285"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
x2="34.534"
gradientUnits="userSpaceOnUse"
y2="39.685001"
id="linearGradient3791">
<stop
id="stop3793"
offset="0"
stop-color="#c9c9c9" />
<stop
id="stop3795"
offset="0.40114263"
stop-color="#f8f8f8" />
<stop
id="stop3797"
offset="0.72174245"
stop-color="#e2e2e2" />
<stop
id="stop3799"
offset="0.99654227"
stop-color="#b0b0b0" />
<stop
id="stop3801"
offset="1"
stop-color="#c9c9c9" />
</linearGradient>
<filter
id="c"
height="1.3651"
width="1.2097"
color-interpolation-filters="sRGB"
y="-0.18257"
x="-0.10484">
<feGaussianBlur
stdDeviation="1.5978799"
id="feGaussianBlur7" />
</filter>
<filter
id="d"
height="1.4696"
width="1.4809999"
color-interpolation-filters="sRGB"
y="-0.23481999"
x="-0.24049">
<feGaussianBlur
stdDeviation="1.5978799"
id="feGaussianBlur10" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#ad"
id="linearGradient3095"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.41988578,0,0,0.39843199,7.8528064,8.6668249)"
x1="14.463"
y1="12.285"
x2="34.534"
y2="39.685001" />
<linearGradient
id="ad"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop34" />
<stop
stop-color="#f8f8f8"
offset=".25"
id="stop36" />
<stop
stop-color="#e2e2e2"
offset=".5"
id="stop38" />
<stop
stop-color="#b0b0b0"
offset=".75"
id="stop40" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop42" />
</linearGradient>
<linearGradient
y2="39.685001"
x2="34.534"
y1="12.285"
x1="14.463"
gradientTransform="matrix(0.41988578,0,0,0.39843199,7.3514374,8.725974)"
gradientUnits="userSpaceOnUse"
id="linearGradient3056"
xlink:href="#linearGradient3791"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4067"
id="linearGradient4065"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.41988577,0,0,0.39843198,8.071322,8.7437063)"
x1="8.6861582"
y1="9.6206512"
x2="37.265358"
y2="35.973965" />
<linearGradient
id="linearGradient4067"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop4069" />
<stop
stop-color="#f8f8f8"
offset="0.44999999"
id="stop4071" />
<stop
stop-color="#e2e2e2"
offset="0.66666645"
id="stop4073" />
<stop
stop-color="#b0b0b0"
offset="0.95000005"
id="stop4075" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop4077" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4067"
id="linearGradient4083"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.97986422,0,0,-0.90274951,37.705175,18.229565)"
x1="8.6861582"
y1="9.6206512"
x2="37.265358"
y2="35.973965" />
<linearGradient
id="linearGradient3830"
y2="39.685001"
gradientUnits="userSpaceOnUse"
x2="34.534"
gradientTransform="matrix(1.2419,0,0,1.2419,36.866,-2.4533)"
y1="12.285"
x1="14.463">
<stop
stop-color="#c9c9c9"
offset="0"
id="stop3832" />
<stop
stop-color="#f8f8f8"
offset="0.44999999"
id="stop3834" />
<stop
stop-color="#e2e2e2"
offset="0.66666645"
id="stop3836" />
<stop
stop-color="#b0b0b0"
offset="0.95000005"
id="stop3838" />
<stop
stop-color="#c9c9c9"
offset="1"
id="stop3840" />
</linearGradient>
<linearGradient
y2="35.973965"
x2="37.265358"
y1="9.6206512"
x1="8.6861582"
gradientTransform="matrix(0.41988577,0,0,0.39843198,8.071322,8.7437063)"
gradientUnits="userSpaceOnUse"
id="linearGradient3844"
xlink:href="#linearGradient4067"
inkscape:collect="always" />
</defs>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="BottomPad"
style="display:inline">
<path
id="path28015"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 12.957202,22.499999 c 0.696265,0 1.279702,0.173238 1.277922,0.320021 -0.0025,0.209007 -0.541688,0.345838 -1.277922,0.345838 -0.675779,0 -1.194806,-0.207532 -1.194806,-0.345838 0,-0.09975 0.519027,-0.320021 1.194806,-0.320021 z m 0.04091,-0.861955 c -2.54827,0 -4.6140603,0.529189 -4.6140603,1.181976 0,0.652788 2.0657903,1.181977 4.6140603,1.181977 2.54828,0 4.61407,-0.529189 4.61407,-1.181977 0,-0.652787 -2.06579,-1.181976 -4.61407,-1.181976 z" />
</g>
<g
transform="matrix(1.6382539,0,0,1.5572263,1.3665954,0.36314149)"
id="g16">
<rect
height="16"
width="16"
y="0"
x="0"
id="rect18"
style="fill-opacity:0" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Conn1"
style="display:inline">
<path
d="m 13.9961,18.831948 -2,0.002 0.0039,4.3125 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 0.347149,0.01473 0.671362,-0.02756 0.979458,-0.130639 z"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path28011-2-1-7"
sodipodi:nodetypes="cccscc" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Pad1">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998117,19 c 2.546856,0 4.611492,-0.528893 4.611492,-1.181316 0,-0.652423 -2.064636,-1.181316 -4.611492,-1.181316 -2.546853,0 -4.6114892,0.528893 -4.6114892,1.181316 C 8.3866278,18.471107 10.451264,19 12.998117,19 Z m 0,-0.861474 c -0.695877,0 -1.278988,-0.17314 -1.277209,-0.319842 0.0025,-0.208889 0.541386,-0.345644 1.277209,-0.345644 0.6754,0 1.194138,0.207415 1.194138,0.345644 0,0.09969 -0.518738,0.319842 -1.194138,0.319842 z"
id="path28011-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
<path
style="display:inline;fill:none;stroke:#008000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 1,17.828104 H 13.609368"
id="path2990-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="Conn2">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-0"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,13.782119 -2,0.002 0.0039,4.3125 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 0.347149,0.01473 0.671362,-0.02756 0.979458,-0.130639 z" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Pad2">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998116,11.650933 c -2.510174,0 -4.545076,0.521276 -4.545076,1.164303 0,0.643027 2.034902,1.164303 4.545076,1.164303 2.510178,0 4.54508,-0.521276 4.54508,-1.164303 0,-0.643027 -2.034902,-1.164303 -4.54508,-1.164303 z m 0,0.849067 c 0.685855,0 1.260568,0.170647 1.258814,0.315236 -0.0025,0.205881 -0.533588,0.340666 -1.258814,0.340666 -0.665674,0 -1.176941,-0.204428 -1.176941,-0.340666 0,-0.09826 0.511267,-0.315236 1.176941,-0.315236 z"
id="path28011-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="Conn3">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-9"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,8.6855004 -2,0.002 L 12,13 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 C 13.367691,13.145369 13.691904,13.103079 14,13 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Pad3"
style="display:inline">
<path
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:0.999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.998117,6.6594104 c -2.485111,0 -4.4996959,0.5160712 -4.4996959,1.1526781 0,0.6366069 2.0145839,1.1526792 4.4996959,1.1526792 2.485114,0 4.499698,-0.5160723 4.499698,-1.1526792 0,-0.6366069 -2.014584,-1.1526781 -4.499698,-1.1526781 z m 0,0.8405896 c 0.679007,0 1.247982,0.1689432 1.246245,0.3120885 -0.0025,0.2038254 -0.528261,0.3372646 -1.246245,0.3372646 -0.659028,0 -1.16519,-0.2023871 -1.16519,-0.3372646 C 11.832927,7.7148135 12.339089,7.5 12.998117,7.5 Z"
id="path28011-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssssssssss" />
</g>
<g
inkscape:groupmode="layer"
id="layer9"
inkscape:label="Conn4">
<path
sodipodi:nodetypes="cccscc"
id="path28011-2-1-7-3"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#ffffff;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 13.9961,3.6855 -2,0.002 L 12,8 c 0.328426,0.128812 0.678956,0.116149 1.020542,0.130639 C 13.367691,8.145369 13.691904,8.103079 14,8 Z" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="TopPad"
style="display:inline">
<path
sodipodi:nodetypes="ssssssssss"
inkscape:connector-curvature="0"
id="path28011"
d="m 12.998117,1.6581699 c -2.488778,0 -4.5063356,0.5168328 -4.5063356,1.1543791 0,0.6375463 2.0175566,1.154379 4.5063356,1.154379 2.488781,0 4.506338,-0.5168327 4.506338,-1.154379 0,-0.6375463 -2.017557,-1.1543791 -4.506338,-1.1543791 z m 0,0.8418301 c 0.680009,0 1.249823,0.1691924 1.248084,0.312549 -0.0025,0.2041261 -0.52904,0.3377622 -1.248084,0.3377622 -0.66,0 -1.166909,-0.2026857 -1.166909,-0.3377622 C 11.831208,2.71513 12.338117,2.5 12.998117,2.5 Z"
style="display:inline;fill:#008000;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path2990"
d="M 25.109369,2.8517413 H 12.609368"
style="display:inline;fill:none;stroke:#008000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

After

(image error) Size: 15 KiB

View File

@ -2,7 +2,7 @@
# This program source code file is part of KiCad, a free EDA CAD application.
#
# Copyright (C) 2012 CERN.
# Copyright (C) 2019 KiCad Developers, see AUTHORS.txt for contributors.
# Copyright (C) 2019-2020 KiCad Developers, see AUTHORS.txt for contributors.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -134,6 +134,7 @@ island_area_min
italic
justify
keepout
keep_end_layers
keep_upright
kicad_pcb
last_trace_width
@ -204,6 +205,7 @@ rev
rect
rect_delta
reference
remove_unused_layers
right
rotate
roundrect

View File

@ -142,6 +142,8 @@ set( PCBNEW_DIALOGS
dialogs/dialog_track_via_properties_base.cpp
dialogs/dialog_track_via_size.cpp
dialogs/dialog_track_via_size_base.cpp
dialogs/dialog_unused_pad_layers.cpp
dialogs/dialog_unused_pad_layers_base.cpp
dialogs/dialog_update_pcb.cpp
dialogs/dialog_update_pcb_base.cpp
dialogs/panel_display_options.cpp

View File

@ -46,6 +46,7 @@
#include <class_board.h>
#include <class_module.h>
#include <class_drawsegment.h>
#include <connectivity/connectivity_data.h>
#include <geometry/polygon_test_point_inside.h>
#include <convert_to_biu.h>
#include <convert_basic_shapes_to_polygon.h>
@ -94,6 +95,8 @@ D_PAD::D_PAD( MODULE* parent ) :
m_shapesDirty = true;
m_effectiveBoundingRadius = 0;
m_RemoveUnconnectedLayer = false;
m_KeepTopBottomLayer = true;
}
@ -173,6 +176,45 @@ bool D_PAD::IsFlipped() const
}
bool D_PAD::IsPadOnLayer( LSET aLayers ) const
{
for( auto layer : aLayers.Seq() )
{
if( IsPadOnLayer( layer ) )
return true;
}
return false;
}
bool D_PAD::IsPadOnLayer( int aLayer ) const
{
BOARD* board = GetBoard();
if( !board )
return false;
/// We don't remove the copper from non-PTH pads
if( GetAttribute() != PAD_ATTRIB_STANDARD )
return IsOnLayer( static_cast<PCB_LAYER_ID>( aLayer ) );
/// Heatsink pads always get copper
if( GetProperty() == PAD_PROP_HEATSINK )
return IsOnLayer( static_cast<PCB_LAYER_ID>( aLayer ) );
if( !m_RemoveUnconnectedLayer )
return true;
/// Plated through hole pads need copper on the top/bottom layers for proper soldering
if( aLayer == F_Cu || aLayer == B_Cu )
return true;
return board->GetConnectivity()->IsConnectedOnLayer( this, static_cast<int>( aLayer ),
{ PCB_TRACE_T, PCB_ARC_T, PCB_VIA_T, PCB_PAD_T } );
}
int D_PAD::GetRoundRectCornerRadius() const
{
return KiROUND( std::min( m_Size.x, m_Size.y ) * m_roundedCornerScale );

View File

@ -502,6 +502,20 @@ public:
int GetSubRatsnest() const { return m_SubRatsnest; }
void SetSubRatsnest( int aSubRatsnest ) { m_SubRatsnest = aSubRatsnest; }
/**
* Sets the unconnected removal property. If true, the copper is removed on zone fill
* or when specifically requested when the pad is not connected on a layer. This requires
* that there be a through hole.
*/
void SetRemoveUnconnected( bool aSet ) { m_RemoveUnconnectedLayer = aSet; }
bool GetRemoveUnconnected() const { return m_RemoveUnconnectedLayer; }
/**
* Sets whether we keep the top and bottom connections even if they are not connected
*/
void SetKeepTopBottom( bool aSet ) { m_KeepTopBottomLayer = aSet; }
bool GetKeepTopBottom() const { return m_KeepTopBottomLayer; }
void GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM>& aList ) override;
bool IsOnLayer( PCB_LAYER_ID aLayer ) const override
@ -509,6 +523,9 @@ public:
return m_layerMask[aLayer];
}
bool IsPadOnLayer( int aLayer ) const;
bool IsPadOnLayer( LSET aLayers ) const;
bool HitTest( const wxPoint& aPosition, int aAccuracy = 0 ) const override;
bool HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy = 0 ) const override;
@ -678,6 +695,9 @@ private:
int m_LengthPadToDie; // Length net from pad to die, inside the package
bool m_RemoveUnconnectedLayer; // If true, the pad copper is removed for layers that are not connected
bool m_KeepTopBottomLayer; // When removing unconnected pads, keep the top and bottom pads
/*
* Pad clearances, margins, etc. exist in a hiearchy. If a given level is specified then
* the remaining levels are NOT consulted.

View File

@ -26,6 +26,7 @@
#include <fctsys.h>
#include <pcb_base_frame.h>
#include <connectivity/connectivity_data.h>
#include <class_board.h>
#include <class_track.h>
#include <base_units.h>
@ -60,6 +61,8 @@ VIA::VIA( BOARD_ITEM* aParent ) :
SetViaType( VIATYPE::THROUGH );
m_BottomLayer = B_Cu;
SetDrillDefault();
m_RemoveUnconnectedLayer = false;
m_KeepTopBottomLayer = true;
}
@ -163,6 +166,14 @@ void TRACK::GetWidthConstraints( int* aMin, int* aMax, wxString* aSource ) const
int VIA::GetMinAnnulus( PCB_LAYER_ID aLayer, wxString* aSource ) const
{
if( !IsPadOnLayer( aLayer ) )
{
if( aSource )
*aSource = _( "removed annulus" );
return 0;
}
const DRC_CONSTRAINT* constraint = GetConstraint( this, nullptr, DRC_RULE_ID_ANNULUS, aLayer,
aSource );
@ -482,6 +493,39 @@ void VIA::SanitizeLayers()
}
bool VIA::IsPadOnLayer( LSET aLayers ) const
{
for( auto layer : aLayers.Seq() )
{
if( IsPadOnLayer( layer ) )
return true;
}
return false;
}
bool VIA::IsPadOnLayer( int aLayer ) const
{
BOARD* board = GetBoard();
if( !board )
return false;
if( !IsOnLayer( static_cast<PCB_LAYER_ID>( aLayer ) ) )
return false;
if( !m_RemoveUnconnectedLayer )
return true;
if( m_KeepTopBottomLayer && ( aLayer == m_Layer || aLayer == m_BottomLayer ) )
return true;
return board->GetConnectivity()->IsConnectedOnLayer( this, static_cast<int>( aLayer ),
{ PCB_TRACE_T, PCB_ARC_T, PCB_PAD_T } );
}
void TRACK::ViewGetLayers( int aLayers[], int& aCount ) const
{
// Show the track and its netname on different layers

View File

@ -337,7 +337,7 @@ public:
virtual void SwapData( BOARD_ITEM* aImage ) override;
private:
wxPoint m_Mid; ///< Arc mid point, halfway between start and end
wxPoint m_Mid; ///< Arc mid point, halfway between start and end
};
@ -441,6 +441,33 @@ public:
int GetMinAnnulus( PCB_LAYER_ID aLayer, wxString* aSource ) const;
/**
* Sets the unconnected removal property. If true, the copper is removed on zone fill
* or when specifically requested when the via is not connected on a layer.
*/
void SetRemoveUnconnected( bool aSet ) { m_RemoveUnconnectedLayer = aSet; }
bool GetRemoveUnconnected() const { return m_RemoveUnconnectedLayer; }
/**
* Sets whether we keep the top and bottom connections even if they are not connected
*/
void SetKeepTopBottom( bool aSet ) { m_KeepTopBottomLayer = aSet; }
bool GetKeepTopBottom() const { return m_KeepTopBottomLayer; }
/**
* Checks to see whether the via should have a pad on the specific layer
* @param aLayer Layer to check for connectivity
* @return true if connected by pad or track
*/
bool IsPadOnLayer( int aLayer ) const;
/**
* Checks to see if the via is present on any of the layers in the set
* @param aLayers set of layers to check the via against
* @return true if connected by pad or track on any of the associated layers
*/
bool IsPadOnLayer( LSET aLayers ) const;
/**
* Function SetDrill
* sets the drill value for vias.
@ -483,7 +510,10 @@ private:
VIATYPE m_ViaType; // Type of via
int m_Drill; // for vias: via drill (- 1 for default value)
int m_Drill; // for vias: via drill (- 1 for default value)
bool m_RemoveUnconnectedLayer; ///< Remove unconnected copper on a via
bool m_KeepTopBottomLayer; ///< Keep the top and bottom annular rings
};

View File

@ -124,8 +124,6 @@ public:
using CLUSTERS = std::vector<CN_CLUSTER_PTR>;
private:
class ITEM_MAP_ENTRY
{
public:
@ -156,6 +154,8 @@ private:
std::list<CN_ITEM*> m_items;
};
private:
CN_LIST m_itemList;
std::unordered_map<const BOARD_ITEM*, ITEM_MAP_ENTRY> m_itemMap;

View File

@ -326,6 +326,26 @@ void CONNECTIVITY_DATA::PropagateNets()
m_connAlgo->PropagateNets();
}
bool CONNECTIVITY_DATA::IsConnectedOnLayer( const BOARD_CONNECTED_ITEM *aItem, int aLayer,
std::vector<KICAD_T> aTypes ) const
{
CN_CONNECTIVITY_ALGO::ITEM_MAP_ENTRY &entry = m_connAlgo->ItemEntry( aItem );
for( auto citem : entry.GetItems() )
{
for( auto connected : citem->ConnectedItems() )
{
if( connected->Valid() && connected->Layers().Overlaps( aLayer )
&& ( aTypes.empty()
|| std::count( aTypes.begin(), aTypes.end(),
connected->Parent()->Type() ) > 0 ) )
return true;
}
}
return false;
}
unsigned int CONNECTIVITY_DATA::GetUnconnectedCount() const
{

View File

@ -173,6 +173,8 @@ public:
*/
unsigned int GetUnconnectedCount() const;
bool IsConnectedOnLayer( const BOARD_CONNECTED_ITEM* aItem, int aLayer, std::vector<KICAD_T> aTypes = {} ) const;
unsigned int GetNodeCount( int aNet = -1 ) const;
unsigned int GetPadCount( int aNet = -1 ) const;

View File

@ -0,0 +1,157 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2020 CERN
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-3.0.html
* or you may search the http://www.gnu.org website for the version 3 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "dialog_unused_pad_layers.h"
#include <bitmaps.h>
#include <board_commit.h>
#include <class_track.h>
#include <class_pad.h>
#include <pcb_edit_frame.h>
#include <tools/selection_tool.h>
enum SCOPE : int
{
SCOPE_VIAS = 0,
SCOPE_PADS = 1
};
enum PAD_ACTION : int
{
PAD_ACTION_REMOVE = 0,
PAD_ACTION_RESET
};
DIALOG_UNUSED_PAD_LAYERS::DIALOG_UNUSED_PAD_LAYERS( PCB_BASE_FRAME* aParent,
const PCBNEW_SELECTION& aItems,
COMMIT& aCommit )
: DIALOG_UNUSED_PAD_LAYERS_BASE( aParent ),
m_frame( aParent ),
m_items( aItems ),
m_commit( aCommit )
{
m_StdButtonsOK->SetDefault();
m_image->SetBitmap( KiBitmap( pads_remove_unused_xpm ) );
// Now all widgets have the size fixed, call FinishDialogSettings
FinishDialogSettings();
}
void DIALOG_UNUSED_PAD_LAYERS::syncImages( wxCommandEvent& aEvent )
{
if( m_rbAction->GetSelection() == PAD_ACTION_RESET )
m_image->SetBitmap( KiBitmap( pads_reset_unused_xpm ) );
else if( m_cbPreservePads->IsChecked() )
m_image->SetBitmap( KiBitmap( pads_remove_unused_keep_bottom_xpm ) );
else
m_image->SetBitmap( KiBitmap( pads_remove_unused_xpm ) );
}
void DIALOG_UNUSED_PAD_LAYERS::onScopeChange( wxCommandEvent& aEvent )
{
if( m_rbScope->GetSelection() == SCOPE_PADS )
{
m_cbPreservePads->SetValue( true );
m_cbPreservePads->Disable();
}
else
m_cbPreservePads->Enable();
syncImages( aEvent );
}
bool DIALOG_UNUSED_PAD_LAYERS::TransferDataFromWindow()
{
if( m_cbSelectedOnly->IsChecked() )
{
for( auto item : m_items )
{
m_commit.Modify( item );
if( item->Type() == PCB_VIA_T && m_rbScope->GetSelection() == SCOPE_VIAS )
{
VIA* via = static_cast<VIA*>( item );
via->SetRemoveUnconnected( m_rbAction->GetSelection() == PAD_ACTION_REMOVE );
via->SetKeepTopBottom( m_cbPreservePads->IsChecked() );
}
if( item->Type() == PCB_MODULE_T && m_rbScope->GetSelection() == SCOPE_PADS )
{
MODULE* mod = static_cast<MODULE*>( item );
for( auto pad : mod->Pads() )
{
pad->SetRemoveUnconnected( m_rbAction->GetSelection() == PAD_ACTION_REMOVE );
pad->SetKeepTopBottom( m_cbPreservePads->IsChecked() );
}
}
if( item->Type() == PCB_PAD_T && m_rbScope->GetSelection() == SCOPE_PADS )
{
D_PAD* pad = static_cast<D_PAD*>( item );
pad->SetRemoveUnconnected( m_rbAction->GetSelection() == PAD_ACTION_REMOVE );
pad->SetKeepTopBottom( m_cbPreservePads->IsChecked() );
}
}
}
else
{
if( m_rbScope->GetSelection() == SCOPE_PADS )
{
for( auto item : m_frame->GetBoard()->Modules() )
{
m_commit.Modify( item );
MODULE* mod = static_cast<MODULE*>( item );
for( auto pad : mod->Pads() )
{
pad->SetRemoveUnconnected( m_rbAction->GetSelection() == PAD_ACTION_REMOVE );
pad->SetKeepTopBottom( m_cbPreservePads->IsChecked() );
}
}
}
else
{
for( auto item : m_frame->GetBoard()->Tracks() )
{
if( item->Type() != PCB_VIA_T )
continue;
m_commit.Modify( item );
VIA* via = static_cast<VIA*>( item );
via->SetRemoveUnconnected( m_rbAction->GetSelection() == PAD_ACTION_REMOVE );
via->SetKeepTopBottom( m_cbPreservePads->IsChecked() );
}
}
}
m_commit.Push( _( "Set Unused Pad Properties" ) );
return true;
}

View File

@ -0,0 +1,556 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
<FileVersion major="1" minor="15" />
<object class="Project" expanded="1">
<property name="class_decoration"></property>
<property name="code_generation">C++</property>
<property name="disconnect_events">1</property>
<property name="disconnect_mode">source_name</property>
<property name="disconnect_php_events">0</property>
<property name="disconnect_python_events">0</property>
<property name="embedded_files_path">res</property>
<property name="encoding">UTF-8</property>
<property name="event_generation">connect</property>
<property name="file">dialog_unused_pad_layers_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
<property name="indent_with_spaces"></property>
<property name="internationalize">1</property>
<property name="name">DIALOG_UNUSED_PAD_LAYERS_BASE</property>
<property name="namespace"></property>
<property name="path">.</property>
<property name="precompiled_header"></property>
<property name="relative_path">1</property>
<property name="skip_lua_events">1</property>
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
<property name="center">wxBOTH</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="event_handler">impl_virtual</property>
<property name="extra_style"></property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size">-1,-1</property>
<property name="name">DIALOG_UNUSED_PAD_LAYERS_BASE</property>
<property name="pos"></property>
<property name="size">602,321</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title">Unused Pad Layers</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">m_MainSizer</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">protected</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">6</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer2</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">4</property>
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer6</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">0</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer4</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag"></property>
<property name="proportion">2</property>
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer5</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">0</property>
<object class="spacer" expanded="1">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxRadioBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="choices">&quot;&amp;Vias&quot; &quot;&amp;Pads&quot;</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Scope</property>
<property name="majorDimension">1</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_rbScope</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">0</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnRadioBox">onScopeChange</event>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxRadioBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="choices">&quot;&amp;Remove Unused&quot; &quot;Reset &amp;Unused&quot;</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Action</property>
<property name="majorDimension">1</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_rbAction</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">0</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnRadioBox">syncImages</event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">0</property>
<object class="spacer" expanded="1">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">&amp;Selection only</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_cbSelectedOnly</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="checked">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">&amp;Keep pads at first and last layers</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_cbPreservePads</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnCheckBox">syncImages</event>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticLine" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticline1</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxLI_VERTICAL</property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">2</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer3</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">0</property>
<object class="spacer" expanded="0">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">10</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticBitmap" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="bitmap">Load From Resource; </property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_image</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">0</property>
<object class="spacer" expanded="0">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</object>
</object>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">0</property>
<object class="wxStdDialogButtonSizer" expanded="0">
<property name="Apply">0</property>
<property name="Cancel">1</property>
<property name="ContextHelp">0</property>
<property name="Help">0</property>
<property name="No">0</property>
<property name="OK">1</property>
<property name="Save">0</property>
<property name="Yes">0</property>
<property name="minimum_size"></property>
<property name="name">m_StdButtons</property>
<property name="permission">protected</property>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>

View File

@ -0,0 +1,55 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2020 CERN
* Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-3.0.html
* or you may search the http://www.gnu.org website for the version 3 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __dialog_remove_unused_pads__
#define __dialog_remove_unused_pads__
#include "dialog_unused_pad_layers_base.h"
class COMMIT;
class PCB_BASE_FRAME;
class PCBNEW_SELECTION;
class DIALOG_UNUSED_PAD_LAYERS : public DIALOG_UNUSED_PAD_LAYERS_BASE
{
public:
DIALOG_UNUSED_PAD_LAYERS( PCB_BASE_FRAME* aParent,
const PCBNEW_SELECTION& aItems,
COMMIT& aCommit );
private:
bool TransferDataFromWindow() override;
bool AcceptOptions();
void syncImages( wxCommandEvent& aEvent ) override;
void onScopeChange( wxCommandEvent& aEvent ) override;
PCB_BASE_FRAME* m_frame;
const PCBNEW_SELECTION& m_items; // List of items to be modified.
COMMIT& m_commit; // An undo record to add any changes to.
};
#endif // __dialog_remove_unused_pads__

View File

@ -0,0 +1,112 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.9.0 Jul 27 2020)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "dialog_unused_pad_layers_base.h"
///////////////////////////////////////////////////////////////////////////
DIALOG_UNUSED_PAD_LAYERS_BASE::DIALOG_UNUSED_PAD_LAYERS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
m_MainSizer = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bSizer2;
bSizer2 = new wxBoxSizer( wxHORIZONTAL );
wxBoxSizer* bSizer6;
bSizer6 = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bSizer4;
bSizer4 = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bSizer5;
bSizer5 = new wxBoxSizer( wxHORIZONTAL );
bSizer5->Add( 0, 0, 0, wxEXPAND, 5 );
wxString m_rbScopeChoices[] = { _("&Vias"), _("&Pads") };
int m_rbScopeNChoices = sizeof( m_rbScopeChoices ) / sizeof( wxString );
m_rbScope = new wxRadioBox( this, wxID_ANY, _("Scope"), wxDefaultPosition, wxDefaultSize, m_rbScopeNChoices, m_rbScopeChoices, 1, wxRA_SPECIFY_COLS );
m_rbScope->SetSelection( 0 );
bSizer5->Add( m_rbScope, 0, wxALL|wxEXPAND|wxLEFT|wxRIGHT, 5 );
wxString m_rbActionChoices[] = { _("&Remove Unused"), _("Reset &Unused") };
int m_rbActionNChoices = sizeof( m_rbActionChoices ) / sizeof( wxString );
m_rbAction = new wxRadioBox( this, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, m_rbActionNChoices, m_rbActionChoices, 1, wxRA_SPECIFY_COLS );
m_rbAction->SetSelection( 0 );
bSizer5->Add( m_rbAction, 0, wxALL|wxEXPAND|wxLEFT|wxRIGHT, 5 );
bSizer5->Add( 0, 0, 0, wxEXPAND, 5 );
bSizer4->Add( bSizer5, 2, 0, 5 );
m_cbSelectedOnly = new wxCheckBox( this, wxID_ANY, _("&Selection only"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer4->Add( m_cbSelectedOnly, 0, wxEXPAND|wxLEFT|wxRIGHT, 5 );
m_cbPreservePads = new wxCheckBox( this, wxID_ANY, _("&Keep pads at first and last layers"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer4->Add( m_cbPreservePads, 0, wxEXPAND|wxLEFT|wxRIGHT, 5 );
bSizer6->Add( bSizer4, 1, wxEXPAND, 0 );
bSizer2->Add( bSizer6, 4, wxEXPAND, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
bSizer2->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
wxBoxSizer* bSizer3;
bSizer3 = new wxBoxSizer( wxVERTICAL );
bSizer3->Add( 0, 0, 0, wxEXPAND, 5 );
m_image = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
bSizer3->Add( m_image, 0, wxALL, 10 );
bSizer3->Add( 0, 0, 0, wxEXPAND, 5 );
bSizer2->Add( bSizer3, 2, wxEXPAND|wxLEFT|wxRIGHT, 5 );
m_MainSizer->Add( bSizer2, 6, wxEXPAND, 5 );
m_StdButtons = new wxStdDialogButtonSizer();
m_StdButtonsOK = new wxButton( this, wxID_OK );
m_StdButtons->AddButton( m_StdButtonsOK );
m_StdButtonsCancel = new wxButton( this, wxID_CANCEL );
m_StdButtons->AddButton( m_StdButtonsCancel );
m_StdButtons->Realize();
m_MainSizer->Add( m_StdButtons, 0, wxEXPAND|wxALL, 5 );
this->SetSizer( m_MainSizer );
this->Layout();
this->Centre( wxBOTH );
// Connect Events
m_rbScope->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_UNUSED_PAD_LAYERS_BASE::onScopeChange ), NULL, this );
m_rbAction->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_UNUSED_PAD_LAYERS_BASE::syncImages ), NULL, this );
m_cbPreservePads->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UNUSED_PAD_LAYERS_BASE::syncImages ), NULL, this );
}
DIALOG_UNUSED_PAD_LAYERS_BASE::~DIALOG_UNUSED_PAD_LAYERS_BASE()
{
// Disconnect Events
m_rbScope->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_UNUSED_PAD_LAYERS_BASE::onScopeChange ), NULL, this );
m_rbAction->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_UNUSED_PAD_LAYERS_BASE::syncImages ), NULL, this );
m_cbPreservePads->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UNUSED_PAD_LAYERS_BASE::syncImages ), NULL, this );
}

View File

@ -0,0 +1,63 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.9.0 Jul 27 2020)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#pragma once
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/radiobox.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/sizer.h>
#include <wx/checkbox.h>
#include <wx/statline.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/statbmp.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_UNUSED_PAD_LAYERS_BASE
///////////////////////////////////////////////////////////////////////////////
class DIALOG_UNUSED_PAD_LAYERS_BASE : public DIALOG_SHIM
{
private:
protected:
wxBoxSizer* m_MainSizer;
wxRadioBox* m_rbScope;
wxRadioBox* m_rbAction;
wxCheckBox* m_cbSelectedOnly;
wxCheckBox* m_cbPreservePads;
wxStaticLine* m_staticline1;
wxStaticBitmap* m_image;
wxStdDialogButtonSizer* m_StdButtons;
wxButton* m_StdButtonsOK;
wxButton* m_StdButtonsCancel;
// Virtual event handlers, overide them in your derived class
virtual void onScopeChange( wxCommandEvent& event ) { event.Skip(); }
virtual void syncImages( wxCommandEvent& event ) { event.Skip(); }
public:
DIALOG_UNUSED_PAD_LAYERS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Unused Pad Layers"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 602,321 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_UNUSED_PAD_LAYERS_BASE();
};

View File

@ -41,6 +41,7 @@ void DRC::doTrackDrc( BOARD_COMMIT& aCommit, TRACK* aRefSeg, TRACKS::iterator aS
{
BOARD_DESIGN_SETTINGS& bds = m_pcb->GetDesignSettings();
SHAPE_SEGMENT refSeg( aRefSeg->GetStart(), aRefSeg->GetEnd(), aRefSeg->GetWidth() );
PCB_LAYER_ID refLayer = aRefSeg->GetLayer();
LSET refLayerSet = aRefSeg->GetLayerSet();
@ -268,6 +269,16 @@ void DRC::doTrackDrc( BOARD_COMMIT& aCommit, TRACK* aRefSeg, TRACKS::iterator aS
EDA_RECT inflatedBB = refSegBB;
inflatedBB.Inflate( pad->GetBoundingRadius() + m_largestClearance );
/// We setup the dummy pad to use in case we need to only draw the hole outline rather
/// than the pad itself
D_PAD dummypad( pad->GetParent() );
dummypad.SetNetCode( pad->GetNetCode() );
dummypad.SetSize( pad->GetDrillSize() );
dummypad.SetOrientation( pad->GetOrientation() );
dummypad.SetShape( pad->GetDrillShape() == PAD_DRILL_SHAPE_OBLONG ? PAD_SHAPE_OVAL
: PAD_SHAPE_CIRCLE );
dummypad.SetPosition( pad->GetPosition() );
if( !inflatedBB.Contains( pad->GetPosition() ) )
continue;
@ -318,6 +329,10 @@ void DRC::doTrackDrc( BOARD_COMMIT& aCommit, TRACK* aRefSeg, TRACKS::iterator aS
}
}
/// Skip checking pad copper when it has been removed
if( !pad->IsPadOnLayer( refLayer ) )
continue;
int minClearance = aRefSeg->GetClearance( aRefSeg->GetLayer(), pad,
&m_clearanceSource );
int actual;

Some files were not shown because too many files have changed in this diff Show More