diff options
author | Benjamin Poirier <benjamin.poirier@gmail.com> | 2019-01-04 15:37:17 +0900 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2019-03-21 01:07:59 +0000 |
commit | 5e798a2a6e6ddd8d5b17cb8768110f6160d9db70 (patch) | |
tree | 9efd1bd5d5c24596f12a0c38e7e5bb21cfa2a4a6 | |
parent | a88d73cef4ebbfb781374e58beafb9a35b87d9b8 (diff) |
evdev: Rename button up and down states to mirror each other
The button up debouncing states mirror the button down states with the
addition of the spurious debouncing states. Rename the states to better
show this symmetry.
-rw-r--r-- | doc/button-debouncing-state-machine.svg | 2 | ||||
-rw-r--r-- | src/evdev-debounce.c | 80 | ||||
-rw-r--r-- | src/evdev-fallback.h | 14 |
3 files changed, 48 insertions, 48 deletions
diff --git a/doc/button-debouncing-state-machine.svg b/doc/button-debouncing-state-machine.svg index 0553012f..53c08305 100644 --- a/doc/button-debouncing-state-machine.svg +++ b/doc/button-debouncing-state-machine.svg @@ -1,3 +1,3 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1278px" height="2101px" viewBox="-0.5 -0.5 1278 2101" content="<mxfile modified="2019-02-08T01:05:41.185Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0" version="10.1.9" etag="cAJKHSsYF5Txex8miHQQ" type="device"><diagram id="27c35eac-9917-780f-69cd-550de3271581" name="Page-1">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</diagram></mxfile>"><defs/><g><rect x="440" y="220" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(496.5,230.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="43" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 44px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP</div></div></foreignObject><text x="22" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP</text></switch></g><path d="M 505 310 L 535 310 L 550 335 L 535 360 L 505 360 L 490 335 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(498.5,316.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 520 260 L 520 303.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 520 308.88 L 516.5 301.88 L 520 303.63 L 523.5 301.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="420" y="600" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(438.5,610.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="119" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 120px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">DOWN_WAITING</div></div></foreignObject><text x="60" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">DOWN_WAITING</text></switch></g><rect x="230" y="810" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(235.5,820.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="146" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 147px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RELEASE_PENDING</div></div></foreignObject><text x="73" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">RELEASE_PENDING</text></switch></g><path d="M 585 675 L 615 675 L 630 700 L 615 725 L 585 725 L 570 700 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(574.5,690.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 739.61 1120.1 C 740.78 1116.9 742.67 1115.04 744.67 1115.12 L 814.53 1115.12 C 816.13 1115.08 817.65 1115.63 818.65 1116.61 C 819.64 1117.59 819.99 1118.88 819.6 1120.1 L 800.36 1169.9 C 799.19 1173.1 797.3 1174.96 795.3 1174.88 L 724.42 1174.88 C 723.01 1174.69 721.77 1174.05 720.99 1173.1 C 720.22 1172.15 720 1170.99 720.37 1169.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(744.5,1117.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 489.61 500.1 C 490.78 496.9 492.67 495.04 494.67 495.12 L 564.53 495.12 C 566.13 495.08 567.65 495.63 568.65 496.61 C 569.64 497.59 569.99 498.88 569.6 500.1 L 550.36 549.9 C 549.19 553.1 547.3 554.96 545.3 554.88 L 474.42 554.88 C 473.01 554.69 471.77 554.05 470.99 553.1 C 470.22 552.15 470 550.99 470.37 549.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(498.5,497.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 525 640 L 574.76 679.81" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 578.86 683.09 L 571.2 681.45 L 574.76 679.81 L 575.58 675.98 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="710" y="220" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(753.5,230.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="70" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 71px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN</div></div></foreignObject><text x="35" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN</text></switch></g><path d="M 610.33 675 L 779.31 265.89" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 781.31 261.03 L 781.87 268.84 L 779.31 265.89 L 775.41 266.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 505 675 L 535 675 L 550 700 L 535 725 L 505 725 L 490 700 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(494.5,681.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 505 640 L 512.21 668.82" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 513.48 673.92 L 508.39 667.97 L 512.21 668.82 L 515.18 666.28 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 498.13 713.54 L 347.72 806.65" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 343.26 809.41 L 347.37 802.75 L 347.72 806.65 L 351.05 808.7 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 195 965 L 225 965 L 240 990 L 225 1015 L 195 1015 L 180 990 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(184.5,980.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 297.5 850 L 228.68 960.11" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 225.9 964.56 L 226.64 956.77 L 228.68 960.11 L 232.58 960.48 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="280" y="2060" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(336.5,2070.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="43" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 44px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP</div></div></foreignObject><text x="22" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP</text></switch></g><path d="M 855 300 L 885 300 L 900 325 L 885 350 L 855 350 L 840 325 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(844.5,306.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 808.82 260 L 847.31 300.9" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 850.91 304.72 L 843.57 302.02 L 847.31 300.9 L 848.66 297.22 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 365 965 L 395 965 L 410 990 L 395 1015 L 365 1015 L 350 990 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(358.5,971.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 318.75 850 L 366.51 959.17" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 368.61 963.98 L 362.6 958.97 L 366.51 959.17 L 369.02 956.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 388.11 965 L 491.55 646.06" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 493.17 641.06 L 494.34 648.8 L 491.55 646.06 L 487.68 646.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 189.61 1125.1 C 190.78 1121.9 192.67 1120.04 194.67 1120.12 L 264.53 1120.12 C 266.13 1120.08 267.65 1120.63 268.65 1121.61 C 269.64 1122.59 269.99 1123.88 269.6 1125.1 L 250.36 1174.9 C 249.19 1178.1 247.3 1179.96 245.3 1179.88 L 174.42 1179.88 C 173.01 1179.69 171.77 1179.05 170.99 1178.1 C 170.22 1177.15 170 1175.99 170.37 1174.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(194.5,1122.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="680" y="1220" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(688.5,1230.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="140" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 141px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RELEASE_WAITING</div></div></foreignObject><text x="70" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">RELEASE_WAITING</text></switch></g><path d="M 855 1315 L 885 1315 L 900 1340 L 885 1365 L 855 1365 L 840 1340 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(848.5,1321.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 782 1260 L 845.88 1318.07" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 849.76 1321.6 L 842.23 1319.48 L 845.88 1318.07 L 846.94 1314.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 605 1580 L 635 1580 L 650 1605 L 635 1630 L 605 1630 L 590 1605 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(594.5,1595.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 211.56 1015 L 217.73 1113.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 218.06 1118.88 L 214.13 1112.12 L 217.73 1113.64 L 221.11 1111.68 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 224.52 1180 L 356.04 2053.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 356.82 2058.89 L 352.32 2052.49 L 356.04 2053.7 L 359.24 2051.45 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="996" y="1455" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1004.5,1465.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="139" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 140px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">MAYBE_SPURIOUS</div></div></foreignObject><text x="70" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">MAYBE_SPURIOUS</text></switch></g><path d="M 891.53 1354.11 L 1040.16 1451.51" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1044.55 1454.39 L 1036.77 1453.48 L 1040.16 1451.51 L 1040.61 1447.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1231 1580 L 1261 1580 L 1276 1605 L 1261 1630 L 1231 1630 L 1216 1605 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1220.5,1586.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 1246.5 1580 L 1246.5 1241 L 846.37 1241" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 841.12 1241 L 848.12 1237.5 L 846.37 1241 L 848.12 1244.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1102.15 1495 L 1220.38 1585.41" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1224.55 1588.6 L 1216.86 1587.12 L 1220.38 1585.41 L 1221.11 1581.56 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1141 1580 L 1171 1580 L 1186 1605 L 1171 1630 L 1141 1630 L 1126 1605 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1130.5,1586.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout<br>short</text></switch></g><path d="M 1088.31 1495 L 1137.47 1574.89" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1140.22 1579.36 L 1133.57 1575.24 L 1137.47 1574.89 L 1139.54 1571.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1166.42 1630 L 1188.17 1682.2" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1190.19 1687.04 L 1184.26 1681.93 L 1188.17 1682.2 L 1190.72 1679.24 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1194.85 1763.41 L 1160.95 1873.91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1159.41 1878.93 L 1158.12 1871.21 L 1160.95 1873.91 L 1164.81 1873.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 846 830 L 896 880 L 846 930 L 796 880 Z" fill="#999999" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(814.5,861.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="59" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 60px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">spurious<br />enabled?</div></div></foreignObject><text x="30" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">spurious<br>enabled?</text></switch></g><path d="M 831.66 930 L 780.36 1108.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 778.91 1113.93 L 777.48 1106.23 L 780.36 1108.88 L 784.21 1108.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(796.5,1012.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">no</div></div></foreignObject><text x="8" y="14" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">no</text></switch></g><path d="M 765 1315 L 795 1315 L 810 1340 L 795 1365 L 765 1365 L 750 1340 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(754.5,1321.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout<br>short</text></switch></g><path d="M 764 1260 L 773.75 1308.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 774.78 1313.9 L 769.98 1307.73 L 773.75 1308.76 L 776.84 1306.35 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="710" y="1455" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(748.5,1465.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="80" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 81px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RELEASED</div></div></foreignObject><text x="40" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">RELEASED</text></switch></g><path d="M 781.85 1365 L 788.05 1448.65" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 788.44 1453.89 L 784.43 1447.16 L 788.05 1448.65 L 791.41 1446.65 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 763.85 1495 L 645.62 1585.41" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 641.45 1588.6 L 644.89 1581.56 L 645.62 1585.41 L 649.14 1587.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 796 1580 L 826 1580 L 841 1605 L 826 1630 L 796 1630 L 781 1605 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(789.5,1586.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 793.23 1495 L 805.95 1573.71" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 806.78 1578.9 L 802.21 1572.54 L 805.95 1573.71 L 809.12 1571.43 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="775" y="1680" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(789.5,1690.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="128" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 129px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">PRESS_PENDING</div></div></foreignObject><text x="64" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">PRESS_PENDING</text></switch></g><path d="M 822.58 1630 L 843.06 1674.22" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 845.27 1678.99 L 839.15 1674.1 L 843.06 1674.22 L 845.5 1671.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1035 1760 L 1065 1760 L 1080 1785 L 1065 1810 L 1035 1810 L 1020 1785 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1024.5,1766.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 900.88 1720 L 1020.38 1772.09" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1025.19 1774.19 L 1017.38 1774.6 L 1020.38 1772.09 L 1020.18 1768.18 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1032.51 1764.15 L 810.87 1499.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 807.49 1495.86 L 814.67 1498.97 L 810.87 1499.88 L 809.31 1503.47 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 805 1760 L 835 1760 L 850 1785 L 835 1810 L 805 1810 L 790 1785 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(794.5,1775.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 839.61 1885.1 C 840.78 1881.9 842.67 1880.04 844.67 1880.12 L 914.53 1880.12 C 916.13 1880.08 917.65 1880.63 918.65 1881.61 C 919.64 1882.59 919.99 1883.88 919.6 1885.1 L 900.36 1934.9 C 899.19 1938.1 897.3 1939.96 895.3 1939.88 L 824.42 1939.88 C 823.01 1939.69 821.77 1939.05 820.99 1938.1 C 820.22 1937.15 820 1935.99 820.37 1934.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(848.5,1882.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 846.76 1720 L 832.72 1754.11" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 830.72 1758.97 L 830.15 1751.16 L 832.72 1754.11 L 836.62 1753.83 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 830 1810 L 855.63 1874.09" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 857.58 1878.96 L 851.74 1873.76 L 855.63 1874.09 L 858.23 1871.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 876.35 1940 L 900.45 2053.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 901.53 2058.91 L 896.66 2052.78 L 900.45 2053.77 L 903.51 2051.33 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 606.32 1630 L 374 2054.41" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 371.48 2059.02 L 371.78 2051.2 L 374 2054.41 L 377.92 2054.56 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="500" y="908" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(505.5,918.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="146" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 147px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RELEASE_DELAYED</div></div></foreignObject><text x="73" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">RELEASE_DELAYED</text></switch></g><path d="M 796 889.02 L 666.27 912.43" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 661.1 913.37 L 667.37 908.68 L 666.27 912.43 L 668.61 915.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(776.5,872.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">yes</div></div></foreignObject><text x="12" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">yes</text></switch></g><path d="M 609 1046 L 476.48 1360.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 474.43 1364.97 L 473.93 1357.16 L 476.48 1360.13 L 480.38 1359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 595 995 L 625 995 L 640 1020 L 625 1045 L 595 1045 L 580 1020 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(584.5,1001.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout<br>short</text></switch></g><path d="M 586.52 948 L 599.87 988.95" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 601.5 993.94 L 596 988.37 L 599.87 988.95 L 602.66 986.2 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 705 995 L 735 995 L 750 1020 L 735 1045 L 705 1045 L 690 1020 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(698.5,1001.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 610.43 948 L 693.16 1002.36" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 697.55 1005.25 L 689.78 1004.33 L 693.16 1002.36 L 693.62 998.48 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 722.24 995 L 787.64 266.34" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 788.11 261.11 L 790.97 268.4 L 787.64 266.34 L 783.99 267.77 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="520" cy="435" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="none"/><g transform="translate(501.5,416.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="33" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 34px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set<br />timer</div></div></foreignObject><text x="17" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set<br>timer</text></switch></g><path d="M 520 360 L 520 403.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 520 408.88 L 516.5 401.88 L 520 403.63 L 523.5 401.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 520 460 L 520 488.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 520 493.88 L 516.5 486.88 L 520 488.63 L 523.5 486.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="860" cy="665" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="none"/><g transform="translate(841.5,646.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="33" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 34px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set<br />timer</div></div></foreignObject><text x="17" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set<br>timer</text></switch></g><path d="M 869.26 350 L 860.92 633.65" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 860.77 638.89 L 857.48 631.79 L 860.92 633.65 L 864.47 632 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 857.51 689.88 L 852.84 733.81" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 852.29 739.03 L 849.55 731.7 L 852.84 733.81 L 856.51 732.44 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="849" cy="775" rx="35" ry="35" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(818.5,756.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="57" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 58px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set short<br />timer</div></div></foreignObject><text x="29" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set short<br>timer</text></switch></g><path d="M 849 810 L 847.93 823.65" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 847.52 828.89 L 844.58 821.63 L 847.93 823.65 L 851.55 822.18 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 667 675 L 693 675 L 710 700 L 693 725 L 667 725 L 650 700 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(658.5,681.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 545 640 L 650.5 686.89" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 655.29 689.02 L 647.48 689.37 L 650.5 686.89 L 650.32 682.98 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 685.98 675 L 783.74 266.19" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 784.96 261.09 L 786.73 268.71 L 783.74 266.19 L 779.93 267.08 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 287 965 L 313 965 L 330 990 L 313 1015 L 287 1015 L 270 990 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(278.5,971.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 308.75 850 L 301.96 958.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 301.63 963.88 L 298.58 956.68 L 301.96 958.64 L 305.56 957.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 287.5 1015 L 237.85 1114.3" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 235.5 1119 L 235.5 1111.17 L 237.85 1114.3 L 241.76 1114.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 587 1315 L 613 1315 L 630 1340 L 613 1365 L 587 1365 L 570 1340 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(578.5,1321.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 728 1260 L 627.22 1322.99" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 622.77 1325.77 L 626.85 1319.09 L 627.22 1322.99 L 630.56 1325.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 591.89 1365 L 368.45 2053.94" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 366.83 2058.94 L 365.66 2051.2 L 368.45 2053.94 L 372.32 2053.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 697 1580 L 723 1580 L 740 1605 L 723 1630 L 697 1630 L 680 1605 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(688.5,1586.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 777.69 1495 L 728.53 1574.89" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 725.78 1579.36 L 726.46 1571.57 L 728.53 1574.89 L 732.43 1575.24 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 693.46 1627.44 L 378.51 2054.87" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 375.4 2059.1 L 376.73 2051.39 L 378.51 2054.87 L 382.37 2055.54 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 913 1760 L 939 1760 L 956 1785 L 939 1810 L 913 1810 L 896 1785 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(904.5,1766.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 871.71 1720 L 904.46 1759.21" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 907.82 1763.24 L 900.65 1760.11 L 904.46 1759.21 L 906.02 1755.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 914.8 1810 L 886.04 1874.19" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 883.9 1878.98 L 883.56 1871.16 L 886.04 1874.19 L 889.95 1874.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1073 1580 L 1099 1580 L 1116 1605 L 1099 1630 L 1073 1630 L 1056 1605 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1064.5,1586.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 675 1315 L 705 1315 L 720 1340 L 705 1365 L 675 1365 L 660 1340 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(664.5,1330.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 746 1260 L 709.81 1311.71" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 706.79 1316.01 L 707.94 1308.27 L 709.81 1311.71 L 713.68 1312.28 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 678.85 1365 L 371.51 2054.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 369.37 2058.98 L 369.03 2051.16 L 371.51 2054.18 L 375.42 2054.01 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1077.54 1495 L 1083.59 1573.65" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1083.99 1578.89 L 1079.96 1572.17 L 1083.59 1573.65 L 1086.94 1571.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1119.61 1885.1 C 1120.78 1881.9 1122.67 1880.04 1124.67 1880.12 L 1194.53 1880.12 C 1196.13 1880.08 1197.65 1880.63 1198.65 1881.61 C 1199.64 1882.59 1199.99 1883.88 1199.6 1885.1 L 1180.36 1934.9 C 1179.19 1938.1 1177.3 1939.96 1175.3 1939.88 L 1104.42 1939.88 C 1103.01 1939.69 1101.77 1939.05 1100.99 1938.1 C 1100.22 1937.15 1100 1935.99 1100.37 1934.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1128.5,1882.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1091.25 1630 L 1142.4 1873.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1143.48 1878.91 L 1138.61 1872.77 L 1142.4 1873.77 L 1145.46 1871.34 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1106.94 1940 L 939.93 2056.36" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 935.62 2059.36 L 939.37 2052.49 L 939.93 2056.36 L 943.37 2058.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 987 300 L 1013 300 L 1030 325 L 1013 350 L 987 350 L 970 325 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(978.5,306.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 839.41 260 L 969.96 312.84" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 974.83 314.81 L 967.02 315.43 L 969.96 312.84 L 969.65 308.94 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 482 995 L 508 995 L 525 1020 L 508 1045 L 482 1045 L 465 1020 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(473.5,1001.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 561.52 948 L 517.51 995.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 513.95 999.49 L 516.13 991.98 L 517.51 995.64 L 521.27 996.73 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 359.61 1235.1 C 360.78 1231.9 362.67 1230.04 364.67 1230.12 L 434.53 1230.12 C 436.13 1230.08 437.65 1230.63 438.65 1231.61 C 439.64 1232.59 439.99 1233.88 439.6 1235.1 L 420.36 1284.9 C 419.19 1288.1 417.3 1289.96 415.3 1289.88 L 344.42 1289.88 C 343.01 1289.69 341.77 1289.05 340.99 1288.1 C 340.22 1287.15 340 1285.99 340.37 1284.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(364.5,1232.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 484.06 1045 L 405.68 1224.17" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 403.57 1228.98 L 403.17 1221.16 L 405.68 1224.17 L 409.59 1223.97 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 388.9 1290 L 360.96 2053.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 360.77 2058.88 L 357.53 2051.76 L 360.96 2053.64 L 364.53 2052.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(464.5,-0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="430" height="190" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; overflow: hidden; max-height: 190px; max-width: 430px; width: 430px; white-space: normal; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><h1>Entry states: IS_UP, IS_DOWN<br /></h1><p>Assumption: state is stored per-button, and OTHER BUTTON events are always processed before the actual button. Stored state per button is a single bit (up/down), a single state for the state machine across the device is sufficient.</p><p>Start the state machine with IS_UP or IS_DOWN based on the button's bit, any OTHER BUTTON event will reset it to that state anyway, so the state can be re-used for the new button.<br /></p></div></div></foreignObject><text x="215" y="101" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 637 310 L 663 310 L 680 335 L 663 360 L 637 360 L 620 335 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(628.5,316.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 547.37 260 L 624 316" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 628.24 319.1 L 620.52 317.8 L 624 316 L 624.66 312.14 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 629.14 319.76 L 552.51 263.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 548.27 260.66 L 555.99 261.96 L 552.51 263.76 L 551.86 267.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="1206" cy="1725" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1176.5,1706.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 57px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">enable<br />spurious</div></div></foreignObject><text x="28" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">enable<br>spurious</text></switch></g><path d="M 766.84 1175 L 762.77 1213.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 762.22 1218.89 L 759.47 1211.56 L 762.77 1213.67 L 766.44 1212.29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 649 310 L 649 241 L 606.37 241" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 601.12 241 L 608.12 237.5 L 606.37 241 L 608.12 244.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 999 300 L 999 241 L 876.37 241" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 871.12 241 L 878.12 237.5 L 876.37 241 L 878.12 244.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 513.68 555 L 505.52 593.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 504.44 598.91 L 502.46 591.34 L 505.52 593.77 L 509.31 592.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="826" y="2060" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(869.5,2070.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="70" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 71px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN</div></div></foreignObject><text x="35" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN</text></switch></g><path d="M 985 1580 L 1015 1580 L 1030 1605 L 1015 1630 L 985 1630 L 970 1605 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(974.5,1595.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 1064.31 1495 L 1017.83 1574.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1015.18 1579.03 L 1015.69 1571.23 L 1017.83 1574.5 L 1021.73 1574.76 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1012.3 1630 L 1132.44 1874.29" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1134.75 1879 L 1128.52 1874.26 L 1132.44 1874.29 L 1134.8 1871.17 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="96" y="220" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(137.5,230.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="74" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 75px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">DISABLED</div></div></foreignObject><text x="37" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">DISABLED</text></switch></g><path d="M 45 345 L 75 345 L 90 370 L 75 395 L 45 395 L 30 370 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(38.5,351.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 153.92 260 L 63.72 341.72" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 59.83 345.25 L 62.67 337.96 L 63.72 341.72 L 67.37 343.14 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 122.45 430 L 168.64 266.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 170.06 261.08 L 171.53 268.76 L 168.64 266.13 L 164.79 266.86 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 83.61 435.1 C 84.78 431.9 86.67 430.04 88.67 430.12 L 158.53 430.12 C 160.13 430.08 161.65 430.63 162.65 431.61 C 163.64 432.59 163.99 433.88 163.6 435.1 L 144.36 484.9 C 143.19 488.1 141.3 489.96 139.3 489.88 L 68.42 489.88 C 67.01 489.69 65.77 489.05 64.99 488.1 C 64.22 487.15 64 485.99 64.37 484.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(92.5,432.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 75 395 L 92.72 424.54" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 95.42 429.04 L 88.82 424.84 L 92.72 424.54 L 94.82 421.24 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 275 345 L 305 345 L 320 370 L 305 395 L 275 395 L 260 370 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(264.5,351.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 193.54 260 L 267.99 344.9" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 271.45 348.85 L 264.2 345.89 L 267.99 344.9 L 269.47 341.28 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 221.93 430 L 178.15 267.15" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 176.79 262.08 L 181.99 267.93 L 178.15 267.15 L 175.23 269.75 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 199.61 435.1 C 200.78 431.9 202.67 430.04 204.67 430.12 L 274.53 430.12 C 276.13 430.08 277.65 430.63 278.65 431.61 C 279.64 432.59 279.99 433.88 279.6 435.1 L 260.36 484.9 C 259.19 488.1 257.3 489.96 255.3 489.88 L 184.42 489.88 C 183.01 489.69 181.77 489.05 180.99 488.1 C 180.22 487.15 180 485.99 180.37 484.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(204.5,432.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 274.21 393.68 L 253.53 424.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 250.62 429.07 L 251.59 421.3 L 253.53 424.7 L 257.42 425.19 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 379 295 L 379 241 L 262.87 241" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 257.62 241 L 264.62 237.5 L 262.87 241 L 264.62 244.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 367 295 L 393 295 L 410 320 L 393 345 L 367 345 L 350 320 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(358.5,301.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 227 260 L 349.79 308.15" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 354.67 310.07 L 346.88 310.77 L 349.79 308.15 L 349.43 304.25 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(4.5,-0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="430" height="113" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; overflow: hidden; max-height: 190px; max-width: 430px; width: 430px; white-space: normal; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><h1>Entry state: DISABLED<br /></h1>Only set on devices that have button debouncing disabled. This state is effectively a noop, it just forwards the events as they come in and returns back to the same state.</div></div></foreignObject><text x="215" y="63" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 516.5 1396 L 742.83 1454.41" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 747.92 1455.72 L 740.26 1457.36 L 742.83 1454.41 L 742.01 1450.58 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 444.61 1370.1 C 445.78 1366.9 447.67 1365.04 449.67 1365.12 L 519.53 1365.12 C 521.13 1365.08 522.65 1365.63 523.65 1366.61 C 524.64 1367.59 524.99 1368.88 524.6 1370.1 L 505.36 1419.9 C 504.19 1423.1 502.3 1424.96 500.3 1424.88 L 429.42 1424.88 C 428.01 1424.69 426.77 1424.05 425.99 1423.1 C 425.22 1422.15 425 1420.99 425.37 1419.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(449.5,1367.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g></g></svg>
\ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1863px" height="1911px" viewBox="-0.5 -0.5 1863 1911" content="<mxfile modified="2019-03-06T02:00:35.486Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0" etag="vkHiu0IQZw_6aWYCIVwM" version="10.3.5" type="device"><diagram id="27c35eac-9917-780f-69cd-550de3271581" name="Page-1">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</diagram></mxfile>"><defs/><g><path d="M 1702 1327 Q 1702 1389 1592 1389 Q 1482 1389 1482 1259 Q 1482 1129 1350 1129 Q 1218 1129 1218 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1147.88 L 1214.5 1140.88 L 1218 1142.63 L 1221.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1040.5,-0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="430" height="200" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; overflow: hidden; max-height: 200px; max-width: 430px; width: 430px; white-space: normal; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><h1>Entry states: IS_UP, IS_DOWN<br /></h1><p>Assumption: state is stored per-button, and OTHER BUTTON events are always processed before the actual button. Stored state per button is a single bit (up/down), a single state for the state machine across the device is sufficient.</p><p>Start the state machine with IS_UP or IS_DOWN based on the button's bit, any OTHER BUTTON event will reset it to that state anyway, so the state can be re-used for the new button.<br /></p></div></div></foreignObject><text x="215" y="106" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><g transform="translate(4.5,-0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="430" height="113" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; overflow: hidden; max-height: 190px; max-width: 430px; width: 430px; white-space: normal; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><h1>Entry state: DISABLED<br /></h1>Only set on devices that have button debouncing disabled. This state is effectively a noop, it just forwards the events as they come in and returns back to the same state.</div></div></foreignObject><text x="215" y="63" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 645 1595 L 675 1595 L 690 1620 L 675 1645 L 645 1645 L 630 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(637.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 645 1277 L 675 1277 L 690 1302 L 675 1327 L 645 1327 L 630 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(633.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><rect x="150" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(190.5,278.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="74" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 75px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">DISABLED</div></div></foreignObject><text x="37" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">DISABLED</text></switch></g><path d="M 99 368 L 129 368 L 144 393 L 129 418 L 99 418 L 84 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(91.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 201 309 L 119.24 365.38" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 114.92 368.37 L 118.7 361.51 L 119.24 365.38 L 122.67 367.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 60 541 Q 22 541 22 395 Q 22 249 126 249 Q 230 249 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 79.61 515.1 C 80.78 511.9 82.67 510.04 84.67 510.12 L 154.53 510.12 C 156.13 510.08 157.65 510.63 158.65 511.61 C 159.64 512.59 159.99 513.88 159.6 515.1 L 140.36 564.9 C 139.19 568.1 137.3 569.96 135.3 569.88 L 64.42 569.88 C 63.01 569.69 61.77 569.05 60.99 568.1 C 60.22 567.15 60 565.99 60.37 564.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(87.5,511.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 113.32 418 L 110.99 503.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 110.85 508.88 L 107.54 501.79 L 110.99 503.63 L 114.54 501.98 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 215 368 L 245 368 L 260 393 L 245 418 L 215 418 L 200 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(203.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 230 309 L 230 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 366.88 L 226.5 359.88 L 230 361.63 L 233.5 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 280 541 Q 422 541 422 395 Q 422 249 326 249 Q 230 249 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 199.61 515.1 C 200.78 511.9 202.67 510.04 204.67 510.12 L 274.53 510.12 C 276.13 510.08 277.65 510.63 278.65 511.61 C 279.64 512.59 279.99 513.88 279.6 515.1 L 260.36 564.9 C 259.19 568.1 257.3 569.96 255.3 569.88 L 184.42 569.88 C 183.01 569.69 181.77 569.05 180.99 568.1 C 180.22 567.15 180 565.99 180.37 564.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(203.5,511.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 230 418 L 230 503.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 508.88 L 226.5 501.88 L 230 503.63 L 233.5 501.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 376 393 Q 402 393 402 321 Q 402 249 316 249 Q 230 249 230 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 267.88 L 226.5 260.88 L 230 262.63 L 233.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 333 368 L 359 368 L 376 393 L 359 418 L 333 418 L 316 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(323.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 259 309 L 340.76 365.38" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 345.08 368.37 L 337.33 367.27 L 340.76 365.38 L 341.3 361.51 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="700" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(756.5,278.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="43" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 44px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP</div></div></foreignObject><text x="22" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP</text></switch></g><path d="M 765 368 L 795 368 L 810 393 L 795 418 L 765 418 L 750 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(757.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 780 309 L 780 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 366.88 L 776.5 359.88 L 780 361.63 L 783.5 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="700" y="1150" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(707.5,1159.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="141" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 142px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN_WAITING</div></div></foreignObject><text x="71" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN_WAITING</text></switch></g><rect x="700" y="1510" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(714.5,1519.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="126" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 127px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP_DELAYING</div></div></foreignObject><text x="63" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP_DELAYING</text></switch></g><path d="M 1626.61 1025.1 C 1627.78 1021.9 1629.67 1020.04 1631.67 1020.12 L 1701.53 1020.12 C 1703.13 1020.08 1704.65 1020.63 1705.65 1021.61 C 1706.64 1022.59 1706.99 1023.88 1706.6 1025.1 L 1687.36 1074.9 C 1686.19 1078.1 1684.3 1079.96 1682.3 1079.88 L 1611.42 1079.88 C 1610.01 1079.69 1608.77 1079.05 1607.99 1078.1 C 1607.22 1077.15 1607 1075.99 1607.37 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1630.5,1021.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 749.61 809.1 C 750.78 805.9 752.67 804.04 754.67 804.12 L 824.53 804.12 C 826.13 804.08 827.65 804.63 828.65 805.61 C 829.64 806.59 829.99 807.88 829.6 809.1 L 810.36 858.9 C 809.19 862.1 807.3 863.96 805.3 863.88 L 734.42 863.88 C 733.01 863.69 731.77 863.05 730.99 862.1 C 730.22 861.15 730 859.99 730.37 858.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(757.5,805.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 780 1190 L 780 1270.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1275.88 L 776.5 1268.88 L 780 1270.63 L 783.5 1268.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 757.94 1190 L 666.72 1272.72" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 662.83 1276.25 L 665.66 1268.95 L 666.72 1272.72 L 670.36 1274.14 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 662 1329 L 778.47 1503.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 781.38 1508.07 L 774.58 1504.19 L 778.47 1503.7 L 780.41 1500.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780.6 1550 L 781.81 1590.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 781.97 1595.88 L 778.26 1588.99 L 781.81 1590.63 L 785.26 1588.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="700" y="1870" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(756.5,1879.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="43" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 44px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP</div></div></foreignObject><text x="22" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP</text></switch></g><path d="M 742.39 1550 L 659.62 1594.01" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 654.99 1596.48 L 659.52 1590.1 L 659.62 1594.01 L 662.81 1596.28 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 632.44 1621 Q 582 1621 582 1377 Q 582 1133 682 1133 Q 782 1133 782 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 782 1147.88 L 778.5 1140.88 L 782 1142.63 L 785.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 749.61 1730.1 C 750.78 1726.9 752.67 1725.04 754.67 1725.12 L 824.53 1725.12 C 826.13 1725.08 827.65 1725.63 828.65 1726.61 C 829.64 1727.59 829.99 1728.88 829.6 1730.1 L 810.36 1779.9 C 809.19 1783.1 807.3 1784.96 805.3 1784.88 L 734.42 1784.88 C 733.01 1784.69 731.77 1784.05 730.99 1783.1 C 730.22 1782.15 730 1780.99 730.37 1779.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(753.5,1726.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 780 1645 L 780 1718.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1723.88 L 776.5 1716.88 L 780 1718.63 L 783.5 1716.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1785 L 780 1863.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1868.88 L 776.5 1861.88 L 780 1863.63 L 783.5 1861.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1520" y="1510" width="274" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1528.5,1519.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="252" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 253px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN_DETECTING_SPURIOUS</div></div></foreignObject><text x="126" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN_DETECTING_SPURIOUS</text></switch></g><path d="M 1782 1329 L 1672.8 1504.59" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1670.03 1509.05 L 1670.75 1501.26 L 1672.8 1504.59 L 1676.7 1504.95 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1694.31 1550 L 1776.39 1593.99" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1781.01 1596.47 L 1773.19 1596.25 L 1776.39 1593.99 L 1776.5 1590.08 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1669.24 1550 L 1694.68 1591.57" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1697.42 1596.05 L 1690.78 1591.9 L 1694.68 1591.57 L 1696.75 1588.25 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 656 L 1458.5 706 L 1408.5 756 L 1358.5 706 Z" fill="#999999" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1376.5,686.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="59" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 60px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">spurious<br />enabled?</div></div></foreignObject><text x="30" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">spurious<br>enabled?</text></switch></g><path d="M 1434 733 L 1654.09 1015.97" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1657.31 1020.12 L 1650.25 1016.74 L 1654.09 1015.97 L 1655.78 1012.44 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1426.5,743.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">no</div></div></foreignObject><text x="8" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">no</text></switch></g><path d="M 1102.67 1327 L 794.63 1864.48" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 792.02 1869.03 L 792.46 1861.22 L 794.63 1864.48 L 798.54 1864.7 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1382 733 L 1224.03 786.94" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1219.06 788.64 L 1224.55 783.06 L 1224.03 786.94 L 1226.81 789.69 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1363.5,744.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">yes</div></div></foreignObject><text x="12" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">yes</text></switch></g><ellipse cx="780" cy="497" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="none"/><g transform="translate(761.5,477.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="33" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 34px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set<br />timer</div></div></foreignObject><text x="17" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set<br>timer</text></switch></g><path d="M 780 418 L 780 465.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 470.88 L 776.5 463.88 L 780 465.63 L 783.5 463.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 522 L 780 797.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 802.88 L 776.5 795.88 L 780 797.63 L 783.5 795.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 637 L 1408.5 649.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 654.88 L 1405 647.88 L 1408.5 649.63 L 1412 647.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 802.8 1190 L 897.21 1272.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 901.16 1276.26 L 893.59 1274.28 L 897.21 1272.8 L 898.2 1269.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 806.67 1550 L 874.64 1600.98" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 878.84 1604.13 L 871.14 1602.73 L 874.64 1600.98 L 875.34 1597.13 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 882.7 1639.46 L 810.9 1720.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 807.41 1724.16 L 809.44 1716.61 L 810.9 1720.24 L 814.68 1721.26 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1520.34 1317.21 L 810.89 1866.1" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 806.73 1869.32 L 810.13 1862.26 L 810.89 1866.1 L 814.41 1867.8 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1196.98 1323.76 L 798.5 1864.87" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 795.39 1869.1 L 796.72 1861.39 L 798.5 1864.87 L 802.36 1865.54 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1598.77 1316.18 L 813.75 1866.35" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 809.45 1869.36 L 813.18 1862.47 L 813.75 1866.35 L 817.19 1868.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1645.36 1550 L 1621.2 1591.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1618.56 1596.03 L 1619.06 1588.22 L 1621.2 1591.5 L 1625.11 1591.74 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1585.61 1775.1 C 1586.78 1771.9 1588.67 1770.04 1590.67 1770.12 L 1660.53 1770.12 C 1662.13 1770.08 1663.65 1770.63 1664.65 1771.61 C 1665.64 1772.59 1665.99 1773.88 1665.6 1775.1 L 1646.36 1824.9 C 1645.19 1828.1 1643.3 1829.96 1641.3 1829.88 L 1570.42 1829.88 C 1569.01 1829.69 1567.77 1829.05 1566.99 1828.1 C 1566.22 1827.15 1566 1825.99 1566.37 1824.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1593.5,1771.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1616 1645 L 1616 1763.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1616 1768.88 L 1612.5 1761.88 L 1616 1763.63 L 1619.5 1761.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1618 1829 L 1483.3 1868.22" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1478.26 1869.69 L 1484 1864.37 L 1483.3 1868.22 L 1485.96 1871.09 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1086.16 1080 L 789.81 1864.04" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 787.95 1868.95 L 787.16 1861.17 L 789.81 1864.04 L 793.7 1863.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 887 368 L 913 368 L 930 393 L 913 418 L 887 418 L 870 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(877.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 810.5 309 L 896.67 365.51" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 901.07 368.39 L 893.29 367.48 L 896.67 365.51 L 897.13 361.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="1696" cy="1710" rx="30" ry="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(1665.5,1690.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 57px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">enable<br />spurious</div></div></foreignObject><text x="28" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">enable<br>spurious</text></switch></g><path d="M 1658 1081 L 1657.3 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1657.24 1148.88 L 1653.82 1141.84 L 1657.3 1143.63 L 1660.82 1141.92 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1676.35 1732.67 L 1646.93 1765.27" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1643.42 1769.17 L 1645.51 1761.63 L 1646.93 1765.27 L 1650.7 1766.32 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 930 393 Q 962 393 962 321 Q 962 249 872 249 Q 782 249 782 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 782 267.88 L 778.5 260.88 L 782 262.63 L 785.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 864 L 780 1143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 1148.88 L 776.5 1141.88 L 780 1143.63 L 783.5 1141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1328.5" y="1870" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1371.5,1879.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="70" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 71px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN</div></div></foreignObject><text x="35" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN</text></switch></g><path d="M 1620.28 1550 L 1539.59 1593.95" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1534.98 1596.47 L 1539.45 1590.04 L 1539.59 1593.95 L 1542.8 1596.19 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1545.39 1645 L 1599.69 1764.2" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1601.87 1768.98 L 1595.78 1764.06 L 1599.69 1764.2 L 1602.15 1761.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1328.5" y="269" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1371.5,278.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="70" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 71px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN</div></div></foreignObject><text x="35" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN</text></switch></g><path d="M 1393.5 368 L 1423.5 368 L 1438.5 393 L 1423.5 418 L 1393.5 418 L 1378.5 393 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1382.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 1408.5 309 L 1408.5 361.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 366.88 L 1405 359.88 L 1408.5 361.63 L 1412 359.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="1409" cy="497" rx="25" ry="25" fill="#ea6b66" stroke="#000000" pointer-events="none"/><g transform="translate(1389.5,477.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="33" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 34px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set<br />timer</div></div></foreignObject><text x="17" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set<br>timer</text></switch></g><path d="M 1408.5 418 L 1408.5 465.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 470.88 L 1405 463.88 L 1408.5 465.63 L 1412 463.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 522 L 1408.5 560.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1408.5 565.88 L 1405 558.88 L 1408.5 560.63 L 1412 558.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="1409" cy="602" rx="35" ry="35" fill="#9ac7bf" stroke="#000000" pointer-events="none"/><g transform="translate(1377.5,582.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="57" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 58px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">set short<br />timer</div></div></foreignObject><text x="29" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">set short<br>timer</text></switch></g><path d="M 1528 368 L 1554 368 L 1571 393 L 1554 418 L 1528 418 L 1511 393 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1518.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 1441.88 309 L 1536.54 365.73" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1541.04 368.43 L 1533.24 367.83 L 1536.54 365.73 L 1536.84 361.82 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1571 393 Q 1602 393 1602 321 Q 1602 249 1506 249 Q 1410 249 1410 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 267.88 L 1406.5 260.88 L 1410 262.63 L 1413.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1103" y="790" width="232" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1110.5,799.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="213" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 214px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP_DELAYING_SPURIOUS</div></div></foreignObject><text x="107" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP_DELAYING_SPURIOUS</text></switch></g><path d="M 1218.75 830 L 1217.89 898.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1217.83 903.88 L 1214.41 896.84 L 1217.89 898.63 L 1221.41 896.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1244.05 830 L 1333.02 901.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1337.13 904.3 L 1329.47 902.67 L 1333.02 901.03 L 1333.84 897.2 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1193.53 830 L 1103.01 901.07" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1098.88 904.31 L 1102.22 897.23 L 1103.01 901.07 L 1106.55 902.74 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1530" y="1150" width="254" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1542.5,1159.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="225" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 226px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP_DETECTING_SPURIOUS</div></div></foreignObject><text x="113" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP_DETECTING_SPURIOUS</text></switch></g><path d="M 1766 1277 L 1796 1277 L 1811 1302 L 1796 1327 L 1766 1327 L 1751 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1758.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 1680.36 1190 L 1777.16 1272.86" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1781.15 1276.27 L 1773.56 1274.38 L 1777.16 1272.86 L 1778.11 1269.06 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1685 1277 L 1715 1277 L 1730 1302 L 1715 1327 L 1685 1327 L 1670 1302 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1673.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout<br>short</text></switch></g><path d="M 1665.41 1190 L 1699.53 1271.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1701.57 1275.97 L 1695.63 1270.87 L 1699.53 1271.13 L 1702.08 1268.16 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1527 1277 L 1553 1277 L 1570 1302 L 1553 1327 L 1527 1327 L 1510 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1517.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 1635.5 1190 L 1546.66 1272.66" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1542.82 1276.24 L 1545.56 1268.91 L 1546.66 1272.66 L 1550.33 1274.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1604 1277 L 1634 1277 L 1649 1302 L 1634 1327 L 1604 1327 L 1589 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1592.5,1291.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 1649.71 1190 L 1620.18 1271.02" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1618.38 1275.95 L 1617.49 1268.17 L 1620.18 1271.02 L 1624.07 1270.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1765 1595 L 1795 1595 L 1810 1620 L 1795 1645 L 1765 1645 L 1750 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1753.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 1806.11 1621 Q 1862 1621 1862 1375 Q 1862 1129 1760 1129 Q 1658 1129 1658 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1658 1147.88 L 1654.5 1140.88 L 1658 1142.63 L 1661.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1683 1595 L 1713 1595 L 1728 1620 L 1713 1645 L 1683 1645 L 1668 1620 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1671.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout<br>short</text></switch></g><path d="M 1697.17 1645 L 1696.21 1673.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1696.04 1678.88 L 1692.77 1671.77 L 1696.21 1673.64 L 1699.77 1672 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1603 1595 L 1629 1595 L 1646 1620 L 1629 1645 L 1603 1645 L 1586 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1593.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 1519 1595 L 1549 1595 L 1564 1620 L 1549 1645 L 1519 1645 L 1504 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1507.5,1609.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 765 1277 L 795 1277 L 810 1302 L 795 1327 L 765 1327 L 750 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(753.5,1291.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 804.89 1305 Q 950 1305 950 777 Q 950 249 1180 249 Q 1410 249 1410 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 267.88 L 1406.5 260.88 L 1410 262.63 L 1413.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 887 1277 L 913 1277 L 930 1302 L 913 1327 L 887 1327 L 870 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(877.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 765 1595 L 795 1595 L 810 1620 L 795 1645 L 765 1645 L 750 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(753.5,1609.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 887 1595 L 913 1595 L 930 1620 L 913 1645 L 887 1645 L 870 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(877.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><rect x="1127.5" y="1510" width="182" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1139.5,1519.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="153" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 154px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_DOWN_DELAYING</div></div></foreignObject><text x="77" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_DOWN_DELAYING</text></switch></g><path d="M 1298.19 1327 L 1228.68 1504.07" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1226.76 1508.96 L 1226.06 1501.16 L 1228.68 1504.07 L 1232.58 1503.72 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1243.43 1550 L 1297.03 1593.01" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1301.13 1596.3 L 1293.48 1594.65 L 1297.03 1593.01 L 1297.86 1589.19 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1188.11 1730.1 C 1189.28 1726.9 1191.17 1725.04 1193.17 1725.12 L 1263.03 1725.12 C 1264.63 1725.08 1266.15 1725.63 1267.15 1726.61 C 1268.14 1727.59 1268.49 1728.88 1268.1 1730.1 L 1248.86 1779.9 C 1247.69 1783.1 1245.8 1784.96 1243.8 1784.88 L 1172.92 1784.88 C 1171.51 1784.69 1170.27 1784.05 1169.49 1783.1 C 1168.72 1782.15 1168.5 1780.99 1168.87 1779.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1196.5,1726.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />press</div></div></foreignObject><text x="20" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1188.5 1550 L 1123.3 1593.47" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1118.93 1596.38 L 1122.81 1589.58 L 1123.3 1593.47 L 1126.7 1595.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1131.74 1639.61 L 1192.12 1719.91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1195.27 1724.11 L 1188.27 1720.61 L 1192.12 1719.91 L 1193.86 1716.41 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218.5 1550 L 1218.5 1588.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218.5 1593.88 L 1215 1586.88 L 1218.5 1588.63 L 1222 1586.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218.5 1645 L 1218.5 1718.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218.5 1723.88 L 1215 1716.88 L 1218.5 1718.63 L 1222 1716.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1102 1277 L 1132 1277 L 1147 1302 L 1132 1327 L 1102 1327 L 1087 1302 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1090.5,1291.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 1293 1277 L 1323 1277 L 1338 1302 L 1323 1327 L 1293 1327 L 1278 1302 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1285.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 1200 1277 L 1226 1277 L 1243 1302 L 1226 1327 L 1200 1327 L 1183 1302 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1190.5,1282.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 1067.11 1025.1 C 1068.28 1021.9 1070.17 1020.04 1072.17 1020.12 L 1142.03 1020.12 C 1143.63 1020.08 1145.15 1020.63 1146.15 1021.61 C 1147.14 1022.59 1147.49 1023.88 1147.1 1025.1 L 1127.86 1074.9 C 1126.69 1078.1 1124.8 1079.96 1122.8 1079.88 L 1051.92 1079.88 C 1050.51 1079.69 1049.27 1079.05 1048.49 1078.1 C 1047.72 1077.15 1047.5 1075.99 1047.87 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1071.5,1021.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1187.11 1025.1 C 1188.28 1021.9 1190.17 1020.04 1192.17 1020.12 L 1262.03 1020.12 C 1263.63 1020.08 1265.15 1020.63 1266.15 1021.61 C 1267.14 1022.59 1267.49 1023.88 1267.1 1025.1 L 1247.86 1074.9 C 1246.69 1078.1 1244.8 1079.96 1242.8 1079.88 L 1171.92 1079.88 C 1170.51 1079.69 1169.27 1079.05 1168.49 1078.1 C 1167.72 1077.15 1167.5 1075.99 1167.87 1074.9 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1191.5,1021.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="52" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">notify<br />button<br />release</div></div></foreignObject><text x="24" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 1202.5 905 L 1232.5 905 L 1247.5 930 L 1232.5 955 L 1202.5 955 L 1187.5 930 Z" fill="#9ac7bf" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1191.5,910.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout<br />short</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout<br>short</text></switch></g><path d="M 1218 957 L 1218 1014.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1019.88 L 1214.5 1012.88 L 1218 1014.63 L 1221.5 1012.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1323 905 L 1353 905 L 1368 930 L 1353 955 L 1323 955 L 1308 930 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1315.5,910.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />press</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>press</text></switch></g><path d="M 1084.5 905 L 1110.5 905 L 1127.5 930 L 1110.5 955 L 1084.5 955 L 1067.5 930 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1075.5,910.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 1097.5 955 L 1097.5 1013.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1097.5 1018.88 L 1094 1011.88 L 1097.5 1013.63 L 1101 1011.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="1137.5" y="1150" width="160" height="40" rx="6" ry="6" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(1158.5,1159.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="114" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 115px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">IS_UP_WAITING</div></div></foreignObject><text x="57" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">IS_UP_WAITING</text></switch></g><path d="M 1198.9 1190 L 1122.34 1272.34" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1118.76 1276.18 L 1120.97 1268.67 L 1122.34 1272.34 L 1126.09 1273.44 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1234.79 1190 L 1305.84 1272.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1309.27 1276.15 L 1302.04 1273.15 L 1305.84 1272.18 L 1307.34 1268.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1216.82 1190 L 1214.07 1270.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1213.89 1275.88 L 1210.63 1268.77 L 1214.07 1270.64 L 1217.63 1269.01 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1081 L 1218 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1147.88 L 1214.5 1140.88 L 1218 1142.63 L 1221.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1288.5 1595 L 1318.5 1595 L 1333.5 1620 L 1318.5 1645 L 1288.5 1645 L 1273.5 1620 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1277.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">button<br />release</div></div></foreignObject><text x="24" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">button<br>release</text></switch></g><path d="M 1329.61 1621 Q 1402 1621 1402 1375 Q 1402 1129 1310 1129 Q 1218 1129 1218 1142.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1147.88 L 1214.5 1140.88 L 1218 1142.63 L 1221.5 1140.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1102 1595 L 1132 1595 L 1147 1620 L 1132 1645 L 1102 1645 L 1087 1620 Z" fill="#ea6b66" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1090.5,1609.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="16" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">timeout</div></div></foreignObject><text x="24" y="14" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">timeout</text></switch></g><path d="M 1205.5 1595 L 1231.5 1595 L 1248.5 1620 L 1231.5 1645 L 1205.5 1645 L 1188.5 1620 Z" fill="#e1d5e7" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(1196.5,1600.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 41px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">other<br />button</div></div></foreignObject><text x="20" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">other<br>button</text></switch></g><path d="M 924.89 1305 Q 990 1305 990 777 Q 990 249 1200 249 Q 1410 249 1410 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 267.88 L 1406.5 260.88 L 1410 262.63 L 1413.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1218 1785 L 1366.64 1866.93" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1371.24 1869.46 L 1363.42 1869.15 L 1366.64 1866.93 L 1366.79 1863.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1370 929 Q 1402 929 1402 845 Q 1402 761 1326 761 Q 1250 761 1250 505 Q 1250 249 1330 249 Q 1410 249 1410 262.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 1410 267.88 L 1406.5 260.88 L 1410 262.63 L 1413.5 260.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg>
\ No newline at end of file diff --git a/src/evdev-debounce.c b/src/evdev-debounce.c index 744debae..33ff05db 100644 --- a/src/evdev-debounce.c +++ b/src/evdev-debounce.c @@ -74,13 +74,13 @@ debounce_state_to_str(enum debounce_state state) switch(state) { CASE_RETURN_STRING(DEBOUNCE_STATE_IS_UP); CASE_RETURN_STRING(DEBOUNCE_STATE_IS_DOWN); - CASE_RETURN_STRING(DEBOUNCE_STATE_DOWN_WAITING); - CASE_RETURN_STRING(DEBOUNCE_STATE_RELEASE_PENDING); - CASE_RETURN_STRING(DEBOUNCE_STATE_RELEASE_DELAYED); - CASE_RETURN_STRING(DEBOUNCE_STATE_RELEASE_WAITING); - CASE_RETURN_STRING(DEBOUNCE_STATE_MAYBE_SPURIOUS); - CASE_RETURN_STRING(DEBOUNCE_STATE_RELEASED); - CASE_RETURN_STRING(DEBOUNCE_STATE_PRESS_PENDING); + CASE_RETURN_STRING(DEBOUNCE_STATE_IS_DOWN_WAITING); + CASE_RETURN_STRING(DEBOUNCE_STATE_IS_UP_DELAYING); + CASE_RETURN_STRING(DEBOUNCE_STATE_IS_UP_DELAYING_SPURIOUS); + CASE_RETURN_STRING(DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS); + CASE_RETURN_STRING(DEBOUNCE_STATE_IS_DOWN_DETECTING_SPURIOUS); + CASE_RETURN_STRING(DEBOUNCE_STATE_IS_UP_WAITING); + CASE_RETURN_STRING(DEBOUNCE_STATE_IS_DOWN_DELAYING); CASE_RETURN_STRING(DEBOUNCE_STATE_DISABLED); } @@ -115,7 +115,7 @@ debounce_set_state(struct fallback_dispatch *fallback, enum debounce_state new_state) { assert(new_state >= DEBOUNCE_STATE_IS_UP && - new_state <= DEBOUNCE_STATE_PRESS_PENDING); + new_state <= DEBOUNCE_STATE_IS_DOWN_DELAYING); fallback->debounce.state = new_state; } @@ -186,7 +186,7 @@ debounce_is_up_handle_event(struct fallback_dispatch *fallback, enum debounce_ev case DEBOUNCE_EVENT_PRESS: fallback->debounce.button_time = time; debounce_set_timer(fallback, time); - debounce_set_state(fallback, DEBOUNCE_STATE_DOWN_WAITING); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_DOWN_WAITING); debounce_notify_button(fallback, LIBINPUT_BUTTON_STATE_PRESSED); break; @@ -212,9 +212,9 @@ debounce_is_down_handle_event(struct fallback_dispatch *fallback, enum debounce_ debounce_set_timer(fallback, time); debounce_set_timer_short(fallback, time); if (fallback->debounce.spurious_enabled) { - debounce_set_state(fallback, DEBOUNCE_STATE_RELEASE_DELAYED); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_DELAYING_SPURIOUS); } else { - debounce_set_state(fallback, DEBOUNCE_STATE_RELEASE_WAITING); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS); debounce_notify_button(fallback, LIBINPUT_BUTTON_STATE_RELEASED); } @@ -229,14 +229,14 @@ debounce_is_down_handle_event(struct fallback_dispatch *fallback, enum debounce_ } static void -debounce_down_waiting_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) +debounce_is_down_waiting_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) { switch (event) { case DEBOUNCE_EVENT_PRESS: log_debounce_bug(fallback, event); break; case DEBOUNCE_EVENT_RELEASE: - debounce_set_state(fallback, DEBOUNCE_STATE_RELEASE_PENDING); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_DELAYING); /* Note: In the debouncing RPR case, we use the last * release's time stamp */ fallback->debounce.button_time = time; @@ -254,11 +254,11 @@ debounce_down_waiting_handle_event(struct fallback_dispatch *fallback, enum debo } static void -debounce_release_pending_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) +debounce_is_up_delaying_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) { switch (event) { case DEBOUNCE_EVENT_PRESS: - debounce_set_state(fallback, DEBOUNCE_STATE_DOWN_WAITING); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_DOWN_WAITING); break; case DEBOUNCE_EVENT_RELEASE: case DEBOUNCE_EVENT_TIMEOUT_SHORT: @@ -274,7 +274,7 @@ debounce_release_pending_handle_event(struct fallback_dispatch *fallback, enum d } static void -debounce_release_delayed_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) +debounce_is_up_delaying_spurious_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) { switch (event) { case DEBOUNCE_EVENT_PRESS: @@ -287,7 +287,7 @@ debounce_release_delayed_handle_event(struct fallback_dispatch *fallback, enum d log_debounce_bug(fallback, event); break; case DEBOUNCE_EVENT_TIMEOUT_SHORT: - debounce_set_state(fallback, DEBOUNCE_STATE_RELEASED); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_WAITING); debounce_notify_button(fallback, LIBINPUT_BUTTON_STATE_RELEASED); break; @@ -300,14 +300,14 @@ debounce_release_delayed_handle_event(struct fallback_dispatch *fallback, enum d } static void -debounce_release_waiting_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) +debounce_is_up_detecting_spurious_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) { switch (event) { case DEBOUNCE_EVENT_PRESS: /* Note: in a bouncing PRP case, we use the last press * event time */ fallback->debounce.button_time = time; - debounce_set_state(fallback, DEBOUNCE_STATE_MAYBE_SPURIOUS); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_DOWN_DETECTING_SPURIOUS); break; case DEBOUNCE_EVENT_RELEASE: log_debounce_bug(fallback, event); @@ -316,7 +316,7 @@ debounce_release_waiting_handle_event(struct fallback_dispatch *fallback, enum d debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP); break; case DEBOUNCE_EVENT_TIMEOUT_SHORT: - debounce_set_state(fallback, DEBOUNCE_STATE_RELEASED); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_WAITING); break; case DEBOUNCE_EVENT_OTHERBUTTON: debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP); @@ -325,14 +325,14 @@ debounce_release_waiting_handle_event(struct fallback_dispatch *fallback, enum d } static void -debounce_maybe_spurious_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) +debounce_is_down_detecting_spurious_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) { switch (event) { case DEBOUNCE_EVENT_PRESS: log_debounce_bug(fallback, event); break; case DEBOUNCE_EVENT_RELEASE: - debounce_set_state(fallback, DEBOUNCE_STATE_RELEASE_WAITING); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS); break; case DEBOUNCE_EVENT_TIMEOUT_SHORT: debounce_cancel_timer(fallback); @@ -351,14 +351,14 @@ debounce_maybe_spurious_handle_event(struct fallback_dispatch *fallback, enum de } static void -debounce_released_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) +debounce_is_up_waiting_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) { switch (event) { case DEBOUNCE_EVENT_PRESS: /* Note: in a debouncing PRP case, we use the last press' * time */ fallback->debounce.button_time = time; - debounce_set_state(fallback, DEBOUNCE_STATE_PRESS_PENDING); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_DOWN_DELAYING); break; case DEBOUNCE_EVENT_RELEASE: case DEBOUNCE_EVENT_TIMEOUT_SHORT: @@ -372,14 +372,14 @@ debounce_released_handle_event(struct fallback_dispatch *fallback, enum debounce } static void -debounce_press_pending_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) +debounce_is_down_delaying_handle_event(struct fallback_dispatch *fallback, enum debounce_event event, uint64_t time) { switch (event) { case DEBOUNCE_EVENT_PRESS: log_debounce_bug(fallback, event); break; case DEBOUNCE_EVENT_RELEASE: - debounce_set_state(fallback, DEBOUNCE_STATE_RELEASED); + debounce_set_state(fallback, DEBOUNCE_STATE_IS_UP_WAITING); break; case DEBOUNCE_EVENT_TIMEOUT_SHORT: log_debounce_bug(fallback, event); @@ -437,26 +437,26 @@ debounce_handle_event(struct fallback_dispatch *fallback, case DEBOUNCE_STATE_IS_DOWN: debounce_is_down_handle_event(fallback, event, time); break; - case DEBOUNCE_STATE_DOWN_WAITING: - debounce_down_waiting_handle_event(fallback, event, time); + case DEBOUNCE_STATE_IS_DOWN_WAITING: + debounce_is_down_waiting_handle_event(fallback, event, time); break; - case DEBOUNCE_STATE_RELEASE_PENDING: - debounce_release_pending_handle_event(fallback, event, time); + case DEBOUNCE_STATE_IS_UP_DELAYING: + debounce_is_up_delaying_handle_event(fallback, event, time); break; - case DEBOUNCE_STATE_RELEASE_DELAYED: - debounce_release_delayed_handle_event(fallback, event, time); + case DEBOUNCE_STATE_IS_UP_DELAYING_SPURIOUS: + debounce_is_up_delaying_spurious_handle_event(fallback, event, time); break; - case DEBOUNCE_STATE_RELEASE_WAITING: - debounce_release_waiting_handle_event(fallback, event, time); + case DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS: + debounce_is_up_detecting_spurious_handle_event(fallback, event, time); break; - case DEBOUNCE_STATE_MAYBE_SPURIOUS: - debounce_maybe_spurious_handle_event(fallback, event, time); + case DEBOUNCE_STATE_IS_DOWN_DETECTING_SPURIOUS: + debounce_is_down_detecting_spurious_handle_event(fallback, event, time); break; - case DEBOUNCE_STATE_RELEASED: - debounce_released_handle_event(fallback, event, time); + case DEBOUNCE_STATE_IS_UP_WAITING: + debounce_is_up_waiting_handle_event(fallback, event, time); break; - case DEBOUNCE_STATE_PRESS_PENDING: - debounce_press_pending_handle_event(fallback, event, time); + case DEBOUNCE_STATE_IS_DOWN_DELAYING: + debounce_is_down_delaying_handle_event(fallback, event, time); break; case DEBOUNCE_STATE_DISABLED: debounce_disabled_handle_event(fallback, event, time); diff --git a/src/evdev-fallback.h b/src/evdev-fallback.h index f57c4af2..0f75827e 100644 --- a/src/evdev-fallback.h +++ b/src/evdev-fallback.h @@ -34,13 +34,13 @@ enum debounce_state { DEBOUNCE_STATE_IS_UP = 100, DEBOUNCE_STATE_IS_DOWN, - DEBOUNCE_STATE_DOWN_WAITING, - DEBOUNCE_STATE_RELEASE_PENDING, - DEBOUNCE_STATE_RELEASE_DELAYED, - DEBOUNCE_STATE_RELEASE_WAITING, - DEBOUNCE_STATE_MAYBE_SPURIOUS, - DEBOUNCE_STATE_RELEASED, - DEBOUNCE_STATE_PRESS_PENDING, + DEBOUNCE_STATE_IS_DOWN_WAITING, + DEBOUNCE_STATE_IS_UP_DELAYING, + DEBOUNCE_STATE_IS_UP_DELAYING_SPURIOUS, + DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS, + DEBOUNCE_STATE_IS_DOWN_DETECTING_SPURIOUS, + DEBOUNCE_STATE_IS_UP_WAITING, + DEBOUNCE_STATE_IS_DOWN_DELAYING, DEBOUNCE_STATE_DISABLED = 999, }; |