- J1 rotated 90° so USB-C mating face faces left board edge - All 23 components re-placed with proper spacing (8 courtyard overlaps remain — all ESP32 keepout) - Freerouting v2.2.4: 21/25 nets autorouted cleanly - 3V3/VBUS_SENSE manually routed on B.Cu for remaining 4 nets - 84 GND stitching vias (grid + around_refs) - DRC: 158 violations (0 tracks_crossing, 2 shorts, 84 via_dangling zone-fill dependent) - Board 65x35mm, 2-layer
1608 lines
38 KiB
JSON
1608 lines
38 KiB
JSON
{
|
|
"board": "/Users/nearxos/Documents/KiCad/10.0/USB_PD_ESP32S3/USB_PD_ESP32S3.kicad_pcb",
|
|
"timestamp": "2026-06-21T12:18:49",
|
|
"total_violations": 158,
|
|
"violation_counts": {
|
|
"items_not_allowed": 6,
|
|
"clearance": 3,
|
|
"shorting_items": 2,
|
|
"courtyards_overlap": 4,
|
|
"copper_edge_clearance": 25,
|
|
"drill_out_of_range": 12,
|
|
"solder_mask_bridge": 5,
|
|
"via_dangling": 84,
|
|
"track_dangling": 2,
|
|
"silk_edge_clearance": 4,
|
|
"text_thickness": 1,
|
|
"text_height": 1,
|
|
"silk_overlap": 3,
|
|
"silk_over_copper": 6
|
|
},
|
|
"severity_counts": {
|
|
"error": 57,
|
|
"warning": 101,
|
|
"info": 0
|
|
},
|
|
"violations": [
|
|
{
|
|
"type": "items_not_allowed",
|
|
"severity": "error",
|
|
"message": "Items not allowed (keepout area of U1)",
|
|
"location": {
|
|
"x": 40.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "items_not_allowed",
|
|
"severity": "error",
|
|
"message": "Items not allowed (keepout area of U1)",
|
|
"location": {
|
|
"x": 35.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "items_not_allowed",
|
|
"severity": "error",
|
|
"message": "Items not allowed (keepout area of U1)",
|
|
"location": {
|
|
"x": 60.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "items_not_allowed",
|
|
"severity": "error",
|
|
"message": "Items not allowed (keepout area of U1)",
|
|
"location": {
|
|
"x": 55.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "items_not_allowed",
|
|
"severity": "error",
|
|
"message": "Items not allowed (keepout area of U1)",
|
|
"location": {
|
|
"x": 45.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "items_not_allowed",
|
|
"severity": "error",
|
|
"message": "Items not allowed (keepout area of U1)",
|
|
"location": {
|
|
"x": 50.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "clearance",
|
|
"severity": "error",
|
|
"message": "Clearance violation (pad clearance 1.1000 mm; actual 0.9607 mm)",
|
|
"location": {
|
|
"x": 3.0,
|
|
"y": 3.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "shorting_items",
|
|
"severity": "error",
|
|
"message": "Items shorting two nets (nets GND and EN)",
|
|
"location": {
|
|
"x": 46.25,
|
|
"y": 4.74,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "shorting_items",
|
|
"severity": "error",
|
|
"message": "Items shorting two nets (nets 3V3 and GND)",
|
|
"location": {
|
|
"x": 46.825,
|
|
"y": 4.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "clearance",
|
|
"severity": "error",
|
|
"message": "Clearance violation ( clearance 0.2000 mm; actual 0.0000 mm)",
|
|
"location": {
|
|
"x": 45.225,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "clearance",
|
|
"severity": "error",
|
|
"message": "Clearance violation ( clearance 0.2000 mm; actual 0.0000 mm)",
|
|
"location": {
|
|
"x": 46.775,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "courtyards_overlap",
|
|
"severity": "error",
|
|
"message": "Courtyards overlap",
|
|
"location": {
|
|
"x": 55.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "courtyards_overlap",
|
|
"severity": "error",
|
|
"message": "Courtyards overlap",
|
|
"location": {
|
|
"x": 55.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "courtyards_overlap",
|
|
"severity": "error",
|
|
"message": "Courtyards overlap",
|
|
"location": {
|
|
"x": 55.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "courtyards_overlap",
|
|
"severity": "error",
|
|
"message": "Courtyards overlap",
|
|
"location": {
|
|
"x": 55.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1500 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.2772 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.3370 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.2774 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.2772 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.3370 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.2774 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.2772 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.3370 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "copper_edge_clearance",
|
|
"severity": "error",
|
|
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.2774 mm)",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 52.1,
|
|
"y": 11.76,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 52.1,
|
|
"y": 13.16,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 52.8,
|
|
"y": 11.06,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 52.8,
|
|
"y": 12.46,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 52.8,
|
|
"y": 13.86,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 53.5,
|
|
"y": 11.76,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 53.5,
|
|
"y": 13.16,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 54.2,
|
|
"y": 11.06,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 54.2,
|
|
"y": 12.46,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 54.2,
|
|
"y": 13.86,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 54.9,
|
|
"y": 11.76,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "drill_out_of_range",
|
|
"severity": "error",
|
|
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
|
"location": {
|
|
"x": 54.9,
|
|
"y": 13.16,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "solder_mask_bridge",
|
|
"severity": "error",
|
|
"message": "Front solder mask aperture bridges items with different nets",
|
|
"location": {
|
|
"x": 45.175,
|
|
"y": 4.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "solder_mask_bridge",
|
|
"severity": "error",
|
|
"message": "Front solder mask aperture bridges items with different nets",
|
|
"location": {
|
|
"x": 46.825,
|
|
"y": 4.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "solder_mask_bridge",
|
|
"severity": "error",
|
|
"message": "Front solder mask aperture bridges items with different nets",
|
|
"location": {
|
|
"x": 46.25,
|
|
"y": 14.9,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "solder_mask_bridge",
|
|
"severity": "error",
|
|
"message": "Front solder mask aperture bridges items with different nets",
|
|
"location": {
|
|
"x": 5.4167,
|
|
"y": 2.7905,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "solder_mask_bridge",
|
|
"severity": "error",
|
|
"message": "Front solder mask aperture bridges items with different nets",
|
|
"location": {
|
|
"x": 46.25,
|
|
"y": 14.9,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 17.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 5.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 25.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 20.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 30.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 45.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 60.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 10.45,
|
|
"y": 5.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 17.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 20.0,
|
|
"y": 20.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 15.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 60.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 30.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 45.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 27.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 15.45,
|
|
"y": 15.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 7.0,
|
|
"y": 20.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 25.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 55.45,
|
|
"y": 5.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 60.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 5.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 30.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 60.0,
|
|
"y": 20.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 22.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 10.45,
|
|
"y": 10.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 22.0,
|
|
"y": 20.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 12.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 5.45,
|
|
"y": 20.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 50.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 40.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 20.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 35.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 15.45,
|
|
"y": 20.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 40.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 10.45,
|
|
"y": 15.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 40.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 7.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 60.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 35.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 40.45,
|
|
"y": 10.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 5.45,
|
|
"y": 15.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 60.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 0.45,
|
|
"y": 5.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 12.0,
|
|
"y": 20.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 5.45,
|
|
"y": 5.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 27.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 40.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 0.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 10.45,
|
|
"y": 20.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 30.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 55.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 40.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 50.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 25.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 55.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 5.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 30.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 50.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 10.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 20.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 50.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 35.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 20.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 0.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 15.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 60.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 45.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 10.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 50.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 55.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 35.45,
|
|
"y": 15.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 45.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 10.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 35.45,
|
|
"y": 30.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 0.45,
|
|
"y": 25.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 55.0,
|
|
"y": 20.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 55.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 5.45,
|
|
"y": 10.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 55.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 7.0,
|
|
"y": 15.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 50.0,
|
|
"y": 20.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 12.0,
|
|
"y": 5.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 15.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "via_dangling",
|
|
"severity": "warning",
|
|
"message": "Via is not connected or connected on only one layer",
|
|
"location": {
|
|
"x": 25.45,
|
|
"y": 0.45,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "track_dangling",
|
|
"severity": "warning",
|
|
"message": "Track has unconnected end",
|
|
"location": {
|
|
"x": 37.0875,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "track_dangling",
|
|
"severity": "warning",
|
|
"message": "Track has unconnected end",
|
|
"location": {
|
|
"x": 19.6375,
|
|
"y": 8.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_edge_clearance",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by board edge",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_edge_clearance",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by board edge",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_edge_clearance",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by board edge",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_edge_clearance",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by board edge",
|
|
"location": {
|
|
"x": 0.0,
|
|
"y": 35.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "text_thickness",
|
|
"severity": "warning",
|
|
"message": "Text thickness out of range (board setup constraints silk text thickness min thickness 0.0800 mm; actual 0.0025 mm)",
|
|
"location": {
|
|
"x": 10.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "text_height",
|
|
"severity": "warning",
|
|
"message": "Text height out of range (board setup constraints silk text height min height 0.8000 mm; actual 0.0100 mm)",
|
|
"location": {
|
|
"x": 10.0,
|
|
"y": 10.0,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_overlap",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clearance",
|
|
"location": {
|
|
"x": 8.0,
|
|
"y": 4.57,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_overlap",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clearance",
|
|
"location": {
|
|
"x": 45.8,
|
|
"y": -2.9,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_overlap",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clearance",
|
|
"location": {
|
|
"x": 45.8,
|
|
"y": 3.975,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_over_copper",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by solder mask",
|
|
"location": {
|
|
"x": 8.0,
|
|
"y": 4.57,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_over_copper",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by solder mask",
|
|
"location": {
|
|
"x": 8.0,
|
|
"y": 4.57,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_over_copper",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by solder mask",
|
|
"location": {
|
|
"x": 46.0,
|
|
"y": 13.57,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_over_copper",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by solder mask",
|
|
"location": {
|
|
"x": 45.85942,
|
|
"y": 14.49,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_over_copper",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by solder mask",
|
|
"location": {
|
|
"x": 45.8,
|
|
"y": 3.975,
|
|
"unit": "mm"
|
|
}
|
|
},
|
|
{
|
|
"type": "silk_over_copper",
|
|
"severity": "warning",
|
|
"message": "Silkscreen clipped by solder mask",
|
|
"location": {
|
|
"x": 45.762742,
|
|
"y": 4.5225,
|
|
"unit": "mm"
|
|
}
|
|
}
|
|
]
|
|
} |