rusefi_documentation/ibom-backup/micro_rusEFI_R0.5.3.html

3620 lines
295 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive BOM for KiCAD</title>
<style type="text/css">
:root {
--pcb-edge-color: black;
--pad-color: #878787;
--pad-color-highlight: #D04040;
--pin1-outline-color: #ffb629;
--pin1-outline-color-highlight: #b4ff03;
--silkscreen-edge-color: #aa4;
--silkscreen-polygon-color: #4aa;
--silkscreen-text-color: #4aa;
--fabrication-edge-color: #907651;
--fabrication-polygon-color: #907651;
--fabrication-text-color: #a27c24;
--track-color: #def5f1;
--track-color-highlight: #D04040;
--zone-color: #def5f1;
--zone-color-highlight: #d0404080;
}
html, body {
margin: 0px;
height: 100%;
font-family: Verdana, sans-serif;
}
.dark.topmostdiv {
--pcb-edge-color: #eee;
--pad-color: #808080;
--pin1-outline-color: #ffa800;
--pin1-outline-color-highlight: #ccff00;
--track-color: #42524f;
--zone-color: #42524f;
background-color: #252c30;
color: #eee;
}
button {
background-color: #eee;
border: 1px solid #888;
color: black;
height: 44px;
width: 44px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
font-weight: bolder;
}
.dark button {
/* This will be inverted */
background-color: #c3b7b5;
}
button.depressed {
background-color: #0a0;
color: white;
}
.dark button.depressed {
/* This will be inverted */
background-color: #b3b;
}
button:focus {
outline: 0;
}
button#tb-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}
button#lr-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}
button#bom-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-grouped-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-ungrouped-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-netlist-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}
button#copy {
background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
background-position: 6px 6px;
background-repeat: no-repeat;
background-size: 26px 26px;
border-radius: 6px;
height: 40px;
width: 40px;
margin: 10px 5px;
}
button#copy:active {
box-shadow: inset 0px 0px 5px #6c6c6c;
}
textarea.clipboard-temp {
position: fixed;
top: 0;
left: 0;
width: 2em;
height: 2em;
padding: 0;
border: None;
outline: None;
box-shadow: None;
background: transparent;
}
.left-most-button {
border-right: 0;
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.middle-button {
border-right: 0;
}
.right-most-button {
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
.button-container {
font-size: 0;
margin: 10px 10px 10px 0px;
}
.dark .button-container {
filter: invert(1);
}
.button-container button {
background-size: 32px 32px;
background-position: 5px 5px;
background-repeat: no-repeat;
}
@media print {
.hideonprint {
display: none;
}
}
canvas {
cursor: crosshair;
}
canvas:active {
cursor: grabbing;
}
.fileinfo {
width: 100%;
max-width: 1000px;
border: none;
padding: 5px;
}
.fileinfo .title {
font-size: 20pt;
font-weight: bold;
}
.fileinfo td {
overflow: hidden;
white-space: nowrap;
max-width: 1px;
width: 50%;
text-overflow: ellipsis;
}
.bom {
border-collapse: collapse;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 10pt;
table-layout: fixed;
width: 100%;
margin-top: 1px;
}
.bom th, .bom td {
border: 1px solid black;
padding: 5px;
word-wrap: break-word;
text-align: center;
position: relative;
}
.dark .bom th, .dark .bom td {
border: 1px solid #777;
}
.bom th {
background-color: #CCCCCC;
background-clip: padding-box;
}
.dark .bom th {
background-color: #3b4749;
}
.bom tr.highlighted:nth-child(n) {
background-color: #cfc;
}
.dark .bom tr.highlighted:nth-child(n) {
background-color: #226022;
}
.bom tr:nth-child(even) {
background-color: #f2f2f2;
}
.dark .bom tr:nth-child(even) {
background-color: #313b40;
}
.bom tr.checked {
color: #aaa;
}
.dark .bom tr.checked {
color: #666;
}
.bom tr {
transition: background-color 0.2s;
}
.bom .numCol {
width: 25px;
}
.bom .Description {
width: 10%;
}
.bom .Part {
width: 10%;
}
.bom .Value {
width: 15%;
}
.bom .Quantity {
width: 65px;
}
.bom th .sortmark {
position: absolute;
right: 1px;
top: 1px;
margin-top: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent transparent #221 transparent;
transform-origin: 50% 85%;
transition: opacity 0.2s, transform 0.4s;
}
.dark .bom th .sortmark {
filter: invert(1);
}
.bom th .sortmark.none {
opacity: 0;
}
.bom th .sortmark.desc {
transform: rotate(180deg);
}
.bom th:hover .sortmark.none {
opacity: 0.5;
}
.bom .bom-checkbox {
width: 30px;
position: relative;
user-select: none;
-moz-user-select: none;
}
.bom .bom-checkbox:before {
content: "";
position: absolute;
border-width: 15px;
border-style: solid;
border-color: #51829f transparent transparent transparent;
visibility: hidden;
top: -15px;
}
.bom .bom-checkbox:after {
content: "Double click to set/unset all";
position: absolute;
color: white;
top: -35px;
left: -26px;
background: #51829f;
padding: 5px 15px;
border-radius: 8px;
white-space: nowrap;
visibility: hidden;
}
.bom .bom-checkbox:hover:before, .bom .bom-checkbox:hover:after {
visibility: visible;
transition: visibility 0.2s linear 1s;
}
.split {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
overflow-y: auto;
overflow-x: hidden;
background-color: inherit;
}
.split.split-horizontal, .gutter.gutter-horizontal {
height: 100%;
float: left;
}
.gutter {
background-color: #ddd;
background-repeat: no-repeat;
background-position: 50%;
transition: background-color 0.3s;
}
.dark .gutter {
background-color: #777;
}
.gutter.gutter-horizontal {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
cursor: ew-resize;
width: 5px;
}
.gutter.gutter-vertical {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=');
cursor: ns-resize;
height: 5px;
}
.searchbox {
float: left;
height: 40px;
margin: 10px 5px;
padding: 12px 32px;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 18px;
box-sizing: border-box;
border: 1px solid #888;
border-radius: 6px;
outline: none;
background-color: #eee;
transition: background-color 0.2s, border 0.2s;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABNklEQVQ4T8XSMUvDQBQH8P/LElFa/AIZHcTBQSz0I/gFstTBRR2KUC4ldDxw7h0Bl3RRUATxi4iiODgoiLNrbQYp5J6cpJJqomkX33Z37/14d/dIa33MzDuYI4johOI4XhyNRteO46zNYjDzAxE1yBZprVeZ+QbAUhXEGJMA2Ox2u4+fQIa0mPmsCgCgJYQ4t7lfgF0opQYAdv9ABkKI/UnOFCClXKjX61cA1osQY8x9kiRNKeV7IWA3oyhaSdP0FkAtjxhj3hzH2RBCPOf3pzqYHCilfAAX+URm9oMguPzeWSGQvUcMYC8rOBJCHBRdqxTo9/vbRHRqi8bj8XKv1xvODbiuW2u32/bvf0SlDv4XYOY7z/Mavu+nM1+BmQ+NMc0wDF/LprP0DbTWW0T00ul0nn4b7Q87+X4Qmfiq2wAAAABJRU5ErkJggg==');
background-position: 10px 10px;
background-repeat: no-repeat;
}
.dark .searchbox {
background-color: #111;
color: #eee;
}
.searchbox::placeholder {
color: #ccc;
}
.dark .searchbox::placeholder {
color: #666;
}
.filter {
width: calc(60% - 64px);
}
.reflookup {
width: calc(40% - 10px);
}
input[type=text]:focus {
background-color: white;
border: 1px solid #333;
}
.dark input[type=text]:focus {
background-color: #333;
border: 1px solid #ccc;
}
mark.highlight {
background-color: #5050ff;
color: #fff;
padding: 2px;
border-radius: 6px;
}
.dark mark.highlight {
background-color: #76a6da;
color: #111;
}
.menubtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
background-position: center;
background-repeat: no-repeat;
}
.statsbtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
}
.iobtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
}
.dark .statsbtn, .dark .savebtn, .dark .menubtn, .dark .iobtn {
filter: invert(1);
}
.flexbox {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.savebtn {
background-color: #d6d6d6;
width: auto;
height: 30px;
flex-grow: 1;
margin: 5px;
border-radius: 4px;
}
.savebtn:active {
background-color: #0a0;
color: white;
}
.dark .savebtn:active {
/* This will be inverted */
background-color: #b3b;
}
.stats {
border-collapse: collapse;
font-size: 12pt;
table-layout: fixed;
width: 100%;
min-width: 450px;
}
.dark .stats td {
border: 1px solid #bbb;
}
.stats td {
border: 1px solid black;
padding: 5px;
word-wrap: break-word;
text-align: center;
position: relative;
}
#checkbox-stats div {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
#checkbox-stats .bar {
background-color: rgba(28, 251, 0, 0.6);
}
.menu {
position: relative;
display: inline-block;
margin: 10px 10px 10px 0px;
}
.menu-content {
display: none;
position: absolute;
background-color: white;
right: 0;
min-width: 300px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 100;
padding: 8px;
}
.dark .menu-content {
background-color: #111;
}
.menu:hover .menu-content {
display: block;
}
.menu:hover .menubtn, .menu:hover .iobtn, .menu:hover .statsbtn {
background-color: #eee;
}
.menu-label {
display: inline-block;
padding: 8px;
border: 1px solid #ccc;
border-top: 0;
width: calc(100% - 18px);
}
.menu-label-top {
border-top: 1px solid #ccc;
}
.menu-textbox {
float: left;
height: 24px;
margin: 10px 5px;
padding: 5px 5px;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 14px;
box-sizing: border-box;
border: 1px solid #888;
border-radius: 4px;
outline: none;
background-color: #eee;
transition: background-color 0.2s, border 0.2s;
width: calc(100% - 10px);
}
.menu-textbox.invalid, .dark .menu-textbox.invalid {
color: red;
}
.dark .menu-textbox {
background-color: #222;
color: #eee;
}
.radio-container {
margin: 4px;
}
.topmostdiv {
width: 100%;
height: 100%;
background-color: white;
transition: background-color 0.3s;
}
#top {
height: 78px;
border-bottom: 2px solid black;
}
.dark #top {
border-bottom: 2px solid #ccc;
}
#dbg {
display: block;
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #aaa;
}
::-webkit-scrollbar-thumb {
background: #666;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
.slider {
-webkit-appearance: none;
width: 100%;
margin: 3px 0;
padding: 0;
outline: none;
opacity: 0.7;
-webkit-transition: .2s;
transition: opacity .2s;
border-radius: 3px;
}
.slider:hover {
opacity: 1;
}
.slider:focus {
outline: none;
}
.slider::-webkit-slider-runnable-track {
-webkit-appearance: none;
width: 100%;
height: 8px;
background: #d3d3d3;
border-radius: 3px;
border: none;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
margin-top: -4px;
}
.dark .slider::-webkit-slider-thumb {
background: #3d3;
}
.slider::-moz-range-thumb {
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
}
.slider::-moz-range-track {
height: 8px;
background: #d3d3d3;
border-radius: 3px;
}
.dark .slider::-moz-range-thumb {
background: #3d3;
}
.slider::-ms-track {
width: 100%;
height: 8px;
border-width: 3px 0;
background: transparent;
border-color: transparent;
color: transparent;
transition: opacity .2s;
}
.slider::-ms-fill-lower {
background: #d3d3d3;
border: none;
border-radius: 3px;
}
.slider::-ms-fill-upper {
background: #d3d3d3;
border: none;
border-radius: 3px;
}
.slider::-ms-thumb {
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
margin: 0;
}
.shameless-plug {
font-size: 0.8em;
text-align: center;
display: block;
}
a {
color: #0278a4;
}
.dark a {
color: #00b9fd;
}
#frontcanvas, #backcanvas {
touch-action: none;
}
</style>
<script type="text/javascript" >
///////////////////////////////////////////////
/*
Split.js - v1.3.5
MIT License
https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});
///////////////////////////////////////////////
///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////
///////////////////////////////////////////////
/*!
* PEP v0.4.3 | https://github.com/jquery/PEP
* Copyright jQuery Foundation and other contributors | http://jquery.org/license
*/
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});
///////////////////////////////////////////////
///////////////////////////////////////////////
var config = {"show_fabrication": false, "redraw_on_drag": true, "highlight_pin1": false, "extra_fields": [], "dark_mode": false, "bom_view": "left-right", "board_rotation": 0.0, "checkboxes": "Sourced,Placed", "show_silkscreen": true, "show_pads": true, "layer_view": "FB"}
///////////////////////////////////////////////
///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("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m8JrrmIWTp579kb2Sp5tkhqeewJ0nlhjoNknenFWfdJrMy6eSrpornrvJlxITniSfZ5GnlBAhNo4MI0BlR5rIhueVZ5OHlW4QZ5tnlGeX55thbdstDaznmHOaF5WHkBOW5pNnneeVi5cVyemP55gqZBeT9KIXmLiCl5Irn6eV55bTnGeRXaJGir2eZ5oiFheR65yrmcAoZ5PnmQSOV5QQLfSHl5mOlyuSxZ8nnueQk5nFFReRl5bdnNebF5BaCeVlV5nXnjGbV5dbkRedMEpXl2eQo5OXk8yAl5BXluSEV5YFmt4f15ZXnDeVTGlXmF2eN5MTmTeefp03kJRLN5MXnzebYWqbZLedV5pwkHeU05Z7nlYRt5c3nZeed5cJm7eVmZgrkreQp55lnuYQ95p3lPedwyS+JjeW95NbmWeXV51nkNedF5TXlQWWd5/3k7eVfZe3mEuTd5p7l6eX15J3mQ+Vl5Unn+eUCml3nw+W65IPlTeXd533mo+Zl5pEnJmNJ5lziw+f/ZV3nooYj5OhkE+dGhP3lo+ST5VTlj9ni82PlA+V15ePmHeXT5qWEM+cT5LXkVWO15Qens+RN5q3lfefT5RPmDeVD5f3kEAg2kbPn8We95EMii+YTZ63kS+auZ1lnQ+TL5L3lw+cL5+3lK+fmp6XmbeRr5uNmC+dp5NPluqfV5vPmS+ej5Fzhk+Xa4gPny+cD5Zvmi2WD5lvlq+bpZW3kpmCb5jlm6+Z95yvn3ear5Vlnu+SiJ+c4UOU55y3mK+b75H+nSnAygj3nGmP6YEpZh+VT5jKFO+UfZ9blCqosohvk96DISe7ZaZKb5evnMGdH51+lu+b55K3EZbjn5ifk4+RZ5KflXqT9ZYChihEX5gfkl+REJIfk3yBX5OvkI+fn5tfnp+TH5v3npOv+IoflmeZX5NXmd+Wn5hfmZ+X35+xit+YP57fm4+dX58OkF+RWEDfluOUH5l+hbqAP5efmR+Qv59fnj+W2GCQAJ+dP5Dvkc+XP5Iumj+Yv5O/nl6Fyu6/ne+R35m/ld+WP5sflthoiu5fkH+UVZSXmFebf5p/nb+Q/55egbElf525k++T15gTn3+b35bYYEWX/5iXkK+d154Xnc+T7xZ/nf+eWkF9HgBeH5UAWg+Ud5dfkqYuf5CAUt+YR0G/mABarpwAWM+RgxxshIBUn5rnkj+WgF3flL+bRZpDmRyrcA+/m4BdAFyPkSCQQFfPlDCYiSJAVD+dd55AUwBRYccAUgBeXo41D0Bdf5s/ncBUwFaXEsBVb5TPkT5NGSQgX/+Tf5eAV+yRIFxflDeW1RycKT+TgFwgVV+aIFHnkBiUoFjfkqBZfo8fnP+QwFqAU8BXgMfAWEBUMJ2fkcBTP5WgUf+RQFegXL+U35kcpl+TYFh/ki+fYFZgXoBRn58AUFKtgFufmaBcP5ngViBRFhjgXUBer5ZDmAuZ75cvmv+ZAFnPm3eSEFhPkcPJgF2EhsJlACdvmvee4FAAWMBToFKPnJBb4F6YBpBe+2RnIxBaKZmhnJ+doFvXklMa75+gVS+aaxOzmATJISFPkEmMgF8QVI+bkF1QUB+U4FBgX1BVEFsvn2+bEFjvmVBVxpBvkFBavIRQVT+qrYpQXRABh5FQXBBR0FKvn5BfwF/DkNBV/6rPkDBWUFLnnJefMFVQWLBavxKQWFBasFaBTk+V75cgUiBTsFIwXg+QN5ygV1BZQYEwUXjgE80wXCALMFZAUXBWl5VwUHBeMFRwWi9NsWpwUQBUMFbwWeeUsFlgWpMfcFKCo8Mk8FobnnBQoFJXnAhawFoIXfBYMSAfrNBWRSrQXH+XXpR3mjBcsFqQWIhS8yF3kbBTMF5QWvBTCFeQX7BWMFyIBghY9UXIgoheQGaIXDBe8FNQXdBbcFFMqUhbiyi3kEhc8FRIXbBSSFnQVwhZIFVImshVkU+qZ/BXSFgIWwhWSF2IWHBYC5YkhFIByFUIV2BTyFewWNefCFkQUmuBqGIoWkBdyFOQW7Bf75fIU3Bdb5LIW4hRXasoWZBYMFR/n0hUCFEoUghaqFacrxeXKFLwVahaYFiQXi+XqFtQUGhSsF0oWBeZCFDoXv+YqFuoVWhSqFvQVqhaM4L/mbBW/5H3l+hUkFAYX8hQsxgoWNWqZ5JgX4+c6FPPldBeEFK/lBhWnK3lKhhYSFWwW+hdqFlwWMhWmFzgV3BUaFMnlrlImFXPnJhZF5qYUx2TQFbYb8WMXabflZBfIF+YX4BRYFgYX1hf+IjIZNhWaFHgWRhUAhYQW1hREFkcrZ+d2F2YWchbmFEYWthYoF7YUxhaoFRgVjhRWFCQULBaEFs4X6hVIFk4CoVouFgQVcBWKF24mDhZs5/JmqBTIFYdZV8EuF7QU6hUCJB4Vc6UeFt9H5ztuFZwUKhdOFugVrhW6FG4UQhl2FYljjhfKFQQX9hbPB14U8uSaZbYZ0BaeFPYVhhXEF6IWe6Xf5r4VMhe6F0wwu0A+F/wXmhXuFzAUwRUWFPQVthmlojYXfhT6FU4VOhSuFV4VoRUOF6YWYRZ+FlYbnhbT5VYW8BV/5koXvgARZiEWihX+FsAU0RdaFp45kRWeFO4XU+RaFL4UsRR2FF/n3hV+FFEXm+Z/5GAXkhZ4AXK4MRZqFeYX4RZeFA4VERYeFdYXl6Hv5oEU4RVyF0kVJhQRFckW8RXOFq/nsRWBFOYXhhRH5TEXURaJFtEUugN5xkkWcBVxFKEXiBfJFN4WKReWkVEiWRbYFv4XPhfuFdkWARbeFWrgCReRFnEVzBcZF5gXaReuFNhFl+c5FzYXQhW5FqEVBRW+FNhGjhYJFfkXEhZFFtkXRRbBF74VYyAuF8UWPha5FMkVABR5FFTlqaZWYW4WZRUhFfYVJRauFKUXoRcyFEAb3hfiFpoVOMcXZNfkb2dn56Dht8fI5l+j0RbVF2vntqVPZ2HlmBeg4ojkrYOJQuIlqSVHxcEWTgGR2Fdo1ACo5l6G18VDh/EkMSRzx6dnl2SxJcSmqBWYg6skvMqpydg5UOTNF6/F18Y9xmfGYcbZxW6hz2bEp6kljRR+FopTvtiNUnrH98ao56fHD8Ro5r/Gt4ffZDsnnRWlFngATRQQCN0XTRVFhs0VhkRnxSklHRQZRS0Wt2QhJq0V3hZ4W3wKtGDtFf0V7RXNFB0VAxftx8AlW4a9FZ0WjRR9FwwnInBGJgbRcSRehcMU0OftFnXECScDFUpFoxSdx70UYMV9Fpvov1HjFkmEuuTtxj0WHRcjFTDnRoeTF4MWSeY/58RIu2lxwv0Xjof9FU5FMxUjFjfGsxalh7MUCcZzFP/mlhc8mTnmwxfzF8MUAxULF5klwCaLFqMWf2W9FGMUYMVhFCda8xWhJ90WMxeo5zMUixdo5L0XqxejFJEkYMWAFFxAJeXLFUmEKxYLFhsXCxScRKMVBjGbFFMWaxUMJOCDC0suCtsUMxVqxjsXKxc9F5WHixXI5EMUYlubSP0V6xbtFhMUIxcTFC0UuxQ2MbsUcxQVFE+QhFHLizyYiWHTFkWHyxTHFisUBxSTFLMUmxcHFScUSxSnFUaxSArBAssV3RdHFajnEKU9FNvGmxdDZWvEYMYno/3l11HzFdsW5xQ7FdcVGxc7FqsWuxU3FK0WSxeWk9aoB+iaFQAlkcfjFOcW1xXQ5vcUqxUXF7mEhxUaxYcXARZFhY8V/Bb7FQ/H5xfHF/cWJxYPFGsUWxUMJYJJNTrE652HVxQTFM8VQCfXFVklsxSXFocXDxanFVVLvts1ct0XA0fTFW8U9xU7F88XHRaDFI0WHxaoFHrLhBs5mmDATxSGpNcUPRdvFRTEJxSdFy0UHxW1FkcpbKLjgtRb0Ag/snnFvxdnFncWXxYpJgcUNxcXF+8XmxfAloAXZ5KxyAJZnHoPKm8UCxQeRSsUFxcbFP8VLxc6xD8WTgFoYFTSeFo+YChSUYefF08UQJZ/FOCU3xWLFd8XLxYwl74A4IElYtRaXblXUHcV+xdax1CU7xQvFt8VNxWmJeVqpOWKh/+j2OZOkqiW8Of5Z1UVZsQD5UYmfoXeIasmQaAYllrlPGaJ5NrnlORJ5cVmexYUAj2ZIuQlFqToRuS+5KknrvFjAPNlEBdbsU05cgEqhUkUUGBpFskWpYS4hriWZ2XDZdsJU5jBGdiVZRWXJNkXlYYElbTkhJRAWtiXeJVZFO0nRJdZJLiVxJRgxCSW5ks+0NO6tBZrGfiWXBbElbiVsBf4i2SWnzuh5akW+JZWFmkUBJeklxSWqBWvoiBaGsgAJRlwVJZOF+YIFJe8FRSXBJVrFNiVlJa0l2nn5JdUl/iVW4UUliiWdiFhZSC6uSfocerkI2AIF1Tk9Oi0Rd4jm2SIE9jkzCZC50jklubI5lUUvWVSJWyizyNB0nebaeeG5cTlKeV35F7mSBXDZ5G4qtqNMxyU0ecJFFAUMeRhZZRlfuTMUiblaicm5P4ngsfsl/7rGubkld9mCeau5zhQcuZslhDmlueuFZBl4vHF5NKKFWfVFPUWpeVKRmFzibhncvukmKa9W0KVoZH3ZnSWIpeu8JUka+KilRsmYtMDuka6jGcLZ8KXFeZxRSKV4pWTEBKXxSVClmnl+1gA52KWnkVSlygIyxLSlf1H0pTJ5o7Ts2cMllwWspZGAQSWM+ZClSLQ+Ap30WKV8pe8FAqVv+Byliwqipb1ahPy5JdfZZUXMObilbKX5wLKlVCnmQLYWlo6EDhKly4UjJdUE0qVWKJqleoLapWKljKXKpTlFUqVqpYKlbTlkGd8CaRY6IvqlF4X8pbalMqWZ2Q6l5qUyeVf0LqWURTUlVuHGpXUEpqWr2I6lxKX0scDmTKWSpTilNoTUpSEEIaUVCt6lWY6WpWSlAUVrXLGl6qVCpcT5XqXKZAWg4hC3GValxLn2KWYF6aXkcpmlyTl22qM5FRnwIYZ40yWSnLMl3ohkGTsGwKkUOIylhaE++vEhS4ImJaNpZiVbJa45OyVlQHDZkhJTGLY0DqxyhYfZD/GRudY5qViZorVxnkWA2ewJebKjpVxGqIWFpdGl06VcyFNCc6X5RYeJNhFe6C1ZdVRjpXVFd1kqpbgxM6UyaOqlGSV+efRwy6UALsnZDUXz+T9ZjVCzpW2x9kXnWep5N6Vzdj2o46Up2Y1FR3nPpRel26WWJbul7An7pXA2JIBm1gfZv6WPpRvZAGVbpa+l86XvpYulCRCG9tIyP6UPpSf5/6XnpfBlC3EDpUOlotioZd+lx6U02RhlGIVmBXBlqVjtEYolLyUseV0J0DnXmWV4bBQNpVi4hnLXqKg5xsmBKVdx1ZQgKgxA3aWRWb2lYKXbJQwlZcWXWXp2d/hkeTl84oIUJfbFVCWQJdJRyuk/xbo5YDkCclhZdHjuSV40B8DMZTuohHE7Yk8CgdTEWQgxCvi2OcCEayV7iaYlxbmCZf2lwmWGGV2SJYJZ+McWVcXoJfrF/sU8JTQlDDlnJT1xSmXuIfJycbmQOeqJxjkaZeplhukAMQlZumUOZW8JhaE2OWpZdjmBSYW51rl9pba5X0DGsT1pqEJrghSO34UTpTBlWGUcnK3Y0HmXuY7JJin+yERC6WV+pYdZXplURVsEOWUXgMk59YJVpeeZLtldsdw5VojJ6Q+It5kNcjgWHSg2vIEpFmrxITcoKCFLVOnJsHlaWatZ+WV4aRvRbUIcgvplWRmppael5DFVZVcCzOHJZYVlcWbfgnWYg7xSJaVx0GX1EVOlbpFP+cpA1WXDOS+CdWX3aZ9oOrnNZdeZrWWiaXexp4KTZZJl7QJNoT1laqF9ZbY5hblDZWs5RDlbuW+lsNmxRaIY4SVJJS5FUSWKueVlAaUtzHUlPSXsCXvqiSXVuRz5QyUGpYUlYOWM+SElEFpGXH9l0OU7makl0aHdJYjlGDENpFDlgyUY5bUlB9xXpQAl9Rn9JSa5PiUdJeulBEkI5cT5SOVsiCjlc8mOauTlySUcyQTloyU05ZclIUUS/IO4LSXM5QDlOOls5aDlROX1JVn5v2WM5TklCM4lRTE5sOWupV0ldSWKJd5pmrk1pWCIdaWsZFplfPJ5CTSuBTpLJTtInaW65Q45/GUWZfB5n2VpsV5FtmViZdwEgRj6atJlXcWyZa5lL5EKZSDFXmUCoYeIvmVjOf5l6mWd+EFlfDmjGKFlbEJr9GB55DGe9NFlJmWxZSClzjkJZRYl7fFNqWl2CRDqWDfI2dxo7jblWCVikXPFinlKuZ5lBgneZcYJSuUe5WdlmmXjWfq5xdG3stcZiOim6YZlweUgSTFlfGV6mfFllmWJZSRJldkl5QqgLlSwpSel1qVnEXtl6XFr6d65gnEA4XHlJMLQ1E0Za6WPOR5l2WWfBAdlT4ka2a8lsoSNFE1lrywXZQy5bVFXqBGiDQDpnNR4geVbSO5qT2V1mC9lg2UCZcblGzm7CEtlQNkTZZs66vSlZc754+W2QAdl+HljZeAoK2Vr5VXil+VMKU4lu2X5zvtlC2VPiTnlM+UdEHPlJjkL5YKJl2XdaYVlHWXn5frh7aXb5dOZu+XRZa9lB+XyGWW5K8VMsjT26MZjoByFtDlfqW/lb/H/iPfIyTkjQsolrHn/5SK8vfhEFZ46ssnatstCaqlTYrSFd9n9ZRJkxex75eu5RuUIFcFFADGUhuzmkSESehtl4EXA+SESWGwd5eipxNi4FWJFL5jieq6A3BUGRXEFfBVZkkWlLmkg5QWpQhWgOe4hzLrHZePpT/nffMHUheUvaaMYIXpu0P/ogSnGyOWUNeVxmaU55iXieQeJ4RmmKJ6qbtDiqFE5LOXGKAkoAhV6qYoVYMVvhSll7BWYGUSWUQaRJTjpvBKOJWPlXgXd5YscShUCoeG6BBVdCeoVQ1zDRXJZQNm6FRSWO4l6JeehhhUQKQblteXwFdpZ7sX/xXOo1TlsmiHZaEkksjJiSGm/Lrbl5KXWcaTFAYkFFXzilRX8cffFImVd1jkVjsqtpFRJ1RXBXEUVeTncJbPFX8VBxUCJLRUKfG0VMHGCJXUVhGjwHJiidVQ0hSEx6CW9FSI8UxWrpQbF9uVQJbvFE0lnLjJpeAYiFau6PoBY2kZZLmWTpVgVIakSqLBcb/BrFekMMax+2R0VWWWBFf+8cHwSqJ8FRACkmUtydKinupQlpRVi+dRh+xXy4vbJfEX1GHcVNdm5bFsV0iVX5RcVbxXgXIcVZkWEaGYgsZabFR/Ff6WAlY60wJUfFTpFwXotAicVfxWWcQCVFWVwlQcV38ku5ew5tGVShP/lA1Te5VolZVJG7P6GYxUihZAViCF0FL5AYeUbJRHl9eVR5VOxmwmUGNYuhFnOuS/l0JUVZV3luWWtRcmRTJUUymKOx2pPAn4s3zpRpaPlGeXX5Z/lQkA1ZUMYkyWNZQAV/KnHgn85fJUrBSGuDfyPmGDkj3IPZVAVDQTXIQNlTBWmFZHl5hWMlVx5ycISVA00HIKpaGgw7JXnFZyVH+VBFWu5veU5CQsxXTlZVEA49di/VJRoKJVwpUDl/bnyFVyVk+XuIYzgI7m4lbPlnuXrhAqVrlJKlSaVLKogQpvlWMjalS/4upWqOPvlzBUZFeuFVyU2qXb2AHpKpTNlThUSCdSicaUgaiLlqhiZlYBMHUjCrtaV22W7FRFhBZXlpYdlsnDMeX5lrHnDuJLJfQlaFWC4FMqllVkUAkgQFdAZ7klmifwpZmU9pamVI2UIlRj423oYevLZ/xWv5QEVtpUu0MIVaYmIeuEVMxT9lRmspBWKlcFp3sgTlQX6+HomiZSVbOwMFbAV4eVweSwVMUU3UUN67Hp9kugVRMW0eeKV5GU4FSEVKAlUesuVKxSrleo0cpXovMPSTnjblRx6hGItEYeVVeUv+PuVyZW0lSeVaZVnlcvlZTz8uiXW4pyU+bmVzKWcsR/xIhVcgGIVMFWLFqKV4emzlfIVykVICcM5wnpu5dWlYqGRGXWlrMzq5UmSARhxFRJ6fjyJFfhE5wIrJRZpxhU22Zy5Ynkm5TullhUNcihVoXpi/JWVZGUVZThVMKmepSYpCWpiFXfouRw8VYwZWFWGpfHMSFVpiQfwqhW+acRVmonCtJolqemxFUZMbtCiVdJSTaF0VfEhDFWpFSYVzFVmFaxVwGVARd+V0jKpztsJ15WxxbeVwOVSVVyuC5XuIe16L5UvFG+Vi1wflWQVm5WnAD+VyFKr2bQVxmX8InQVOzjHlcNlMLljlWZVuHpD+shxTxU+lcWlc5XAhFfRi5XzevJVI6nrlW5VqVWaUhNZP5VAcRMJUBUHlblVIFVWuekVo5XplYg5Tso8+uT4ddkU5SgFCFVRRXRx2OXF0YBSZpg79ry0QkVolfIV3gXbsYhl32UNVWVV1ejCNLK5/OX+RbNlzEV1VbTlpVVtFCZhkUwDVeFFT4V5lclFo1Wc5T1VE1WWev1VrVWp+Q4F+zG4ZcRFpNlLVT2ayjYtVfYl6kVU5bVVx3ElVbtVZpgV6KtVh1V4RTVV81WnVW+FvNmNVcX2U1VrVRyV7VXp+Z1VbFWtwY9VvVUSeldVPhVDVXNV5UULVWdVy+VPVQPoHKzTVb2F2QVA1YRFjrFbVQpFSGVg1b9VywYHVQDViUWw1VpFINUPVeNVe1WJ6GjVUuUthZjV/4WbVQMV21VM2bjVF1WwQATVjEXDVSZF91WpRT9Vy1UxepDVr1U2le9VLXxAZRYV31WU1Z7Qnw6VVfYVR1Vw5W2F8NVk1YjV3VXI1czVGVKs1ddVRkV01YFF2NWM1bzVW9Y01VVVbQX+pVJVHVV9cV1VO1WS1XtVhNqq1YLVN1XHVXdVn1UmVTzV51We0I/CAtWDVRjVt1XA1QzVeGXK1TU5L1Wy1dVVJtUO1WbV3NULpXrVF1XrBDbVM1XZRfbVcNWK1U7VltVAWjLV6NWOhcHVWNWO1eTVktnO1XES/1WE1RFFxNUjVXHV4tW61emoKNXgXAHV0NVE1THVJNWi1TUVYdW+1buOydW01WnV9NVe1ctJFtXL5VmqQdJ18spZatWQRUrZmIVcUcqFi1X11XtyjdVvKM3VRtVy1VXVr3GDEp3VoNWW0f5odhhN1VDVPBXIRWmlHdUQ+WNVRUk91ZPVfdXT1ZIVAIVz1Sjho9U41fFJ9PQr1VSibNWYZSWl89XXBTvVf1Eyhr3VB9Vu1erVDyXH1VvVC9Vd1XKlE9WL+m9W19Wt1Y3Z7dX31afVStV0pcvVL9X91bbV0dUe1Z+xfOLf1aXVjTgpDPvVr9VR1ULVsuXYcSa429U/1XjJf9WU2VfVMDXG1cLV8DWFFWA18dW7JTZZz9WoNdA1KdWzVYXV1XGATIg14DXXue00UDUANYHVu4Wb1RipxOUFSgQ10/pENZXVpDWHcWgUFDW4NYOlelkoNaw1tDX51anVHDXD1U1JODWZ1RTV8UkkSJfVbDUt1dxFsrHWqQ/VY9Ukgvw1U9WH1bxV2FUn1Uw1yljxjDQ1a9UThYZF7tWYNbJx2DXaNQlYe/oyNYI1M9WlRUPVDrHcNRI1CdXoGSw1ajVv1fI1LbGMNcWVZqXUNf/V+jU/hfQ18tV2NUo1Z9WNOA3VejXqNVBFYPlf1WY1wineNYQ1VjXr1bPVATVaNZ41IHi6NT414TVt1XfVHjXg5X9Re6qWNb41uEWD1SI1gTXiNV9lWdU1Ds41q9UZNR/VWTWKNaU1OtWSNTtp7bzIOYQmUcqG1YA1sDUa1blFxdXycco1D6nhZMFhCPF51dY1MNUiNVrVXNW11T7Vu7J17oM1RfLDNQk1NjVjNR9V2tVfVVM12TkDNWwK5/rzNQY1EEVuNabVKzXm1Ws1/TXrrhgaznLtNXQ11kUBReM1CGWrNUjV0zUbNewuU4CR1cQ1QdXANbHVNdU+kXDZIhgPNac11tUFNZUlRTVvNUXVodU8NV81zTWDNQbV2zV+NZc18tXXNQjVZTWNNfc1JzXyLjd65zVCNSQ1QLXp1R81BRFgtTM1mzU4IGi1IzUF1Zi11dUHNd7VdzXrNci1QVmn1oS1CzWjNSS1CtUZ1Qi1jjVNNXi1jzWZGLS1OzUb1bC1yzUTNZ81BJHgtZs11NVQtYU1RjVwNTxFILUONXg1rLU/NSi1+NUitQC1YrVdNSLVkrXMtdK1SLUtNRPEqNUKte0lSrW31eiVvLU3NYc1FLXHNZq1mrrPNew1DLVwtWLVarW8Nf4xgrWPNdGKnLXQtYDVSzWc1Ua15LUS1Rq1gzX/6M61orU31W1VmtWGtfC1DTUstd61mzUlBjq1hjUBtetVgRXutSG1tzVetZS1ZrUaNn61irUxtW9VQbXxtTa1obXqtcm1wWFm6Gm1urUZtezVWbWk1SXVoLUCtWy1GBobCBa1cjWC5Yy12LVWJTK1VLV2AGkyczX/NcW179XT2Sq1TLW5tXa1LbUptbH6dbUD1Xq1gbXdNaq1/bW4tbK11LXcFlG1uzUNtda1FbVStQO1YyEENXxWpSquNQ21JTXRNVaKqeSC+veAnbXRtd21vUV8Vck1OTXKZuu1Uc7xNVy1iTW2Nee19VWYKbE1G7U3tS61dtUMtTu1KTWDmKE1B7Wbteg1gLXGNQo1CDVBNUg1jTimqtL617VHtQu1DDV1Nbu1wcJXtcHmUHXctfe1UTVftQjmKDUvtUh1d7XFNQ+1i9V/UVA6EHWIddU1PbVYNaA1cHUIuBh1kHXEdae1mjWodRe1KjUIdYe11HUIpSY1ZHVod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zU33zdgsOE7JwftUso3MLeiiDq3Oicgt9s3IIo0N0o76nNht2RSgGsmElYLQ0u8twq3tifze6yCV9dWt8F2IrcxV4k30FfaxbK3Rtf3hR63eLcUdbfXUI5u0hm3yJdsV2SXizfoF/dWri2rNzfqWrdmt8q3DLfsx6XnqrcGt003RrfebSa3IDfXx3NKjre5t/JKNrfvl4iS9rfvlpa3BbeKt9BX7AWut2PrUrcVtwUtk7eQJtg3fLfrlwdrbjdtgh43POqZLRq3OjXI7TQGCLNdt4JX49dQ0o03EUvIEhE3Sbe9JypGkzet2q8327f1V5l7SeGiSFc3BWs3N6K3a7e2Ch83jvtft3+3/LfdyvGqc2cia4B3rjdz64239TfbJn0tx7feClU3zZaRt9kn0bdQ1zs3N7eW63jIuDIQbQ+3q6ejxl0347ftS9M3DDt2t9+3YibDNyB3O7fRp+1LxLe+O6i387eZt9BXXrcQd3o7WLfFN+S3CCddJoxbXbO8LQC32rcXtz/XPbc9V+C392sJtwJ3HbeEm/6yKbcItwjrr7e1t8FXpFe7nRR3N8a/t0x3dbfKdzVFhLdW1zk31Hfvt9hHancFN9W3xnefNwG3V7d5AiCtiHc2Lfe3O+f0t9iHJecfF723fxhid0mXlli4dxy3AJfF61R31UtItvE32FeMd1jrPncBd/R3WOsIRbi3oHfBJr03OnfoV6Z3txdkt7B3FJeTVt4m1ncJLbZ3Z7e759KHdTdJdwDKcbehux+t7Ld0t1E3p7JKgNy3WttVt93nZbfEdxUm+bck22AFy7dn9jm3GndKd7NnpXfetxi7Nbecd4l3FLcttr83t5Htt+G3Dbd757GXB7dcW4a3cmcUbTo3preDdwYbRJtjt3tnLId+txlnxsgzt+Lbc7fbZ763MXdure63+nfeexsHjIcNd9t3yDddd3pHTLcLK/atxDfarVEFw7f+hw53wLd6tzG32Jv9txN3q3Ue+Im3dnfFd3UC0Jerd46bFXct58OHZjddat935beRd2fr8relm013JNuol4d3M3add2Z3Krc9Vzsm9luIbdmt03f4d5JoqHcYmw93GHext+N3Z+drY0O3nndVG1rSqbfhpot3b7d7d/tXC4WA9yYGJPdCt6tnm3cgy9T3u3doBxsHJPclt/3bW7eKd6Ln9bedt9133HdeJsG3Ikr1rX/8N3fmR0J36jcid/q3LndYd37bBXfpd5b6yNdtd3J38G7K98i3GWf0Rap3NXfPt0Pn2ncgy5r3LPdH+/tXavdbd+ytUHf+twj30veoZnerl3fLrdC36PeqNxL3urcaN1b317eUAM93+PdBrVC3eHcfd7C3c3fBd5Tb0Xfc94rnoXuzJit3Wve9aQH3Lecrd283rNfhd4b3mheh926tpHeB96F38Pdcd3dn1BrWa9SX6mnShT73GXf2d8N3jneBt653zTf1rR53RXd+9193aTevdt936vf/twbKwHe19zX3ONd69xD3OvcZNy1qdfem99ht5vfzN26H7jdndxuyJ2s595N32a329773EbdO91G32PeWZ5h37vezSzjHCvdrG8jXdPcR93udcXed96CmgXcHymv3CfcL51oXAfpp94tnO/ct53T3sfe09xx36ff895n3Sfo666P3r3d590T3mXdY59l3PXcgiqX3A7eCZoKUE/cF959374bqd696Cnck2xZF6/ejxRF3NHcnJw2mUHdnS3p3zXc894sn0gKb97APffektws3p3dNt/QqRg4P909ty/cR15j3CZvod3P3H/ey9xC3Yht4D91r5U4Yt58zwA+d+1uFEfd3AoAPdA9t916rTfcMO1QPbHc96ywP8XfoD4P3mA886hb2OA/ebch3gLd3d4y3/A9jdx73vyau8YV3Qjbmt3+utXc0D8d3zA+Q90oPpPcqD8oPXA+qD++XVA8c995tcPc8DwP3+7dD97zovZvr512zUpLvd3/3jvdiD923TneaN1IPG5pC3bIPhevyuzpm63c4qrGH3rfuO6FFNPdHuB4P75euBTD35O07d/APIfcft2m5mg9zAkEPFPes97z3eDcYD3B3X6Y4y12zuO1o95P3Q3dZdyN3Jg9G2Hj30g9lG+vXYvdVG6PFfg9Iy393W/fQD2V3Z5qKDy3n3nF6D1TL2g8VD2UPUQ8oD1EPFvcZ96U37bPHB8L3O23pD9YPU/e2D5e3o3d9t7NLchZWD4r3BHdeG/N33tYbt0ebEkWlD4JmAQ9ND4JmXPfbB6u3oPe8ZuT3IMuX+Ut3aA9GD3EMww8S2ijnHk1lG6e3Ew8Y99P3aHez992XIEqf9y93Dabe98/3kw9uql4PKvezV0H3F1en99EPRHdhD18roUUX90e48fe/D27rHw+eD1f3hg+ZD8YPEg/mKtX2Qg/k7es3UncBN1s3OPcMCncPnvfwu48PlfcdN5lqy9bUD087Kfct5xJF6/e4jyr3cw/gj/BuRI/79zrns2ckjwCP2hvH99B3CXeJDzl39CrJS8L3v22SdzN3CQ9ZD8X3FncDOIpwlec8p6aoAe3SV+Kq7rNq5rEagycShsI6mWaPJ8aXmXgSjzsGblbzV1hsko9yj8sPTw2VpIqPX/wp9iJubEJKj9b7kjrG7dcnQeac0+M4+ZeQD7jWMBaH6lKPRxYyjzZYDZdKt9yPUI9JD3Hmgg/mDw+d/kKdbrd3Rff3dy73j3ehygKPZQr3D6vIsRMwRhWVI7ev/ORJwm5jB+mARgU0gvPn1I9aF6VyIRJFjXsXqY+VU4mP15fJj3M97Ug4YVcXFDEpWvmPMhfxj3qcXxsx7bmHxY8aj7wTa2Y1bpAoZY/1O3EPuue8Dy6PLI8gBh2zcI9RjxXt4TO6y4X3PI9+j1L3AY8gShXnwY/oj+Cx7Ljhj6KPa/oTekPt6o9NF5AoDVabJxsPUQszj3ECscfbBjOPi49HJ5aPawbsSeBHWo8pxxuPVVZrjwXHDOd0RmB60uevPTBNB4+k18uPEAJ0RluPdrvK5/WP1yftDzf3nQ8YFjy7Z6gnB9cl7q6eoee3gw/Cdx8XPVcjjznrxi0EsoBrsF26LisSYXcU5qoa1Idu17mPhHvVd8XrMwdaGIeXV487mukSXA/gvZr5wI+S66Q38E/tLpU92hLYTxqP5OaTB9i9+KuET1RPqAdG982P+w8SZGOXZhiM4N0PhSmv7Y0ufY+v99kPgmd/GKBP1KecQ4VXftaPi0LmauaNetCxRxaq5vAEy5JRcxqXuJIxend4BYaiTwrmoELB9+0L+7lyem04Sk/yT+JPsk8N98RCFBcST0TWHhNteXpPd48GQFJPPgQyT0pPwr0CF0ZPb4/MjxxXVEYTNrb3s24eYXyXXs4v94yXb/cfRyCK0TDMp+aSbYK8iA/UgMc/gsu8AahELKznrm6kHZ2rsOyoW7Pd4U95lymXYyYJT1n4aspxT4aPwBgblM2XyU+Ol2FPaU9Zl7lP7qckV6R7xELZT7FPPB0F9tOa1ohsJuPThUclT9bbTI98D/UH+HYVWx6PMF0SHUFPtobSHQyXnwBR10OPlGrG4Kbgf3DqJzcdGwZmIIQnu+ZrQwSOU0/04x2XDfdFZbcdiq7uFktP4rlsJxIuBVcWXXdzBeYeznVXlPd2p0Kalenq+jWXHIAbTylXHen0ZztPDBNX89TddY3XT4/XXZtbJnJGG0vr541Izh1XT+odzZaQu5DXxA8MCuBwKuBNMpbHY0+Ajvr7OEKzT4uAJ0/N5ldPVthOe2dPcqqQz3ydV083FxqPi08bBrNjVGdwz8Gq80/mTxp7t0/bDjDP20+3HejPdE+J9xEPUM9EzzqPR3Ov0kf2BM8Qj08KsBfuWPcOm0tvT9cduR1Dl4iPkdc+TyvnkGr8T6NP1o/ZqAxGk0/8zw8GVGef5r5OhZWwz8LPoTPKp2LPMe0/5wtPxVqwFhRHRWWTlvYzKM/mbpwOEs/bT+cOa0/c555COs9azzRz7M855n6oEidJjw1Xj9gMz1/IV+bxKyzP7ntHDvpdO9j9TyiPgY/FYFFw7uCMcEDPLh1T6ww3bg+FahsG6j0rTxsGWhjyzzjPzJ1XT4HPVacRz1tPes+Yz5gCjhfTc9HPF091p8571M+5QyHP7S6oz8/SIce4Zy4dGc/wFodPd0/5z8RXNofxD0dnlScnZ2KXr0/ZFdHPmI4y11zPZec8z0rgznCAz21rCG5Y7FoxaWTEGz/MaJ2phmzZCtuonVYy82OaS2HP2ht+ZJN2vtTe1uPPmYb9zxqPWY4dz1Iyk88dG4PPdYZLzy3nmBgLz8PP2hYbz73P8bojzzuPMBdxl3JuQhZGs3bP7K3Tz5hX1Zix9t9PRA83D5RqIpf7koOryTz+Fh6dXncvmA6XDZT+l1unUmSpFo0WupdsJ0ROv8+nhR/PvANVp5jkxJ1ml7ePB898juAvf8/ml4p6sC/ZR9aXJc8aB+xne6r+Fl6XYybVc/0ULpfILyTPB/dJ99V7Cky4LyAvoK7Suj/PURaUlkZXDE/0R4G35haNx/q6L880hmuWMZe8j4cPyJgPz7+SlseXAgVHkZfSl153FjKtG1/PClbCOLUWhpdQLwZ3B6dnUqIvcC807pZzQi/iLxnHKc8qsu0Wii+QK/Iv7RaYL4kHpc92pyov3Raul0xnOUKfFvGdWi/FTzovpHt/iK3iJC8IZ1E6Mi8Q7uw61C+L505IwZfQj/YGsI/NNwE6GTLcBMudEDisLwOP9g+u9yrLvEchjzQg7RPMXaFPecJtgmqpRjNUOrLo7ocLm46PjfvNAgfdBxYUR8cWP52mDvFPTYdZ+Akvfm4PRGpd42f1+/tPpU/ZL6KGJxPtLskv8S/lL5BXrFc0L/TPR895AlRd+eeDeExdPvpYGw3Pznfxl/eQzKekN+EvkY+0Oj+d1S9UZ5KVfpdDL/gv5s9kz6tTZl2pL2lmDTNwXWMvyxe1LxYvIy8SZLkvEoZzLzkvmS9sJysvqVTRL5nPOy8lbGsvdM8yaFbP5bIvFmdnVXPxXdt5C9cNz9Q3Y4tf954AtIfkTlOP0Vp+dyaowCYfZ1bVnnffZ28vgCCxEm8vtE+LL8tXWhfoBtl6/y8+o85yoKd4yABn5odboxCvfy9md49Pj8sagkzP1c8vda1dBm6cCsiPv08AyskwkSBPF6Wl8jMJsyJHT/mf/BtdTBcIAuSv7BeE2pFVVK9bWqSvEi57T02PpHtryKEYcQ4UR6yvtK8Js/8npK/srzMLNK/HWnSvjI9SG3yPdccYp8zP/Javdc6Db5hYrx0vonc+AIEwELetnFJJGIMr988P5sbRjJeWCbMQxpqvtobc5AVODfdIQDcj3dmvltqv56u6r0e0TK/0T6R7Rq+ldthW+q+QB9qqud1ar1avpM+Gd7hTuq9DXKqvkKa2r86veq/fXeMv2Y8Wz5CPBw85Dxeq36auT7hTR11d3aTnXE/eTzxPLU8uZzDXA1fZDcLd/JKWVZvXbg/fNSmWWKrxU696GN0Hm09XOlZE3UAKBi4s3Y7Kpa+d+/FXNN32/GCP5a/FU4sHyZaniSeu984yhs2v0AcoL5PnWbfVr5qata8Sy3ty7a95r4ivgbdd4BcviwM5r+Qcsq8Jr9L7IIqx8N8QfxA8Wxbdvk5yu0MHW9P9Di2X2d04yoICIjcS/OQTIeoigsuoAV15N42ce68hW1uvX/x51xT42agd6RDGV6/br8cv5KcDT5x4Bt2r10uv4aorr87POK8gSsXwpfC3t1VSdQ5yD7N3MndBqLgWvQJQjnfbvk74T2X7JdtOqmDrlDYV5ucCDDswb75OQHPIbxoySG/PlpwOabcQb50ODDvX5Mt9kG9wbweWlA6YtzhvE08+hh+wui4kb537sGKwb4i3IG+UY3hv2k5Ub4hv9G84byD30C9yS0Q2JXKsb477lG9sCouAji+NT41XPVdh3RC3ojYJ3ZmvgqfO94OPLs+3DwqviZfNN/Fufq9XnN6voDd7+qMV/q9qb6k3LMeiq6avrq8EL5Mva9dX2l6vgeYKW7pvA3Zabwavo89tqCumLq8h6nZvVm+dr9iXx/sab8Q2+m8Obz1a9m8nd81PbY+VDscPJwck+pWOX13abz6P/Y/iD66PyJga8G0QyXiNxytYK5aZJ70n0sKVHdSVKEKQCOr69OcLT+lv6k7Kz9lvOEiZbzZvxmf9ZzG6fm4pb18nm5t2i5OWuW9D9VxWmU/9Z7Vvkk/Fb7rPwq8guNIKjc/EVufYg3iP3fP4GYCAb8EK8Q9Y9/6Pcm//1wTnRzIN2AI9/S/mPXmuYlZTb2ArPWYVb1iNsz1R/YY6s2+tTkFXCA+lT4tv/91Fh0cWW29czutv4Q/ur6qGv+Pbb2WHxxp7b0a5O28tb9G4iErv95NWCD0HuIN4iroTbxlKwm+S9wEvT68Gt6NvARhBwyTWPWdAb69zII2aPctvmadA7/UDmE+dVkV7Mz3Tb4HOonTXhlKSTnvQ73Nvqyc5Qkjva29Oe/xoFj3I718boBZq4pdv82/99zdv1Yd3b7S2oQ7MwlyT/D27PfeK/i+Bt05gcvstKH9vhCfF7EtvkKb9W3jvrIJXb0V7z2/7bxu6pHQw7wAvED347yjvPs7oPTzvbCfM76dvwu8WSKLvQu/bj5Iv0Jvu8rdvAvfUGgY9DFJiUvUY5j0yPV09uErBrzP3Q29fryNvzKfOCQk9KBf/9x5CiIjQ1ujvmPsfpHk9EO/WG4VvN4Bw75p2CO/W7xo9FT0u73rPmNRY77LvT48Le2Dvzu/Lb0V7Fu+271dv4EJe7zI9e49y78Uvb29E74dKfm+2Wy9P7koPkvE9O1ba7y2Hrrt2D7TvaEA9L51IjO/9L8cr/O8wljtITlaR742P1q9aF3+IpHQBPR7vFpeHpIXvKM889G492O++75Xvbu93+EOY8U8F783v/9sMx1XvO1al71070e+67/1vce8k7w621HplPW3vqVQ2gv9vI+9OL+9vWe/fbxb4kgZ575y39uaU71bvdo/bvJLvUe/Mr1oXzQI27+7vIO81ZtvvYu/GlyUqlu8c72dvsS+rluDWNe8Vb/Q9Pu8975TWh+8SZFfvS4+cb0uKxO/K70n6KNaPbx1PhVRU7yOKCu9DDxXPzDLgW4A3tk/GGrmh/Q/yDwFbuE+nMt4OdFqy6JQHCB+sE+f7RXJqEigfZ9dSr553cFZoH98vzdeqcpFV2TcqloQfew/Xh7xPa3Ydj0pvUB/kbw5nC+8NL6w4rvAfFFXnVojwg85H6q/2u1ICvdqO1iSGPB85R85vqAK21lk8AUeUV+MHoh9h1mFHaa7u1qMceLJ+1oRG68ihR2ZP9K5bys5Syh8gy+ofSC8FRwdv6DpgNkof2h/iH26tG5TuR0IfvILxO2AfpcfHDzUnIWnsHz6lwk/mZ3qWzJfXD09PfxjrIOyXZ2Ccl/KK+sp5ti8HyH0bNwZW069OT0hLF/Cn8Dxb1H0ezmsUoDcRH4znD4iES0d68Sd7V3UveaImKEwfBTIv8FVrZTJSQDx9a5aMS3KvgS/ua44PDiUPGAsOw9b/SEiCj4uNcm3WUPJnMQSOtc1t1mloZn16z6paJn01Hxo7t6djoGzabR+f6wtPLR8NH6G0SIJOukkUXR97vO0fzR9iLBlTJjzlusMf35NNH9dvAmeRbxqCtdYPL+J9Jn2IuBUfjh9AT6cvycjBL2OP3sicQ2999KeseqpdK9ax+OCaOk9Bw+XXhW/KTz4EnIvgmpZPkYSXHz3XHPs6T3cffm7TLzF69oDPH/N7Gk8+fWcfLuYeE28fuDePr8NvvKZL7/sf7k/z26VKmx+MH+wvV5jZ66mbOwa1fQayvs9DBx+tFPhjyuEifB/Cq4/OKGVCb4Qv2G2V5LWcF5con5KmOJ//U6Sf2i+oL/tXewkQNs6rcGRo294uFJ+0nQdvAMvkn2l9DJ9X60Sf1Mp4n1VnpsedL5u21h/6yi7aqX2V+5SfDvfYjxFv8e9bG32wU5e7IiN9BJqrg5BPIFP3FQdjtMXXlol0PxWJZzUvwK8En4+mnSK2NJtkQXf3fI4HWhi0xe47LPp0QASafYLUT9nkVp9mnzPH5e96n50pJp+kldafB/O2lpafPYMen0Uve+/D7/yfiPczfRC3w33L2bnrnVd676XnDg9nx+ZA732WWE980R8F/B6SHvo+V2DuNoADl8ETla+IN9xz732nMZI22Z9Jn8sC+J9Gb41x1KXZp0+UeZ+Jnw945Z8RWyWf6Z8Set/ssVsHpHWfMVqZn/Mf1WdUH5u27PPbbjGfmxfk+Id9ymegHx2fKstFH8nKp0/TXOcrqY2RjysZsDw2SOVk5brw3GIWnsuI707Kz8q95Ovm/fyk8XOfj6dxIcQ2J8oIz9OfDspS+Ikvdqf+mCbbgKuzn/ufp5+fa9zhx5/z75Qfia/0KuKvHi94/eqr+cOwHwYbUp/BHyCKwbCNx+vDUxtx/KA3sRADGoTLBDvue7CsPksCFN8fjfv1asBffhKgXy8oQF8bw5BfqGdWiOh77Wpc64XzG+RC/atr25/gXweqyF+3p3hfLU0PRnyfHKefbziCrXYLp3+fVP1HH2wvYa8aAAjLftsIBFHUniPpF7F0sBSYl47WnCdFZLYD/xf/JxTyHF/DIiCXP1rVpGr9UmTHhwznAl9Gh+oU54eKVGJfsJeBrw1Pep/cXzL9fyIFCzxfeJfEl0svMe8LH9KfqGb3LyEvfSd3Wn8Xs+81RzJvwE8FHydnjwfNNxH96/32xzCSrcXtan7HWxOfB9zn20jELs4CDCvM/byjmcdbE55f6QaOXwE7iccuX7yj8gJUD0FfwJ9kX6CftltGTvrKtl/AQ+GfVw96Zz1XDbATu4pHJxKmX24P//y+EhNoWVeYQ7lf0IdyR5FjbIc5X/xuGo9ET80SxV88h/vRVV/lX4CvdvYFX+kG9V+ATM7qpF8WypZfCytqjkZntzaaaYlfg2+Rnx1fLE/WXw8vPV8cLnEKvSfZX/WOeV9FEokShV/70eCHDIfzX4Hvv+fNX1QSC199EnJH4IflV/0ns19NXztfEOdtnyCfBu/bJlxXNl/pX+d9fV+ED1Jn5F/xl22wCofb52gUszaZX0MH//yq+LxvflIWKOfyRZ9Hb69f5/Kxj8ARb18GbttfiKn/X9s5gN9Zj0pfky/mBl9fWVcg321f2x+j/V2f53F3/Ubol1+SZ/rvd8+SD4v3NKIBtjGSZu9wW5LiGtcFtoTfCpME7w33lNL+Kae4xN+U30Dfv+eg+Hr40Y9fGxTfAbbfX1IvqxEk34zfvu/M31MTZN+g90PziPei1yNf8AOHqmjfLWcY364fXS8jnyarr3dMvCLfkY/N25+Gr04SU6TfH+/y77cnxRF8W1TfEyueslrfbl+x6yrfTN/637rfc89cmjzfUu+rEXxbnN+D736fGe/hZgKfeQKATkZnGAOAanjfsLefn75P54ryh+1HaSN4k1Aso6sTX2Wm5uI/ZgofXWqKKlVWFDyru4HfzRLAxmgnflJR3+1IEd+LB2HfByU6HxPL8d/IRjHfu+9On5MvGAOkVMHfIMvJ378l9zxZ326viatNq4NfvOixX9E4agPptjoftF8076Kv4B9S37by2EhMPEqH5uzPX8B6RuhTQ8cFRJfZLml0wg3iXzqfSR+kewza5lholxEuA99dNmpfkEcehgiXwl8s2nPfml+gp93fI7acX5POY98fB0PfZh+6n7bfjVf232pWXmedhbj4Jl+i384f4t/Ir8OfhIcRDlACWQOxr/jf1f0we4pU6irpXxH9Is3bX1EFNzkv31ozX995Vzqt364MJxERn9/XqEinQ+9Q36/fAD/qKqtfxwWQP/Dfjd8bsimvbBGZAx79999u35nv8D/tknkPTg9qQux7vQOmfRsfXB/UewtUVVaNH4MflQfEP6p9fzwQbpdPJrSzH2Q/cuq1annfpD9qT1qnpzFVVt0fEG755rQ/RrlTH4YHjD/sP6MfQG49p7naAj+81GMfh1/cJhXfjrJ1Z5KDPQPXhusfo1efr5jfBreea07fmXR52iOUCDvI13uMFVImK3YO7w9+ZM92oSu1D0uAuj92K/M7sA+SjI5HEStVr6idzisWP5x2Vj/Xhp4rJd+Gb0dvISsaVCEr+j8wgouqYXYuP2Xvpd8gHyJvUj8Xql6Haj+1DoaJBitvF1sfGD+5D6o/Sm9+KflNgcj+Z5s7bwOW14juhlzvuoJolAfgS78laBjjlpk/eT/Fs4avi0vXA9k/qTe5P0hA+T/oN6k/2cfpP9nduT+VaMU/fN93FzdfBpaGs0ZnVwOhTQKnSj8S31eYJcCKbw8voI4iNNNOrvpzl/HWZCoql+LrL7Nxpbtu8M5KLw33srIjPzjH1UuHaHM/Uz9864VvmOazP892KhaXK8s/LQJQb1m3eNYdls928z/qL2PrOz9dKns/kV/tX20//5Zv19xX5INdKgiDA58xP3Cf5uvxPw8vAOqkdnWYUz+gz9Cylo6Fyz2o/HuDFNICIL98P2Bz1j92oZ7zETug3RC/iDeT3Lnd4L+01pUH99FJKfC/v1b0+0C/vVpKfNl2SL81ds4iRz8Db5I/9z86mEQ3nT9Sg6eFMoO/6k0n6D8fP+5rmhv5d7+zdYZYj3Afec6Zl54zLZs/VJ2AxL+ID3GfvL+9sgK/V0cITw33XIhA/flq7S5YXaqDor+Fb9K/Ir9SvxZqgr+3P4G3oMDeH2AyVoNPD1E37t/cz2BbXz+GX1BGmFTJKyyL8t9p+1Xkkz/UDNoWKefrP5a/G3fzZLtuNz8Xds10Nr+nj2K/1r+7P6i/4tv2vx6/fL+zZ+6/XSrnP2ZHih9NjD6/cD/MT8K4k9dO3wqPMYNG6L9WzWfn3wNfZL/Mt0y/bWtjMxifnauwrC8vuxraatZIavgbr88AlKjeLtaIeb+3n/vvOb+8vxMc0o/j+8oWlb/Gl4W/UiIVv/m/cubOl5A2ssClv3qfPshFvzW/Tb+rU5BLJ2z0QG2/Yb+WH8K4Qdfil++DjYMi3FJv2K/KPzKfKb9O3yHHfQ4rfbTFVRtpGuODRp+z59JsbJo2n4pf5i+H9wS1a7/qn8BuyJrrzOu/688HSJz2278FDuPMhp/mnxr3Od3en5BlZrvXv1val79Un12vJL8bpiE/4mqRFw8vggabv4qfy78wn+ZfCN8XwIM/hl9pvz3x2VRZvx9Wfb+g9lDyaS/lv1dHOccVb/W/XU+IuGkvqH8wEviqHozxT4h/hFc5x3YymH9JIlIynxDtv5MvPObWSPB/aWZ4fyR/yH+E77pfX5+tT0ffR9INg3N2n4NSd2ZfEZ8WX0m/zDL6v3sf1f2YQw26kY+/X947sN/issyH2F9Ah0ES/l91X/558OhSf3iSZH8/X59fon/VV3J/rl8SP3c/0V8Va+6PI18PXy72Dv1vP7Cfw7+5D3O/zTdVAppPjgoiTw8fl4R3iL0LJ+9ZF+/WGo83H5GETrWYLoY6Nn8epHZ/UF+LJ78fpBP2G+8fwuZuf8Pfhbe+fzpP3n8Anw0GwX873yPfOl/tnw+fgnbAu6m/nEOVCvXfOr8fjxObZn+/v7UiuQ66Q1O/Kg6Y9LxYbPV90hi7ndcv1QczGWcUjkV/MvXaFvPC1X96Yj5/rXf2rGP2dfIlf2cbzX8Yemmzd79lf4Q1bX9a29I85X+Nf3F/AZ9fv8Q47i+/v9pDuX88sxKfuGbpfwffyb98f/kP6mmNGNv2PkPy33DOq/ax+lyqhNeY9Jt/T0J8hqyfpptGcgkWJE4qhlmOhzSm6J/krN8bl5oO8FQCbxP8rKtn9nd/7C4fJ3unat+0dxUmvkzb9g9/987HfwW1P38xf6F/d58Mfz/vJuZfj0t/B1heQ9XooORn36K7yV+jfxxgi3/YP67hrSi9A8Mutlj5f8T6jFafwkUudlLn+9j/dvqgnErmhq8E/7/2Q9ia5iyuA6+E/+kMqA4LdmA/R2/nfcdhrlp4/wrWDhw4/6DxxP+Fb4z/7P83ZLT/D6Yxykz/HP+A/wu3yR9HXzO/1B/gn7tyqP/bDro0ij/5Hzx/O+tZfwa/WNqDQ3YTa++CZshku0/bD5WGSKjiG+9/UA9Iy1DUgBa2+t7Wmv8ogM/HYr8jVPyrlUMgy1b/xv9giG87Zv8oJfmvgvnrryw/+qukv9p/a3a4DvO/nIJUb2r/0T/Gf64v8ZeUMG3PLAbaDtLXhD/rKSffWv9UpjH/Nv91d2NkuBYm/zt/8f8p/7r3Kcy6//r3Sf9rQ+7/U+eD2KBv/0gTG5n/6k56//T/Zd+tP17/BpZVzxN/9rR0c0wTsP/Tp+L/8J/iMGB//H/xzcH8j5pak2OrlwIQwyeaotZFcn3/k/twB1WscQOVZN4ONRR2GP3/qB8aFsdaTHT2DqP/wgZDKvT7g/9T/8P/qTeW1Ev/gOcubx+/IH/twMx/YM2d/8da30Oon9O/fT+UmIAgof9O39YCd448Mi9r5w9V9zb6XbEtf28ofX9urfFMnX8Vf2K/OCBkE71/MNvP/4N/Em2P/8MFjFf23nirlF/+bvANu4f/1Nzm//Vk2+BRP/5Df39Pp7/Y6+dw4kb69WAphtPfPL+p/95f5V/0+fm3/CH+oWoR0rqTmK6NB/WZMKOJ+YaKx1f1uQApFQRYwlP5s306BDCsZ0yem4e35nsiknJQAkAejAC/Zw/VBYARZiJgBFek6AE3f2BrvKyQ2GcsN+15RS1yhnGfC0e+v8s5Tzf1dMFUONueLMNZYbCGiA/lx/WneV/8y+61ahGOqIArzuRgJEgySAOpzP7wVpKNADtAHuO2GOkYA9SctACTMysrH9/uwAzv2ZgCbAGnpAxzJ7LWAsjgDPh7yo3VhtoA94e7gCRAFSAPL/kE/diuoP8BxyJ70MvmQqPQB4AhlAF0v0HPgl/Li2rjA5T7yU1yhmDYbrWgCRA1AIzwGnPRybe4dbtn7L+nChHM/ZDIBetcOJjllxyAfRybIB+QCZzT1l3MJGUA5suAgDd25dl3P/jqYVFeQz8KpZJwyJGpj/Oi+Q593NZI/2KPj9vHjGW9oH9imJxQxjefDd0LNQm8LYz043nKnAYBF58nE6eOFXPqMA6QBihpg2YcqxsJgO6aYBm59ZgF+APVvtvzXB0MwCCRwLALbhlufB9eUV8UAEVawMvu3/VosPQDK4aHNwbvuG/OJ++ADkf4C/VgvvJSSdOcfNB9Abwy5ACmfRhOqF8fJZvAOu/hsA6j2WF8TtTvAPBdC8A/8+rZ8TU6fAPUluJISRsiF9/z7vKBQvkRfCdk3wDG3TLegRAZCAod+7QC644uTyMzgYdV4B7MJG/5HxwR/r2wJX+pwC9RzkaANHAo/UBuTqx65a8PwrNJSAyh+tR8IrYy3HnrnQ/D+OtICeH5zH2xfueoJkBR8sqH7YbmbNMb8cHe1ICNR4kI3fxIIqHkBp8tmOSMgM8KqKA+kBKr9Yn4Xqi6vkpvD+GfQM5j7xvzh/rJvI4BXS8iQEEAOgLJYyF0uWCMOP5uD3h0LpUaBGxqxqVzGgOB3GnPemuzddp8ShjmXlCHqVO4toDkq4MgMsmMjuUQIh48PA46LBNAb4Am2+DP8HQGugMtAUG/CUBLoCLQEtY0QAXvfAIBt/d8xzVJ2nrlAjPUBLWM8QG3zzqAQt/W4BXQCcH6jHFLHKQA950cn8+sq4ujk/mDMVx+Ey8Gf78d2KJAjPaeQNptbC6IN2LAfmA33eLRIUrbVAI+/iSAzZSto8jIRVgONnkdbCg+IP9IwEDjjRFoZfXFsDGlRR5zf00blqAu4Bq8gP3gbjl8Bur/J8W/RRdxwKXxsZslITRGM98ZC4o5EXHEJfd/MwVoZEYwl0RLlJHZcBG44ZL70rxByCuA7e+O79qT7vJ3nAbuA/EuDQtP6jngK0vrvfUlW/N8CQGDjgJXo+pccB/xdVQE061kAYr/YcBqYCJ8gfWFyHBOArzuJqhmdbr3xOXIKCXIce4CNR4mqDRWPPfEksoEDoIHC/2Y7osnSCBRiM+76tOkzWHBA48B779EIGwQOXvqhAqCBOECDgGfvwV/sK4QW+hl8EKTIQI7vgmA66+uADfXCdANHPjPbPO+2JgZ3bp3xIjIWPW/OLZZwx683zGAa2qZiB148XZY8QLLKj2Pe3eXEDYtSF30WrJ2qcj4eY8yr5Hm1EgYJA/w2od92IF4kzDAXeA2oBl995ZzqvzaFDXfSFulED4f5EQK/kDggWiB0t84V5m+irGK7nAiyx/Ywc5OTi2vnWnB8OyBd6Q6gR3znOZA4sOxB9bIGwrz7DtnPDHOIednIGOQJYnF5AzEsGECd/6i/0OAc3/f8s8fIjM6NI1/7AOA+l+Jn9nhAqm2JAWsjIkAKIBtiCZgLcgeQMU3QzoMop6kHHlVFmodKB9YCDf5dOgduNv2cNwGUD8oFCZG37DlA0FOOaEEoFFQPsnJ9oL6sSKhJui5QOA9JVA7KB24BioGPLyygfVAwHoaIDogH6hmYjtqA69G6yNiAGbIwNAdJvVQBaR9wD7qAIeXvFArNQb45koElQNSgZMuLaKKTMo1jaEG+Rnx0RqB6S5aoHb9nwhMtAlKBdUCPZyyTA2gWiSZqBK5YdzA1QIKgSpyU0YR0DeFQnQIOgfcjHyBHUDIj73QM0/nv/CaAVd8EEr/SASgT8jSKBUQCZ17Ym0mgaRAukcCUDSsh1zyj/ghSBaB+ldIFz2Tlugc8XAlGEECtoE0qFtAIA/PaB2/YoYEVQMegesGOGBeNoLoGm6CRgddAntsMMC0YHMBgxgXjA7qBf0CFtRCn0v0EDA5iscMC3wE/T2Cge5rAGBxIDl4ytzgwlExA6mWPKMpMxymC9QMrOZa+5N9wURKVAonu6AnB0o0xGaw32xQfrzAwLc6QYBYE8oylgSbfCWBHCpj5BK3yT0DGDKCeEi91gHXS3LvrpAi9U0YDq77cowqnNpAxN+1EDkwGEh3DuHLieYEYrp677cWk7RIujJW+ASIPFY+Xzpvtu8Bh65t861TOwI7RuLA+2BxSo7d5yQKQdO7AkieAT83H70ANBEF7AjhULUUJlahwItnJzvej+8X9yYFE6gP/lCZXVGYcDDt7i6zpgYmA1SBPtsDGApgLogVCmaT6ZZUaZSgwIfvqGJDMOvYwPgbgF1TDsbKePaF7sZx6S9jnDGxAkuBFkAy4HlXyuXu1SHmBM1c+iQtwNrgU3A6SBFcDM/hVwO3dlVWSuBA5cyYFj73j1tjff+6BaMjP7AfzlARoAehABkCW74OqQMPvmjEWaS9st1AflzbgSq7N2BXWYh4HqwJ9AfQAg4wJlZG4Fc3zXgV3AwOBhYD94FBqlbgf3A6WBPqN14F1wMjvpAoHeB7cC/YGwUz7gcPA2UBDL8xV6EhwTDrdOSeBDB9p4EwcwJAfpA7OBhkCtpBzVwgVqQqFSwLRh7L5WUjGdGNcKqsTrVhGi8KwR4kggicm8Sw8/4wpz4eNWsOwIp7hichOp2NEvICOBBXCtEEHSZFBTnECB3Iea5p+jZVEHDH5UbKopVo8EG7GHxgSSScC4qCC7xboIIpJJ9WenYLDYsriOn0CfjUA8LME9sOaxIJzbDKOjW9G/8CxoGAIO1gcnICA+YUC+txHIzOfmo8Wl+RcCoc4KrEdyNwg7BBiU5p0h0INpEgwg7Dc32c8/SsIKgUJkcRx2BMJ43QUIK5nFQg1eOhW8TVCydHwRI0qfYSyCCDEECKyMQewg4sO8HJsEH0IIdyIwgx8ctiCEEHk+CQQSPA8mcEDs3NYYgNdjm13MdGU8CJEHRQJ2Po3HUVkVeMNCYzMxm/gDvDyEw+poFyKXChhqDvGIYzQ5PrBc72v0GkgplmyqdUkEZb0SQb6fbO+R29azB/9GyQciGCpBoKNnmxQwyK9kUg9ScmTtOix5IKqQYEgrsBv8pnZwLpziQTJjPkQhsDuP7GwJgpEBgJR2Q+MU5xy1np0LD/aJBCwATKDqQNUmupjNgUr1Iv0SRIKSvkbAjUBV5gdBapmwRcoo5Vweo0DY4GMfwBlAFjWaWCLkoC5pwKogWsg9qwXhBaAA+ED8IIzwQkOF9EuSQyrwDvpwCeiAPb9P/gWHQY5N6A3yOwDpnJAvIPUVCUqYjkoc9VD7fIIsOrToNWeL9pnkGgoMBQVKuDB0q85QtIOh1j1oRXBXOeh9YHQgPBI/uoqFVyHyCkUEWH3RARByUKBZ1907LE436QXv/f/gq5BUzZMbjSZCI5K2BCqY6zBpMjkLO5/M12JVp6cZQ7CAATSg9X0zKDl57ELDZQdwqMkenKCmUHcKmqdrygoyk1sczF4ngJpHshAWlBflc+D5paC5kEKg9z+8Ocxf5JgK4MELjMlBjKIpcZpfyigcH/fp+3S8wm7p4zylkwuKCWOgCf5j8q3O+qUuHluceMJ2SNcV4QUHAwQBVkpzUENsktQac3LxERUt9NR51ydxjHKU1B60YnUFDGxdQc3XftwIeNuOZ0C3ZtA3iDHWAaD2kHtb1WLCRA4kBP2Zg0GRihIXPqg17W4iCVkEfb0GQYr/XY+/UD7laWaRCZABqO3WGjwX8aTawMXPhTFqaSC5fX6AVz5ErSNDhcc5Qwu6WaWLQSF3atBYIhfO7QKgOJNn7RZ+c3Mm0HVSzLQXmg8ZoYaDEe5gE2DPvu2IxcWaCtH6RAPeflMggigRFBUIAkUAGAGRQCrgobs8Cw4wyMop6WOX+aJI7P5RLh3nN4rbk+ky4Hha+53grAEuOlU9k4V0FxBi3QXYXEbEcQY90EJ51g/hEGM9BxYcD0GIwIzxHUGDdB+ld7ZRMIOitDeguZc3OVz0FMnyZQcfzBvuq4dkPhGUl2gYkuC9BtyMHsxSR0JAJkuNvwhm4wBjJLiCVJJfE9Bt6D5XSGUjAwdBgq1B58CbUF9JwfQd8uOUwdAtOE6foKCFihgoNeky8BDBQYJpUFhg+9BuGDSMFTF3qMshgrTcxGDTdAUYMOLlRgkjBY2QaMHqFwiDAVZKSOPMhwMGNF0MpJxgw9BzGDKMG0YMmXEPjPYugmDIYGmqG7QQSA4wmbWs50G2E1DaESg8aBn4Co6AjQFPzumgqecSBcTVAAv0WbOpgwzM8hIyOQX0So5HBhbS+ep9zAwnBjXkIUvMheJmDU85qz2+zp/kGfq4idpo5URzfQeZgun+e8C0MHokhODBlSMFBfRJHMHbLmlnkCvWL+ep9aZymYIALnCXELBgK4/MFvvwCgaPfMLBky4YsEfLnswX0uZzB9U9d36BYLiwaoXCLBTJZbMGtLgywaUgvhBDYC4iR4jAPGLjoD5elNpJbiPdks9MAmGzBhfoAxzfLhakBwgs7oNWDhJzzwTywYOnCpmD4DZkHJmF1DgwGHTBlwD0v49VxG4PEgcbg2vtqnJlgL2bGOrGwwMSNmVweB3urpx8bf+UFc7U5l+RF1CulBNBRkJ385LYKifkV7K2+964oGjVIJuDHiTI2GiDc1sFSUiifs2aGbBqIA5sFGYKM3hNg/bBU2DoCxdZh2wZenWhID2D6iwC5HWwdQbYSBHkI9sFvYKEfsydA1c32DqH4pzzL8mvYW7BY58DVzA4IuwbeA+gB/sgwcEa7FsbGDg57Bsc9WIGPIWWwYcJO7mf2CYFwQ4ICwZMvaHBYSQc3Yg4ObzKVfOT4uc9CcH44L5Or4SY7B72C5gGD1nuwedgsescYcRlwdgL2QR7fAGUBK5hsGsRlFXMsg/q+AyDzkHMHy2IKwfQdWdFVC0ENlEYdueTUBuwx1WyYSwjjJmb7X/oHa4i5jB92RQaQmAZYsuCByZyaxlwXmuOXBR0dy4xq4MgeirgzCsadxM1wa4JkPp03fXB6uDdcHlZxNwZVSQ3Bha4+YwW4Mqplbgx5uyWxlcFxkyvnFrAlNBgUhXiDx1zwpjqrTEGhFMl0FtAJ6gcKXFg+OxBUzaKfC2pKzaJ4B/rJnCyxU3ojPFTV/W+jtLKbkDgI3EbgzLU8eDd1ymnCTwc+aVPB965egSx4M1wcy7J4YllMc8EZ4IlZhR5GDcrbUVsG/rl91qXgyB6ueDPmbV4LtwbXg63BPVsJnBFU3TwfuuI9w9eCY8HF4JdwSpAymciahR1wh4ITANHgpoBAGsVAFJoOJQaEfK8W4pcRqaD5T7XgIvGfBTwJ7rhxH1OEkRLd4il2DlIGiAn/FqOg5/gPfo5FY9u22GpQkMamuR8GpC9PwzgUqgyfBKEsjM7BWmepnFrWM27L9DgpHU3TrK9TQlyq+C0qLr4Ir/pvg1I+1wDFZAf8EyPk9TX5+YoJfXbmyDyPkEfZnBIEpkJaux1hpgqrHu4fuCe2xQEIvLoocWRO9S8DMHoYXfwf4A+JQauZv8Ho8VDIJ67SOU8BDh9SxO1wsCAQ/3Bel9+n5tJ344B0nWdBirATKx7J3SLoPtOd0JxdA6a03x/QR5aflyMwt6CHlbwZzvmlXy0DBDNI6CwN4ITIXDghbUDnJwabgEIdWPIQh7BDGw56j13gWUg+gBIhCeCFfJxhhKwQ54SBW8PsGPQiiTu1IJ+cvu83szCU3VHn4XJAuD2t+V4GEK0IdbfWQhaGCdCF8bmRgRFIbNahhC1I4MoxMIZvAiwhthCP4HvgOobuQQgTgbat0mQKEKpQRACVOmQfUCx7F0wM3qhg34Br/wY3T8uXTHofAjjBvdMnpz+EK2tGEQ54Sz6DfCELJWTRucGaIhSaNHYE/oL8IcGEGGEqdNM87/JxrRgoQ0G+oRDnJAflyKLqmHRq+QVpIG6ysjKIeGjSV+5Y90D6hWikgQznKohdRDtCENELLKq0Q0whLWClYRVEIqITkQ2+BnRD5k4awNawSOgzVBx1J3CGUENTfuT0KYmc0Cit55/SIjH5uPP6Gs8z4EEYKO3sFzXMkzYCwtw3jzv8HTYZsBFW9f4Rq5l2IXOPY40BxCs/DNB3inqcQ+fw5xCJQw2jW3Vt+g64+E2ht1ZpLwFXupbRIhFk9a6ZxDFeIXkvZQExC5rARZLw+IRJkL4hNxCPMJJSTeIdBAR4hjOUrCHHb2IXK8XfYhkWFQSHfEKQYkCQ40uCLIkSGvFzsZKiQuumHIcXCH4gKkQfSyNNBI4DkQDTq0y3M2HMnORgUBk7pjyKJNpHaseW2CsyrH73uDIWPGSODGCMx7yRzrHr4SbUO7BdySEckK2tOSQ6khDk9fN77IMfPmxPVQw59MU4FVTi8nn1PHABPOD6dYEkO/AacAYbQq9t/x5Jbx4Xr1uNsBVTtjjQxsjbBGqPVW+wxCSHSakLiGNqQr42yW93Q6EjjBIV5VSJeBpCDR67bzFIeaPM0hbk98l7b0TSzCqQ+fwhpCViGQ3w3wS2PUNeYxC1KxpG1S7uA9EBmcngCB7o33VAQzAo9Q6BBHRDYeFMAKXIbKAxBBBPClyFSYEKAchkOqC0Ga9WgwZmzrTOUdO5VgDYAFV3NgAGYQOZCCwBzFHIAF74CEg30ceIAZQBrgvzuDQAIiEwAAGkgKgA54bJUlUhUZDZyG9EPiIOCQbBJSpBYvlLgkAAA="))
///////////////////////////////////////////////
///////////////////////////////////////////////
/* Utility functions */
var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
pcbdata.metadata.revision + '__#';
var storage;
function initStorage(key) {
try {
window.localStorage.getItem("blank");
storage = window.localStorage;
} catch (e) {
// localStorage not available
}
if (!storage) {
try {
window.sessionStorage.getItem("blank");
storage = window.sessionStorage;
} catch (e) {
// sessionStorage also not available
}
}
}
function readStorage(key) {
if (storage) {
return storage.getItem(storagePrefix + key);
} else {
return null;
}
}
function writeStorage(key, value) {
if (storage) {
storage.setItem(storagePrefix + key, value);
}
}
function fancyDblClickHandler(el, onsingle, ondouble) {
return function() {
if (el.getAttribute("data-dblclick") == null) {
el.setAttribute("data-dblclick", 1);
setTimeout(function() {
if (el.getAttribute("data-dblclick") == 1) {
onsingle();
}
el.removeAttribute("data-dblclick");
}, 200);
} else {
el.removeAttribute("data-dblclick");
ondouble();
}
}
}
function smoothScrollToRow(rowid) {
document.getElementById(rowid).scrollIntoView({
behavior: "smooth",
block: "center",
inline: "nearest"
});
}
function focusInputField(input) {
input.scrollIntoView(false);
input.focus();
input.select();
}
function copyToClipboard() {
var text = '';
for (var node of bomhead.childNodes[0].childNodes) {
if (node.firstChild) {
text = text + node.firstChild.nodeValue;
}
if (node != bomhead.childNodes[0].lastChild) {
text += '\t';
}
}
text += '\n';
for (var row of bombody.childNodes) {
for (var cell of row.childNodes) {
for (var node of cell.childNodes) {
if (node.nodeName == "INPUT") {
if (node.checked) {
text = text + '✓';
}
} else if (node.nodeName == "MARK") {
text = text + node.firstChild.nodeValue;
} else {
text = text + node.nodeValue;
}
}
if (cell != row.lastChild) {
text += '\t';
}
}
text += '\n';
}
var textArea = document.createElement("textarea");
textArea.classList.add('clipboard-temp');
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
if (document.execCommand('copy')) {
console.log('Bom copied to clipboard.');
}
} catch (err) {
console.log('Can not copy to clipboard.');
}
document.body.removeChild(textArea);
}
function removeGutterNode(node) {
for (var i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].classList &&
node.childNodes[i].classList.contains("gutter")) {
node.removeChild(node.childNodes[i]);
break;
}
}
}
function cleanGutters() {
removeGutterNode(document.getElementById("bot"));
removeGutterNode(document.getElementById("canvasdiv"));
}
var units = {
prefixes: {
giga: ["G", "g", "giga", "Giga", "GIGA"],
mega: ["M", "mega", "Mega", "MEGA"],
kilo: ["K", "k", "kilo", "Kilo", "KILO"],
milli: ["m", "milli", "Milli", "MILLI"],
micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
nano: ["N", "n", "nano", "Nano", "NANO"],
pico: ["P", "p", "pico", "Pico", "PICO"],
},
unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
unitsLong: [
"OHM", "Ohm", "ohm", "ohms",
"FARAD", "Farad", "farad",
"HENRY", "Henry", "henry"
],
getMultiplier: function(s) {
if (this.prefixes.giga.includes(s)) return 1e9;
if (this.prefixes.mega.includes(s)) return 1e6;
if (this.prefixes.kilo.includes(s)) return 1e3;
if (this.prefixes.milli.includes(s)) return 1e-3;
if (this.prefixes.micro.includes(s)) return 1e-6;
if (this.prefixes.nano.includes(s)) return 1e-9;
if (this.prefixes.pico.includes(s)) return 1e-12;
return 1;
},
valueRegex: null,
}
function initUtils() {
var allPrefixes = units.prefixes.giga
.concat(units.prefixes.mega)
.concat(units.prefixes.kilo)
.concat(units.prefixes.milli)
.concat(units.prefixes.micro)
.concat(units.prefixes.nano)
.concat(units.prefixes.pico);
var allUnits = units.unitsShort.concat(units.unitsLong);
units.valueRegex = new RegExp("^([0-9\.]+)" +
"\\s*(" + allPrefixes.join("|") + ")?" +
"(" + allUnits.join("|") + ")?" +
"(\\b.*)?$", "");
units.valueAltRegex = new RegExp("^([0-9]*)" +
"(" + units.unitsShort.join("|") + ")?" +
"([GgMmKkUuNnPp])?" +
"([0-9]*)" +
"(\\b.*)?$", "");
for (var bom_type of ["both", "F", "B"]) {
for (var row of pcbdata.bom[bom_type]) {
row.push(parseValue(row[1], row[3][0][0]));
}
}
}
function parseValue(val, ref) {
var inferUnit = (unit, ref) => {
if (unit) {
unit = unit.toLowerCase();
if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
unit = 'r';
}
unit = unit[0];
} else {
ref = /^([a-z]+)\d+$/i.exec(ref);
if (ref) {
ref = ref[1].toLowerCase();
if (ref == "c") unit = 'f';
else if (ref == "l") unit = 'h';
else if (ref == "r" || ref == "rv") unit = 'r';
else unit = null;
}
}
return unit;
};
val = val.replace(/,/g, "");
var match = units.valueRegex.exec(val);
var unit;
if (match) {
val = parseFloat(match[1]);
if (match[2]) {
val = val * units.getMultiplier(match[2]);
}
unit = inferUnit(match[3], ref);
if (!unit) return null;
else return {
val: val,
unit: unit,
extra: match[4],
}
}
match = units.valueAltRegex.exec(val);
if (match && (match[1] || match[4])) {
val = parseFloat(match[1] + "." + match[4]);
if (match[3]) {
val = val * units.getMultiplier(match[3]);
}
unit = inferUnit(match[2], ref);
if (!unit) return null;
else return {
val: val,
unit: unit,
extra: match[5],
}
}
return null;
}
function valueCompare(a, b, stra, strb) {
if (a === null && b === null) {
// Failed to parse both values, compare them as strings.
if (stra != strb) return stra > strb ? 1 : -1;
else return 0;
} else if (a === null) {
return 1;
} else if (b === null) {
return -1;
} else {
if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
else if (a.val != b.val) return a.val > b.val ? 1 : -1;
else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
else return 0;
}
}
function validateSaveImgDimension(element) {
var valid = false;
var intValue = 0;
if (/^[1-9]\d*$/.test(element.value)) {
intValue = parseInt(element.value);
if (intValue <= 16000) {
valid = true;
}
}
if (valid) {
element.classList.remove("invalid");
} else {
element.classList.add("invalid");
}
return intValue;
}
function saveImage(layer) {
var width = validateSaveImgDimension(document.getElementById("render-save-width"));
var height = validateSaveImgDimension(document.getElementById("render-save-height"));
var bgcolor = null;
if (!document.getElementById("render-save-transparent").checked) {
var style = getComputedStyle(topmostdiv);
bgcolor = style.getPropertyValue("background-color");
}
if (!width || !height) return;
// Prepare image
var canvas = document.createElement("canvas");
var layerdict = {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
bg: canvas,
fab: canvas,
silk: canvas,
highlight: canvas,
layer: layer,
}
// Do the rendering
recalcLayerScale(layerdict, width, height);
prepareLayer(layerdict);
clearCanvas(canvas, bgcolor);
drawBackground(layerdict, false);
drawHighlightsOnLayer(layerdict, false);
// Save image
var imgdata = canvas.toDataURL("image/png");
var filename = pcbdata.metadata.title;
if (pcbdata.metadata.revision) {
filename += `.${pcbdata.metadata.revision}`;
}
filename += `.${layer}.png`;
saveFile(filename, dataURLtoBlob(imgdata));
}
function saveSettings() {
var data = {
type: "InteractiveHtmlBom settings",
version: 1,
pcbmetadata: pcbdata.metadata,
settings: settings,
}
var blob = new Blob([JSON.stringify(data, null, 4)], {type: "application/json"});
saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
}
function loadSettings() {
var input = document.createElement("input");
input.type = "file";
input.accept = ".settings.json";
input.onchange = function(e) {
var file = e.target.files[0];
var reader = new FileReader();
reader.onload = readerEvent => {
var content = readerEvent.target.result;
var newSettings;
try {
newSettings = JSON.parse(content);
} catch(e) {
alert("Selected file is not InteractiveHtmlBom settings file.");
return;
}
if (newSettings.type != "InteractiveHtmlBom settings") {
alert("Selected file is not InteractiveHtmlBom settings file.");
return;
}
var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
if (metadataMatches) {
for (var k in pcbdata.metadata) {
if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
metadataMatches = false;
}
}
}
if (!metadataMatches) {
var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
if (!confirm(
`Settins file metadata does not match current metadata.\n\n` +
`Page metadata:\n${currentMetadata}\n\n` +
`Settings file metadata:\n${fileMetadata}\n\n` +
`Press OK if you would like to import settings anyway.`)) {
return;
}
}
overwriteSettings(newSettings.settings);
}
reader.readAsText(file, 'UTF-8');
}
input.click();
}
function overwriteSettings(newSettings) {
initDone = false;
Object.assign(settings, newSettings);
writeStorage("bomlayout", settings.bomlayout);
writeStorage("bommode", settings.bommode);
writeStorage("canvaslayout", settings.canvaslayout);
writeStorage("bomCheckboxes", settings.checkboxes.join(","));
document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
for (var checkbox of settings.checkboxes) {
writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
}
writeStorage("darkenWhenChecked", settings.darkenWhenChecked);
padsVisible(settings.renderPads);
document.getElementById("padsCheckbox").checked = settings.renderPads;
fabricationVisible(settings.renderFabrication);
document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
silkscreenVisible(settings.renderSilkscreen);
document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
referencesVisible(settings.renderReferences);
document.getElementById("referencesCheckbox").checked = settings.renderReferences;
valuesVisible(settings.renderValues);
document.getElementById("valuesCheckbox").checked = settings.renderValues;
tracksVisible(settings.renderTracks);
document.getElementById("tracksCheckbox").checked = settings.renderTracks;
zonesVisible(settings.renderZones);
document.getElementById("zonesCheckbox").checked = settings.renderZones;
dnpOutline(settings.renderDnpOutline);
document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
setRedrawOnDrag(settings.redrawOnDrag);
document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
setDarkMode(settings.darkMode);
document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
setHighlightPin1(settings.highlightpin1);
document.getElementById("highlightpin1Checkbox").checked = settings.highlightpin1;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
initDone = true;
prepCheckboxes();
changeBomLayout(settings.bomlayout);
}
function saveFile(filename, blob) {
var link = document.createElement("a");
var objurl = URL.createObjectURL(blob);
link.download = filename;
link.href = objurl;
link.click();
}
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {type:mime});
}
var settings = {
canvaslayout: "default",
bomlayout: "default",
bommode: "grouped",
checkboxes: [],
checkboxStoredRefs: {},
darkMode: false,
highlightpin1: false,
redrawOnDrag: true,
boardRotation: 0,
renderPads: true,
renderReferences: true,
renderValues: true,
renderSilkscreen: true,
renderFabrication: true,
renderDnpOutline: false,
renderTracks: true,
renderZones: true,
}
function initDefaults() {
settings.bomlayout = readStorage("bomlayout");
if (settings.bomlayout === null) {
settings.bomlayout = config.bom_view;
}
if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
settings.bomlayout = config.bom_view;
}
settings.bommode = readStorage("bommode");
if (settings.bommode === null) {
settings.bommode = "grouped";
}
if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
settings.bommode = "grouped";
}
settings.canvaslayout = readStorage("canvaslayout");
if (settings.canvaslayout === null) {
settings.canvaslayout = config.layer_view;
}
var bomCheckboxes = readStorage("bomCheckboxes");
if (bomCheckboxes === null) {
bomCheckboxes = config.checkboxes;
}
settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
document.getElementById("bomCheckboxes").value = bomCheckboxes;
settings.darkenWhenChecked = readStorage("darkenWhenChecked") || "";
populateDarkenWhenCheckedOptions();
function initBooleanSetting(storageString, def, elementId, func) {
var b = readStorage(storageString);
if (b === null) {
b = def;
} else {
b = (b == "true");
}
document.getElementById(elementId).checked = b;
func(b);
}
initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible);
if ("tracks" in pcbdata) {
initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
} else {
document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
tracksVisible(false);
zonesVisible(false);
}
initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);
initBooleanSetting("highlightpin1", config.highlight_pin1, "highlightpin1Checkbox", setHighlightPin1);
settings.boardRotation = readStorage("boardRotation");
if (settings.boardRotation === null) {
settings.boardRotation = config.board_rotation * 5;
} else {
settings.boardRotation = parseInt(settings.boardRotation);
}
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
}
// Helper classes for user js callbacks.
const IBOM_EVENT_TYPES = {
ALL: "all",
HIGHLIGHT_EVENT: "highlightEvent",
CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
}
const EventHandler = {
callbacks: {},
init: function() {
for (eventType of Object.values(IBOM_EVENT_TYPES))
this.callbacks[eventType] = [];
},
registerCallback: function(eventType, callback) {
this.callbacks[eventType].push(callback);
},
emitEvent: function(eventType, eventArgs) {
event = {
eventType: eventType,
args: eventArgs,
}
var callback;
for(callback of this.callbacks[eventType])
callback(event);
for(callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
callback(event);
}
}
EventHandler.init();
///////////////////////////////////////////////
///////////////////////////////////////////////
/* PCB rendering code */
var emptyContext2d = document.createElement("canvas").getContext("2d");
function deg2rad(deg) {
return deg * Math.PI / 180;
}
function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
var point = [
linepoint[0] * text.width + offsetx,
linepoint[1] * text.height + offsety
];
// This approximates pcbnew behavior with how text tilts depending on horizontal justification
point[0] -= (linepoint[1] + 0.5 * (1 + text.horiz_justify)) * text.height * tilt;
return point;
}
function drawtext(ctx, text, color, flip) {
if ("ref" in text && !settings.renderReferences) return;
if ("val" in text && !settings.renderValues) return;
ctx.save();
ctx.fillStyle = color;
ctx.strokeStyle = color;
ctx.lineCap = "round";
ctx.lineJoin = "round";
ctx.lineWidth = text.thickness;
if (text.svgpath) {
ctx.stroke(new Path2D(text.svgpath));
ctx.restore();
return;
}
ctx.translate(...text.pos);
ctx.translate(text.thickness * 0.5, 0);
var angle = -text.angle;
if (text.attr.includes("mirrored")) {
ctx.scale(-1, 1);
angle = -angle;
}
var tilt = 0;
if (text.attr.includes("italic")) {
tilt = 0.125;
}
var interline = (text.height * 1.5 + text.thickness) / 2;
var txt = text.text.split("\n");
// KiCad ignores last empty line.
if (txt[txt.length - 1] == '') txt.pop();
ctx.rotate(deg2rad(angle));
for (var i in txt) {
var offsety = (-(txt.length - 1) + i * 2) * interline + text.height / 2;
var lineWidth = text.thickness + interline * tilt;
for (var j = 0; j < txt[i].length; j++) {
if (txt[i][j] == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
lineWidth += fourSpaces - lineWidth % fourSpaces;
} else {
if (txt[i][j] == '~') {
j++;
if (j == txt[i].length)
break;
}
lineWidth += pcbdata.font_data[txt[i][j]].w * text.width;
}
}
var offsetx = 0;
switch (text.horiz_justify) {
case -1:
// Justify left, do nothing
break;
case 0:
// Justify center
offsetx -= lineWidth / 2;
break;
case 1:
// Justify right
offsetx -= lineWidth;
break;
}
var inOverbar = false;
for (var j = 0; j < txt[i].length; j++) {
if (txt[i][j] == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
offsetx += fourSpaces - offsetx % fourSpaces;
continue;
} else if (txt[i][j] == '~') {
j++;
if (j == txt[i].length)
break;
if (txt[i][j] != '~') {
inOverbar = !inOverbar;
}
}
var glyph = pcbdata.font_data[txt[i][j]];
if (inOverbar) {
var overbarStart = [offsetx, -text.height * 1.4 + offsety];
var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];
if (!lastHadOverbar) {
overbarStart[0] += text.height * 1.4 * tilt;
lastHadOverbar = true;
}
ctx.beginPath();
ctx.moveTo(...overbarStart);
ctx.lineTo(...overbarEnd);
ctx.stroke();
} else {
lastHadOverbar = false;
}
for (var line of glyph.l) {
ctx.beginPath();
ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
for (var k = 1; k < line.length; k++) {
ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
}
ctx.stroke();
}
offsetx += glyph.w * text.width;
}
}
ctx.restore();
}
function drawedge(ctx, scalefactor, edge, color) {
ctx.strokeStyle = color;
ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
ctx.lineCap = "round";
if (edge.svgpath) {
ctx.stroke(new Path2D(edge.svgpath));
} else {
ctx.beginPath();
if (edge.type == "segment") {
ctx.moveTo(...edge.start);
ctx.lineTo(...edge.end);
}
if (edge.type == "arc") {
ctx.arc(
...edge.start,
edge.radius,
deg2rad(edge.startangle),
deg2rad(edge.endangle));
}
if (edge.type == "circle") {
ctx.arc(
...edge.start,
edge.radius,
0, 2 * Math.PI);
ctx.closePath();
}
if (edge.type == "curve") {
ctx.moveTo(...edge.start);
ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
}
ctx.stroke();
}
}
function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
// chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
var path = new Path2D();
var width = size[0];
var height = size[1];
var x = width * -0.5;
var y = height * -0.5;
var chamfOffset = Math.min(width, height) * chamfratio;
path.moveTo(x, 0);
if (chamfpos & 4) {
path.lineTo(x, y + height - chamfOffset);
path.lineTo(x + chamfOffset, y + height);
path.lineTo(0, y + height);
} else {
path.arcTo(x, y + height, x + width, y + height, radius);
}
if (chamfpos & 8) {
path.lineTo(x + width - chamfOffset, y + height);
path.lineTo(x + width, y + height - chamfOffset);
path.lineTo(x + width, 0);
} else {
path.arcTo(x + width, y + height, x + width, y, radius);
}
if (chamfpos & 2) {
path.lineTo(x + width, y + chamfOffset);
path.lineTo(x + width - chamfOffset, y);
path.lineTo(0, y);
} else {
path.arcTo(x + width, y, x, y, radius);
}
if (chamfpos & 1) {
path.lineTo(x + chamfOffset, y);
path.lineTo(x, y + chamfOffset);
path.lineTo(x, 0);
} else {
path.arcTo(x, y, x, y + height, radius);
}
path.closePath();
return path;
}
function getOblongPath(size) {
return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
}
function getPolygonsPath(shape) {
if (shape.path2d) {
return shape.path2d;
}
if (shape.svgpath) {
shape.path2d = new Path2D(shape.svgpath);
} else {
var path = new Path2D();
for (var polygon of shape.polygons) {
path.moveTo(...polygon[0]);
for (var i = 1; i < polygon.length; i++) {
path.lineTo(...polygon[i]);
}
path.closePath();
}
shape.path2d = path;
}
return shape.path2d;
}
function drawPolygonShape(ctx, shape, color) {
ctx.save();
ctx.fillStyle = color;
if (!shape.svgpath) {
ctx.translate(...shape.pos);
ctx.rotate(deg2rad(-shape.angle));
}
ctx.fill(getPolygonsPath(shape));
ctx.restore();
}
function drawDrawing(ctx, layer, scalefactor, drawing, color) {
if (["segment", "arc", "circle", "curve"].includes(drawing.type)) {
drawedge(ctx, scalefactor, drawing, color);
} else if (drawing.type == "polygon") {
drawPolygonShape(ctx, drawing, color);
} else {
drawtext(ctx, drawing, color, layer == "B");
}
}
function getCirclePath(radius) {
var path = new Path2D();
path.arc(0, 0, radius, 0, 2 * Math.PI);
path.closePath();
return path;
}
function getCachedPadPath(pad) {
if (!pad.path2d) {
// if path2d is not set, build one and cache it on pad object
if (pad.shape == "rect") {
pad.path2d = new Path2D();
pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
} else if (pad.shape == "oval") {
pad.path2d = getOblongPath(pad.size);
} else if (pad.shape == "circle") {
pad.path2d = getCirclePath(pad.size[0] / 2);
} else if (pad.shape == "roundrect") {
pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
} else if (pad.shape == "chamfrect") {
pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
} else if (pad.shape == "custom") {
pad.path2d = getPolygonsPath(pad);
}
}
return pad.path2d;
}
function drawPad(ctx, pad, color, outline, hole) {
ctx.save();
ctx.translate(...pad.pos);
ctx.rotate(deg2rad(pad.angle));
if (pad.offset) {
ctx.translate(...pad.offset);
}
ctx.fillStyle = color;
ctx.strokeStyle = color;
var path = getCachedPadPath(pad);
if (outline) {
ctx.stroke(path);
} else {
ctx.fill(path);
}
if (pad.type == "th" && hole) {
if (pad.offset) {
ctx.translate(-pad.offset[0], -pad.offset[1]);
}
ctx.fillStyle = "#CCCCCC";
if (pad.drillshape == "oblong") {
ctx.fill(getOblongPath(pad.drillsize));
} else {
ctx.fill(getCirclePath(pad.drillsize[0] / 2));
}
}
ctx.restore();
}
function drawModule(ctx, layer, scalefactor, module, padcolor, outlinecolor, highlight, outline) {
if (highlight) {
// draw bounding box
if (module.layer == layer) {
ctx.save();
ctx.globalAlpha = 0.2;
ctx.translate(...module.bbox.pos);
ctx.rotate(deg2rad(-module.bbox.angle));
ctx.translate(...module.bbox.relpos);
ctx.fillStyle = padcolor;
ctx.fillRect(0, 0, ...module.bbox.size);
ctx.globalAlpha = 1;
ctx.strokeStyle = padcolor;
ctx.strokeRect(0, 0, ...module.bbox.size);
ctx.restore();
}
}
// draw drawings
for (var drawing of module.drawings) {
if (drawing.layer == layer) {
drawDrawing(ctx, layer, scalefactor, drawing.drawing, padcolor);
}
}
// draw pads
if (settings.renderPads) {
for (var pad of module.pads) {
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padcolor, outline, true);
if (pad.pin1 && settings.highlightpin1) {
drawPad(ctx, pad, outlinecolor, true, false);
}
}
}
}
}
function drawEdgeCuts(canvas, scalefactor) {
var ctx = canvas.getContext("2d");
var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
for (var edge of pcbdata.edges) {
drawedge(ctx, scalefactor, edge, edgecolor);
}
}
function drawModules(canvas, layer, scalefactor, highlight) {
var ctx = canvas.getContext("2d");
ctx.lineWidth = 3 / scalefactor;
var style = getComputedStyle(topmostdiv);
var padcolor = style.getPropertyValue('--pad-color');
var outlinecolor = style.getPropertyValue('--pin1-outline-color');
if (highlight) {
padcolor = style.getPropertyValue('--pad-color-highlight');
outlinecolor = style.getPropertyValue('--pin1-outline-color-highlight');
}
for (var i = 0; i < pcbdata.modules.length; i++) {
var mod = pcbdata.modules[i];
var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
if (!highlight || highlightedModules.includes(i)) {
drawModule(ctx, layer, scalefactor, mod, padcolor, outlinecolor, highlight, outline);
}
}
}
function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
var ctx = canvas.getContext("2d");
for (var d of pcbdata[layername][layer]) {
if (["segment", "arc", "circle", "curve"].includes(d.type)) {
drawedge(ctx, scalefactor, d, edgeColor);
} else if (d.type == "polygon") {
drawPolygonShape(ctx, d, polygonColor);
} else {
drawtext(ctx, d, textColor, layer == "B");
}
}
}
function drawTracks(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.lineCap = "round";
for(var track of pcbdata.tracks[layer]) {
if (highlight && highlightedNet != track.net) continue;
ctx.lineWidth = track.width;
ctx.beginPath();
ctx.moveTo(...track.start);
ctx.lineTo(...track.end);
ctx.stroke();
}
}
function drawZones(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.fillStyle = color;
ctx.lineJoin = "round";
for(var zone of pcbdata.zones[layer]) {
if (!zone.path2d) {
zone.path2d = getPolygonsPath(zone);
}
if (highlight && highlightedNet != zone.net) continue;
ctx.lineWidth = zone.width ? zone.width : 0;
ctx.fill(zone.path2d);
ctx.stroke(zone.path2d);
}
}
function clearCanvas(canvas, color = null) {
var ctx = canvas.getContext("2d");
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
if (color) {
ctx.fillStyle = color;
ctx.fillRect(0, 0, canvas.width, canvas.height);
} else {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
ctx.restore();
}
function drawNets(canvas, layer, highlight) {
var style = getComputedStyle(topmostdiv);
if (settings.renderTracks) {
var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
drawTracks(canvas, layer, trackColor, highlight);
}
if (settings.renderZones) {
var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
drawZones(canvas, layer, zoneColor, highlight);
}
if (highlight && settings.renderPads) {
var padColor = style.getPropertyValue('--pad-color-highlight');
var ctx = canvas.getContext("2d");
for (var mod of pcbdata.modules) {
// draw pads
for (var pad of mod.pads) {
if (highlightedNet != pad.net) continue;
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padColor, false, true);
}
}
}
}
}
function drawHighlightsOnLayer(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.highlight);
}
if (highlightedModules.length > 0) {
drawModules(canvasdict.highlight, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom, true);
}
if (highlightedNet !== null) {
drawNets(canvasdict.highlight, canvasdict.layer, true);
}
}
function drawHighlights() {
drawHighlightsOnLayer(allcanvas.front);
drawHighlightsOnLayer(allcanvas.back);
}
function drawBackground(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.bg);
clearCanvas(canvasdict.fab);
clearCanvas(canvasdict.silk);
}
drawNets(canvasdict.bg, canvasdict.layer, false);
drawModules(canvasdict.bg, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom, false);
drawEdgeCuts(canvasdict.bg, canvasdict.transform.s);
var style = getComputedStyle(topmostdiv);
var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
var textColor = style.getPropertyValue('--silkscreen-text-color');
if (settings.renderSilkscreen) {
drawBgLayer(
"silkscreen", canvasdict.silk, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
edgeColor = style.getPropertyValue('--fabrication-edge-color');
polygonColor = style.getPropertyValue('--fabrication-polygon-color');
textColor = style.getPropertyValue('--fabrication-text-color');
if (settings.renderFabrication) {
drawBgLayer(
"fabrication", canvasdict.fab, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
}
function prepareCanvas(canvas, flip, transform) {
var ctx = canvas.getContext("2d");
ctx.setTransform(1, 0, 0, 1, 0, 0);
var fontsize = 1.55;
ctx.scale(transform.zoom, transform.zoom);
ctx.translate(transform.panx, transform.pany);
if (flip) {
ctx.scale(-1, 1);
}
ctx.translate(transform.x, transform.y);
ctx.rotate(deg2rad(settings.boardRotation));
ctx.scale(transform.s, transform.s);
}
function prepareLayer(canvasdict) {
var flip = (canvasdict.layer == "B");
for (var c of ["bg", "fab", "silk", "highlight"]) {
prepareCanvas(canvasdict[c], flip, canvasdict.transform);
}
}
function rotateVector(v, angle) {
angle = deg2rad(angle);
return [
v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
];
}
function applyRotation(bbox) {
var corners = [
[bbox.minx, bbox.miny],
[bbox.minx, bbox.maxy],
[bbox.maxx, bbox.miny],
[bbox.maxx, bbox.maxy],
];
corners = corners.map((v) => rotateVector(v, settings.boardRotation));
return {
minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
}
}
function recalcLayerScale(layerdict, width, height) {
var bbox = applyRotation(pcbdata.edges_bbox);
var scalefactor = 0.98 * Math.min(
width / (bbox.maxx - bbox.minx),
height / (bbox.maxy - bbox.miny)
);
if (scalefactor < 0.1) {
scalefactor = 1;
}
layerdict.transform.s = scalefactor;
var flip = (layerdict.layer == "B");
if (flip) {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
} else {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
}
layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
for (var c of ["bg", "fab", "silk", "highlight"]) {
canvas = layerdict[c];
canvas.width = width;
canvas.height = height;
canvas.style.width = (width / devicePixelRatio) + "px";
canvas.style.height = (height / devicePixelRatio) + "px";
}
}
function redrawCanvas(layerdict) {
prepareLayer(layerdict);
drawBackground(layerdict);
drawHighlightsOnLayer(layerdict);
}
function resizeCanvas(layerdict) {
var canvasdivid = {
"F": "frontcanvas",
"B": "backcanvas"
} [layerdict.layer];
var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
recalcLayerScale(layerdict, width, height);
redrawCanvas(layerdict);
}
function resizeAll() {
resizeCanvas(allcanvas.front);
resizeCanvas(allcanvas.back);
}
function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
var A = x - x1;
var B = y - y1;
var C = x2 - x1;
var D = y2 - y1;
var dot = A * C + B * D;
var len_sq = C * C + D * D;
var dx, dy;
if (len_sq == 0) {
// start and end of the segment coincide
dx = x - x1;
dy = y - y1;
} else {
var param = dot / len_sq;
var xx, yy;
if (param < 0) {
xx = x1;
yy = y1;
} else if (param > 1) {
xx = x2;
yy = y2;
} else {
xx = x1 + param * C;
yy = y1 + param * D;
}
dx = x - xx;
dy = y - yy;
}
return dx * dx + dy * dy <= d * d;
}
function pointWithinPad(x, y, pad) {
var v = [x - pad.pos[0], y - pad.pos[1]];
v = rotateVector(v, -pad.angle);
if (pad.offset) {
v[0] -= pad.offset[0];
v[1] -= pad.offset[1];
}
return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}
function netHitScan(layer, x, y) {
// Check track segments
if (settings.renderTracks && pcbdata.tracks) {
for(var track of pcbdata.tracks[layer]) {
if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
return track.net;
}
}
}
// Check pads
if (settings.renderPads) {
for (var mod of pcbdata.modules) {
for(var pad of mod.pads) {
if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
return pad.net;
}
}
}
}
return null;
}
function pointWithinModuleBbox(x, y, bbox) {
var v = [x - bbox.pos[0], y - bbox.pos[1]];
v = rotateVector(v, bbox.angle);
return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}
function bboxHitScan(layer, x, y) {
var result = [];
for (var i = 0; i < pcbdata.modules.length; i++) {
var module = pcbdata.modules[i];
if (module.layer == layer) {
if (pointWithinModuleBbox(x, y, module.bbox)) {
result.push(i);
}
}
}
return result;
}
function handlePointerDown(e, layerdict) {
if (e.button != 0) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
layerdict.pointerStates[e.pointerId] = {
distanceTravelled: 0,
lastX: e.offsetX,
lastY: e.offsetY,
downTime: Date.now(),
};
}
function handleMouseClick(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var x = e.offsetX;
var y = e.offsetY;
var t = layerdict.transform;
if (layerdict.layer == "B") {
x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
} else {
x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
}
y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
var v = rotateVector([x, y], -settings.boardRotation);
if ("nets" in pcbdata) {
var net = netHitScan(layerdict.layer, ...v);
if (net !== highlightedNet) {
netClicked(net);
}
}
if (highlightedNet === null) {
var modules = bboxHitScan(layerdict.layer, ...v);
if (modules.length > 0) {
modulesClicked(modules);
}
}
}
function handlePointerLeave(e, layerdict) {
e.preventDefault();
e.stopPropagation();
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
delete layerdict.pointerStates[e.pointerId];
}
function resetTransform(layerdict) {
layerdict.transform.panx = 0;
layerdict.transform.pany = 0;
layerdict.transform.zoom = 1;
redrawCanvas(layerdict);
}
function handlePointerUp(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
e.preventDefault();
e.stopPropagation();
if (e.button == 2) {
// Reset pan and zoom on right click.
resetTransform(layerdict);
layerdict.anotherPointerTapped = false;
return;
}
// We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
var ptr = layerdict.pointerStates[e.pointerId];
ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);
if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
if (Object.keys(layerdict.pointerStates).length == 1) {
if (layerdict.anotherPointerTapped) {
// This is the second pointer coming off of a two-finger tap
resetTransform(layerdict);
} else {
// This is just a regular tap
handleMouseClick(e, layerdict);
}
layerdict.anotherPointerTapped = false;
} else {
// This is the first finger coming off of what could become a two-finger tap
layerdict.anotherPointerTapped = true;
}
} else {
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
layerdict.anotherPointerTapped = false;
}
delete layerdict.pointerStates[e.pointerId];
}
function handlePointerMove(e, layerdict) {
if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var thisPtr = layerdict.pointerStates[e.pointerId];
var dx = e.offsetX - thisPtr.lastX;
var dy = e.offsetY - thisPtr.lastY;
// If this number is low on pointer up, we count the action as a click
thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);
if (Object.keys(layerdict.pointerStates).length == 1) {
// This is a simple drag
layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
} else if (Object.keys(layerdict.pointerStates).length == 2) {
var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];
var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));
var scaleFactor = newDist/oldDist;
if (scaleFactor != NaN) {
layerdict.transform.zoom *= scaleFactor;
var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
}
}
thisPtr.lastX = e.offsetX;
thisPtr.lastY = e.offsetY;
if (settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
}
function handleMouseWheel(e, layerdict) {
e.preventDefault();
e.stopPropagation();
var t = layerdict.transform;
var wheeldelta = e.deltaY;
if (e.deltaMode == 1) {
// FF only, scroll by lines
wheeldelta *= 30;
} else if (e.deltaMode == 2) {
wheeldelta *= 300;
}
var m = Math.pow(1.1, -wheeldelta / 40);
// Limit amount of zoom per tick.
if (m > 2) {
m = 2;
} else if (m < 0.5) {
m = 0.5;
}
t.zoom *= m;
var zoomd = (1 - m) / t.zoom;
t.panx += devicePixelRatio * e.offsetX * zoomd;
t.pany += devicePixelRatio * e.offsetY * zoomd;
redrawCanvas(layerdict);
}
function addMouseHandlers(div, layerdict) {
div.addEventListener("pointerdown", function(e) {
handlePointerDown(e, layerdict);
});
div.addEventListener("pointermove", function(e) {
handlePointerMove(e, layerdict);
});
div.addEventListener("pointerup", function(e) {
handlePointerUp(e, layerdict);
});
var pointerleave = function(e) {
handlePointerLeave(e, layerdict);
}
div.addEventListener("pointercancel", pointerleave);
div.addEventListener("pointerleave", pointerleave);
div.addEventListener("pointerout", pointerleave);
div.onwheel = function(e) {
handleMouseWheel(e, layerdict);
}
for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
element.addEventListener("contextmenu", function(e) {
e.preventDefault();
}, false);
}
}
function setRedrawOnDrag(value) {
settings.redrawOnDrag = value;
writeStorage("redrawOnDrag", value);
}
function setBoardRotation(value) {
settings.boardRotation = value * 5;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("rotationDegree").textContent = settings.boardRotation;
resizeAll();
}
function initRender() {
allcanvas = {
front: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("F_bg"),
fab: document.getElementById("F_fab"),
silk: document.getElementById("F_slk"),
highlight: document.getElementById("F_hl"),
layer: "F",
},
back: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("B_bg"),
fab: document.getElementById("B_fab"),
silk: document.getElementById("B_slk"),
highlight: document.getElementById("B_hl"),
layer: "B",
}
};
addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}
///////////////////////////////////////////////
///////////////////////////////////////////////
/* DOM manipulation and misc code */
var bomsplit;
var canvassplit;
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var moduleIndexToHandler = {};
var netsToHandler = {};
var highlightedModules = [];
var highlightedNet = null;
var lastClicked;
function dbg(html) {
dbgdiv.innerHTML = html;
}
function redrawIfInitDone() {
if (initDone) {
redrawCanvas(allcanvas.front);
redrawCanvas(allcanvas.back);
}
}
function padsVisible(value) {
writeStorage("padsVisible", value);
settings.renderPads = value;
redrawIfInitDone();
}
function referencesVisible(value) {
writeStorage("referencesVisible", value);
settings.renderReferences = value;
redrawIfInitDone();
}
function valuesVisible(value) {
writeStorage("valuesVisible", value);
settings.renderValues = value;
redrawIfInitDone();
}
function tracksVisible(value) {
writeStorage("tracksVisible", value);
settings.renderTracks = value;
redrawIfInitDone();
}
function zonesVisible(value) {
writeStorage("zonesVisible", value);
settings.renderZones = value;
redrawIfInitDone();
}
function dnpOutline(value) {
writeStorage("dnpOutline", value);
settings.renderDnpOutline = value;
redrawIfInitDone();
}
function setDarkMode(value) {
if (value) {
topmostdiv.classList.add("dark");
} else {
topmostdiv.classList.remove("dark");
}
writeStorage("darkmode", value);
settings.darkMode = value;
redrawIfInitDone();
}
function setFullscreen(value) {
if (value) {
document.documentElement.requestFullscreen();
} else {
document.exitFullscreen();
}
}
function fabricationVisible(value) {
writeStorage("fabricationVisible", value);
settings.renderFabrication = value;
redrawIfInitDone();
}
function silkscreenVisible(value) {
writeStorage("silkscreenVisible", value);
settings.renderSilkscreen = value;
redrawIfInitDone();
}
function setHighlightPin1(value) {
writeStorage("highlightpin1", value);
settings.highlightpin1 = value;
redrawIfInitDone();
}
function getStoredCheckboxRefs(checkbox) {
function convert(ref) {
var intref = parseInt(ref);
if (isNaN(intref)) {
for (var i = 0; i < pcbdata.modules.length; i++) {
if (pcbdata.modules[i].ref == ref) {
return i;
}
}
return -1;
} else {
return intref;
}
}
if (!(checkbox in settings.checkboxStoredRefs)) {
var val = readStorage("checkbox_" + checkbox);
settings.checkboxStoredRefs[checkbox] = val ? val : "";
}
if (!settings.checkboxStoredRefs[checkbox]) {
return new Set();
} else {
return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
}
}
function getCheckboxState(checkbox, references) {
var storedRefsSet = getStoredCheckboxRefs(checkbox);
var currentRefsSet = new Set(references.map(r => r[1]));
// Get difference of current - stored
var difference = new Set(currentRefsSet);
for (ref of storedRefsSet) {
difference.delete(ref);
}
if (difference.size == 0) {
// All the current refs are stored
return "checked";
} else if (difference.size == currentRefsSet.size) {
// None of the current refs are stored
return "unchecked";
} else {
// Some of the refs are stored
return "indeterminate";
}
}
function setBomCheckboxState(checkbox, element, references) {
var state = getCheckboxState(checkbox, references);
element.checked = (state == "checked");
element.indeterminate = (state == "indeterminate");
}
function createCheckboxChangeHandler(checkbox, references) {
return function(evt) {
refsSet = getStoredCheckboxRefs(checkbox);
var darkenWhenChecked = settings.darkenWhenChecked == checkbox;
eventArgs = {
checkbox: checkbox,
refs: references,
}
if (this.checked) {
// checkbox ticked
for (var ref of references) {
refsSet.add(ref[1]);
}
if (darkenWhenChecked) {
evt.target.parentElement.parentElement.classList.add("checked");
}
eventArgs.state = 'checked';
} else {
// checkbox unticked
for (var ref of references) {
refsSet.delete(ref[1]);
}
if (darkenWhenChecked) {
evt.target.parentElement.parentElement.classList.remove("checked");
}
eventArgs.state = 'unchecked';
}
settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
updateCheckboxStats(checkbox);
EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
}
}
function clearHighlightedModules() {
if (currentHighlightedRowId) {
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
currentHighlightedRowId = null;
highlightedModules = [];
highlightedNet = null;
}
}
function createRowHighlightHandler(rowid, refs, net) {
return function() {
if (currentHighlightedRowId) {
if (currentHighlightedRowId == rowid) {
return;
}
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
}
document.getElementById(rowid).classList.add("highlighted");
currentHighlightedRowId = rowid;
highlightedModules = refs ? refs.map(r => r[1]) : [];
highlightedNet = net;
drawHighlights();
EventHandler.emitEvent(
IBOM_EVENT_TYPES.HIGHLIGHT_EVENT,
{
rowid: rowid,
refs: refs,
net: net
});
}
}
function entryMatches(entry) {
if (settings.bommode == "netlist") {
// entry is just a net name
return entry.toLowerCase().indexOf(filter) >= 0;
}
// check refs
for (var ref of entry[3]) {
if (ref[0].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
// check extra fields
for (var i in config.extra_fields) {
if (entry[4][i].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
// check value
if (entry[1].toLowerCase().indexOf(filter) >= 0) {
return true;
}
// check footprint
if (entry[2].toLowerCase().indexOf(filter) >= 0) {
return true;
}
return false;
}
function findRefInEntry(entry) {
return entry[3].filter(r => r[0].toLowerCase() == reflookup);
}
function highlightFilter(s) {
if (!filter) {
return s;
}
var parts = s.toLowerCase().split(filter);
if (parts.length == 1) {
return s;
}
var r = "";
var pos = 0;
for (var i in parts) {
if (i > 0) {
r += '<mark class="highlight">' +
s.substring(pos, pos + filter.length) +
'</mark>';
pos += filter.length;
}
r += s.substring(pos, pos + parts[i].length);
pos += parts[i].length;
}
return r;
}
function checkboxSetUnsetAllHandler(checkboxname) {
return function() {
var checkboxnum = 0;
while (checkboxnum < settings.checkboxes.length &&
settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
checkboxnum++;
}
if (checkboxnum >= settings.checkboxes.length) {
return;
}
var allset = true;
var checkbox;
var row;
for (row of bombody.childNodes) {
checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
if (!checkbox.checked || checkbox.indeterminate) {
allset = false;
break;
}
}
for (row of bombody.childNodes) {
checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
checkbox.checked = !allset;
checkbox.indeterminate = false;
checkbox.onchange();
}
}
}
function createColumnHeader(name, cls, comparator) {
var th = document.createElement("TH");
th.innerHTML = name;
th.classList.add(cls);
th.style.cursor = "pointer";
var span = document.createElement("SPAN");
span.classList.add("sortmark");
span.classList.add("none");
th.appendChild(span);
th.onclick = function() {
if (currentSortColumn && this !== currentSortColumn) {
// Currently sorted by another column
currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
currentSortColumn.childNodes[1].classList.add("none");
currentSortColumn = null;
currentSortOrder = null;
}
if (currentSortColumn && this === currentSortColumn) {
// Already sorted by this column
if (currentSortOrder == "asc") {
// Sort by this column, descending order
bomSortFunction = function(a, b) {
return -comparator(a, b);
}
currentSortColumn.childNodes[1].classList.remove("asc");
currentSortColumn.childNodes[1].classList.add("desc");
currentSortOrder = "desc";
} else {
// Unsort
bomSortFunction = null;
currentSortColumn.childNodes[1].classList.remove("desc");
currentSortColumn.childNodes[1].classList.add("none");
currentSortColumn = null;
currentSortOrder = null;
}
} else {
// Sort by this column, ascending order
bomSortFunction = comparator;
currentSortColumn = this;
currentSortColumn.childNodes[1].classList.remove("none");
currentSortColumn.childNodes[1].classList.add("asc");
currentSortOrder = "asc";
}
populateBomBody();
}
return th;
}
function populateBomHeader() {
while (bomhead.firstChild) {
bomhead.removeChild(bomhead.firstChild);
}
var tr = document.createElement("TR");
var th = document.createElement("TH");
th.classList.add("numCol");
tr.appendChild(th);
var checkboxCompareClosure = function(checkbox) {
return (a, b) => {
var stateA = getCheckboxState(checkbox, a[3]);
var stateB = getCheckboxState(checkbox, b[3]);
if (stateA > stateB) return -1;
if (stateA < stateB) return 1;
return 0;
}
}
if (settings.bommode == "netlist") {
th = createColumnHeader("Net name", "bom-netname", (a, b) => {
if (a > b) return -1;
if (a < b) return 1;
return 0;
});
tr.appendChild(th);
} else {
for (var checkbox of settings.checkboxes) {
th = createColumnHeader(
checkbox, "bom-checkbox", checkboxCompareClosure(checkbox));
th.onclick = fancyDblClickHandler(
th, th.onclick.bind(th), checkboxSetUnsetAllHandler(checkbox));
tr.appendChild(th);
}
tr.appendChild(createColumnHeader("References", "References", (a, b) => {
var i = 0;
while (i < a[3].length && i < b[3].length) {
if (a[3][i] != b[3][i]) return a[3][i] > b[3][i] ? 1 : -1;
i++;
}
return a[3].length - b[3].length;
}));
// Extra fields
if (config.extra_fields.length > 0) {
var extraFieldCompareClosure = function(fieldIndex) {
return (a, b) => {
var fa = a[4][fieldIndex];
var fb = b[4][fieldIndex];
if (fa != fb) return fa > fb ? 1 : -1;
else return 0;
}
}
for (var i in config.extra_fields) {
tr.appendChild(createColumnHeader(
config.extra_fields[i], "extra", extraFieldCompareClosure(i)));
}
}
tr.appendChild(createColumnHeader("Value", "Value", (a, b) => {
return valueCompare(a[5], b[5], a[1], b[1]);
}));
tr.appendChild(createColumnHeader("Footprint", "Footprint", (a, b) => {
if (a[2] != b[2]) return a[2] > b[2] ? 1 : -1;
else return 0;
}));
if (settings.bommode == "grouped") {
tr.appendChild(createColumnHeader("Quantity", "Quantity", (a, b) => {
return a[3].length - b[3].length;
}));
}
}
bomhead.appendChild(tr);
}
function populateBomBody() {
while (bom.firstChild) {
bom.removeChild(bom.firstChild);
}
highlightHandlers = [];
moduleIndexToHandler = {};
netsToHandler = {};
currentHighlightedRowId = null;
var first = true;
if (settings.bommode == "netlist") {
bomtable = pcbdata.nets.slice();
} else {
switch (settings.canvaslayout) {
case 'F':
bomtable = pcbdata.bom.F.slice();
break;
case 'FB':
bomtable = pcbdata.bom.both.slice();
break;
case 'B':
bomtable = pcbdata.bom.B.slice();
break;
}
if (settings.bommode == "ungrouped") {
// expand bom table
expandedTable = []
for (var bomentry of bomtable) {
for (var ref of bomentry[3]) {
expandedTable.push([1, bomentry[1], bomentry[2], [ref], bomentry[4], bomentry[5]]);
}
}
bomtable = expandedTable;
}
}
if (bomSortFunction) {
bomtable = bomtable.sort(bomSortFunction);
}
for (var i in bomtable) {
var bomentry = bomtable[i];
if (filter && !entryMatches(bomentry)) {
continue;
}
var references = null;
var netname = null;
var tr = document.createElement("TR");
var td = document.createElement("TD");
var rownum = +i + 1;
tr.id = "bomrow" + rownum;
td.textContent = rownum;
tr.appendChild(td);
if (settings.bommode == "netlist") {
netname = bomentry;
td = document.createElement("TD");
td.innerHTML = highlightFilter(netname ? netname : "&lt;no net&gt;");
tr.appendChild(td);
} else {
if (reflookup) {
references = findRefInEntry(bomentry);
if (references.length == 0) {
continue;
}
} else {
references = bomentry[3];
}
// Checkboxes
for (var checkbox of settings.checkboxes) {
if (checkbox) {
td = document.createElement("TD");
var input = document.createElement("input");
input.type = "checkbox";
input.onchange = createCheckboxChangeHandler(checkbox, references);
setBomCheckboxState(checkbox, input, references);
if (input.checked && settings.darkenWhenChecked == checkbox) {
tr.classList.add("checked");
}
td.appendChild(input);
tr.appendChild(td);
}
}
// References
td = document.createElement("TD");
td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
tr.appendChild(td);
// Extra fields
for (var i in config.extra_fields) {
td = document.createElement("TD");
td.innerHTML = highlightFilter(bomentry[4][i]);
tr.appendChild(td);
}
// Value
td = document.createElement("TD");
td.innerHTML = highlightFilter(bomentry[1]);
tr.appendChild(td);
// Footprint
td = document.createElement("TD");
td.innerHTML = highlightFilter(bomentry[2]);
tr.appendChild(td);
if (settings.bommode == "grouped") {
// Quantity
td = document.createElement("TD");
td.textContent = bomentry[3].length;
tr.appendChild(td);
}
}
bom.appendChild(tr);
var handler = createRowHighlightHandler(tr.id, references, netname);
tr.onmousemove = handler;
highlightHandlers.push({
id: tr.id,
handler: handler,
});
if (references !== null) {
for (var refIndex of references.map(r => r[1])) {
moduleIndexToHandler[refIndex] = handler;
}
}
if (netname !== null) {
netsToHandler[netname] = handler;
}
if ((filter || reflookup) && first) {
handler();
first = false;
}
}
EventHandler.emitEvent(
IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT,
{
filter: filter,
reflookup: reflookup,
checkboxes: settings.checkboxes,
bommode: settings.bommode,
});
}
function highlightPreviousRow() {
if (!currentHighlightedRowId) {
highlightHandlers[highlightHandlers.length - 1].handler();
} else {
if (highlightHandlers.length > 1 &&
highlightHandlers[0].id == currentHighlightedRowId) {
highlightHandlers[highlightHandlers.length - 1].handler();
} else {
for (var i = 0; i < highlightHandlers.length - 1; i++) {
if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
highlightHandlers[i].handler();
break;
}
}
}
}
smoothScrollToRow(currentHighlightedRowId);
}
function highlightNextRow() {
if (!currentHighlightedRowId) {
highlightHandlers[0].handler();
} else {
if (highlightHandlers.length > 1 &&
highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
highlightHandlers[0].handler();
} else {
for (var i = 1; i < highlightHandlers.length; i++) {
if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
highlightHandlers[i].handler();
break;
}
}
}
}
smoothScrollToRow(currentHighlightedRowId);
}
function populateBomTable() {
populateBomHeader();
populateBomBody();
}
function modulesClicked(moduleIndexes) {
var lastClickedIndex = moduleIndexes.indexOf(lastClicked);
for (var i = 1; i <= moduleIndexes.length; i++) {
var refIndex = moduleIndexes[(lastClickedIndex + i) % moduleIndexes.length];
if (refIndex in moduleIndexToHandler) {
lastClicked = refIndex;
moduleIndexToHandler[refIndex]();
smoothScrollToRow(currentHighlightedRowId);
break;
}
}
}
function netClicked(net) {
if (net in netsToHandler) {
netsToHandler[net]();
smoothScrollToRow(currentHighlightedRowId);
} else {
clearHighlightedModules();
highlightedNet = net;
drawHighlights();
}
}
function updateFilter(input) {
filter = input.toLowerCase();
populateBomTable();
}
function updateRefLookup(input) {
reflookup = input.toLowerCase();
populateBomTable();
}
function changeCanvasLayout(layout) {
document.getElementById("fl-btn").classList.remove("depressed");
document.getElementById("fb-btn").classList.remove("depressed");
document.getElementById("bl-btn").classList.remove("depressed");
switch (layout) {
case 'F':
document.getElementById("fl-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.collapse(1);
}
break;
case 'B':
document.getElementById("bl-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.collapse(0);
}
break;
default:
document.getElementById("fb-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.setSizes([50, 50]);
}
}
settings.canvaslayout = layout;
writeStorage("canvaslayout", layout);
resizeAll();
changeBomMode(settings.bommode);
}
function populateMetadata() {
document.getElementById("title").innerHTML = pcbdata.metadata.title;
document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
document.getElementById("company").innerHTML = pcbdata.metadata.company;
document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
if (pcbdata.metadata.title != "") {
document.title = pcbdata.metadata.title + " BOM";
}
// Calculate board stats
var fp_f = 0, fp_b = 0, pads_f = 0, pads_b = 0, pads_th = 0;
for (var i = 0; i < pcbdata.modules.length; i++) {
if (pcbdata.bom.skipped.includes(i)) continue;
var mod = pcbdata.modules[i];
if (mod.layer == "F") {
fp_f++;
} else {
fp_b++;
}
for (var pad of mod.pads) {
if (pad.type == "th") {
pads_th++;
} else {
if (pad.layers.includes("F")) {
pads_f++;
}
if (pad.layers.includes("B")) {
pads_b++;
}
}
}
}
document.getElementById("stats-components-front").innerHTML = fp_f;
document.getElementById("stats-components-back").innerHTML = fp_b;
document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
document.getElementById("stats-th-pads").innerHTML = pads_th;
// Update version string
document.getElementById("github-link").innerHTML = "InteractiveHtmlBom&nbsp;" +
/^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}
function changeBomLayout(layout) {
document.getElementById("bom-btn").classList.remove("depressed");
document.getElementById("lr-btn").classList.remove("depressed");
document.getElementById("tb-btn").classList.remove("depressed");
switch (layout) {
case 'bom-only':
document.getElementById("bom-btn").classList.add("depressed");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
document.getElementById("frontcanvas").style.display = "none";
document.getElementById("backcanvas").style.display = "none";
document.getElementById("bot").style.height = "";
break;
case 'top-bottom':
document.getElementById("tb-btn").classList.add("depressed");
document.getElementById("frontcanvas").style.display = "";
document.getElementById("backcanvas").style.display = "";
document.getElementById("bot").style.height = "calc(100% - 80px)";
document.getElementById("bomdiv").classList.remove("split-horizontal");
document.getElementById("canvasdiv").classList.remove("split-horizontal");
document.getElementById("frontcanvas").classList.add("split-horizontal");
document.getElementById("backcanvas").classList.add("split-horizontal");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
sizes: [50, 50],
onDragEnd: resizeAll,
direction: "vertical",
gutterSize: 5
});
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
sizes: [50, 50],
gutterSize: 5,
onDragEnd: resizeAll
});
break;
case 'left-right':
document.getElementById("lr-btn").classList.add("depressed");
document.getElementById("frontcanvas").style.display = "";
document.getElementById("backcanvas").style.display = "";
document.getElementById("bot").style.height = "calc(100% - 80px)";
document.getElementById("bomdiv").classList.add("split-horizontal");
document.getElementById("canvasdiv").classList.add("split-horizontal");
document.getElementById("frontcanvas").classList.remove("split-horizontal");
document.getElementById("backcanvas").classList.remove("split-horizontal");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
sizes: [50, 50],
onDragEnd: resizeAll,
gutterSize: 5
});
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
sizes: [50, 50],
gutterSize: 5,
direction: "vertical",
onDragEnd: resizeAll
});
}
settings.bomlayout = layout;
writeStorage("bomlayout", layout);
changeCanvasLayout(settings.canvaslayout);
}
function changeBomMode(mode) {
document.getElementById("bom-grouped-btn").classList.remove("depressed");
document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
document.getElementById("bom-netlist-btn").classList.remove("depressed");
switch (mode) {
case 'grouped':
document.getElementById("bom-grouped-btn").classList.add("depressed");
break;
case 'ungrouped':
document.getElementById("bom-ungrouped-btn").classList.add("depressed");
break;
case 'netlist':
document.getElementById("bom-netlist-btn").classList.add("depressed");
}
writeStorage("bommode", mode);
if (mode != settings.bommode) {
settings.bommode = mode;
bomSortFunction = null;
currentSortColumn = null;
currentSortOrder = null;
clearHighlightedModules();
}
populateBomTable();
}
function focusFilterField() {
focusInputField(document.getElementById("filter"));
}
function focusRefLookupField() {
focusInputField(document.getElementById("reflookup"));
}
function toggleBomCheckbox(bomrowid, checkboxnum) {
if (!bomrowid || checkboxnum > settings.checkboxes.length) {
return;
}
var bomrow = document.getElementById(bomrowid);
var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
checkbox.checked = !checkbox.checked;
checkbox.indeterminate = false;
checkbox.onchange();
}
function checkBomCheckbox(bomrowid, checkboxname) {
var checkboxnum = 0;
while (checkboxnum < settings.checkboxes.length &&
settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
checkboxnum++;
}
if (!bomrowid || checkboxnum >= settings.checkboxes.length) {
return;
}
var bomrow = document.getElementById(bomrowid);
var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
checkbox.checked = true;
checkbox.indeterminate = false;
checkbox.onchange();
}
function setBomCheckboxes(value) {
writeStorage("bomCheckboxes", value);
settings.checkboxes = value.split(",").filter((e) => e);
prepCheckboxes();
populateBomTable();
populateDarkenWhenCheckedOptions();
}
function setDarkenWhenChecked(value) {
writeStorage("darkenWhenChecked", value);
settings.darkenWhenChecked = value;
populateBomTable();
}
function prepCheckboxes() {
var table = document.getElementById("checkbox-stats");
while (table.childElementCount > 1) {
table.removeChild(table.lastChild);
}
if (settings.checkboxes.length) {
table.style.display = "";
} else {
table.style.display = "none";
}
for (var checkbox of settings.checkboxes) {
var tr = document.createElement("TR");
var td = document.createElement("TD");
td.innerHTML = checkbox;
tr.appendChild(td);
td = document.createElement("TD");
td.id = "checkbox-stats-" + checkbox;
var progressbar = document.createElement("div");
progressbar.classList.add("bar");
td.appendChild(progressbar);
var text = document.createElement("div");
text.classList.add("text");
td.appendChild(text);
tr.appendChild(td);
table.appendChild(tr);
updateCheckboxStats(checkbox);
}
}
function populateDarkenWhenCheckedOptions() {
var container = document.getElementById("darkenWhenCheckedContainer");
if (settings.checkboxes.length == 0) {
container.parentElement.style.display = "none";
return;
}
container.innerHTML = '';
container.parentElement.style.display = "inline-block";
function createOption(name, displayName) {
var id = "darkenWhenChecked-" + name;
var div = document.createElement("div");
div.classList.add("radio-container");
var input = document.createElement("input");
input.type = "radio";
input.name = "darkenWhenChecked";
input.value = name;
input.id = id;
input.onchange = () => setDarkenWhenChecked(name);
div.appendChild(input);
// Preserve the selected element when the checkboxes change
if (name == settings.darkenWhenChecked) {
input.checked = true;
}
var label = document.createElement("label");
label.innerHTML = displayName;
label.htmlFor = id;
div.appendChild(label);
container.appendChild(div);
}
createOption("", "None");
for (var checkbox of settings.checkboxes) {
createOption(checkbox, checkbox);
}
}
function updateCheckboxStats(checkbox) {
var checked = getStoredCheckboxRefs(checkbox).size;
var total = pcbdata.modules.length - pcbdata.bom.skipped.length;
var percent = checked * 100.0 / total;
var td = document.getElementById("checkbox-stats-" + checkbox);
td.firstChild.style.width = percent + "%";
td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
}
document.onkeydown = function(e) {
switch (e.key) {
case "n":
if (document.activeElement.type == "text") {
return;
}
if (currentHighlightedRowId !== null) {
checkBomCheckbox(currentHighlightedRowId, "placed");
highlightNextRow();
e.preventDefault();
}
break;
case "ArrowUp":
highlightPreviousRow();
e.preventDefault();
break;
case "ArrowDown":
highlightNextRow();
e.preventDefault();
break;
default:
break;
}
if (e.altKey) {
switch (e.key) {
case "f":
focusFilterField();
e.preventDefault();
break;
case "r":
focusRefLookupField();
e.preventDefault();
break;
case "z":
changeBomLayout("bom-only");
e.preventDefault();
break;
case "x":
changeBomLayout("left-right");
e.preventDefault();
break;
case "c":
changeBomLayout("top-bottom");
e.preventDefault();
break;
case "v":
changeCanvasLayout("F");
e.preventDefault();
break;
case "b":
changeCanvasLayout("FB");
e.preventDefault();
break;
case "n":
changeCanvasLayout("B");
e.preventDefault();
break;
default:
break;
}
if (e.key >= '1' && e.key <= '9') {
toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
}
}
}
function hideNetlistButton() {
document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
document.getElementById("bom-netlist-btn").style.display = "none";
}
window.onload = function(e) {
initUtils();
initRender();
initStorage();
initDefaults();
cleanGutters();
populateMetadata();
dbgdiv = document.getElementById("dbg");
bom = document.getElementById("bombody");
bomhead = document.getElementById("bomhead");
filter = "";
reflookup = "";
if (!("nets" in pcbdata)) {
hideNetlistButton();
}
initDone = true;
prepCheckboxes();
// Triggers render
changeBomLayout(settings.bomlayout);
// Users may leave fullscreen without touching the checkbox. Uncheck.
document.addEventListener('fullscreenchange', () => {
if (!document.fullscreenElement)
document.getElementById('fullscreenCheckbox').checked = false;
});
}
window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
</script>
</head>
<body>
<div id="topmostdiv" class="topmostdiv">
<div id="top">
<div style="float: right; height: 100%;">
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="menubtn"></button>
<div class="menu-content">
<label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
<input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
Dark mode
</label><!-- This comment eats space! All of it!
--><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
<input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
Full Screen
</label>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
Fab layer
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
Silkscreen
</label>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
References
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
Values
</label>
<div id="tracksAndZonesCheckboxes">
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
Tracks
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
Zones
</label>
</div>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
Pads
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
DNP outlined
</label>
<label class="menu-label">
<input id="highlightpin1Checkbox" type="checkbox" onchange="setHighlightPin1(this.checked)">
Highlight first pin
</label>
<label class="menu-label">
<input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
Continuous redraw on drag
</label>
<label class="menu-label">
<span>Board rotation</span>
<span style="float: right"><span id="rotationDegree">0</span>&#176;</span>
<input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
</label>
<label class="menu-label">
<div style="margin-left: 5px">Bom checkboxes</div>
<input id="bomCheckboxes" class="menu-textbox" type=text
oninput="setBomCheckboxes(this.value)">
</label>
<label class="menu-label">
<div style="margin-left: 5px">Darken when checked</div>
<div id="darkenWhenCheckedContainer"></div>
</label>
<label class="menu-label">
<span class="shameless-plug">
<span>Created using</span>
<a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
</span>
</label>
</div>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
title="Front only">F
</button>
<button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
title="Front and Back">FB
</button>
<button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
title="Back only">B
</button>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
title="BOM only"></button>
<button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
title="BOM left, drawings right"></button>
<button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
title="BOM top, drawings bot"></button>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
title="Grouped BOM"></button>
<button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
title="Ungrouped BOM"></button>
<button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
title="Netlist"></button>
</div>
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="statsbtn"></button>
<div class="menu-content">
<table class="stats">
<tbody>
<tr>
<td width="40%">Board stats</td>
<td>Front</td>
<td>Back</td>
<td>Total</td>
</tr>
<tr>
<td>Components</td>
<td id="stats-components-front">~</td>
<td id="stats-components-back">~</td>
<td id="stats-components-total">~</td>
</tr>
<tr>
<td>Groups</td>
<td id="stats-groups-front">~</td>
<td id="stats-groups-back">~</td>
<td id="stats-groups-total">~</td>
</tr>
<tr>
<td>SMD pads</td>
<td id="stats-smd-pads-front">~</td>
<td id="stats-smd-pads-back">~</td>
<td id="stats-smd-pads-total">~</td>
</tr>
<tr>
<td>TH pads</td>
<td colspan=3 id="stats-th-pads">~</td>
</tr>
</tbody>
</table>
<table class="stats">
<col width="40%"/><col />
<tbody id="checkbox-stats">
<tr>
<td colspan=2 style="border-top: 0">Checkboxes</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="iobtn"></button>
<div class="menu-content">
<div class="menu-label menu-label-top">
<div style="margin-left: 5px;">Save board image</div>
<div class="flexbox">
<input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
<span>X</span>
<input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
</div>
<label>
<input id="render-save-transparent" type="checkbox">
Transparent background
</label>
<div class="flexbox">
<button class="savebtn" onclick="saveImage('F')">Front</button>
<button class="savebtn" onclick="saveImage('B')">Back</button>
</div>
</div>
<div class="menu-label">
<span style="margin-left: 5px;">Config and checkbox state</span>
<div class="flexbox">
<button class="savebtn" onclick="saveSettings()">Export</button>
<button class="savebtn" onclick="loadSettings()">Import</button>
</div>
</div>
</div>
</div>
</div>
<div id="fileinfodiv" style="overflow: auto;">
<table class="fileinfo">
<tbody>
<tr>
<td id="title" class="title" style="width: 70%">
Title
</td>
<td id="revision" class="title" style="width: 30%">
Revision
</td>
</tr>
<tr>
<td id="company">
Company
</td>
<td id="filedate">
Date
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="bot" class="split" style="height: calc(100% - 80px)">
<div id="bomdiv" class="split split-horizontal">
<div style="width: 100%">
<input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
oninput="updateRefLookup(this.value)">
<input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
oninput="updateFilter(this.value)">
<div class="button-container hideonprint" style="float: left; margin: 0;">
<button id="copy" title="Copy bom table to clipboard"
onclick="copyToClipboard()"></button>
</div>
</div>
<div id="dbg"></div>
<table class="bom">
<thead id="bomhead">
</thead>
<tbody id="bombody">
</tbody>
</table>
</div>
<div id="canvasdiv" class="split split-horizontal">
<div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
<div style="position: relative; width: 100%; height: 100%;">
<canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
<canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
<canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
<canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
</div>
</div>
<div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
<div style="position: relative; width: 100%; height: 100%;">
<canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
<canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
<canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
<canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
</div>
</div>
</div>
</div>
</div>
</body>
</html>