diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-03-06 13:24:54 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-03-06 13:24:54 +0200 |
| commit | b3cfecea7d2493776db2f03ee48b06436029d438 (patch) | |
| tree | 0294f7b5e11cffe4c09b65677db077232bddc85a /Software/Embedded_SW | |
| parent | 76c7cd55ecff7c282761d7a9bdce899c8113ffc0 (diff) | |
| download | Tango-b3cfecea7d2493776db2f03ee48b06436029d438.tar.gz Tango-b3cfecea7d2493776db2f03ee48b06436029d438.zip | |
add stub for heaters end
Diffstat (limited to 'Software/Embedded_SW')
28 files changed, 101 insertions, 10946 deletions
diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/data_0 b/Software/Embedded_SW/.jxbrowser-data/Cache/data_0 Binary files differindex 43bc4dd30..72da15f27 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/data_0 +++ b/Software/Embedded_SW/.jxbrowser-data/Cache/data_0 diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/data_1 b/Software/Embedded_SW/.jxbrowser-data/Cache/data_1 Binary files differindex 98e1cbae6..d09ddd8f9 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/data_1 +++ b/Software/Embedded_SW/.jxbrowser-data/Cache/data_1 diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/data_2 b/Software/Embedded_SW/.jxbrowser-data/Cache/data_2 Binary files differindex 616f7914e..f77d1a73c 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/data_2 +++ b/Software/Embedded_SW/.jxbrowser-data/Cache/data_2 diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/data_3 b/Software/Embedded_SW/.jxbrowser-data/Cache/data_3 Binary files differindex af4db3b45..e128b103c 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/data_3 +++ b/Software/Embedded_SW/.jxbrowser-data/Cache/data_3 diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000008 b/Software/Embedded_SW/.jxbrowser-data/Cache/f_000008 deleted file mode 100644 index 03809ee51..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000008 +++ /dev/null @@ -1,94 +0,0 @@ -<!-- -Copyright (c) 2014 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt ---> - -<link rel="import" href="../iron-icon/iron-icon.html"> -<link rel="import" href="../iron-iconset-svg/iron-iconset-svg.html"> -<iron-iconset-svg name="device" size="24"> -<svg><defs> -<g id="access-alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g> -<g id="access-alarms"><path d="M22 5.7l-4.6-3.9-1.3 1.5 4.6 3.9L22 5.7zM7.9 3.4L6.6 1.9 2 5.7l1.3 1.5 4.6-3.8zM12.5 8H11v6l4.7 2.9.8-1.2-4-2.4V8zM12 4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z"/></g> -<g id="access-time"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></g> -<g id="add-alarm"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"/></g> -<g id="airplanemode-active"><path d="M10.18 9"/><path d="M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z"/></g> -<g id="airplanemode-inactive"><path d="M13 9V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v3.68l7.83 7.83L21 16v-2l-8-5zM3 5.27l4.99 4.99L2 14v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-3.73L18.73 21 20 19.73 4.27 4 3 5.27z"/></g> -<g id="battery-20"><path d="M7 17v3.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V17H7z"/><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h10V5.33z"/></g> -<g id="battery-30"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V15h10V5.33z"/><path d="M7 15v5.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V15H7z"/></g> -<g id="battery-50"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V13h10V5.33z"/><path d="M7 13v7.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V13H7z"/></g> -<g id="battery-60"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V11h10V5.33z"/><path d="M7 11v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11H7z"/></g> -<g id="battery-80"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V9h10V5.33z"/><path d="M7 9v11.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V9H7z"/></g> -<g id="battery-90"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V8h10V5.33z"/><path d="M7 8v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8H7z"/></g> -<g id="battery-alert"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z"/></g> -<g id="battery-charging-20"><path d="M11 20v-3H7v3.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V17h-4.4L11 20z"/><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h4v-2.5H9L13 7v5.5h2L12.6 17H17V5.33C17 4.6 16.4 4 15.67 4z"/></g> -<g id="battery-charging-30"><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v9.17h2L13 7v5.5h2l-1.07 2H17V5.33C17 4.6 16.4 4 15.67 4z"/><path d="M11 20v-5.5H7v6.17C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V14.5h-3.07L11 20z"/></g> -<g id="battery-charging-50"><path d="M14.47 13.5L11 20v-5.5H9l.53-1H7v7.17C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V13.5h-2.53z"/><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v8.17h2.53L13 7v5.5h2l-.53 1H17V5.33C17 4.6 16.4 4 15.67 4z"/></g> -<g id="battery-charging-60"><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V11h3.87L13 7v4h4V5.33C17 4.6 16.4 4 15.67 4z"/><path d="M13 12.5h2L11 20v-5.5H9l1.87-3.5H7v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11h-4v1.5z"/></g> -<g id="battery-charging-80"><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V9h4.93L13 7v2h4V5.33C17 4.6 16.4 4 15.67 4z"/><path d="M13 12.5h2L11 20v-5.5H9L11.93 9H7v11.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V9h-4v3.5z"/></g> -<g id="battery-charging-90"><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V8h5.47L13 7v1h4V5.33C17 4.6 16.4 4 15.67 4z"/><path d="M13 12.5h2L11 20v-5.5H9L12.47 8H7v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8h-4v4.5z"/></g> -<g id="battery-charging-full"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM11 20v-5.5H9L13 7v5.5h2L11 20z"/></g> -<g id="battery-full"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z"/></g> -<g id="battery-std"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z"/></g> -<g id="battery-unknown"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zm-2.72 13.95h-1.9v-1.9h1.9v1.9zm1.35-5.26s-.38.42-.67.71c-.48.48-.83 1.15-.83 1.6h-1.6c0-.83.46-1.52.93-2l.93-.94c.27-.27.44-.65.44-1.06 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5H9c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .66-.27 1.26-.7 1.69z"/></g> -<g id="bluetooth"><path d="M17.71 7.71L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88z"/></g> -<g id="bluetooth-connected"><path d="M7 12l-2-2-2 2 2 2 2-2zm10.71-4.29L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88zM19 10l-2 2 2 2 2-2-2-2z"/></g> -<g id="bluetooth-disabled"><path d="M13 5.83l1.88 1.88-1.6 1.6 1.41 1.41 3.02-3.02L12 2h-1v5.03l2 2v-3.2zM5.41 4L4 5.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l4.29-4.29 2.3 2.29L20 18.59 5.41 4zM13 18.17v-3.76l1.88 1.88L13 18.17z"/></g> -<g id="bluetooth-searching"><path d="M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2c.97-1.54 1.54-3.36 1.54-5.31-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z"/></g> -<g id="brightness-auto"><path d="M10.85 12.65h2.3L12 9l-1.15 3.65zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9h-1.9z"/></g> -<g id="brightness-high"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"/></g> -<g id="brightness-low"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></g> -<g id="brightness-medium"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></g> -<g id="data-usage"><path d="M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53C16.17 17.98 14.21 19 12 19z"/></g> -<g id="developer-mode"><path d="M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17L6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z"/></g> -<g id="devices"><path d="M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z"/></g> -<g id="dvr"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12zm-2-9H8v2h11V8zm0 4H8v2h11v-2zM7 8H5v2h2V8zm0 4H5v2h2v-2z"/></g> -<g id="gps-fixed"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g> -<g id="gps-not-fixed"><path d="M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g> -<g id="gps-off"><path d="M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5C10.16 5.19 11.06 5 12 5c3.87 0 7 3.13 7 7 0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04C3.97 7.62 3.25 9.23 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27C15.09 18.45 13.61 19 12 19c-3.87 0-7-3.13-7-7 0-1.61.55-3.09 1.46-4.27l9.81 9.81z"/></g> -<g id="graphic-eq"><path d="M7 18h2V6H7v12zm4 4h2V2h-2v20zm-8-8h2v-4H3v4zm12 4h2V6h-2v12zm4-8v4h2v-4h-2z"/></g> -<g id="location-disabled"><path d="M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5C10.16 5.19 11.06 5 12 5c3.87 0 7 3.13 7 7 0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04C3.97 7.62 3.25 9.23 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27C15.09 18.45 13.61 19 12 19c-3.87 0-7-3.13-7-7 0-1.61.55-3.09 1.46-4.27l9.81 9.81z"/></g> -<g id="location-searching"><path d="M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g> -<g id="network-cell"><path fill-opacity=".3" d="M2 22h20V2z"/><path d="M17 7L2 22h15z"/></g> -<g id="network-wifi"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/><path d="M3.53 10.95l8.46 10.54.01.01.01-.01 8.46-10.54C20.04 10.62 16.81 8 12 8c-4.81 0-8.04 2.62-8.47 2.95z"/></g> -<g id="nfc"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H4V4h16v16zM18 6h-5c-1.1 0-2 .9-2 2v2.28c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V8h3v8H8V8h2V6H6v12h12V6z"/></g> -<g id="screen-lock-landscape"><path d="M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-2 12H5V7h14v10zm-9-1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1c0-1.11-.9-2-2-2-1.11 0-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1z"/></g> -<g id="screen-lock-portrait"><path d="M10 16h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1c0-1.11-.9-2-2-2-1.11 0-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1zM17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14z"/></g> -<g id="screen-lock-rotation"><path d="M23.25 12.77l-2.57-2.57-1.41 1.41 2.22 2.22-5.66 5.66L4.51 8.17l5.66-5.66 2.1 2.1 1.41-1.41L11.23.75c-.59-.59-1.54-.59-2.12 0L2.75 7.11c-.59.59-.59 1.54 0 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12zM8.47 20.48C5.2 18.94 2.86 15.76 2.5 12H1c.51 6.16 5.66 11 11.95 11l.66-.03-3.81-3.82-1.33 1.33zM16 9h5c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1v-.5C21 1.12 19.88 0 18.5 0S16 1.12 16 2.5V3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.8-6.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V3h-3.4v-.5z"/></g> -<g id="screen-rotation"><path d="M16.48 2.52c3.27 1.55 5.61 4.72 5.97 8.48h1.5C23.44 4.84 18.29 0 12 0l-.66.03 3.81 3.81 1.33-1.32zm-6.25-.77c-.59-.59-1.54-.59-2.12 0L1.75 8.11c-.59.59-.59 1.54 0 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12L10.23 1.75zm4.6 19.44L2.81 9.17l6.36-6.36 12.02 12.02-6.36 6.36zm-7.31.29C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32z"/></g> -<g id="sd-storage"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"/></g> -<g id="settings-system-daydream"><path d="M9 16h6.5c1.38 0 2.5-1.12 2.5-2.5S16.88 11 15.5 11h-.05c-.24-1.69-1.69-3-3.45-3-1.4 0-2.6.83-3.16 2.02h-.16C7.17 10.18 6 11.45 6 13c0 1.66 1.34 3 3 3zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"/></g> -<g id="signal-cellular-0-bar"><path fill-opacity=".3" d="M2 22h20V2z"/></g> -<g id="signal-cellular-1-bar"><path fill-opacity=".3" d="M2 22h20V2z"/><path d="M12 12L2 22h10z"/></g> -<g id="signal-cellular-2-bar"><path fill-opacity=".3" d="M2 22h20V2z"/><path d="M14 10L2 22h12z"/></g> -<g id="signal-cellular-3-bar"><path fill-opacity=".3" d="M2 22h20V2z"/><path d="M17 7L2 22h15z"/></g> -<g id="signal-cellular-4-bar"><path d="M2 22h20V2z"/></g> -<g id="signal-cellular-connected-no-internet-0-bar"><path fill-opacity=".3" d="M22 8V2L2 22h16V8z"/><path d="M20 22h2v-2h-2v2zm0-12v8h2v-8h-2z"/></g> -<g id="signal-cellular-connected-no-internet-1-bar"><path fill-opacity=".3" d="M22 8V2L2 22h16V8z"/><path d="M20 10v8h2v-8h-2zm-8 12V12L2 22h10zm8 0h2v-2h-2v2z"/></g> -<g id="signal-cellular-connected-no-internet-2-bar"><path fill-opacity=".3" d="M22 8V2L2 22h16V8z"/><path d="M14 22V10L2 22h12zm6-12v8h2v-8h-2zm0 12h2v-2h-2v2z"/></g> -<g id="signal-cellular-connected-no-internet-3-bar"><path fill-opacity=".3" d="M22 8V2L2 22h16V8z"/><path d="M17 22V7L2 22h15zm3-12v8h2v-8h-2zm0 12h2v-2h-2v2z"/></g> -<g id="signal-cellular-connected-no-internet-4-bar"><path d="M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zM2 22h16V8h4V2L2 22z"/></g> -<g id="signal-cellular-no-sim"><path d="M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88L2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z"/></g> -<g id="signal-cellular-null"><path d="M20 6.83V20H6.83L20 6.83M22 2L2 22h20V2z"/></g> -<g id="signal-cellular-off"><path d="M21 1l-8.59 8.59L21 18.18V1zM4.77 4.5L3.5 5.77l6.36 6.36L1 21h17.73l2 2L22 21.73 4.77 4.5z"/></g> -<g id="signal-wifi-0-bar"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/></g> -<g id="signal-wifi-1-bar"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/><path d="M6.67 14.86L12 21.49v.01l.01-.01 5.33-6.63C17.06 14.65 15.03 13 12 13s-5.06 1.65-5.33 1.86z"/></g> -<g id="signal-wifi-1-bar-lock"><path d="M23 16v-1.5c0-1.4-1.1-2.5-2.5-2.5S18 13.1 18 14.5V16c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1h5c.5 0 1-.5 1-1v-4c0-.5-.5-1-1-1zm-1 0h-3v-1.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5V16z"/><path d="M15.5 14.5c0-2.8 2.2-5 5-5 .4 0 .7 0 1 .1L23.6 7c-.4-.3-4.9-4-11.6-4C5.3 3 .8 6.7.4 7L12 21.5l3.5-4.3v-2.7z" opacity=".3"/><path d="M6.7 14.9l5.3 6.6 3.5-4.3v-2.6c0-.2 0-.5.1-.7-.9-.5-2.2-.9-3.6-.9-3 0-5.1 1.7-5.3 1.9z"/></g> -<g id="signal-wifi-2-bar"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/><path d="M4.79 12.52l7.2 8.98H12l.01-.01 7.2-8.98C18.85 12.24 16.1 10 12 10s-6.85 2.24-7.21 2.52z"/></g> -<g id="signal-wifi-2-bar-lock"><path d="M23 16v-1.5c0-1.4-1.1-2.5-2.5-2.5S18 13.1 18 14.5V16c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1h5c.5 0 1-.5 1-1v-4c0-.5-.5-1-1-1zm-1 0h-3v-1.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5V16z"/><path d="M15.5 14.5c0-2.8 2.2-5 5-5 .4 0 .7 0 1 .1L23.6 7c-.4-.3-4.9-4-11.6-4C5.3 3 .8 6.7.4 7L12 21.5l3.5-4.3v-2.7z" opacity=".3"/><path d="M4.8 12.5l7.2 9 3.5-4.4v-2.6c0-1.3.5-2.5 1.4-3.4C15.6 10.5 14 10 12 10c-4.1 0-6.8 2.2-7.2 2.5z"/></g> -<g id="signal-wifi-3-bar"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/><path d="M3.53 10.95l8.46 10.54.01.01.01-.01 8.46-10.54C20.04 10.62 16.81 8 12 8c-4.81 0-8.04 2.62-8.47 2.95z"/></g> -<g id="signal-wifi-3-bar-lock"><path opacity=".3" d="M12 3C5.3 3 .8 6.7.4 7l3.2 3.9L12 21.5l3.5-4.3v-2.6c0-2.2 1.4-4 3.3-4.7.3-.1.5-.2.8-.2.3-.1.6-.1.9-.1.4 0 .7 0 1 .1L23.6 7c-.4-.3-4.9-4-11.6-4z"/><path d="M23 16v-1.5c0-1.4-1.1-2.5-2.5-2.5S18 13.1 18 14.5V16c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1h5c.5 0 1-.5 1-1v-4c0-.5-.5-1-1-1zm-1 0h-3v-1.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5V16zm-10 5.5l3.5-4.3v-2.6c0-2.2 1.4-4 3.3-4.7C17.3 9 14.9 8 12 8c-4.8 0-8 2.6-8.5 2.9"/></g> -<g id="signal-wifi-4-bar"><path d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/></g> -<g id="signal-wifi-4-bar-lock"><path d="M23 16v-1.5c0-1.4-1.1-2.5-2.5-2.5S18 13.1 18 14.5V16c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1h5c.5 0 1-.5 1-1v-4c0-.5-.5-1-1-1zm-1 0h-3v-1.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5V16zm-6.5-1.5c0-2.8 2.2-5 5-5 .4 0 .7 0 1 .1L23.6 7c-.4-.3-4.9-4-11.6-4C5.3 3 .8 6.7.4 7L12 21.5l3.5-4.4v-2.6z"/></g> -<g id="signal-wifi-off"><path d="M23.64 7c-.45-.34-4.93-4-11.64-4-1.5 0-2.89.19-4.15.48L18.18 13.8 23.64 7zm-6.6 8.22L3.27 1.44 2 2.72l2.05 2.06C1.91 5.76.59 6.82.36 7l11.63 14.49.01.01.01-.01 3.9-4.86 3.32 3.32 1.27-1.27-3.46-3.46z"/></g> -<g id="storage"><path d="M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"/></g> -<g id="usb"><path d="M15 7v4h1v2h-3V5h2l-3-4-3 4h2v8H8v-2.07c.7-.37 1.2-1.08 1.2-1.93 0-1.21-.99-2.2-2.2-2.2-1.21 0-2.2.99-2.2 2.2 0 .85.5 1.56 1.2 1.93V13c0 1.11.89 2 2 2h3v3.05c-.71.37-1.2 1.1-1.2 1.95 0 1.22.99 2.2 2.2 2.2 1.21 0 2.2-.98 2.2-2.2 0-.85-.49-1.58-1.2-1.95V15h3c1.11 0 2-.89 2-2v-2h1V7h-4z"/></g> -<g id="wallpaper"><path d="M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9l-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z"/></g> -<g id="widgets"><path d="M13 13v8h8v-8h-8zM3 21h8v-8H3v8zM3 3v8h8V3H3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66-5.66-5.65z"/></g> -<g id="wifi-lock"><path d="M20.5 9.5c.28 0 .55.04.81.08L24 6c-3.34-2.51-7.5-4-12-4S3.34 3.49 0 6l12 16 3.5-4.67V14.5c0-2.76 2.24-5 5-5zM23 16v-1.5c0-1.38-1.12-2.5-2.5-2.5S18 13.12 18 14.5V16c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-1.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V16z"/></g> -<g id="wifi-tethering"><path d="M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 2c0-3.31-2.69-6-6-6s-6 2.69-6 6c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.48-.81 2.75-2 3.45l1 1.74c1.79-1.04 3-2.97 3-5.19zM12 3C6.48 3 2 7.48 2 13c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 18.53 4 15.96 4 13c0-4.42 3.58-8 8-8s8 3.58 8 8c0 2.96-1.61 5.53-4 6.92l1 1.73c2.99-1.73 5-4.95 5-8.65 0-5.52-4.48-10-10-10z"/></g> -</defs></svg> -</iron-iconset-svg> diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000a b/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000a deleted file mode 100644 index e4a0d245b..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000a +++ /dev/null @@ -1,88 +0,0 @@ -<!-- -Copyright (c) 2014 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt ---> - -<link rel="import" href="../iron-icon/iron-icon.html"> -<link rel="import" href="../iron-iconset-svg/iron-iconset-svg.html"> -<iron-iconset-svg name="av" size="24"> -<svg><defs> -<g id="add-to-queue"><path d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.11-.9-2-2-2zm0 14H3V5h18v12zm-5-7v2h-3v3h-2v-3H8v-2h3V7h2v3h3z"/></g> -<g id="airplay"><path d="M6 22h12l-6-6zM21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V5h18v12h-4v2h4c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></g> -<g id="album"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5zm0-5.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/></g> -<g id="art-track"><path d="M22 13h-8v-2h8v2zm0-6h-8v2h8V7zm-8 10h8v-2h-8v2zm-2-8v6c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-1.5 6l-2.25-3-1.75 2.26-1.25-1.51L3.5 15h7z"/></g> -<g id="av-timer"><path d="M11 17c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm0-14v4h2V5.08c3.39.49 6 3.39 6 6.92 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-1.68.59-3.22 1.58-4.42L12 13l1.41-1.41-6.8-6.8v.02C4.42 6.45 3 9.05 3 12c0 4.97 4.02 9 9 9 4.97 0 9-4.03 9-9s-4.03-9-9-9h-1zm7 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zM6 12c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z"/></g> -<g id="closed-caption"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"/></g> -<g id="equalizer"><path d="M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z"/></g> -<g id="explicit"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h4v2h-4v2h4v2H9V7h6v2z"/></g> -<g id="fast-forward"><path d="M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z"/></g> -<g id="fast-rewind"><path d="M11 18V6l-8.5 6 8.5 6zm.5-6l8.5 6V6l-8.5 6z"/></g> -<g id="fiber-dvr"><path d="M17.5 10.5h2v1h-2zm-13 0h2v3h-2zM21 3H3c-1.11 0-2 .89-2 2v14c0 1.1.89 2 2 2h18c1.11 0 2-.9 2-2V5c0-1.11-.89-2-2-2zM8 13.5c0 .85-.65 1.5-1.5 1.5H3V9h3.5c.85 0 1.5.65 1.5 1.5v3zm4.62 1.5h-1.5L9.37 9h1.5l1 3.43 1-3.43h1.5l-1.75 6zM21 11.5c0 .6-.4 1.15-.9 1.4L21 15h-1.5l-.85-2H17.5v2H16V9h3.5c.85 0 1.5.65 1.5 1.5v1z"/></g> -<g id="fiber-manual-record"><circle cx="12" cy="12" r="8"/></g> -<g id="fiber-new"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zM8.5 15H7.3l-2.55-3.5V15H3.5V9h1.25l2.5 3.5V9H8.5v6zm5-4.74H11v1.12h2.5v1.26H11v1.11h2.5V15h-4V9h4v1.26zm7 3.74c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1V9h1.25v4.51h1.13V9.99h1.25v3.51h1.12V9h1.25v5z"/></g> -<g id="fiber-pin"><path d="M5.5 10.5h2v1h-2zM20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zM9 11.5c0 .85-.65 1.5-1.5 1.5h-2v2H4V9h3.5c.85 0 1.5.65 1.5 1.5v1zm3.5 3.5H11V9h1.5v6zm7.5 0h-1.2l-2.55-3.5V15H15V9h1.25l2.5 3.5V9H20v6z"/></g> -<g id="fiber-smart-record"><g><circle cx="9" cy="12" r="8"/><path d="M17 4.26v2.09c2.33.82 4 3.04 4 5.65s-1.67 4.83-4 5.65v2.09c3.45-.89 6-4.01 6-7.74s-2.55-6.85-6-7.74z"/></g></g> -<g id="forward-10"><path d="M4 13c0 4.4 3.6 8 8 8s8-3.6 8-8h-2c0 3.3-2.7 6-6 6s-6-2.7-6-6 2.7-6 6-6v4l5-5-5-5v4c-4.4 0-8 3.6-8 8zm6.8 3H10v-3.3L9 13v-.7l1.8-.6h.1V16zm4.3-1.8c0 .3 0 .6-.1.8l-.3.6s-.3.3-.5.3-.4.1-.6.1-.4 0-.6-.1-.3-.2-.5-.3-.2-.3-.3-.6-.1-.5-.1-.8v-.7c0-.3 0-.6.1-.8l.3-.6s.3-.3.5-.3.4-.1.6-.1.4 0 .6.1.3.2.5.3.2.3.3.6.1.5.1.8v.7zm-.8-.8v-.5s-.1-.2-.1-.3-.1-.1-.2-.2-.2-.1-.3-.1-.2 0-.3.1l-.2.2s-.1.2-.1.3v2s.1.2.1.3.1.1.2.2.2.1.3.1.2 0 .3-.1l.2-.2s.1-.2.1-.3v-1.5z"/></g> -<g id="forward-30"><path d="M9.6 13.5h.4c.2 0 .4-.1.5-.2s.2-.2.2-.4v-.2s-.1-.1-.1-.2-.1-.1-.2-.1h-.5s-.1.1-.2.1-.1.1-.1.2v.2h-1c0-.2 0-.3.1-.5s.2-.3.3-.4.3-.2.4-.2.4-.1.5-.1c.2 0 .4 0 .6.1s.3.1.5.2.2.2.3.4.1.3.1.5v.3s-.1.2-.1.3-.1.2-.2.2-.2.1-.3.2c.2.1.4.2.5.4s.2.4.2.6c0 .2 0 .4-.1.5s-.2.3-.3.4-.3.2-.5.2-.4.1-.6.1c-.2 0-.4 0-.5-.1s-.3-.1-.5-.2-.2-.2-.3-.4-.1-.4-.1-.6h.8v.2s.1.1.1.2.1.1.2.1h.5s.1-.1.2-.1.1-.1.1-.2v-.5s-.1-.1-.1-.2-.1-.1-.2-.1h-.6v-.7zm5.7.7c0 .3 0 .6-.1.8l-.3.6s-.3.3-.5.3-.4.1-.6.1-.4 0-.6-.1-.3-.2-.5-.3-.2-.3-.3-.6-.1-.5-.1-.8v-.7c0-.3 0-.6.1-.8l.3-.6s.3-.3.5-.3.4-.1.6-.1.4 0 .6.1.3.2.5.3.2.3.3.6.1.5.1.8v.7zm-.9-.8v-.5s-.1-.2-.1-.3-.1-.1-.2-.2-.2-.1-.3-.1-.2 0-.3.1l-.2.2s-.1.2-.1.3v2s.1.2.1.3.1.1.2.2.2.1.3.1.2 0 .3-.1l.2-.2s.1-.2.1-.3v-1.5zM4 13c0 4.4 3.6 8 8 8s8-3.6 8-8h-2c0 3.3-2.7 6-6 6s-6-2.7-6-6 2.7-6 6-6v4l5-5-5-5v4c-4.4 0-8 3.6-8 8z"/></g> -<g id="forward-5"><path d="M4 13c0 4.4 3.6 8 8 8s8-3.6 8-8h-2c0 3.3-2.7 6-6 6s-6-2.7-6-6 2.7-6 6-6v4l5-5-5-5v4c-4.4 0-8 3.6-8 8zm6.7.9l.2-2.2h2.4v.7h-1.7l-.1.9s.1 0 .1-.1.1 0 .1-.1.1 0 .2 0h.2c.2 0 .4 0 .5.1s.3.2.4.3.2.3.3.5.1.4.1.6c0 .2 0 .4-.1.5s-.1.3-.3.5-.3.2-.5.3-.4.1-.6.1c-.2 0-.4 0-.5-.1s-.3-.1-.5-.2-.2-.2-.3-.4-.1-.3-.1-.5h.8c0 .2.1.3.2.4s.2.1.4.1c.1 0 .2 0 .3-.1l.2-.2s.1-.2.1-.3v-.6l-.1-.2-.2-.2s-.2-.1-.3-.1h-.2s-.1 0-.2.1-.1 0-.1.1-.1.1-.1.1h-.6z"/></g> -<g id="games"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"/></g> -<g id="hd"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 12H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm2-6h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1h-4V9zm1.5 4.5h2v-3h-2v3z"/></g> -<g id="hearing"><path d="M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55.51.23 1.07.35 1.64.35 2.21 0 4-1.79 4-4h-2c0 1.1-.9 2-2 2zM7.64 2.64L6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5-1.12-2.5-2.5-2.5-2.5 1.12-2.5 2.5z"/></g> -<g id="high-quality"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z"/></g> -<g id="library-add"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></g> -<g id="library-books"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9H9V9h10v2zm-4 4H9v-2h6v2zm4-8H9V5h10v2z"/></g> -<g id="library-music"><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 5h-3v5.5c0 1.38-1.12 2.5-2.5 2.5S10 13.88 10 12.5s1.12-2.5 2.5-2.5c.57 0 1.08.19 1.5.51V5h4v2zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"/></g> -<g id="loop"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></g> -<g id="mic"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></g> -<g id="mic-none"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm-1.2-9.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2V4.9zm6.5 6.1c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></g> -<g id="mic-off"><path d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28zm-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18l5.98 5.99zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73 4.27 3z"/></g> -<g id="movie"><path d="M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"/></g> -<g id="music-video"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM8 15c0-1.66 1.34-3 3-3 .35 0 .69.07 1 .18V6h5v2h-3v7.03c-.02 1.64-1.35 2.97-3 2.97-1.66 0-3-1.34-3-3z"/></g> -<g id="new-releases"><path d="M23 12l-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-10 5h-2v-2h2v2zm0-4h-2V7h2v6z"/></g> -<g id="not-interested"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></g> -<g id="pause"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/></g> -<g id="pause-circle-filled"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z"/></g> -<g id="pause-circle-outline"><path d="M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z"/></g> -<g id="play-arrow"><path d="M8 5v14l11-7z"/></g> -<g id="play-circle-filled"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z"/></g> -<g id="play-circle-outline"><path d="M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g> -<g id="playlist-add"><path d="M14 10H2v2h12v-2zm0-4H2v2h12V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2 16h8v-2H2v2z"/></g> -<g id="playlist-add-check"><path d="M14 10H2v2h12v-2zm0-4H2v2h12V6zM2 16h8v-2H2v2zm19.5-4.5L23 13l-6.99 7-4.51-4.5L13 14l3.01 3 5.49-5.5z"/></g> -<g id="playlist-play"><path d="M19 9H2v2h17V9zm0-4H2v2h17V5zM2 15h13v-2H2v2zm15-2v6l5-3-5-3z"/></g> -<g id="queue"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></g> -<g id="queue-music"><path d="M15 6H3v2h12V6zm0 4H3v2h12v-2zM3 16h8v-2H3v2zM17 6v8.18c-.31-.11-.65-.18-1-.18-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V8h3V6h-5z"/></g> -<g id="queue-play-next"><path d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h2v-2H3V5h18v8h2V5c0-1.11-.9-2-2-2zm-8 7V7h-2v3H8v2h3v3h2v-3h3v-2h-3zm11 8l-4.5 4.5L18 21l3-3-3-3 1.5-1.5L24 18z"/></g> -<g id="radio"><path d="M3.24 6.15C2.51 6.43 2 7.17 2 8v12c0 1.1.89 2 2 2h16c1.11 0 2-.9 2-2V8c0-1.11-.89-2-2-2H8.3l8.26-3.34L15.88 1 3.24 6.15zM7 20c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-8h-2v-2h-2v2H4V8h16v4z"/></g> -<g id="recent-actors"><path d="M21 5v14h2V5h-2zm-4 14h2V5h-2v14zM14 5H2c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8 7.75c1.24 0 2.25 1.01 2.25 2.25S9.24 12.25 8 12.25 5.75 11.24 5.75 10 6.76 7.75 8 7.75zM12.5 17h-9v-.75c0-1.5 3-2.25 4.5-2.25s4.5.75 4.5 2.25V17z"/></g> -<g id="remove-from-queue"><path d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.11-.9-2-2-2zm0 14H3V5h18v12zm-5-7v2H8v-2h8z"/></g> -<g id="repeat"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z"/></g> -<g id="repeat-one"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z"/></g> -<g id="replay"><path d="M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"/></g> -<g id="replay-10"><path d="M12 5V1L7 6l5 5V7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6H4c0 4.4 3.6 8 8 8s8-3.6 8-8-3.6-8-8-8zm-1.1 11H10v-3.3L9 13v-.7l1.8-.6h.1V16zm4.3-1.8c0 .3 0 .6-.1.8l-.3.6s-.3.3-.5.3-.4.1-.6.1-.4 0-.6-.1-.3-.2-.5-.3-.2-.3-.3-.6-.1-.5-.1-.8v-.7c0-.3 0-.6.1-.8l.3-.6s.3-.3.5-.3.4-.1.6-.1.4 0 .6.1c.2.1.3.2.5.3s.2.3.3.6.1.5.1.8v.7zm-.9-.8v-.5s-.1-.2-.1-.3-.1-.1-.2-.2-.2-.1-.3-.1-.2 0-.3.1l-.2.2s-.1.2-.1.3v2s.1.2.1.3.1.1.2.2.2.1.3.1.2 0 .3-.1l.2-.2s.1-.2.1-.3v-1.5z"/></g> -<g id="replay-30"><path d="M12 5V1L7 6l5 5V7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6H4c0 4.4 3.6 8 8 8s8-3.6 8-8-3.6-8-8-8zm-2.4 8.5h.4c.2 0 .4-.1.5-.2s.2-.2.2-.4v-.2s-.1-.1-.1-.2-.1-.1-.2-.1h-.5s-.1.1-.2.1-.1.1-.1.2v.2h-1c0-.2 0-.3.1-.5s.2-.3.3-.4.3-.2.4-.2.4-.1.5-.1c.2 0 .4 0 .6.1s.3.1.5.2.2.2.3.4.1.3.1.5v.3s-.1.2-.1.3-.1.2-.2.2-.2.1-.3.2c.2.1.4.2.5.4s.2.4.2.6c0 .2 0 .4-.1.5s-.2.3-.3.4-.3.2-.5.2-.4.1-.6.1c-.2 0-.4 0-.5-.1s-.3-.1-.5-.2-.2-.2-.3-.4-.1-.4-.1-.6h.8v.2s.1.1.1.2.1.1.2.1h.5s.1-.1.2-.1.1-.1.1-.2v-.5s-.1-.1-.1-.2-.1-.1-.2-.1h-.6v-.7zm5.7.7c0 .3 0 .6-.1.8l-.3.6s-.3.3-.5.3-.4.1-.6.1-.4 0-.6-.1-.3-.2-.5-.3-.2-.3-.3-.6-.1-.5-.1-.8v-.7c0-.3 0-.6.1-.8l.3-.6s.3-.3.5-.3.4-.1.6-.1.4 0 .6.1.3.2.5.3.2.3.3.6.1.5.1.8v.7zm-.8-.8v-.5c0-.1-.1-.2-.1-.3s-.1-.1-.2-.2-.2-.1-.3-.1-.2 0-.3.1l-.2.2s-.1.2-.1.3v2s.1.2.1.3.1.1.2.2.2.1.3.1.2 0 .3-.1l.2-.2s.1-.2.1-.3v-1.5z"/></g> -<g id="replay-5"><path d="M12 5V1L7 6l5 5V7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6H4c0 4.4 3.6 8 8 8s8-3.6 8-8-3.6-8-8-8zm-1.3 8.9l.2-2.2h2.4v.7h-1.7l-.1.9s.1 0 .1-.1.1 0 .1-.1.1 0 .2 0h.2c.2 0 .4 0 .5.1s.3.2.4.3.2.3.3.5.1.4.1.6c0 .2 0 .4-.1.5s-.1.3-.3.5-.3.2-.4.3-.4.1-.6.1c-.2 0-.4 0-.5-.1s-.3-.1-.5-.2-.2-.2-.3-.4-.1-.3-.1-.5h.8c0 .2.1.3.2.4s.2.1.4.1c.1 0 .2 0 .3-.1l.2-.2s.1-.2.1-.3v-.6l-.1-.2-.2-.2s-.2-.1-.3-.1h-.2s-.1 0-.2.1-.1 0-.1.1-.1.1-.1.1h-.7z"/></g> -<g id="shuffle"><path d="M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z"/></g> -<g id="skip-next"><path d="M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z"/></g> -<g id="skip-previous"><path d="M6 6h2v12H6zm3.5 6l8.5 6V6z"/></g> -<g id="slow-motion-video"><path d="M13.05 9.79L10 7.5v9l3.05-2.29L16 12zm0 0L10 7.5v9l3.05-2.29L16 12zm0 0L10 7.5v9l3.05-2.29L16 12zM11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69c1.11-.86 2.44-1.44 3.9-1.62zM5.69 7.1L4.26 5.68C3.05 7.16 2.25 8.99 2.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43c-.86-1.1-1.44-2.43-1.62-3.89zm1.61 6.74C7.16 20.95 9 21.75 11 21.95v-2.02c-1.46-.18-2.79-.76-3.9-1.62l-1.42 1.43zM22 12c0 5.16-3.92 9.42-8.95 9.95v-2.02C16.97 19.41 20 16.05 20 12s-3.03-7.41-6.95-7.93V2.05C18.08 2.58 22 6.84 22 12z"/></g> -<g id="snooze"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-3-9h3.63L9 15.2V17h6v-2h-3.63L15 10.8V9H9v2z"/></g> -<g id="sort-by-alpha"><path d="M14.94 4.66h-4.72l2.36-2.36zm-4.69 14.71h4.66l-2.33 2.33zM6.1 6.27L1.6 17.73h1.84l.92-2.45h5.11l.92 2.45h1.84L7.74 6.27H6.1zm-1.13 7.37l1.94-5.18 1.94 5.18H4.97zm10.76 2.5h6.12v1.59h-8.53v-1.29l5.92-8.56h-5.88v-1.6h8.3v1.26l-5.93 8.6z"/></g> -<g id="stop"><path d="M6 6h12v12H6z"/></g> -<g id="subscriptions"><path d="M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z"/></g> -<g id="subtitles"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z"/></g> -<g id="surround-sound"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.76 16.24l-1.41 1.41C4.78 16.1 4 14.05 4 12c0-2.05.78-4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66l-1.41-1.41C17.41 15.07 18 13.54 18 12s-.59-3.07-1.76-4.24l1.41-1.41C19.22 7.9 20 9.95 20 12c0 2.05-.78 4.1-2.34 5.66zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g> -<g id="video-library"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 12.5v-9l6 4.5-6 4.5z"/></g> -<g id="videocam"><path d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"/></g> -<g id="videocam-off"><path d="M21 6.5l-4 4V7c0-.55-.45-1-1-1H9.82L21 17.18V6.5zM3.27 2L2 3.27 4.73 6H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.21 0 .39-.08.54-.18L19.73 21 21 19.73 3.27 2z"/></g> -<g id="volume-down"><path d="M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"/></g> -<g id="volume-mute"><path d="M7 9v6h4l5 5V4l-5 5H7z"/></g> -<g id="volume-off"><path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"/></g> -<g id="volume-up"><path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/></g> -<g id="web"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 14H4v-4h11v4zm0-5H4V9h11v4zm5 5h-4V9h4v9z"/></g> -<g id="web-asset"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2zm0 14H5V8h14v10z"/></g> -</defs></svg> -</iron-iconset-svg> diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000d b/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000d deleted file mode 100644 index d76522119..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000d +++ /dev/null @@ -1,757 +0,0 @@ -<!-- -Copyright (c) 2014 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt ---> - -<link rel="import" href="../polymer/polymer.html"> -<link rel="import" href="../iron-a11y-keys-behavior/iron-a11y-keys-behavior.html"> - -<!-- -Material design: [Surface reaction](https://www.google.com/design/spec/animation/responsive-interaction.html#responsive-interaction-surface-reaction) - -`paper-ripple` provides a visual effect that other paper elements can -use to simulate a rippling effect emanating from the point of contact. The -effect can be visualized as a concentric circle with motion. - -Example: - - <div style="position:relative"> - <paper-ripple></paper-ripple> - </div> - -Note, it's important that the parent container of the ripple be relative position, otherwise -the ripple will emanate outside of the desired container. - -`paper-ripple` listens to "mousedown" and "mouseup" events so it would display ripple -effect when touches on it. You can also defeat the default behavior and -manually route the down and up actions to the ripple element. Note that it is -important if you call `downAction()` you will have to make sure to call -`upAction()` so that `paper-ripple` would end the animation loop. - -Example: - - <paper-ripple id="ripple" style="pointer-events: none;"></paper-ripple> - ... - downAction: function(e) { - this.$.ripple.downAction({x: e.x, y: e.y}); - }, - upAction: function(e) { - this.$.ripple.upAction(); - } - -Styling ripple effect: - - Use CSS color property to style the ripple: - - paper-ripple { - color: #4285f4; - } - - Note that CSS color property is inherited so it is not required to set it on - the `paper-ripple` element directly. - -By default, the ripple is centered on the point of contact. Apply the `recenters` -attribute to have the ripple grow toward the center of its container. - - <paper-ripple recenters></paper-ripple> - -You can also center the ripple inside its container from the start. - - <paper-ripple center></paper-ripple> - -Apply `circle` class to make the rippling effect within a circle. - - <paper-ripple class="circle"></paper-ripple> - -@group Paper Elements -@element paper-ripple -@hero hero.svg -@demo demo/index.html ---> - -<dom-module id="paper-ripple"> - - <!-- - Fired when the animation finishes. This is useful if you want to wait until the ripple - animation finishes to perform some action. - - @event transitionend - @param {Object} detail - @param {Object} detail.node The animated node - --> - - <template> - <style> - :host { - display: block; - position: absolute; - border-radius: inherit; - overflow: hidden; - top: 0; - left: 0; - right: 0; - bottom: 0; - - /* See PolymerElements/paper-behaviors/issues/34. On non-Chrome browsers, - * creating a node (with a position:absolute) in the middle of an event - * handler "interrupts" that event handler (which happens when the - * ripple is created on demand) */ - pointer-events: none; - } - - :host([animating]) { - /* This resolves a rendering issue in Chrome (as of 40) where the - ripple is not properly clipped by its parent (which may have - rounded corners). See: http://jsbin.com/temexa/4 - - Note: We only apply this style conditionally. Otherwise, the browser - will create a new compositing layer for every ripple element on the - page, and that would be bad. */ - -webkit-transform: translate(0, 0); - transform: translate3d(0, 0, 0); - } - - #background, - #waves, - .wave-container, - .wave { - pointer-events: none; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - } - - #background, - .wave { - opacity: 0; - } - - #waves, - .wave { - overflow: hidden; - } - - .wave-container, - .wave { - border-radius: 50%; - } - - :host(.circle) #background, - :host(.circle) #waves { - border-radius: 50%; - } - - :host(.circle) .wave-container { - overflow: hidden; - } - </style> - - <div id="background"></div> - <div id="waves"></div> - </template> -</dom-module> -<script> - (function() { - var Utility = { - distance: function(x1, y1, x2, y2) { - var xDelta = (x1 - x2); - var yDelta = (y1 - y2); - - return Math.sqrt(xDelta * xDelta + yDelta * yDelta); - }, - - now: window.performance && window.performance.now ? - window.performance.now.bind(window.performance) : Date.now - }; - - /** - * @param {HTMLElement} element - * @constructor - */ - function ElementMetrics(element) { - this.element = element; - this.width = this.boundingRect.width; - this.height = this.boundingRect.height; - - this.size = Math.max(this.width, this.height); - } - - ElementMetrics.prototype = { - get boundingRect () { - return this.element.getBoundingClientRect(); - }, - - furthestCornerDistanceFrom: function(x, y) { - var topLeft = Utility.distance(x, y, 0, 0); - var topRight = Utility.distance(x, y, this.width, 0); - var bottomLeft = Utility.distance(x, y, 0, this.height); - var bottomRight = Utility.distance(x, y, this.width, this.height); - - return Math.max(topLeft, topRight, bottomLeft, bottomRight); - } - }; - - /** - * @param {HTMLElement} element - * @constructor - */ - function Ripple(element) { - this.element = element; - this.color = window.getComputedStyle(element).color; - - this.wave = document.createElement('div'); - this.waveContainer = document.createElement('div'); - this.wave.style.backgroundColor = this.color; - this.wave.classList.add('wave'); - this.waveContainer.classList.add('wave-container'); - Polymer.dom(this.waveContainer).appendChild(this.wave); - - this.resetInteractionState(); - } - - Ripple.MAX_RADIUS = 300; - - Ripple.prototype = { - get recenters() { - return this.element.recenters; - }, - - get center() { - return this.element.center; - }, - - get mouseDownElapsed() { - var elapsed; - - if (!this.mouseDownStart) { - return 0; - } - - elapsed = Utility.now() - this.mouseDownStart; - - if (this.mouseUpStart) { - elapsed -= this.mouseUpElapsed; - } - - return elapsed; - }, - - get mouseUpElapsed() { - return this.mouseUpStart ? - Utility.now () - this.mouseUpStart : 0; - }, - - get mouseDownElapsedSeconds() { - return this.mouseDownElapsed / 1000; - }, - - get mouseUpElapsedSeconds() { - return this.mouseUpElapsed / 1000; - }, - - get mouseInteractionSeconds() { - return this.mouseDownElapsedSeconds + this.mouseUpElapsedSeconds; - }, - - get initialOpacity() { - return this.element.initialOpacity; - }, - - get opacityDecayVelocity() { - return this.element.opacityDecayVelocity; - }, - - get radius() { - var width2 = this.containerMetrics.width * this.containerMetrics.width; - var height2 = this.containerMetrics.height * this.containerMetrics.height; - var waveRadius = Math.min( - Math.sqrt(width2 + height2), - Ripple.MAX_RADIUS - ) * 1.1 + 5; - - var duration = 1.1 - 0.2 * (waveRadius / Ripple.MAX_RADIUS); - var timeNow = this.mouseInteractionSeconds / duration; - var size = waveRadius * (1 - Math.pow(80, -timeNow)); - - return Math.abs(size); - }, - - get opacity() { - if (!this.mouseUpStart) { - return this.initialOpacity; - } - - return Math.max( - 0, - this.initialOpacity - this.mouseUpElapsedSeconds * this.opacityDecayVelocity - ); - }, - - get outerOpacity() { - // Linear increase in background opacity, capped at the opacity - // of the wavefront (waveOpacity). - var outerOpacity = this.mouseUpElapsedSeconds * 0.3; - var waveOpacity = this.opacity; - - return Math.max( - 0, - Math.min(outerOpacity, waveOpacity) - ); - }, - - get isOpacityFullyDecayed() { - return this.opacity < 0.01 && - this.radius >= Math.min(this.maxRadius, Ripple.MAX_RADIUS); - }, - - get isRestingAtMaxRadius() { - return this.opacity >= this.initialOpacity && - this.radius >= Math.min(this.maxRadius, Ripple.MAX_RADIUS); - }, - - get isAnimationComplete() { - return this.mouseUpStart ? - this.isOpacityFullyDecayed : this.isRestingAtMaxRadius; - }, - - get translationFraction() { - return Math.min( - 1, - this.radius / this.containerMetrics.size * 2 / Math.sqrt(2) - ); - }, - - get xNow() { - if (this.xEnd) { - return this.xStart + this.translationFraction * (this.xEnd - this.xStart); - } - - return this.xStart; - }, - - get yNow() { - if (this.yEnd) { - return this.yStart + this.translationFraction * (this.yEnd - this.yStart); - } - - return this.yStart; - }, - - get isMouseDown() { - return this.mouseDownStart && !this.mouseUpStart; - }, - - resetInteractionState: function() { - this.maxRadius = 0; - this.mouseDownStart = 0; - this.mouseUpStart = 0; - - this.xStart = 0; - this.yStart = 0; - this.xEnd = 0; - this.yEnd = 0; - this.slideDistance = 0; - - this.containerMetrics = new ElementMetrics(this.element); - }, - - draw: function() { - var scale; - var translateString; - var dx; - var dy; - - this.wave.style.opacity = this.opacity; - - scale = this.radius / (this.containerMetrics.size / 2); - dx = this.xNow - (this.containerMetrics.width / 2); - dy = this.yNow - (this.containerMetrics.height / 2); - - - // 2d transform for safari because of border-radius and overflow:hidden clipping bug. - // https://bugs.webkit.org/show_bug.cgi?id=98538 - this.waveContainer.style.webkitTransform = 'translate(' + dx + 'px, ' + dy + 'px)'; - this.waveContainer.style.transform = 'translate3d(' + dx + 'px, ' + dy + 'px, 0)'; - this.wave.style.webkitTransform = 'scale(' + scale + ',' + scale + ')'; - this.wave.style.transform = 'scale3d(' + scale + ',' + scale + ',1)'; - }, - - /** @param {Event=} event */ - downAction: function(event) { - var xCenter = this.containerMetrics.width / 2; - var yCenter = this.containerMetrics.height / 2; - - this.resetInteractionState(); - this.mouseDownStart = Utility.now(); - - if (this.center) { - this.xStart = xCenter; - this.yStart = yCenter; - this.slideDistance = Utility.distance( - this.xStart, this.yStart, this.xEnd, this.yEnd - ); - } else { - this.xStart = event ? - event.detail.x - this.containerMetrics.boundingRect.left : - this.containerMetrics.width / 2; - this.yStart = event ? - event.detail.y - this.containerMetrics.boundingRect.top : - this.containerMetrics.height / 2; - } - - if (this.recenters) { - this.xEnd = xCenter; - this.yEnd = yCenter; - this.slideDistance = Utility.distance( - this.xStart, this.yStart, this.xEnd, this.yEnd - ); - } - - this.maxRadius = this.containerMetrics.furthestCornerDistanceFrom( - this.xStart, - this.yStart - ); - - this.waveContainer.style.top = - (this.containerMetrics.height - this.containerMetrics.size) / 2 + 'px'; - this.waveContainer.style.left = - (this.containerMetrics.width - this.containerMetrics.size) / 2 + 'px'; - - this.waveContainer.style.width = this.containerMetrics.size + 'px'; - this.waveContainer.style.height = this.containerMetrics.size + 'px'; - }, - - /** @param {Event=} event */ - upAction: function(event) { - if (!this.isMouseDown) { - return; - } - - this.mouseUpStart = Utility.now(); - }, - - remove: function() { - Polymer.dom(this.waveContainer.parentNode).removeChild( - this.waveContainer - ); - } - }; - - Polymer({ - is: 'paper-ripple', - - behaviors: [ - Polymer.IronA11yKeysBehavior - ], - - properties: { - /** - * The initial opacity set on the wave. - * - * @attribute initialOpacity - * @type number - * @default 0.25 - */ - initialOpacity: { - type: Number, - value: 0.25 - }, - - /** - * How fast (opacity per second) the wave fades out. - * - * @attribute opacityDecayVelocity - * @type number - * @default 0.8 - */ - opacityDecayVelocity: { - type: Number, - value: 0.8 - }, - - /** - * If true, ripples will exhibit a gravitational pull towards - * the center of their container as they fade away. - * - * @attribute recenters - * @type boolean - * @default false - */ - recenters: { - type: Boolean, - value: false - }, - - /** - * If true, ripples will center inside its container - * - * @attribute recenters - * @type boolean - * @default false - */ - center: { - type: Boolean, - value: false - }, - - /** - * A list of the visual ripples. - * - * @attribute ripples - * @type Array - * @default [] - */ - ripples: { - type: Array, - value: function() { - return []; - } - }, - - /** - * True when there are visible ripples animating within the - * element. - */ - animating: { - type: Boolean, - readOnly: true, - reflectToAttribute: true, - value: false - }, - - /** - * If true, the ripple will remain in the "down" state until `holdDown` - * is set to false again. - */ - holdDown: { - type: Boolean, - value: false, - observer: '_holdDownChanged' - }, - - /** - * If true, the ripple will not generate a ripple effect - * via pointer interaction. - * Calling ripple's imperative api like `simulatedRipple` will - * still generate the ripple effect. - */ - noink: { - type: Boolean, - value: false - }, - - _animating: { - type: Boolean - }, - - _boundAnimate: { - type: Function, - value: function() { - return this.animate.bind(this); - } - } - }, - - get target () { - var ownerRoot = Polymer.dom(this).getOwnerRoot(); - var target; - - if (this.parentNode.nodeType == 11) { // DOCUMENT_FRAGMENT_NODE - target = ownerRoot.host; - } else { - target = this.parentNode; - } - - return target; - }, - - keyBindings: { - 'enter:keydown': '_onEnterKeydown', - 'space:keydown': '_onSpaceKeydown', - 'space:keyup': '_onSpaceKeyup' - }, - - attached: function() { - // Set up a11yKeysBehavior to listen to key events on the target, - // so that space and enter activate the ripple even if the target doesn't - // handle key events. The key handlers deal with `noink` themselves. - this.keyEventTarget = this.target; - this.listen(this.target, 'up', 'uiUpAction'); - this.listen(this.target, 'down', 'uiDownAction'); - }, - - detached: function() { - this.unlisten(this.target, 'up', 'uiUpAction'); - this.unlisten(this.target, 'down', 'uiDownAction'); - }, - - get shouldKeepAnimating () { - for (var index = 0; index < this.ripples.length; ++index) { - if (!this.ripples[index].isAnimationComplete) { - return true; - } - } - - return false; - }, - - simulatedRipple: function() { - this.downAction(null); - - // Please see polymer/polymer#1305 - this.async(function() { - this.upAction(); - }, 1); - }, - - /** - * Provokes a ripple down effect via a UI event, - * respecting the `noink` property. - * @param {Event=} event - */ - uiDownAction: function(event) { - if (!this.noink) { - this.downAction(event); - } - }, - - /** - * Provokes a ripple down effect via a UI event, - * *not* respecting the `noink` property. - * @param {Event=} event - */ - downAction: function(event) { - if (this.holdDown && this.ripples.length > 0) { - return; - } - - var ripple = this.addRipple(); - - ripple.downAction(event); - - if (!this._animating) { - this.animate(); - } - }, - - /** - * Provokes a ripple up effect via a UI event, - * respecting the `noink` property. - * @param {Event=} event - */ - uiUpAction: function(event) { - if (!this.noink) { - this.upAction(event); - } - }, - - /** - * Provokes a ripple up effect via a UI event, - * *not* respecting the `noink` property. - * @param {Event=} event - */ - upAction: function(event) { - if (this.holdDown) { - return; - } - - this.ripples.forEach(function(ripple) { - ripple.upAction(event); - }); - - this.animate(); - }, - - onAnimationComplete: function() { - this._animating = false; - this.$.background.style.backgroundColor = null; - this.fire('transitionend'); - }, - - addRipple: function() { - var ripple = new Ripple(this); - - Polymer.dom(this.$.waves).appendChild(ripple.waveContainer); - this.$.background.style.backgroundColor = ripple.color; - this.ripples.push(ripple); - - this._setAnimating(true); - - return ripple; - }, - - removeRipple: function(ripple) { - var rippleIndex = this.ripples.indexOf(ripple); - - if (rippleIndex < 0) { - return; - } - - this.ripples.splice(rippleIndex, 1); - - ripple.remove(); - - if (!this.ripples.length) { - this._setAnimating(false); - } - }, - - animate: function() { - var index; - var ripple; - - this._animating = true; - - for (index = 0; index < this.ripples.length; ++index) { - ripple = this.ripples[index]; - - ripple.draw(); - - this.$.background.style.opacity = ripple.outerOpacity; - - if (ripple.isOpacityFullyDecayed && !ripple.isRestingAtMaxRadius) { - this.removeRipple(ripple); - } - } - - if (!this.shouldKeepAnimating && this.ripples.length === 0) { - this.onAnimationComplete(); - } else { - window.requestAnimationFrame(this._boundAnimate); - } - }, - - _onEnterKeydown: function() { - this.uiDownAction(); - this.async(this.uiUpAction, 1); - }, - - _onSpaceKeydown: function() { - this.uiDownAction(); - }, - - _onSpaceKeyup: function() { - this.uiUpAction(); - }, - - // note: holdDown does not respect noink since it can be a focus based - // effect. - _holdDownChanged: function(newVal, oldVal) { - if (oldVal === undefined) { - return; - } - if (newVal) { - this.downAction(); - } else { - this.upAction(); - } - } - }); - })(); -</script> diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000e b/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000e deleted file mode 100644 index e7bb11c06..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000e +++ /dev/null @@ -1,536 +0,0 @@ -<link rel="import" href="../../components/polymer/polymer.html"> -<link rel="import" href="../../components/paper-radio-group/paper-radio-group.html"> -<link rel="import" href="../../components/paper-radio-button/paper-radio-button.html"> -<link rel="import" href="../../components/paper-dropdown-menu/paper-dropdown-menu.html"> -<link rel="import" href="../../components/paper-button/paper-button.html"> -<link rel="import" href="../../components/paper-dialog/paper-dialog.html"> -<link rel="import" href="../../components/paper-checkbox/paper-checkbox.html"> -<link rel="import" href="../../components/iron-flex-layout/iron-flex-layout.html"> -<link rel="import" href="../../components/iron-fit-behavior/iron-fit-behavior.html"> -<link rel="import" href="../../components/paper-styles/paper-styles.html"> - -<dom-module id="ti-rov-table"> - <template> - <!-- include global rov styles --> - <style include="ti-rov-styles"></style> - <style is="custom-style"> - :host { - display:block; - } - paper-checkbox { - --paper-checkbox-unchecked-background-color: white; - --paper-checkbox-unchecked-color: white; - --paper-checkbox-unchecked-ink-color: white; - --paper-checkbox-checked-color: white; - --paper-checkbox-checked-ink-color: white; - --paper-checkbox-checkmark-color: black; - --paper-checkbox-label-color: white; - } - #messageLabel { - margin-left: 15px; - margin-right: 15px; - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - } - .rawNode { - display: table-cell; - padding: 3px 25px 0px 2px; - font-weight: normal; - cursor: pointer; - background-color: var(--rovTableBackgroundColor); - font-family: var(--rovTableFontFamily); - font-size: var(--rovContentFontSize); - } - .treeTableNode { - padding: 3px 50px 0px 2px; - font-weight: normal; - background-color: rgb(0, 0, 0); - color: #ffffff; - cursor: pointer; - } - .treeNodeIcon { - padding-right:8px; - } - .treeCell { - padding: 3px 50px 2px 7px; - } - .rawNodeIcon { - width: 18px; - height: 18px; - padding-right:8px; - } - .rawCell { - padding: 3px 50px 2px 7px; - } - .ttChildCell { - padding-left: 35px; - } - .childCell { - padding-left: 35px; - display: table-cell; - background-color: var(--rovTableBackgroundColor); - font-family: var(--rovTableFontFamily); - font-size: var(--rovContentFontSize); - } - .rovTableStyleCell { - background-color: var(--rovTableBackgroundColor); - font-family: var(--rovTableFontFamily); - font-size: var(--rovContentFontSize); - } - #columnsSelector { - font-family: var(--rovFontFamily); - font-size: var(--rovColumnsSelectorFontSize); - position: fixed; - @apply(--layout-vertical); - @apply(--layout-self-stretch); - background-color: var(--rovTitleToolbarBackground); - overflow-y: auto; - margin: 0; - } - .columnSelectCheckbox { - --paper-checkbox-size: 14px; - --paper-checkbox-unchecked-color: var(--rovTitleToolbarColor); - --paper-checkbox-unchecked-ink-color: transparent; - --paper-checkbox-checked-color: var(--rovTitleToolbarColor); - --paper-checkbox-checked-ink-color: transparent; - --paper-checkbox-checkmark-color: var(--rovTitleToolbarBackground); - --paper-checkbox-label-color: var(--rovTitleToolbarColor); - } - .columnSortIcon { - width: 16px; - height: 16px; - background-color: var(--rovTableHeaderBackground); - color: var(--rovTableHeaderColor); - float: right; - } - .cellList { - display: none; - margin-top: -18px; - margin-left: -4px; - padding: 0px; - border-width: 2px; - border-style: solid; - position: fixed; - list-style-type: none; - padding-bottom: 3px; - z-index: 9000; - background-color: var(--rovTableBackgroundColor); - } - .cellListItem { - margin-left: 2px; - margin-right: 5px; - margin-bottom: 3px; - background-color: var(--rovTableBackgroundColor); - font-family: var(--rovTableFontFamily); - font-size: var(--rovContentFontSize); - } - .cellDropIcon { - width: 16px; - height: 16px; - float: right; - color: lightslategray; - } - .columnSelectTd { - display: table-cell; - padding-left: 10px; - padding-top: 4px; - } - .columnSelectTh { - display: table-cell; - color: var(--rovTitleToolbarColor); - font-weight: normal; - text-align: center; - padding-top: 0px; - } - #columnConfigTable { - margin-top: 2px; - margin-bottom: 2px; - padding-left: 0px; - padding-right: 12px; - } - .instSelectIcon { - width: 24px; - height: 24px; - background-color: transparent; - color: black; - cursor: pointer; - } - #instSelectDiv { - margin-left: 14px; - margin-top: 0px; - margin-bottom: 5px; - white-space: nowrap; - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - } - #selectInstanceDialog { - position: fixed; - margin-top: 0px; - --paper-dialog-background-color: white; - --paper-dialog-color: black; - @apply(--layout-vertical); - @apply(--layout-self-stretch); - } - #selectInstanceMenu { - padding-left: 0px; - margin-top: 2px; - margin-bottom: 2px; - } - .selectInstanceMenuItem { - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - --paper-item-min-height: 24px; - cursor: pointer; - padding-left: 8px; - padding-right: 8px; - } - .rovTh { - display: table-cell; - border-right: 1px solid var(--rovTableBackgroundColor); - border-top: 1px solid var(--rovTableBackgroundColor); - border-bottom: 1px solid var(--rovTableBackgroundColor); - border-left: 1px solid var(--rovTableBackgroundColor); - padding: 2px 5px 3px 3px; - text-align: left; - background-color: var(--rovTableHeaderBackground); - color: var(--rovTableHeaderColor); - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - font-weight: normal; - } - .rovTbody { - display: table-row-group; - } - .rovTd { - display: table-cell; - text-align:left; - padding-left: 4px; - padding-right: 5px; - white-space: nowrap; - background-color: var(--rovTableBackgroundColor); - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - } - .treeNode { - display: table-cell; - padding: 3px 50px 0px 2px; - font-weight: normal; - cursor: pointer; - background-color: var(--rovTableBackgroundColor); - font-family: var(--rovTableFontFamily); - font-size: var(--rovContentFontSize); - } - .rovThead { - display: table-header-group; - } - .rovTr { - display:table-row; - } - .rovTdDropdownCell { - background-color: var(--rovTableBackgroundColor); - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - } - .rovTdDropdownCell:hover .cellList { - display: block; - } - .formatMenu { - margin-left: 0px; - margin-top: 0px; - --paper-menu-button: { - padding-top: 0px; - padding-bottom: 4px; - }; - --paper-input-container: { - padding-top: 0px; - padding-bottom: 0px; - }; - --paper-input-container-input: { - font-family: var(--rovFontFamily); - font-size: var(--rovColumnsSelectorFontSize); - color: var(--rovTitleToolbarColor); - }; - --paper-input-container-label: { - font-family: var(--rovFontFamily); - font-size: var(--rovColumnsSelectorFontSize); - color: var(--rovTitleToolbarColor); - }; - } - #formatListbox { - background-color: white; - padding-top: 4px; - padding-bottom: 2px; - } - .formatItem { - --paper-item-min-height: 20px; - height: 20px; - font-family: var(--rovFontFamily); - font-size: var(--rovColumnsSelectorFontSize); - color: black; - background-color: white; - } - #closeColumnsButton { - width: 18px; - height: 18px; - position: absolute; - right: 4px; - top: 4px; - padding: 0; - color: var(--rovTitleToolbarColor); - } - </style> - <span> - <paper-dialog id="columnsSelector" on-iron-overlay-closed="columnsSelectorClosed" on-keypress="columnsSelectorKeyPress"> - <div><paper-icon-button id="closeColumnsButton" title="Close" on-click="closeColumnsSelector" icon="close" role="button" tabindex="0"></paper-icon-button></div> - <div style="display:table" id="columnConfigTable"> - <div class="rovThead"> - <div class="columnSelectTh">Columns</div> - <template is="dom-if" if="{{hasFormats}}"> - <div class="columnSelectTh">Format</div> - </template> - </div> - <div class="rovTbody"> - <template is="dom-repeat" items="{{columnStates}}" as="col"> - <div class="rovTr"> - <div class="columnSelectTd"><paper-checkbox class="columnSelectCheckbox" id$="{{col.name}}" on-click="colsChanged" checked$="{{col.checked}}">{{col.name}}</paper-checkbox></div> - <template is="dom-if" if="{{hasFormats}}" restamp="true"> - <template is="dom-if" if="{{col.hasFormat}}"> - <div class="columnSelectTd"> - <paper-dropdown-menu class="formatMenu" label="{{col.format}}" no-label-float no-animations on-iron-select="colFormatChanged" disabled="{{!col.checked}}"> - <paper-listbox id="formatListbox" class="dropdown-content" selected="{{col.format}}"> - <paper-item class="formatItem">Decimal</paper-item> - <paper-item class="formatItem">Hex</paper-item> - <paper-item class="formatItem">Scientific</paper-item> - </paper-listbox> - </paper-dropdown-menu> - </div> - </template> - <template is="dom-if" if="{{!col.hasFormat}}" restamp="true"> - <div style="display:table-cell;"></div> - </template> - </template> - </div> - </template> - </div> - </div> - </paper-dialog> - <paper-dialog id="selectInstanceDialog" alwaysOnTop> - <paper-menu id="selectInstanceMenu" on-iron-select="instanceSelected" class="attachedMenu"> - <template is="dom-repeat" items="{{instanceDataTable.instNames}}" as="inst"> - <paper-item class="selectInstanceMenuItem" role="menuitem">{{inst}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - </span> - <template is="dom-if" if="{{showDataMessage}}"> - <div style="margin-top:20px;margin-bottom:20px;"><label id="messageLabel">{{dataMessage}}</label></div> - </template> - <div style="display:table" id="rovInstanceTable" hidden$="{{!isInstanceView}}"> - <div class="rovThead"> - <div class="rovTr"> - <template is="dom-repeat" items="{{instanceTable.displayColumns}}" as="colObj"> - <template is="dom-if" if="{{colObj.isSortCol}}" restamp="true"> - <div class="rovTh" draggable="{{colsDraggable}}" on-click="onColumnClick" on-dragstart="columnDragStart" on-dragover="columnDragOver" on-drop="columnDrop">{{colObj.name}}<iron-icon class="columnSortIcon" icon$="{{colObj.icon}}"></iron-icon></div> - </template> - <template is="dom-if" if="{{!colObj.isSortCol}}" restamp="true"> - <div class="rovTh" draggable="{{colsDraggable}}" on-click="onColumnClick" on-dragstart="columnDragStart" on-dragover="columnDragOver" on-drop="columnDrop">{{colObj.name}}</div> - </template> - </template> - </div> - </div> - <div class="rovTbody"> - <template id="rovInstanceTemplate" is="dom-repeat" items="{{instanceTable.rows}}" as="row"> - <div class="rovTr"> - <template is="dom-repeat" items="{{row}}" as="rowObj"> - <template is="dom-if" if="{{rowObj.isArray}}" restamp="true"> - <div class="rovTdDropdownCell" style$="{{rowObj.style}}" title$="{{rowObj.title}}" on-mouseover="cellDropMouseOver">{{rowObj.val}}<iron-icon class="cellDropIcon" icon="more-vert"></iron-icon> - <ul class="cellList"> - <template is="dom-repeat" items="{{rowObj.arrVals}}" as="arrVal"> - <li class="cellListItem">{{arrVal}}</li> - </template> - </ul> - </div> - </template> - <template is="dom-if" if="{{!rowObj.isArray}}" restamp="true"> - <div class="rovTd" style$="{{rowObj.style}}" title$="{{rowObj.title}}">{{rowObj.val}}</div> - </template> - </template> - </div> - </template> - </div> - </div> - <span hidden$="{{!isInstanceDataView}}"> - <template is="dom-if" if="{{instanceDataTable.showInstSelect}}" restamp="true"> - <div id="instSelectDiv">{{instanceDataTable.currentInst}}<iron-icon class="instSelectIcon" icon="arrow-drop-down" on-click="selectInstanceDialog"></iron-icon></div> - </template> - <div style="display:table" id="rovInstanceDataTable"> - <div class="rovThead"> - <div class="rovTr"> - <template is="dom-repeat" items="{{instanceDataTable.displayColumns}}" as="colObj"> - <template is="dom-if" if="{{colObj.isSortCol}}" restamp="true"> - <div class="rovTh" draggable="{{colsDraggable}}" on-click="onColumnClick" on-dragstart="columnDragStart" on-dragover="columnDragOver" on-drop="columnDrop">{{colObj.name}}<iron-icon class="columnSortIcon" icon$="{{colObj.icon}}"></iron-icon></div> - </template> - <template is="dom-if" if="{{!colObj.isSortCol}}" restamp="true"> - <div class="rovTh" draggable="{{colsDraggable}}" on-click="onColumnClick" on-dragstart="columnDragStart" on-dragover="columnDragOver" on-drop="columnDrop">{{colObj.name}}</div> - </template> - </template> - </div> - </div> - <div class="rovTbody"> - <template id="rovInstanceDataTemplate" is="dom-repeat" items="{{instanceDataTable.rows}}" as="rowItem"> - <template is="dom-if" if="{{rowItem.expanded}}" restamp="true"> - <template is="dom-repeat" items="{{rowItem.rowVals}}" as="rowVals"> - <div class="rovTr" style="padding-bottom:10px;"> - <template is="dom-repeat" items="{{rowVals}}" as="rowValObj"> - <template is="dom-if" if="{{rowValObj.isArray}}" restamp="true"> - <div class="rovTdDropdownCell" style$="{{rowValObj.style}}" title$="{{rowValObj.title}}" on-mouseover="cellDropMouseOver">{{rowValObj.val}}<iron-icon class="cellDropIcon" icon="more-vert"></iron-icon> - <ul class="cellList"> - <template is="dom-repeat" items="{{rowValObj.arrVals}}" as="arrVal"> - <li class="cellListItem">{{arrVal}}</li> - </template> - </ul> - </div> - </template> - <template is="dom-if" if="{{!rowValObj.isArray}}" restamp="true"> - <div class="rovTableStyleCell" style$="{{rowValObj.style}}" title$="{{rowValObj.title}}">{{rowValObj.val}}</div> - </template> - </template> - </div> - </template> - </template> - </template> - </div> - </div> - </span> - <div style="display:table" id="rovTreeTable" hidden$="{{!isTreeView}}"> - <div class="rovThead"> - <div class="rovTr"> - <template is="dom-repeat" items="{{treeTable.columns}}"> - <div class="rovTh">{{item}}</div> - </template> - </div> - </div> - <div style="display:table-row-group;"> - <template id="rovTreeTemplate" is="dom-repeat" items="{{treeTable}}" as="treeItem"> - <template is="dom-if" if="{{treeItem.expanded}}"> - <div class="rovTr"> - <div class="treeNode" style$="{{treeItem.style}}" id$="{{treeItem.parentNode}}" on-tap="treeNodeTapped"><iron-icon class="treeNodeIcon" icon="remove"></iron-icon>{{treeItem.parentNode}}</div> - <div class="rovTd"></div> - </div> - <template is="dom-repeat" items="{{treeItem.childRows}}" as="row"> - <div class="rovTr"> - <div class="childCell" style$="{{row.0.style}}">{{row.0.val}}</div> - <div class="rovTd" style$="{{row.1.style}}">{{row.1.val}}</div> - </div> - </template> - </template> - <template is="dom-if" if="{{!treeItem.expanded}}"> - <div class="rovTr"> - <div class="treeNode" style$="{{treeItem.style}}" id$="{{treeItem.parentNode}}" on-tap="treeNodeTapped"><iron-icon class="treeNodeIcon" icon="add"></iron-icon>{{treeItem.parentNode}}</div> - <div class="rovTd"></div> - </div> - </template> - </template> - </div> - </div> - <div style="display:table" id="rovTreeTableTable" hidden$="{{!isTreeTableView}}"> - <div class="rovThead"> - <div class="rovTr"> - <div class="rovTh"></div> - <template is="dom-repeat" items="{{treeTableTable.columns}}"> - <div class="rovTh" draggable="{{colsDraggable}}" on-dragstart="columnDragStart" on-dragover="columnDragOver" on-drop="columnDrop">{{item}}</div> - </template> - </div> - </div> - <div style="display:table-row-group;"> - <template id="rovTreeTableTemplate" is="dom-repeat" items="{{treeTableTable}}" as="ttItem"> - <template is="dom-if" if="{{ttItem.expanded}}" restamp="true"> - <div class="rovTr"> - <div class="rawNode" id$="{{ttItem.parentNode}}" on-tap="ttNodeTapped"><iron-icon class="rawNodeIcon" icon="remove"></iron-icon>{{ttItem.parentNode}}</div> - </div> - <template is="dom-repeat" items="{{ttItem.childRows}}" as="row"> - <template is="dom-if" if="{{row.hasIcon}}" restamp="true"> - <div class="rovTr"> - <div class="rovTableStyleCell" style$="{{row.style}}" id$="{{row.id}}" on-tap="chttNodeTapped"><iron-icon class="rawNodeIcon" icon$="{{row.icon}}"></iron-icon>{{row.name}}</div> - </div> - </template> - <template is="dom-if" if="{{!row.hasIcon}}" restamp="true"> - <template is="dom-if" if="{{row.atMax}}"> - <div class="rovTr"> - <div class="rovTableStyleCell" style$="{{row.style}}">{{row.name}}</div> - <div class="rovTd">Max depth</div> - </div> - </template> - <template is="dom-if" if="{{!row.atMax}}"> - <div class="rovTr"> - <div class="rovTableStyleCell" style$="{{row.style}}"></div> - <template is="dom-repeat" items="{{row.cells}}" as="cellObj"> - <template is="dom-if" if="{{cellObj.isArray}}" restamp="true"> - <div class="rovTdDropdownCell" style$="{{cellObj.style}}" title$="{{cellObj.title}}" on-mouseover="cellDropMouseOver">{{cellObj.val}}<iron-icon class="cellDropIcon" icon="more-vert"></iron-icon> - <ul class="cellList"> - <template is="dom-repeat" items="{{cellObj.arrVals}}" as="arrVal"> - <li class="cellListItem">{{arrVal}}</li> - </template> - </ul> - </div> - </template> - <template is="dom-if" if="{{!cellObj.isArray}}" restamp="true"> - <div class="rovTd" style$="{{cellObj.style}}" title$="{{cellObj.title}}">{{cellObj.val}}</div> - </template> - </template> - </div> - </template> - </template> - </template> - </template> - <template is="dom-if" if="{{!ttItem.expanded}}"> - <div class="rovTr"> - <div class="rawNode" id$="{{ttItem.parentNode}}" on-tap="ttNodeTapped"><iron-icon class="rawNodeIcon" icon="add"></iron-icon>{{ttItem.parentNode}}</div> - </div> - </template> - </template> - </div> - </div> - <div style="display:table" id="rovRawTable" hidden$="{{!isRawView}}"> - <div class="rovThead"> - <div class="rovTr"> - <template is="dom-repeat" items="{{rawTable.columns}}"> - <div class="rovTh">{{item}}</div> - </template> - </div> - </div> - <div style="display:table-row-group;"> - <template id="rovRawTemplate" is="dom-repeat" items="{{rawTable}}" as="rawItem"> - <template is="dom-if" if="{{rawItem.expanded}}" restamp="true"> - <div class="rovTr"> - <div class="rawNode" id$="{{rawItem.parentNode}}" style$="{{rawItem.style}}" on-tap="rawNodeTapped"><iron-icon class="rawNodeIcon" icon="remove"></iron-icon>{{rawItem.parentNode}}</div> - <div class="rovTd"></div> - </div> - <template is="dom-repeat" items="{{rawItem.childRows}}" as="row"> - <template is="dom-if" if="{{row.hasIcon}}"> - <div class="rovTr"> - <div class="rovTableStyleCell" style$="{{row.style}}" id$="{{row.id}}" on-tap="chRawNodeTapped"><iron-icon class="rawNodeIcon" icon$="{{row.icon}}"></iron-icon>{{row.property}}</div> - <div class="rovTd"></div> - </div> - </template> - <template is="dom-if" if="{{!row.hasIcon}}"> - <div class="rovTr"> - <div class="rovTableStyleCell" style$="{{row.style}}">{{row.property}}</div> - <div class="rovTableStyleCell" style$="{{row.valStyle}}" title$="{{row.valTitle}}">{{row.value}}</div> - </div> - </template> - </template> - </template> - <template is="dom-if" if="{{!rawItem.expanded}}"> - <div class="rovTr"> - <div class="rawNode" id$="{{rawItem.parentNode}}" style$="{{rawItem.style}}" on-tap="rawNodeTapped"><iron-icon class="rawNodeIcon" icon="add"></iron-icon>{{rawItem.parentNode}}</div> - <div class="rovTd"></div> - </div> - </template> - </template> - </div> - </div> - </template> - <script src="ti-rov-table.js"></script> -</dom-module> - diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000f b/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000f deleted file mode 100644 index 1a981f34a..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_00000f +++ /dev/null @@ -1,599 +0,0 @@ -<!-- -@license -Copyright (c) 2015 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt ---> - -<link rel="import" href="../polymer/polymer.html"> -<link rel="import" href="../iron-flex-layout/iron-flex-layout.html"> -<link rel="import" href="../paper-styles/color.html"> -<link rel="import" href="../paper-styles/default-theme.html"> -<link rel="import" href="../paper-styles/typography.html"> - -<!-- -`<paper-input-container>` is a container for a `<label>`, an `<input is="iron-input">` or -`<iron-autogrow-textarea>` and optional add-on elements such as an error message or character -counter, used to implement Material Design text fields. - -For example: - - <paper-input-container> - <label>Your name</label> - <input is="iron-input"> - </paper-input-container> - -### Listening for input changes - -By default, it listens for changes on the `bind-value` attribute on its children nodes and perform -tasks such as auto-validating and label styling when the `bind-value` changes. You can configure -the attribute it listens to with the `attr-for-value` attribute. - -### Using a custom input element - -You can use a custom input element in a `<paper-input-container>`, for example to implement a -compound input field like a social security number input. The custom input element should have the -`paper-input-input` class, have a `notify:true` value property and optionally implements -`Polymer.IronValidatableBehavior` if it is validatable. - - <paper-input-container attr-for-value="ssn-value"> - <label>Social security number</label> - <ssn-input class="paper-input-input"></ssn-input> - </paper-input-container> - -### Validation - -If the `auto-validate` attribute is set, the input container will validate the input and update -the container styling when the input value changes. - -### Add-ons - -Add-ons are child elements of a `<paper-input-container>` with the `add-on` attribute and -implements the `Polymer.PaperInputAddonBehavior` behavior. They are notified when the input value -or validity changes, and may implement functionality such as error messages or character counters. -They appear at the bottom of the input. - -### Prefixes and suffixes -These are child elements of a `<paper-input-container>` with the `prefix` -or `suffix` attribute, and are displayed inline with the input, before or after. - - <paper-input-container> - <div prefix>$</div> - <label>Total</label> - <input is="iron-input"> - <paper-icon-button suffix icon="clear"></paper-icon-button> - </paper-input-container> - -### Styling - -The following custom properties and mixins are available for styling: - -Custom property | Description | Default -----------------|-------------|---------- -`--paper-input-container-color` | Label and underline color when the input is not focused | `--secondary-text-color` -`--paper-input-container-focus-color` | Label and underline color when the input is focused | `--default-primary-color` -`--paper-input-container-invalid-color` | Label and underline color when the input is is invalid | `--google-red-500` -`--paper-input-container-input-color` | Input foreground color | `--primary-text-color` -`--paper-input-container` | Mixin applied to the container | `{}` -`--paper-input-container-disabled` | Mixin applied to the container when it's disabled | `{}` -`--paper-input-container-label` | Mixin applied to the label | `{}` -`--paper-input-container-label-focus` | Mixin applied to the label when the input is focused | `{}` -`--paper-input-container-label-floating` | Mixin applied to the label when floating | `{}` -`--paper-input-container-input` | Mixin applied to the input | `{}` -`--paper-input-container-underline` | Mixin applied to the underline | `{}` -`--paper-input-container-underline-focus` | Mixin applied to the underline when the input is focused | `{}` -`--paper-input-container-underline-disabled` | Mixin applied to the underline when the input is disabled | `{}` -`--paper-input-prefix` | Mixin applied to the input prefix | `{}` -`--paper-input-suffix` | Mixin applied to the input suffix | `{}` - -This element is `display:block` by default, but you can set the `inline` attribute to make it -`display:inline-block`. ---> - -<dom-module id="paper-input-container"> - <template> - <style> - :host { - display: block; - padding: 8px 0; - - @apply(--paper-input-container); - } - - :host[inline] { - display: inline-block; - } - - :host([disabled]) { - pointer-events: none; - opacity: 0.33; - - @apply(--paper-input-container-disabled); - } - - .floated-label-placeholder { - @apply(--paper-font-caption); - } - - .underline { - position: relative; - } - - .focused-line { - @apply(--layout-fit); - - background: var(--paper-input-container-focus-color, --default-primary-color); - height: 2px; - -webkit-transform-origin: center center; - transform-origin: center center; - -webkit-transform: scale3d(0,1,1); - transform: scale3d(0,1,1); - - @apply(--paper-input-container-underline-focus); - } - - .underline.is-highlighted .focused-line { - -webkit-transform: none; - transform: none; - -webkit-transition: -webkit-transform 0.25s; - transition: transform 0.25s; - - @apply(--paper-transition-easing); - } - - .underline.is-invalid .focused-line { - background: var(--paper-input-container-invalid-color, --google-red-500); - -webkit-transform: none; - transform: none; - -webkit-transition: -webkit-transform 0.25s; - transition: transform 0.25s; - - @apply(--paper-transition-easing); - } - - .unfocused-line { - @apply(--layout-fit); - - height: 1px; - background: var(--paper-input-container-color, --secondary-text-color); - - @apply(--paper-input-container-underline); - } - - :host([disabled]) .unfocused-line { - border-bottom: 1px dashed; - border-color: var(--paper-input-container-color, --secondary-text-color); - background: transparent; - - @apply(--paper-input-container-underline-disabled); - } - - .label-and-input-container { - @apply(--layout-flex); - @apply(--layout-relative); - } - - .input-content { - @apply(--layout-horizontal); - @apply(--layout-center); - - position: relative; - } - - .input-content ::content label, - .input-content ::content .paper-input-label { - position: absolute; - top: 0; - right: 0; - left: 0; - font: inherit; - color: var(--paper-input-container-color, --secondary-text-color); - - @apply(--paper-font-common-nowrap); - @apply(--paper-font-subhead); - @apply(--paper-input-container-label); - } - - .input-content.label-is-floating ::content label, - .input-content.label-is-floating ::content .paper-input-label { - -webkit-transform: translateY(-75%) scale(0.75); - transform: translateY(-75%) scale(0.75); - -webkit-transition: -webkit-transform 0.25s; - transition: transform 0.25s; - -webkit-transform-origin: left top; - transform-origin: left top; - - /* Since we scale to 75/100 of the size, we actually have 100/75 of the - original space now available */ - width: 133%; - - @apply(--paper-transition-easing); - @apply(--paper-input-container-label-floating); - } - - :host-context([dir="rtl"]) .input-content.label-is-floating ::content label, - :host-context([dir="rtl"]) .input-content.label-is-floating ::content .paper-input-label { - /* TODO(noms): Figure out why leaving the width at 133% before the animation - * actually makes - * it wider on the right side, not left side, as you would expect in RTL */ - width: 100%; - -webkit-transform-origin: right top; - transform-origin: right top; - } - - .input-content.label-is-highlighted ::content label, - .input-content.label-is-highlighted ::content .paper-input-label { - color: var(--paper-input-container-focus-color, --default-primary-color); - - @apply(--paper-input-container-label-focus); - } - - .input-content.is-invalid ::content label, - .input-content.is-invalid ::content .paper-input-label { - color: var(--paper-input-container-invalid-color, --google-red-500); - } - - .input-content.label-is-hidden ::content label, - .input-content.label-is-hidden ::content .paper-input-label { - visibility: hidden; - } - - .input-content ::content input, - .input-content ::content textarea, - .input-content ::content iron-autogrow-textarea, - .input-content ::content .paper-input-input { - position: relative; /* to make a stacking context */ - outline: none; - box-shadow: none; - padding: 0; - width: 100%; - background: transparent; - border: none; - color: var(--paper-input-container-input-color, --primary-text-color); - -webkit-appearance: none; - text-align: inherit; - - @apply(--paper-font-subhead); - @apply(--paper-input-container-input); - } - - ::content [prefix] { - @apply(--paper-font-subhead); - @apply(--paper-input-prefix); - } - - ::content [suffix] { - @apply(--paper-font-subhead); - @apply(--paper-input-suffix); - } - - /* Firefox sets a min-width on the input, which can cause layout issues */ - .input-content ::content input { - min-width: 0; - } - - .input-content ::content textarea { - resize: none; - } - - .add-on-content { - position: relative; - } - - .add-on-content.is-invalid ::content * { - color: var(--paper-input-container-invalid-color, --google-red-500); - } - - .add-on-content.is-highlighted ::content * { - color: var(--paper-input-container-focus-color, --default-primary-color); - } - </style> - - <template is="dom-if" if="[[!noLabelFloat]]"> - <div class="floated-label-placeholder"> </div> - </template> - - <div class$="[[_computeInputContentClass(noLabelFloat,alwaysFloatLabel,focused,invalid,_inputHasContent)]]"> - <content select="[prefix]" id="prefix"></content> - - <div class="label-and-input-container" id="labelAndInputContainer"> - <content select=":not([add-on]):not([prefix]):not([suffix])"></content> - </div> - - <content select="[suffix]"></content> - </div> - - <div class$="[[_computeUnderlineClass(focused,invalid)]]"> - <div class="unfocused-line"></div> - <div class="focused-line"></div> - </div> - - <div class$="[[_computeAddOnContentClass(focused,invalid)]]"> - <content id="addOnContent" select="[add-on]"></content> - </div> - </template> -</dom-module> - -<script> - Polymer({ - is: 'paper-input-container', - - properties: { - /** - * Set to true to disable the floating label. The label disappears when the input value is - * not null. - */ - noLabelFloat: { - type: Boolean, - value: false - }, - - /** - * Set to true to always float the floating label. - */ - alwaysFloatLabel: { - type: Boolean, - value: false - }, - - /** - * The attribute to listen for value changes on. - */ - attrForValue: { - type: String, - value: 'bind-value' - }, - - /** - * Set to true to auto-validate the input value when it changes. - */ - autoValidate: { - type: Boolean, - value: false - }, - - /** - * True if the input is invalid. This property is set automatically when the input value - * changes if auto-validating, or when the `iron-input-validate` event is heard from a child. - */ - invalid: { - observer: '_invalidChanged', - type: Boolean, - value: false - }, - - /** - * True if the input has focus. - */ - focused: { - readOnly: true, - type: Boolean, - value: false, - notify: true - }, - - _addons: { - type: Array - // do not set a default value here intentionally - it will be initialized lazily when a - // distributed child is attached, which may occur before configuration for this element - // in polyfill. - }, - - _inputHasContent: { - type: Boolean, - value: false - }, - - _inputSelector: { - type: String, - value: 'input,textarea,.paper-input-input' - }, - - _boundOnFocus: { - type: Function, - value: function() { - return this._onFocus.bind(this); - } - }, - - _boundOnBlur: { - type: Function, - value: function() { - return this._onBlur.bind(this); - } - }, - - _boundOnInput: { - type: Function, - value: function() { - return this._onInput.bind(this); - } - }, - - _boundValueChanged: { - type: Function, - value: function() { - return this._onValueChanged.bind(this); - } - } - }, - - listeners: { - 'addon-attached': '_onAddonAttached', - 'iron-input-validate': '_onIronInputValidate' - }, - - get _valueChangedEvent() { - return this.attrForValue + '-changed'; - }, - - get _propertyForValue() { - return Polymer.CaseMap.dashToCamelCase(this.attrForValue); - }, - - get _inputElement() { - return Polymer.dom(this).querySelector(this._inputSelector); - }, - - get _inputElementValue() { - return this._inputElement[this._propertyForValue] || this._inputElement.value; - }, - - ready: function() { - if (!this._addons) { - this._addons = []; - } - this.addEventListener('focus', this._boundOnFocus, true); - this.addEventListener('blur', this._boundOnBlur, true); - if (this.attrForValue) { - this._inputElement.addEventListener(this._valueChangedEvent, this._boundValueChanged); - } else { - this.addEventListener('input', this._onInput); - } - }, - - attached: function() { - // Only validate when attached if the input already has a value. - if (this._inputElementValue != '') { - this._handleValueAndAutoValidate(this._inputElement); - } else { - this._handleValue(this._inputElement); - } - }, - - _onAddonAttached: function(event) { - if (!this._addons) { - this._addons = []; - } - var target = event.target; - if (this._addons.indexOf(target) === -1) { - this._addons.push(target); - if (this.isAttached) { - this._handleValue(this._inputElement); - } - } - }, - - _onFocus: function() { - this._setFocused(true); - }, - - _onBlur: function() { - this._setFocused(false); - this._handleValueAndAutoValidate(this._inputElement); - }, - - _onInput: function(event) { - this._handleValueAndAutoValidate(event.target); - }, - - _onValueChanged: function(event) { - this._handleValueAndAutoValidate(event.target); - }, - - _handleValue: function(inputElement) { - var value = this._inputElementValue; - - // type="number" hack needed because this.value is empty until it's valid - if (value || value === 0 || (inputElement.type === 'number' && !inputElement.checkValidity())) { - this._inputHasContent = true; - } else { - this._inputHasContent = false; - } - - this.updateAddons({ - inputElement: inputElement, - value: value, - invalid: this.invalid - }); - }, - - _handleValueAndAutoValidate: function(inputElement) { - if (this.autoValidate) { - var valid; - if (inputElement.validate) { - valid = inputElement.validate(this._inputElementValue); - } else { - valid = inputElement.checkValidity(); - } - this.invalid = !valid; - } - - // Call this last to notify the add-ons. - this._handleValue(inputElement); - }, - - _onIronInputValidate: function(event) { - this.invalid = this._inputElement.invalid; - }, - - _invalidChanged: function() { - if (this._addons) { - this.updateAddons({invalid: this.invalid}); - } - }, - - /** - * Call this to update the state of add-ons. - * @param {Object} state Add-on state. - */ - updateAddons: function(state) { - for (var addon, index = 0; addon = this._addons[index]; index++) { - addon.update(state); - } - }, - - _computeInputContentClass: function(noLabelFloat, alwaysFloatLabel, focused, invalid, _inputHasContent) { - var cls = 'input-content'; - if (!noLabelFloat) { - var label = this.querySelector('label'); - - if (alwaysFloatLabel || _inputHasContent) { - cls += ' label-is-floating'; - // If the label is floating, ignore any offsets that may have been - // applied from a prefix element. - this.$.labelAndInputContainer.style.position = 'static'; - - if (invalid) { - cls += ' is-invalid'; - } else if (focused) { - cls += " label-is-highlighted"; - } - } else { - // When the label is not floating, it should overlap the input element. - if (label) { - this.$.labelAndInputContainer.style.position = 'relative'; - } - } - } else { - if (_inputHasContent) { - cls += ' label-is-hidden'; - } - } - return cls; - }, - - _computeUnderlineClass: function(focused, invalid) { - var cls = 'underline'; - if (invalid) { - cls += ' is-invalid'; - } else if (focused) { - cls += ' is-highlighted' - } - return cls; - }, - - _computeAddOnContentClass: function(focused, invalid) { - var cls = 'add-on-content'; - if (invalid) { - cls += ' is-invalid'; - } else if (focused) { - cls += ' is-highlighted' - } - return cls; - } - }); -</script> diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000011 b/Software/Embedded_SW/.jxbrowser-data/Cache/f_000011 deleted file mode 100644 index dd6614b23..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000011 +++ /dev/null @@ -1,677 +0,0 @@ -<!-- -@license -Copyright (c) 2014 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt ---> - - - -<script>(function () { -function resolve() { -document.body.removeAttribute('unresolved'); -} -if (window.WebComponents) { -addEventListener('WebComponentsReady', resolve); -} else { -if (document.readyState === 'interactive' || document.readyState === 'complete') { -resolve(); -} else { -addEventListener('DOMContentLoaded', resolve); -} -} -}()); -window.Polymer = { -Settings: function () { -var user = window.Polymer || {}; -var parts = location.search.slice(1).split('&'); -for (var i = 0, o; i < parts.length && (o = parts[i]); i++) { -o = o.split('='); -o[0] && (user[o[0]] = o[1] || true); -} -var wantShadow = user.dom === 'shadow'; -var hasShadow = Boolean(Element.prototype.createShadowRoot); -var nativeShadow = hasShadow && !window.ShadowDOMPolyfill; -var useShadow = wantShadow && hasShadow; -var hasNativeImports = Boolean('import' in document.createElement('link')); -var useNativeImports = hasNativeImports; -var useNativeCustomElements = !window.CustomElements || window.CustomElements.useNative; -return { -wantShadow: wantShadow, -hasShadow: hasShadow, -nativeShadow: nativeShadow, -useShadow: useShadow, -useNativeShadow: useShadow && nativeShadow, -useNativeImports: useNativeImports, -useNativeCustomElements: useNativeCustomElements -}; -}() -}; -(function () { -var userPolymer = window.Polymer; -window.Polymer = function (prototype) { -if (typeof prototype === 'function') { -prototype = prototype.prototype; -} -if (!prototype) { -prototype = {}; -} -var factory = desugar(prototype); -prototype = factory.prototype; -var options = { prototype: prototype }; -if (prototype.extends) { -options.extends = prototype.extends; -} -Polymer.telemetry._registrate(prototype); -document.registerElement(prototype.is, options); -return factory; -}; -var desugar = function (prototype) { -var base = Polymer.Base; -if (prototype.extends) { -base = Polymer.Base._getExtendedPrototype(prototype.extends); -} -prototype = Polymer.Base.chainObject(prototype, base); -prototype.registerCallback(); -return prototype.constructor; -}; -window.Polymer = Polymer; -if (userPolymer) { -for (var i in userPolymer) { -Polymer[i] = userPolymer[i]; -} -} -Polymer.Class = desugar; -}()); -Polymer.telemetry = { -registrations: [], -_regLog: function (prototype) { -console.log('[' + prototype.is + ']: registered'); -}, -_registrate: function (prototype) { -this.registrations.push(prototype); -Polymer.log && this._regLog(prototype); -}, -dumpRegistrations: function () { -this.registrations.forEach(this._regLog); -} -}; -Object.defineProperty(window, 'currentImport', { -enumerable: true, -configurable: true, -get: function () { -return (document._currentScript || document.currentScript).ownerDocument; -} -}); -Polymer.RenderStatus = { -_ready: false, -_callbacks: [], -whenReady: function (cb) { -if (this._ready) { -cb(); -} else { -this._callbacks.push(cb); -} -}, -_makeReady: function () { -this._ready = true; -for (var i = 0; i < this._callbacks.length; i++) { -this._callbacks[i](); -} -this._callbacks = []; -}, -_catchFirstRender: function () { -requestAnimationFrame(function () { -Polymer.RenderStatus._makeReady(); -}); -}, -_afterNextRenderQueue: [], -_waitingNextRender: false, -afterNextRender: function (element, fn, args) { -this._watchNextRender(); -this._afterNextRenderQueue.push([ -element, -fn, -args -]); -}, -_watchNextRender: function () { -if (!this._waitingNextRender) { -this._waitingNextRender = true; -var fn = function () { -Polymer.RenderStatus._flushNextRender(); -}; -if (!this._ready) { -this.whenReady(fn); -} else { -requestAnimationFrame(fn); -} -} -}, -_flushNextRender: function () { -var self = this; -setTimeout(function () { -self._flushRenderCallbacks(self._afterNextRenderQueue); -self._afterNextRenderQueue = []; -self._waitingNextRender = false; -}); -}, -_flushRenderCallbacks: function (callbacks) { -for (var i = 0, h; i < callbacks.length; i++) { -h = callbacks[i]; -h[1].apply(h[0], h[2] || Polymer.nar); -} -; -} -}; -if (window.HTMLImports) { -HTMLImports.whenReady(function () { -Polymer.RenderStatus._catchFirstRender(); -}); -} else { -Polymer.RenderStatus._catchFirstRender(); -} -Polymer.ImportStatus = Polymer.RenderStatus; -Polymer.ImportStatus.whenLoaded = Polymer.ImportStatus.whenReady; -Polymer.Base = { -__isPolymerInstance__: true, -_addFeature: function (feature) { -this.extend(this, feature); -}, -registerCallback: function () { -this._desugarBehaviors(); -this._doBehavior('beforeRegister'); -this._registerFeatures(); -this._doBehavior('registered'); -}, -createdCallback: function () { -Polymer.telemetry.instanceCount++; -this.root = this; -this._doBehavior('created'); -this._initFeatures(); -}, -attachedCallback: function () { -var self = this; -Polymer.RenderStatus.whenReady(function () { -self.isAttached = true; -self._doBehavior('attached'); -}); -}, -detachedCallback: function () { -this.isAttached = false; -this._doBehavior('detached'); -}, -attributeChangedCallback: function (name, oldValue, newValue) { -this._attributeChangedImpl(name); -this._doBehavior('attributeChanged', [ -name, -oldValue, -newValue -]); -}, -_attributeChangedImpl: function (name) { -this._setAttributeToProperty(this, name); -}, -extend: function (prototype, api) { -if (prototype && api) { -var n$ = Object.getOwnPropertyNames(api); -for (var i = 0, n; i < n$.length && (n = n$[i]); i++) { -this.copyOwnProperty(n, api, prototype); -} -} -return prototype || api; -}, -mixin: function (target, source) { -for (var i in source) { -target[i] = source[i]; -} -return target; -}, -copyOwnProperty: function (name, source, target) { -var pd = Object.getOwnPropertyDescriptor(source, name); -if (pd) { -Object.defineProperty(target, name, pd); -} -}, -_log: console.log.apply.bind(console.log, console), -_warn: console.warn.apply.bind(console.warn, console), -_error: console.error.apply.bind(console.error, console), -_logf: function () { -return this._logPrefix.concat([this.is]).concat(Array.prototype.slice.call(arguments, 0)); -} -}; -Polymer.Base._logPrefix = function () { -var color = window.chrome || /firefox/i.test(navigator.userAgent); -return color ? [ -'%c[%s::%s]:', -'font-weight: bold; background-color:#EEEE00;' -] : ['[%s::%s]:']; -}(); -Polymer.Base.chainObject = function (object, inherited) { -if (object && inherited && object !== inherited) { -if (!Object.__proto__) { -object = Polymer.Base.extend(Object.create(inherited), object); -} -object.__proto__ = inherited; -} -return object; -}; -Polymer.Base = Polymer.Base.chainObject(Polymer.Base, HTMLElement.prototype); -if (window.CustomElements) { -Polymer.instanceof = CustomElements.instanceof; -} else { -Polymer.instanceof = function (obj, ctor) { -return obj instanceof ctor; -}; -} -Polymer.isInstance = function (obj) { -return Boolean(obj && obj.__isPolymerInstance__); -}; -Polymer.telemetry.instanceCount = 0; -(function () { -var modules = {}; -var lcModules = {}; -var findModule = function (id) { -return modules[id] || lcModules[id.toLowerCase()]; -}; -var DomModule = function () { -return document.createElement('dom-module'); -}; -DomModule.prototype = Object.create(HTMLElement.prototype); -Polymer.Base.extend(DomModule.prototype, { -constructor: DomModule, -createdCallback: function () { -this.register(); -}, -register: function (id) { -var id = id || this.id || this.getAttribute('name') || this.getAttribute('is'); -if (id) { -this.id = id; -modules[id] = this; -lcModules[id.toLowerCase()] = this; -} -}, -import: function (id, selector) { -if (id) { -var m = findModule(id); -if (!m) { -forceDomModulesUpgrade(); -m = findModule(id); -} -if (m && selector) { -m = m.querySelector(selector); -} -return m; -} -} -}); -var cePolyfill = window.CustomElements && !CustomElements.useNative; -document.registerElement('dom-module', DomModule); -function forceDomModulesUpgrade() { -if (cePolyfill) { -var script = document._currentScript || document.currentScript; -var doc = script && script.ownerDocument || document; -var modules = doc.querySelectorAll('dom-module'); -for (var i = modules.length - 1, m; i >= 0 && (m = modules[i]); i--) { -if (m.__upgraded__) { -return; -} else { -CustomElements.upgrade(m); -} -} -} -} -}()); -Polymer.Base._addFeature({ -_prepIs: function () { -if (!this.is) { -var module = (document._currentScript || document.currentScript).parentNode; -if (module.localName === 'dom-module') { -var id = module.id || module.getAttribute('name') || module.getAttribute('is'); -this.is = id; -} -} -if (this.is) { -this.is = this.is.toLowerCase(); -} -} -}); -Polymer.Base._addFeature({ -behaviors: [], -_desugarBehaviors: function () { -if (this.behaviors.length) { -this.behaviors = this._desugarSomeBehaviors(this.behaviors); -} -}, -_desugarSomeBehaviors: function (behaviors) { -behaviors = this._flattenBehaviorsList(behaviors); -for (var i = behaviors.length - 1; i >= 0; i--) { -this._mixinBehavior(behaviors[i]); -} -return behaviors; -}, -_flattenBehaviorsList: function (behaviors) { -var flat = []; -for (var i = 0; i < behaviors.length; i++) { -var b = behaviors[i]; -if (b instanceof Array) { -flat = flat.concat(this._flattenBehaviorsList(b)); -} else if (b) { -flat.push(b); -} else { -this._warn(this._logf('_flattenBehaviorsList', 'behavior is null, check for missing or 404 import')); -} -} -return flat; -}, -_mixinBehavior: function (b) { -var n$ = Object.getOwnPropertyNames(b); -for (var i = 0, n; i < n$.length && (n = n$[i]); i++) { -if (!Polymer.Base._behaviorProperties[n] && !this.hasOwnProperty(n)) { -this.copyOwnProperty(n, b, this); -} -} -}, -_prepBehaviors: function () { -this._prepFlattenedBehaviors(this.behaviors); -}, -_prepFlattenedBehaviors: function (behaviors) { -for (var i = 0, l = behaviors.length; i < l; i++) { -this._prepBehavior(behaviors[i]); -} -this._prepBehavior(this); -}, -_doBehavior: function (name, args) { -for (var i = 0; i < this.behaviors.length; i++) { -this._invokeBehavior(this.behaviors[i], name, args); -} -this._invokeBehavior(this, name, args); -}, -_invokeBehavior: function (b, name, args) { -var fn = b[name]; -if (fn) { -fn.apply(this, args || Polymer.nar); -} -}, -_marshalBehaviors: function () { -for (var i = 0; i < this.behaviors.length; i++) { -this._marshalBehavior(this.behaviors[i]); -} -this._marshalBehavior(this); -} -}); -Polymer.Base._behaviorProperties = { -hostAttributes: true, -beforeRegister: true, -registered: true, -properties: true, -observers: true, -listeners: true, -created: true, -attached: true, -detached: true, -attributeChanged: true, -ready: true -}; -Polymer.Base._addFeature({ -_getExtendedPrototype: function (tag) { -return this._getExtendedNativePrototype(tag); -}, -_nativePrototypes: {}, -_getExtendedNativePrototype: function (tag) { -var p = this._nativePrototypes[tag]; -if (!p) { -var np = this.getNativePrototype(tag); -p = this.extend(Object.create(np), Polymer.Base); -this._nativePrototypes[tag] = p; -} -return p; -}, -getNativePrototype: function (tag) { -return Object.getPrototypeOf(document.createElement(tag)); -} -}); -Polymer.Base._addFeature({ -_prepConstructor: function () { -this._factoryArgs = this.extends ? [ -this.extends, -this.is -] : [this.is]; -var ctor = function () { -return this._factory(arguments); -}; -if (this.hasOwnProperty('extends')) { -ctor.extends = this.extends; -} -Object.defineProperty(this, 'constructor', { -value: ctor, -writable: true, -configurable: true -}); -ctor.prototype = this; -}, -_factory: function (args) { -var elt = document.createElement.apply(document, this._factoryArgs); -if (this.factoryImpl) { -this.factoryImpl.apply(elt, args); -} -return elt; -} -}); -Polymer.nob = Object.create(null); -Polymer.Base._addFeature({ -properties: {}, -getPropertyInfo: function (property) { -var info = this._getPropertyInfo(property, this.properties); -if (!info) { -for (var i = 0; i < this.behaviors.length; i++) { -info = this._getPropertyInfo(property, this.behaviors[i].properties); -if (info) { -return info; -} -} -; -} -return info || Polymer.nob; -}, -_getPropertyInfo: function (property, properties) { -var p = properties && properties[property]; -if (typeof p === 'function') { -p = properties[property] = { type: p }; -} -if (p) { -p.defined = true; -} -return p; -}, -_prepPropertyInfo: function () { -this._propertyInfo = {}; -for (var i = 0, p; i < this.behaviors.length; i++) { -this._addPropertyInfo(this._propertyInfo, this.behaviors[i].properties); -} -this._addPropertyInfo(this._propertyInfo, this.properties); -this._addPropertyInfo(this._propertyInfo, this._propertyEffects); -}, -_addPropertyInfo: function (target, source) { -if (source) { -var t, s; -for (var i in source) { -t = target[i]; -s = source[i]; -if (i[0] === '_' && !s.readOnly) { -continue; -} -if (!target[i]) { -target[i] = { -type: typeof s === 'function' ? s : s.type, -readOnly: s.readOnly, -attribute: Polymer.CaseMap.camelToDashCase(i) -}; -} else { -if (!t.type) { -t.type = s.type; -} -if (!t.readOnly) { -t.readOnly = s.readOnly; -} -} -} -} -} -}); -Polymer.CaseMap = { -_caseMap: {}, -dashToCamelCase: function (dash) { -var mapped = Polymer.CaseMap._caseMap[dash]; -if (mapped) { -return mapped; -} -if (dash.indexOf('-') < 0) { -return Polymer.CaseMap._caseMap[dash] = dash; -} -return Polymer.CaseMap._caseMap[dash] = dash.replace(/-([a-z])/g, function (m) { -return m[1].toUpperCase(); -}); -}, -camelToDashCase: function (camel) { -var mapped = Polymer.CaseMap._caseMap[camel]; -if (mapped) { -return mapped; -} -return Polymer.CaseMap._caseMap[camel] = camel.replace(/([a-z][A-Z])/g, function (g) { -return g[0] + '-' + g[1].toLowerCase(); -}); -} -}; -Polymer.Base._addFeature({ -_addHostAttributes: function (attributes) { -if (!this._aggregatedAttributes) { -this._aggregatedAttributes = {}; -} -if (attributes) { -this.mixin(this._aggregatedAttributes, attributes); -} -}, -_marshalHostAttributes: function () { -if (this._aggregatedAttributes) { -this._applyAttributes(this, this._aggregatedAttributes); -} -}, -_applyAttributes: function (node, attr$) { -for (var n in attr$) { -if (!this.hasAttribute(n) && n !== 'class') { -var v = attr$[n]; -this.serializeValueToAttribute(v, n, this); -} -} -}, -_marshalAttributes: function () { -this._takeAttributesToModel(this); -}, -_takeAttributesToModel: function (model) { -if (this.hasAttributes()) { -for (var i in this._propertyInfo) { -var info = this._propertyInfo[i]; -if (this.hasAttribute(info.attribute)) { -this._setAttributeToProperty(model, info.attribute, i, info); -} -} -} -}, -_setAttributeToProperty: function (model, attribute, property, info) { -if (!this._serializing) { -var property = property || Polymer.CaseMap.dashToCamelCase(attribute); -info = info || this._propertyInfo && this._propertyInfo[property]; -if (info && !info.readOnly) { -var v = this.getAttribute(attribute); -model[property] = this.deserialize(v, info.type); -} -} -}, -_serializing: false, -reflectPropertyToAttribute: function (property, attribute, value) { -this._serializing = true; -value = value === undefined ? this[property] : value; -this.serializeValueToAttribute(value, attribute || Polymer.CaseMap.camelToDashCase(property)); -this._serializing = false; -}, -serializeValueToAttribute: function (value, attribute, node) { -var str = this.serialize(value); -node = node || this; -if (str === undefined) { -node.removeAttribute(attribute); -} else { -node.setAttribute(attribute, str); -} -}, -deserialize: function (value, type) { -switch (type) { -case Number: -value = Number(value); -break; -case Boolean: -value = value !== null; -break; -case Object: -try { -value = JSON.parse(value); -} catch (x) { -} -break; -case Array: -try { -value = JSON.parse(value); -} catch (x) { -value = null; -console.warn('Polymer::Attributes: couldn`t decode Array as JSON'); -} -break; -case Date: -value = new Date(value); -break; -case String: -default: -break; -} -return value; -}, -serialize: function (value) { -switch (typeof value) { -case 'boolean': -return value ? '' : undefined; -case 'object': -if (value instanceof Date) { -return value; -} else if (value) { -try { -return JSON.stringify(value); -} catch (x) { -return ''; -} -} -default: -return value != null ? value : undefined; -} -} -}); -Polymer.version = '1.2.4'; -Polymer.Base._addFeature({ -_registerFeatures: function () { -this._prepIs(); -this._prepBehaviors(); -this._prepConstructor(); -this._prepPropertyInfo(); -}, -_prepBehavior: function (b) { -this._addHostAttributes(b.hostAttributes); -}, -_marshalBehavior: function (b) { -}, -_initFeatures: function () { -this._marshalHostAttributes(); -this._marshalBehaviors(); -} -});</script>
\ No newline at end of file diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000014 b/Software/Embedded_SW/.jxbrowser-data/Cache/f_000014 deleted file mode 100644 index d9405fdcf..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000014 +++ /dev/null @@ -1,1986 +0,0 @@ -// vim:ts=4:sts=4:sw=4: -/*! - * - * Copyright 2009-2012 Kris Kowal under the terms of the MIT - * license found at http://github.com/kriskowal/q/raw/master/LICENSE - * - * With parts by Tyler Close - * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found - * at http://www.opensource.org/licenses/mit-license.html - * Forked at ref_send.js version: 2009-05-11 - * - * With parts by Mark Miller - * Copyright (C) 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -(function (definition) { - "use strict"; - - // This file will function properly as a <script> tag, or a module - // using CommonJS and NodeJS or RequireJS module formats. In - // Common/Node/RequireJS, the module exports the Q API and when - // executed as a simple <script>, it creates a Q global instead. - - // Montage Require - if (typeof bootstrap === "function") { - bootstrap("promise", definition); - - // CommonJS - } else if (typeof exports === "object" && typeof module === "object") { - module.exports = definition(); - - // RequireJS - } else if (typeof define === "function" && define.amd) { - define(definition); - - // SES (Secure EcmaScript) - } else if (typeof ses !== "undefined") { - if (!ses.ok()) { - return; - } else { - ses.makeQ = definition; - } - - // <script> - } else if (typeof self !== "undefined") { - self.Q = definition(); - - } else { - throw new Error("This environment was not anticipated by Q. Please file a bug."); - } - -})(function () { -"use strict"; - -var hasStacks = false; -try { - throw new Error(); -} catch (e) { - hasStacks = !!e.stack; -} - -// All code after this point will be filtered from stack traces reported -// by Q. -var qStartingLine = captureLine(); -var qFileName; - -// shims - -// used for fallback in "allResolved" -var noop = function () {}; - -// Use the fastest possible means to execute a task in a future turn -// of the event loop. -var nextTick =(function () { - // linked list of tasks (single, with head node) - var head = {task: void 0, next: null}; - var tail = head; - var flushing = false; - var requestTick = void 0; - var isNodeJS = false; - - function flush() { - /* jshint loopfunc: true */ - - while (head.next) { - head = head.next; - var task = head.task; - head.task = void 0; - var domain = head.domain; - - if (domain) { - head.domain = void 0; - domain.enter(); - } - - try { - task(); - - } catch (e) { - if (isNodeJS) { - // In node, uncaught exceptions are considered fatal errors. - // Re-throw them synchronously to interrupt flushing! - - // Ensure continuation if the uncaught exception is suppressed - // listening "uncaughtException" events (as domains does). - // Continue in next event to avoid tick recursion. - if (domain) { - domain.exit(); - } - setTimeout(flush, 0); - if (domain) { - domain.enter(); - } - - throw e; - - } else { - // In browsers, uncaught exceptions are not fatal. - // Re-throw them asynchronously to avoid slow-downs. - setTimeout(function() { - throw e; - }, 0); - } - } - - if (domain) { - domain.exit(); - } - } - - flushing = false; - } - - nextTick = function (task) { - tail = tail.next = { - task: task, - domain: isNodeJS && process.domain, - next: null - }; - - if (!flushing) { - flushing = true; - requestTick(); - } - }; - - if (typeof process !== "undefined" && process.nextTick) { - // Node.js before 0.9. Note that some fake-Node environments, like the - // Mocha test runner, introduce a `process` global without a `nextTick`. - isNodeJS = true; - - requestTick = function () { - process.nextTick(flush); - }; - - } else if (typeof setImmediate === "function") { - // In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate - if (typeof window !== "undefined") { - requestTick = setImmediate.bind(window, flush); - } else { - requestTick = function () { - setImmediate(flush); - }; - } - - } else if (typeof MessageChannel !== "undefined") { - // modern browsers - // http://www.nonblocking.io/2011/06/windownexttick.html - var channel = new MessageChannel(); - // At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create - // working message ports the first time a page loads. - channel.port1.onmessage = function () { - requestTick = requestPortTick; - channel.port1.onmessage = flush; - flush(); - }; - var requestPortTick = function () { - // Opera requires us to provide a message payload, regardless of - // whether we use it. - channel.port2.postMessage(0); - }; - requestTick = function () { - setTimeout(flush, 0); - requestPortTick(); - }; - - } else { - // old browsers - requestTick = function () { - setTimeout(flush, 0); - }; - } - - return nextTick; -})(); - -// Attempt to make generics safe in the face of downstream -// modifications. -// There is no situation where this is necessary. -// If you need a security guarantee, these primordials need to be -// deeply frozen anyway, and if you don’t need a security guarantee, -// this is just plain paranoid. -// However, this **might** have the nice side-effect of reducing the size of -// the minified code by reducing x.call() to merely x() -// See Mark Miller’s explanation of what this does. -// http://wiki.ecmascript.org/doku.php?id=conventions:safe_meta_programming -var call = Function.call; -function uncurryThis(f) { - return function () { - return call.apply(f, arguments); - }; -} -// This is equivalent, but slower: -// uncurryThis = Function_bind.bind(Function_bind.call); -// http://jsperf.com/uncurrythis - -var array_slice = uncurryThis(Array.prototype.slice); - -var array_reduce = uncurryThis( - Array.prototype.reduce || function (callback, basis) { - var index = 0, - length = this.length; - // concerning the initial value, if one is not provided - if (arguments.length === 1) { - // seek to the first value in the array, accounting - // for the possibility that is is a sparse array - do { - if (index in this) { - basis = this[index++]; - break; - } - if (++index >= length) { - throw new TypeError(); - } - } while (1); - } - // reduce - for (; index < length; index++) { - // account for the possibility that the array is sparse - if (index in this) { - basis = callback(basis, this[index], index); - } - } - return basis; - } -); - -var array_indexOf = uncurryThis( - Array.prototype.indexOf || function (value) { - // not a very good shim, but good enough for our one use of it - for (var i = 0; i < this.length; i++) { - if (this[i] === value) { - return i; - } - } - return -1; - } -); - -var array_map = uncurryThis( - Array.prototype.map || function (callback, thisp) { - var self = this; - var collect = []; - array_reduce(self, function (undefined, value, index) { - collect.push(callback.call(thisp, value, index, self)); - }, void 0); - return collect; - } -); - -var object_create = Object.create || function (prototype) { - function Type() { } - Type.prototype = prototype; - return new Type(); -}; - -var object_hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty); - -var object_keys = Object.keys || function (object) { - var keys = []; - for (var key in object) { - if (object_hasOwnProperty(object, key)) { - keys.push(key); - } - } - return keys; -}; - -var object_toString = uncurryThis(Object.prototype.toString); - -function isObject(value) { - return value === Object(value); -} - -// generator related shims - -// FIXME: Remove this function once ES6 generators are in SpiderMonkey. -function isStopIteration(exception) { - return ( - object_toString(exception) === "[object StopIteration]" || - exception instanceof QReturnValue - ); -} - -// FIXME: Remove this helper and Q.return once ES6 generators are in -// SpiderMonkey. -var QReturnValue; -if (typeof ReturnValue !== "undefined") { - QReturnValue = ReturnValue; -} else { - QReturnValue = function (value) { - this.value = value; - }; -} - -// long stack traces - -var STACK_JUMP_SEPARATOR = "From previous event:"; - -function makeStackTraceLong(error, promise) { - // If possible, transform the error stack trace by removing Node and Q - // cruft, then concatenating with the stack trace of `promise`. See #57. - if (hasStacks && - promise.stack && - typeof error === "object" && - error !== null && - error.stack && - error.stack.indexOf(STACK_JUMP_SEPARATOR) === -1 - ) { - var stacks = []; - for (var p = promise; !!p; p = p.source) { - if (p.stack) { - stacks.unshift(p.stack); - } - } - stacks.unshift(error.stack); - - var concatedStacks = stacks.join("\n" + STACK_JUMP_SEPARATOR + "\n"); - error.stack = filterStackString(concatedStacks); - } -} - -function filterStackString(stackString) { - var lines = stackString.split("\n"); - var desiredLines = []; - for (var i = 0; i < lines.length; ++i) { - var line = lines[i]; - - if (!isInternalFrame(line) && !isNodeFrame(line) && line) { - desiredLines.push(line); - } - } - return desiredLines.join("\n"); -} - -function isNodeFrame(stackLine) { - return stackLine.indexOf("(module.js:") !== -1 || - stackLine.indexOf("(node.js:") !== -1; -} - -function getFileNameAndLineNumber(stackLine) { - // Named functions: "at functionName (filename:lineNumber:columnNumber)" - // In IE10 function name can have spaces ("Anonymous function") O_o - var attempt1 = /at .+ \((.+):(\d+):(?:\d+)\)$/.exec(stackLine); - if (attempt1) { - return [attempt1[1], Number(attempt1[2])]; - } - - // Anonymous functions: "at filename:lineNumber:columnNumber" - var attempt2 = /at ([^ ]+):(\d+):(?:\d+)$/.exec(stackLine); - if (attempt2) { - return [attempt2[1], Number(attempt2[2])]; - } - - // Firefox style: "function@filename:lineNumber or @filename:lineNumber" - var attempt3 = /.*@(.+):(\d+)$/.exec(stackLine); - if (attempt3) { - return [attempt3[1], Number(attempt3[2])]; - } -} - -function isInternalFrame(stackLine) { - var fileNameAndLineNumber = getFileNameAndLineNumber(stackLine); - - if (!fileNameAndLineNumber) { - return false; - } - - var fileName = fileNameAndLineNumber[0]; - var lineNumber = fileNameAndLineNumber[1]; - - return fileName === qFileName && - lineNumber >= qStartingLine && - lineNumber <= qEndingLine; -} - -// discover own file name and line number range for filtering stack -// traces -function captureLine() { - if (!hasStacks) { - return; - } - - try { - throw new Error(); - } catch (e) { - var lines = e.stack.split("\n"); - var firstLine = lines[0].indexOf("@") > 0 ? lines[1] : lines[2]; - var fileNameAndLineNumber = getFileNameAndLineNumber(firstLine); - if (!fileNameAndLineNumber) { - return; - } - - qFileName = fileNameAndLineNumber[0]; - return fileNameAndLineNumber[1]; - } -} - -function deprecate(callback, name, alternative) { - return function () { - if (typeof console !== "undefined" && - typeof console.warn === "function") { - console.warn(name + " is deprecated, use " + alternative + - " instead.", new Error("").stack); - } - return callback.apply(callback, arguments); - }; -} - -// end of shims -// beginning of real work - -/** - * Constructs a promise for an immediate reference, passes promises through, or - * coerces promises from different systems. - * @param value immediate reference or promise - */ -function Q(value) { - // If the object is already a Promise, return it directly. This enables - // the resolve function to both be used to created references from objects, - // but to tolerably coerce non-promises to promises. - if (value instanceof Promise) { - return value; - } - - // assimilate thenables - if (isPromiseAlike(value)) { - return coerce(value); - } else { - return fulfill(value); - } -} -Q.resolve = Q; - -/** - * Performs a task in a future turn of the event loop. - * @param {Function} task - */ -Q.nextTick = nextTick; - -/** - * Controls whether or not long stack traces will be on - */ -Q.longStackSupport = false; - -// enable long stacks if Q_DEBUG is set -if (typeof process === "object" && process && process.env && process.env.Q_DEBUG) { - Q.longStackSupport = true; -} - -/** - * Constructs a {promise, resolve, reject} object. - * - * `resolve` is a callback to invoke with a more resolved value for the - * promise. To fulfill the promise, invoke `resolve` with any value that is - * not a thenable. To reject the promise, invoke `resolve` with a rejected - * thenable, or invoke `reject` with the reason directly. To resolve the - * promise to another thenable, thus putting it in the same state, invoke - * `resolve` with that other thenable. - */ -Q.defer = defer; -function defer() { - // if "messages" is an "Array", that indicates that the promise has not yet - // been resolved. If it is "undefined", it has been resolved. Each - // element of the messages array is itself an array of complete arguments to - // forward to the resolved promise. We coerce the resolution value to a - // promise using the `resolve` function because it handles both fully - // non-thenable values and other thenables gracefully. - var messages = [], progressListeners = [], resolvedPromise; - - var deferred = object_create(defer.prototype); - var promise = object_create(Promise.prototype); - - promise.promiseDispatch = function (resolve, op, operands) { - var args = array_slice(arguments); - if (messages) { - messages.push(args); - if (op === "when" && operands[1]) { // progress operand - progressListeners.push(operands[1]); - } - } else { - Q.nextTick(function () { - resolvedPromise.promiseDispatch.apply(resolvedPromise, args); - }); - } - }; - - // XXX deprecated - promise.valueOf = function () { - if (messages) { - return promise; - } - var nearerValue = nearer(resolvedPromise); - if (isPromise(nearerValue)) { - resolvedPromise = nearerValue; // shorten chain - } - return nearerValue; - }; - - promise.inspect = function () { - if (!resolvedPromise) { - return { state: "pending" }; - } - return resolvedPromise.inspect(); - }; - - if (Q.longStackSupport && hasStacks) { - try { - throw new Error(); - } catch (e) { - // NOTE: don't try to use `Error.captureStackTrace` or transfer the - // accessor around; that causes memory leaks as per GH-111. Just - // reify the stack trace as a string ASAP. - // - // At the same time, cut off the first line; it's always just - // "[object Promise]\n", as per the `toString`. - promise.stack = e.stack.substring(e.stack.indexOf("\n") + 1); - } - } - - // NOTE: we do the checks for `resolvedPromise` in each method, instead of - // consolidating them into `become`, since otherwise we'd create new - // promises with the lines `become(whatever(value))`. See e.g. GH-252. - - function become(newPromise) { - resolvedPromise = newPromise; - promise.source = newPromise; - - array_reduce(messages, function (undefined, message) { - Q.nextTick(function () { - newPromise.promiseDispatch.apply(newPromise, message); - }); - }, void 0); - - messages = void 0; - progressListeners = void 0; - } - - deferred.promise = promise; - deferred.resolve = function (value) { - if (resolvedPromise) { - return; - } - - become(Q(value)); - }; - - deferred.fulfill = function (value) { - if (resolvedPromise) { - return; - } - - become(fulfill(value)); - }; - deferred.reject = function (reason) { - if (resolvedPromise) { - return; - } - - become(reject(reason)); - }; - deferred.notify = function (progress) { - if (resolvedPromise) { - return; - } - - array_reduce(progressListeners, function (undefined, progressListener) { - Q.nextTick(function () { - progressListener(progress); - }); - }, void 0); - }; - - return deferred; -} - -/** - * Creates a Node-style callback that will resolve or reject the deferred - * promise. - * @returns a nodeback - */ -defer.prototype.makeNodeResolver = function () { - var self = this; - return function (error, value) { - if (error) { - self.reject(error); - } else if (arguments.length > 2) { - self.resolve(array_slice(arguments, 1)); - } else { - self.resolve(value); - } - }; -}; - -/** - * @param resolver {Function} a function that returns nothing and accepts - * the resolve, reject, and notify functions for a deferred. - * @returns a promise that may be resolved with the given resolve and reject - * functions, or rejected by a thrown exception in resolver - */ -Q.Promise = promise; // ES6 -Q.promise = promise; -function promise(resolver) { - if (typeof resolver !== "function") { - throw new TypeError("resolver must be a function."); - } - var deferred = defer(); - try { - resolver(deferred.resolve, deferred.reject, deferred.notify); - } catch (reason) { - deferred.reject(reason); - } - return deferred.promise; -} - -promise.race = race; // ES6 -promise.all = all; // ES6 -promise.reject = reject; // ES6 -promise.resolve = Q; // ES6 - -// XXX experimental. This method is a way to denote that a local value is -// serializable and should be immediately dispatched to a remote upon request, -// instead of passing a reference. -Q.passByCopy = function (object) { - //freeze(object); - //passByCopies.set(object, true); - return object; -}; - -Promise.prototype.passByCopy = function () { - //freeze(object); - //passByCopies.set(object, true); - return this; -}; - -/** - * If two promises eventually fulfill to the same value, promises that value, - * but otherwise rejects. - * @param x {Any*} - * @param y {Any*} - * @returns {Any*} a promise for x and y if they are the same, but a rejection - * otherwise. - * - */ -Q.join = function (x, y) { - return Q(x).join(y); -}; - -Promise.prototype.join = function (that) { - return Q([this, that]).spread(function (x, y) { - if (x === y) { - // TODO: "===" should be Object.is or equiv - return x; - } else { - throw new Error("Can't join: not the same: " + x + " " + y); - } - }); -}; - -/** - * Returns a promise for the first of an array of promises to become settled. - * @param answers {Array[Any*]} promises to race - * @returns {Any*} the first promise to be settled - */ -Q.race = race; -function race(answerPs) { - return promise(function(resolve, reject) { - // Switch to this once we can assume at least ES5 - // answerPs.forEach(function(answerP) { - // Q(answerP).then(resolve, reject); - // }); - // Use this in the meantime - for (var i = 0, len = answerPs.length; i < len; i++) { - Q(answerPs[i]).then(resolve, reject); - } - }); -} - -Promise.prototype.race = function () { - return this.then(Q.race); -}; - -/** - * Constructs a Promise with a promise descriptor object and optional fallback - * function. The descriptor contains methods like when(rejected), get(name), - * set(name, value), post(name, args), and delete(name), which all - * return either a value, a promise for a value, or a rejection. The fallback - * accepts the operation name, a resolver, and any further arguments that would - * have been forwarded to the appropriate method above had a method been - * provided with the proper name. The API makes no guarantees about the nature - * of the returned object, apart from that it is usable whereever promises are - * bought and sold. - */ -Q.makePromise = Promise; -function Promise(descriptor, fallback, inspect) { - if (fallback === void 0) { - fallback = function (op) { - return reject(new Error( - "Promise does not support operation: " + op - )); - }; - } - if (inspect === void 0) { - inspect = function () { - return {state: "unknown"}; - }; - } - - var promise = object_create(Promise.prototype); - - promise.promiseDispatch = function (resolve, op, args) { - var result; - try { - if (descriptor[op]) { - result = descriptor[op].apply(promise, args); - } else { - result = fallback.call(promise, op, args); - } - } catch (exception) { - result = reject(exception); - } - if (resolve) { - resolve(result); - } - }; - - promise.inspect = inspect; - - // XXX deprecated `valueOf` and `exception` support - if (inspect) { - var inspected = inspect(); - if (inspected.state === "rejected") { - promise.exception = inspected.reason; - } - - promise.valueOf = function () { - var inspected = inspect(); - if (inspected.state === "pending" || - inspected.state === "rejected") { - return promise; - } - return inspected.value; - }; - } - - return promise; -} - -Promise.prototype.toString = function () { - return "[object Promise]"; -}; - -Promise.prototype.then = function (fulfilled, rejected, progressed) { - var self = this; - var deferred = defer(); - var done = false; // ensure the untrusted promise makes at most a - // single call to one of the callbacks - - function _fulfilled(value) { - try { - return typeof fulfilled === "function" ? fulfilled(value) : value; - } catch (exception) { - return reject(exception); - } - } - - function _rejected(exception) { - if (typeof rejected === "function") { - makeStackTraceLong(exception, self); - try { - return rejected(exception); - } catch (newException) { - return reject(newException); - } - } - return reject(exception); - } - - function _progressed(value) { - return typeof progressed === "function" ? progressed(value) : value; - } - - Q.nextTick(function () { - self.promiseDispatch(function (value) { - if (done) { - return; - } - done = true; - - deferred.resolve(_fulfilled(value)); - }, "when", [function (exception) { - if (done) { - return; - } - done = true; - - deferred.resolve(_rejected(exception)); - }]); - }); - - // Progress propagator need to be attached in the current tick. - self.promiseDispatch(void 0, "when", [void 0, function (value) { - var newValue; - var threw = false; - try { - newValue = _progressed(value); - } catch (e) { - threw = true; - if (Q.onerror) { - Q.onerror(e); - } else { - throw e; - } - } - - if (!threw) { - deferred.notify(newValue); - } - }]); - - return deferred.promise; -}; - -Q.tap = function (promise, callback) { - return Q(promise).tap(callback); -}; - -/** - * Works almost like "finally", but not called for rejections. - * Original resolution value is passed through callback unaffected. - * Callback may return a promise that will be awaited for. - * @param {Function} callback - * @returns {Q.Promise} - * @example - * doSomething() - * .then(...) - * .tap(console.log) - * .then(...); - */ -Promise.prototype.tap = function (callback) { - callback = Q(callback); - - return this.then(function (value) { - return callback.fcall(value).thenResolve(value); - }); -}; - -/** - * Registers an observer on a promise. - * - * Guarantees: - * - * 1. that fulfilled and rejected will be called only once. - * 2. that either the fulfilled callback or the rejected callback will be - * called, but not both. - * 3. that fulfilled and rejected will not be called in this turn. - * - * @param value promise or immediate reference to observe - * @param fulfilled function to be called with the fulfilled value - * @param rejected function to be called with the rejection exception - * @param progressed function to be called on any progress notifications - * @return promise for the return value from the invoked callback - */ -Q.when = when; -function when(value, fulfilled, rejected, progressed) { - return Q(value).then(fulfilled, rejected, progressed); -} - -Promise.prototype.thenResolve = function (value) { - return this.then(function () { return value; }); -}; - -Q.thenResolve = function (promise, value) { - return Q(promise).thenResolve(value); -}; - -Promise.prototype.thenReject = function (reason) { - return this.then(function () { throw reason; }); -}; - -Q.thenReject = function (promise, reason) { - return Q(promise).thenReject(reason); -}; - -/** - * If an object is not a promise, it is as "near" as possible. - * If a promise is rejected, it is as "near" as possible too. - * If it’s a fulfilled promise, the fulfillment value is nearer. - * If it’s a deferred promise and the deferred has been resolved, the - * resolution is "nearer". - * @param object - * @returns most resolved (nearest) form of the object - */ - -// XXX should we re-do this? -Q.nearer = nearer; -function nearer(value) { - if (isPromise(value)) { - var inspected = value.inspect(); - if (inspected.state === "fulfilled") { - return inspected.value; - } - } - return value; -} - -/** - * @returns whether the given object is a promise. - * Otherwise it is a fulfilled value. - */ -Q.isPromise = isPromise; -function isPromise(object) { - return object instanceof Promise; -} - -Q.isPromiseAlike = isPromiseAlike; -function isPromiseAlike(object) { - return isObject(object) && typeof object.then === "function"; -} - -/** - * @returns whether the given object is a pending promise, meaning not - * fulfilled or rejected. - */ -Q.isPending = isPending; -function isPending(object) { - return isPromise(object) && object.inspect().state === "pending"; -} - -Promise.prototype.isPending = function () { - return this.inspect().state === "pending"; -}; - -/** - * @returns whether the given object is a value or fulfilled - * promise. - */ -Q.isFulfilled = isFulfilled; -function isFulfilled(object) { - return !isPromise(object) || object.inspect().state === "fulfilled"; -} - -Promise.prototype.isFulfilled = function () { - return this.inspect().state === "fulfilled"; -}; - -/** - * @returns whether the given object is a rejected promise. - */ -Q.isRejected = isRejected; -function isRejected(object) { - return isPromise(object) && object.inspect().state === "rejected"; -} - -Promise.prototype.isRejected = function () { - return this.inspect().state === "rejected"; -}; - -//// BEGIN UNHANDLED REJECTION TRACKING - -// This promise library consumes exceptions thrown in handlers so they can be -// handled by a subsequent promise. The exceptions get added to this array when -// they are created, and removed when they are handled. Note that in ES6 or -// shimmed environments, this would naturally be a `Set`. -var unhandledReasons = []; -var unhandledRejections = []; -var trackUnhandledRejections = true; - -function resetUnhandledRejections() { - unhandledReasons.length = 0; - unhandledRejections.length = 0; - - if (!trackUnhandledRejections) { - trackUnhandledRejections = true; - } -} - -function trackRejection(promise, reason) { - if (!trackUnhandledRejections) { - return; - } - - unhandledRejections.push(promise); - if (reason && typeof reason.stack !== "undefined") { - unhandledReasons.push(reason.stack); - } else { - unhandledReasons.push("(no stack) " + reason); - } -} - -function untrackRejection(promise) { - if (!trackUnhandledRejections) { - return; - } - - var at = array_indexOf(unhandledRejections, promise); - if (at !== -1) { - unhandledRejections.splice(at, 1); - unhandledReasons.splice(at, 1); - } -} - -Q.resetUnhandledRejections = resetUnhandledRejections; - -Q.getUnhandledReasons = function () { - // Make a copy so that consumers can't interfere with our internal state. - return unhandledReasons.slice(); -}; - -Q.stopUnhandledRejectionTracking = function () { - resetUnhandledRejections(); - trackUnhandledRejections = false; -}; - -resetUnhandledRejections(); - -//// END UNHANDLED REJECTION TRACKING - -/** - * Constructs a rejected promise. - * @param reason value describing the failure - */ -Q.reject = reject; -function reject(reason) { - var rejection = Promise({ - "when": function (rejected) { - // note that the error has been handled - if (rejected) { - untrackRejection(this); - } - return rejected ? rejected(reason) : this; - } - }, function fallback() { - return this; - }, function inspect() { - return { state: "rejected", reason: reason }; - }); - - // Note that the reason has not been handled. - trackRejection(rejection, reason); - - return rejection; -} - -/** - * Constructs a fulfilled promise for an immediate reference. - * @param value immediate reference - */ -Q.fulfill = fulfill; -function fulfill(value) { - return Promise({ - "when": function () { - return value; - }, - "get": function (name) { - return value[name]; - }, - "set": function (name, rhs) { - value[name] = rhs; - }, - "delete": function (name) { - delete value[name]; - }, - "post": function (name, args) { - // Mark Miller proposes that post with no name should apply a - // promised function. - if (name === null || name === void 0) { - return value.apply(void 0, args); - } else { - return value[name].apply(value, args); - } - }, - "apply": function (thisp, args) { - return value.apply(thisp, args); - }, - "keys": function () { - return object_keys(value); - } - }, void 0, function inspect() { - return { state: "fulfilled", value: value }; - }); -} - -/** - * Converts thenables to Q promises. - * @param promise thenable promise - * @returns a Q promise - */ -function coerce(promise) { - var deferred = defer(); - Q.nextTick(function () { - try { - promise.then(deferred.resolve, deferred.reject, deferred.notify); - } catch (exception) { - deferred.reject(exception); - } - }); - return deferred.promise; -} - -/** - * Annotates an object such that it will never be - * transferred away from this process over any promise - * communication channel. - * @param object - * @returns promise a wrapping of that object that - * additionally responds to the "isDef" message - * without a rejection. - */ -Q.master = master; -function master(object) { - return Promise({ - "isDef": function () {} - }, function fallback(op, args) { - return dispatch(object, op, args); - }, function () { - return Q(object).inspect(); - }); -} - -/** - * Spreads the values of a promised array of arguments into the - * fulfillment callback. - * @param fulfilled callback that receives variadic arguments from the - * promised array - * @param rejected callback that receives the exception if the promise - * is rejected. - * @returns a promise for the return value or thrown exception of - * either callback. - */ -Q.spread = spread; -function spread(value, fulfilled, rejected) { - return Q(value).spread(fulfilled, rejected); -} - -Promise.prototype.spread = function (fulfilled, rejected) { - return this.all().then(function (array) { - return fulfilled.apply(void 0, array); - }, rejected); -}; - -/** - * The async function is a decorator for generator functions, turning - * them into asynchronous generators. Although generators are only part - * of the newest ECMAScript 6 drafts, this code does not cause syntax - * errors in older engines. This code should continue to work and will - * in fact improve over time as the language improves. - * - * ES6 generators are currently part of V8 version 3.19 with the - * --harmony-generators runtime flag enabled. SpiderMonkey has had them - * for longer, but under an older Python-inspired form. This function - * works on both kinds of generators. - * - * Decorates a generator function such that: - * - it may yield promises - * - execution will continue when that promise is fulfilled - * - the value of the yield expression will be the fulfilled value - * - it returns a promise for the return value (when the generator - * stops iterating) - * - the decorated function returns a promise for the return value - * of the generator or the first rejected promise among those - * yielded. - * - if an error is thrown in the generator, it propagates through - * every following yield until it is caught, or until it escapes - * the generator function altogether, and is translated into a - * rejection for the promise returned by the decorated generator. - */ -Q.async = async; -function async(makeGenerator) { - return function () { - // when verb is "send", arg is a value - // when verb is "throw", arg is an exception - function continuer(verb, arg) { - var result; - - // Until V8 3.19 / Chromium 29 is released, SpiderMonkey is the only - // engine that has a deployed base of browsers that support generators. - // However, SM's generators use the Python-inspired semantics of - // outdated ES6 drafts. We would like to support ES6, but we'd also - // like to make it possible to use generators in deployed browsers, so - // we also support Python-style generators. At some point we can remove - // this block. - - if (typeof StopIteration === "undefined") { - // ES6 Generators - try { - result = generator[verb](arg); - } catch (exception) { - return reject(exception); - } - if (result.done) { - return Q(result.value); - } else { - return when(result.value, callback, errback); - } - } else { - // SpiderMonkey Generators - // FIXME: Remove this case when SM does ES6 generators. - try { - result = generator[verb](arg); - } catch (exception) { - if (isStopIteration(exception)) { - return Q(exception.value); - } else { - return reject(exception); - } - } - return when(result, callback, errback); - } - } - var generator = makeGenerator.apply(this, arguments); - var callback = continuer.bind(continuer, "next"); - var errback = continuer.bind(continuer, "throw"); - return callback(); - }; -} - -/** - * The spawn function is a small wrapper around async that immediately - * calls the generator and also ends the promise chain, so that any - * unhandled errors are thrown instead of forwarded to the error - * handler. This is useful because it's extremely common to run - * generators at the top-level to work with libraries. - */ -Q.spawn = spawn; -function spawn(makeGenerator) { - Q.done(Q.async(makeGenerator)()); -} - -// FIXME: Remove this interface once ES6 generators are in SpiderMonkey. -/** - * Throws a ReturnValue exception to stop an asynchronous generator. - * - * This interface is a stop-gap measure to support generator return - * values in older Firefox/SpiderMonkey. In browsers that support ES6 - * generators like Chromium 29, just use "return" in your generator - * functions. - * - * @param value the return value for the surrounding generator - * @throws ReturnValue exception with the value. - * @example - * // ES6 style - * Q.async(function* () { - * var foo = yield getFooPromise(); - * var bar = yield getBarPromise(); - * return foo + bar; - * }) - * // Older SpiderMonkey style - * Q.async(function () { - * var foo = yield getFooPromise(); - * var bar = yield getBarPromise(); - * Q.return(foo + bar); - * }) - */ -Q["return"] = _return; -function _return(value) { - throw new QReturnValue(value); -} - -/** - * The promised function decorator ensures that any promise arguments - * are settled and passed as values (`this` is also settled and passed - * as a value). It will also ensure that the result of a function is - * always a promise. - * - * @example - * var add = Q.promised(function (a, b) { - * return a + b; - * }); - * add(Q(a), Q(B)); - * - * @param {function} callback The function to decorate - * @returns {function} a function that has been decorated. - */ -Q.promised = promised; -function promised(callback) { - return function () { - return spread([this, all(arguments)], function (self, args) { - return callback.apply(self, args); - }); - }; -} - -/** - * sends a message to a value in a future turn - * @param object* the recipient - * @param op the name of the message operation, e.g., "when", - * @param args further arguments to be forwarded to the operation - * @returns result {Promise} a promise for the result of the operation - */ -Q.dispatch = dispatch; -function dispatch(object, op, args) { - return Q(object).dispatch(op, args); -} - -Promise.prototype.dispatch = function (op, args) { - var self = this; - var deferred = defer(); - Q.nextTick(function () { - self.promiseDispatch(deferred.resolve, op, args); - }); - return deferred.promise; -}; - -/** - * Gets the value of a property in a future turn. - * @param object promise or immediate reference for target object - * @param name name of property to get - * @return promise for the property value - */ -Q.get = function (object, key) { - return Q(object).dispatch("get", [key]); -}; - -Promise.prototype.get = function (key) { - return this.dispatch("get", [key]); -}; - -/** - * Sets the value of a property in a future turn. - * @param object promise or immediate reference for object object - * @param name name of property to set - * @param value new value of property - * @return promise for the return value - */ -Q.set = function (object, key, value) { - return Q(object).dispatch("set", [key, value]); -}; - -Promise.prototype.set = function (key, value) { - return this.dispatch("set", [key, value]); -}; - -/** - * Deletes a property in a future turn. - * @param object promise or immediate reference for target object - * @param name name of property to delete - * @return promise for the return value - */ -Q.del = // XXX legacy -Q["delete"] = function (object, key) { - return Q(object).dispatch("delete", [key]); -}; - -Promise.prototype.del = // XXX legacy -Promise.prototype["delete"] = function (key) { - return this.dispatch("delete", [key]); -}; - -/** - * Invokes a method in a future turn. - * @param object promise or immediate reference for target object - * @param name name of method to invoke - * @param value a value to post, typically an array of - * invocation arguments for promises that - * are ultimately backed with `resolve` values, - * as opposed to those backed with URLs - * wherein the posted value can be any - * JSON serializable object. - * @return promise for the return value - */ -// bound locally because it is used by other methods -Q.mapply = // XXX As proposed by "Redsandro" -Q.post = function (object, name, args) { - return Q(object).dispatch("post", [name, args]); -}; - -Promise.prototype.mapply = // XXX As proposed by "Redsandro" -Promise.prototype.post = function (name, args) { - return this.dispatch("post", [name, args]); -}; - -/** - * Invokes a method in a future turn. - * @param object promise or immediate reference for target object - * @param name name of method to invoke - * @param ...args array of invocation arguments - * @return promise for the return value - */ -Q.send = // XXX Mark Miller's proposed parlance -Q.mcall = // XXX As proposed by "Redsandro" -Q.invoke = function (object, name /*...args*/) { - return Q(object).dispatch("post", [name, array_slice(arguments, 2)]); -}; - -Promise.prototype.send = // XXX Mark Miller's proposed parlance -Promise.prototype.mcall = // XXX As proposed by "Redsandro" -Promise.prototype.invoke = function (name /*...args*/) { - return this.dispatch("post", [name, array_slice(arguments, 1)]); -}; - -/** - * Applies the promised function in a future turn. - * @param object promise or immediate reference for target function - * @param args array of application arguments - */ -Q.fapply = function (object, args) { - return Q(object).dispatch("apply", [void 0, args]); -}; - -Promise.prototype.fapply = function (args) { - return this.dispatch("apply", [void 0, args]); -}; - -/** - * Calls the promised function in a future turn. - * @param object promise or immediate reference for target function - * @param ...args array of application arguments - */ -Q["try"] = -Q.fcall = function (object /* ...args*/) { - return Q(object).dispatch("apply", [void 0, array_slice(arguments, 1)]); -}; - -Promise.prototype.fcall = function (/*...args*/) { - return this.dispatch("apply", [void 0, array_slice(arguments)]); -}; - -/** - * Binds the promised function, transforming return values into a fulfilled - * promise and thrown errors into a rejected one. - * @param object promise or immediate reference for target function - * @param ...args array of application arguments - */ -Q.fbind = function (object /*...args*/) { - var promise = Q(object); - var args = array_slice(arguments, 1); - return function fbound() { - return promise.dispatch("apply", [ - this, - args.concat(array_slice(arguments)) - ]); - }; -}; -Promise.prototype.fbind = function (/*...args*/) { - var promise = this; - var args = array_slice(arguments); - return function fbound() { - return promise.dispatch("apply", [ - this, - args.concat(array_slice(arguments)) - ]); - }; -}; - -/** - * Requests the names of the owned properties of a promised - * object in a future turn. - * @param object promise or immediate reference for target object - * @return promise for the keys of the eventually settled object - */ -Q.keys = function (object) { - return Q(object).dispatch("keys", []); -}; - -Promise.prototype.keys = function () { - return this.dispatch("keys", []); -}; - -/** - * Turns an array of promises into a promise for an array. If any of - * the promises gets rejected, the whole array is rejected immediately. - * @param {Array*} an array (or promise for an array) of values (or - * promises for values) - * @returns a promise for an array of the corresponding values - */ -// By Mark Miller -// http://wiki.ecmascript.org/doku.php?id=strawman:concurrency&rev=1308776521#allfulfilled -Q.all = all; -function all(promises) { - return when(promises, function (promises) { - var pendingCount = 0; - var deferred = defer(); - array_reduce(promises, function (undefined, promise, index) { - var snapshot; - if ( - isPromise(promise) && - (snapshot = promise.inspect()).state === "fulfilled" - ) { - promises[index] = snapshot.value; - } else { - ++pendingCount; - when( - promise, - function (value) { - promises[index] = value; - if (--pendingCount === 0) { - deferred.resolve(promises); - } - }, - deferred.reject, - function (progress) { - deferred.notify({ index: index, value: progress }); - } - ); - } - }, void 0); - if (pendingCount === 0) { - deferred.resolve(promises); - } - return deferred.promise; - }); -} - -Promise.prototype.all = function () { - return all(this); -}; - -/** - * Returns the first resolved promise of an array. Prior rejected promises are - * ignored. Rejects only if all promises are rejected. - * @param {Array*} an array containing values or promises for values - * @returns a promise fulfilled with the value of the first resolved promise, - * or a rejected promise if all promises are rejected. - */ -Q.any = any; - -function any(promises) { - if (promises.length === 0) { - return Q.resolve(); - } - - var deferred = Q.defer(); - var pendingCount = 0; - array_reduce(promises, function(prev, current, index) { - var promise = promises[index]; - - pendingCount++; - - when(promise, onFulfilled, onRejected, onProgress); - function onFulfilled(result) { - deferred.resolve(result); - } - function onRejected() { - pendingCount--; - if (pendingCount === 0) { - deferred.reject(new Error( - "Can't get fulfillment value from any promise, all " + - "promises were rejected." - )); - } - } - function onProgress(progress) { - deferred.notify({ - index: index, - value: progress - }); - } - }, undefined); - - return deferred.promise; -} - -Promise.prototype.any = function() { - return any(this); -}; - -/** - * Waits for all promises to be settled, either fulfilled or - * rejected. This is distinct from `all` since that would stop - * waiting at the first rejection. The promise returned by - * `allResolved` will never be rejected. - * @param promises a promise for an array (or an array) of promises - * (or values) - * @return a promise for an array of promises - */ -Q.allResolved = deprecate(allResolved, "allResolved", "allSettled"); -function allResolved(promises) { - return when(promises, function (promises) { - promises = array_map(promises, Q); - return when(all(array_map(promises, function (promise) { - return when(promise, noop, noop); - })), function () { - return promises; - }); - }); -} - -Promise.prototype.allResolved = function () { - return allResolved(this); -}; - -/** - * @see Promise#allSettled - */ -Q.allSettled = allSettled; -function allSettled(promises) { - return Q(promises).allSettled(); -} - -/** - * Turns an array of promises into a promise for an array of their states (as - * returned by `inspect`) when they have all settled. - * @param {Array[Any*]} values an array (or promise for an array) of values (or - * promises for values) - * @returns {Array[State]} an array of states for the respective values. - */ -Promise.prototype.allSettled = function () { - return this.then(function (promises) { - return all(array_map(promises, function (promise) { - promise = Q(promise); - function regardless() { - return promise.inspect(); - } - return promise.then(regardless, regardless); - })); - }); -}; - -/** - * Captures the failure of a promise, giving an oportunity to recover - * with a callback. If the given promise is fulfilled, the returned - * promise is fulfilled. - * @param {Any*} promise for something - * @param {Function} callback to fulfill the returned promise if the - * given promise is rejected - * @returns a promise for the return value of the callback - */ -Q.fail = // XXX legacy -Q["catch"] = function (object, rejected) { - return Q(object).then(void 0, rejected); -}; - -Promise.prototype.fail = // XXX legacy -Promise.prototype["catch"] = function (rejected) { - return this.then(void 0, rejected); -}; - -/** - * Attaches a listener that can respond to progress notifications from a - * promise's originating deferred. This listener receives the exact arguments - * passed to ``deferred.notify``. - * @param {Any*} promise for something - * @param {Function} callback to receive any progress notifications - * @returns the given promise, unchanged - */ -Q.progress = progress; -function progress(object, progressed) { - return Q(object).then(void 0, void 0, progressed); -} - -Promise.prototype.progress = function (progressed) { - return this.then(void 0, void 0, progressed); -}; - -/** - * Provides an opportunity to observe the settling of a promise, - * regardless of whether the promise is fulfilled or rejected. Forwards - * the resolution to the returned promise when the callback is done. - * The callback can return a promise to defer completion. - * @param {Any*} promise - * @param {Function} callback to observe the resolution of the given - * promise, takes no arguments. - * @returns a promise for the resolution of the given promise when - * ``fin`` is done. - */ -Q.fin = // XXX legacy -Q["finally"] = function (object, callback) { - return Q(object)["finally"](callback); -}; - -Promise.prototype.fin = // XXX legacy -Promise.prototype["finally"] = function (callback) { - callback = Q(callback); - return this.then(function (value) { - return callback.fcall().then(function () { - return value; - }); - }, function (reason) { - // TODO attempt to recycle the rejection with "this". - return callback.fcall().then(function () { - throw reason; - }); - }); -}; - -/** - * Terminates a chain of promises, forcing rejections to be - * thrown as exceptions. - * @param {Any*} promise at the end of a chain of promises - * @returns nothing - */ -Q.done = function (object, fulfilled, rejected, progress) { - return Q(object).done(fulfilled, rejected, progress); -}; - -Promise.prototype.done = function (fulfilled, rejected, progress) { - var onUnhandledError = function (error) { - // forward to a future turn so that ``when`` - // does not catch it and turn it into a rejection. - Q.nextTick(function () { - makeStackTraceLong(error, promise); - if (Q.onerror) { - Q.onerror(error); - } else { - throw error; - } - }); - }; - - // Avoid unnecessary `nextTick`ing via an unnecessary `when`. - var promise = fulfilled || rejected || progress ? - this.then(fulfilled, rejected, progress) : - this; - - if (typeof process === "object" && process && process.domain) { - onUnhandledError = process.domain.bind(onUnhandledError); - } - - promise.then(void 0, onUnhandledError); -}; - -/** - * Causes a promise to be rejected if it does not get fulfilled before - * some milliseconds time out. - * @param {Any*} promise - * @param {Number} milliseconds timeout - * @param {Any*} custom error message or Error object (optional) - * @returns a promise for the resolution of the given promise if it is - * fulfilled before the timeout, otherwise rejected. - */ -Q.timeout = function (object, ms, error) { - return Q(object).timeout(ms, error); -}; - -Promise.prototype.timeout = function (ms, error) { - var deferred = defer(); - var timeoutId = setTimeout(function () { - if (!error || "string" === typeof error) { - error = new Error(error || "Timed out after " + ms + " ms"); - error.code = "ETIMEDOUT"; - } - deferred.reject(error); - }, ms); - - this.then(function (value) { - clearTimeout(timeoutId); - deferred.resolve(value); - }, function (exception) { - clearTimeout(timeoutId); - deferred.reject(exception); - }, deferred.notify); - - return deferred.promise; -}; - -/** - * Returns a promise for the given value (or promised value), some - * milliseconds after it resolved. Passes rejections immediately. - * @param {Any*} promise - * @param {Number} milliseconds - * @returns a promise for the resolution of the given promise after milliseconds - * time has elapsed since the resolution of the given promise. - * If the given promise rejects, that is passed immediately. - */ -Q.delay = function (object, timeout) { - if (timeout === void 0) { - timeout = object; - object = void 0; - } - return Q(object).delay(timeout); -}; - -Promise.prototype.delay = function (timeout) { - return this.then(function (value) { - var deferred = defer(); - setTimeout(function () { - deferred.resolve(value); - }, timeout); - return deferred.promise; - }); -}; - -/** - * Passes a continuation to a Node function, which is called with the given - * arguments provided as an array, and returns a promise. - * - * Q.nfapply(FS.readFile, [__filename]) - * .then(function (content) { - * }) - * - */ -Q.nfapply = function (callback, args) { - return Q(callback).nfapply(args); -}; - -Promise.prototype.nfapply = function (args) { - var deferred = defer(); - var nodeArgs = array_slice(args); - nodeArgs.push(deferred.makeNodeResolver()); - this.fapply(nodeArgs).fail(deferred.reject); - return deferred.promise; -}; - -/** - * Passes a continuation to a Node function, which is called with the given - * arguments provided individually, and returns a promise. - * @example - * Q.nfcall(FS.readFile, __filename) - * .then(function (content) { - * }) - * - */ -Q.nfcall = function (callback /*...args*/) { - var args = array_slice(arguments, 1); - return Q(callback).nfapply(args); -}; - -Promise.prototype.nfcall = function (/*...args*/) { - var nodeArgs = array_slice(arguments); - var deferred = defer(); - nodeArgs.push(deferred.makeNodeResolver()); - this.fapply(nodeArgs).fail(deferred.reject); - return deferred.promise; -}; - -/** - * Wraps a NodeJS continuation passing function and returns an equivalent - * version that returns a promise. - * @example - * Q.nfbind(FS.readFile, __filename)("utf-8") - * .then(console.log) - * .done() - */ -Q.nfbind = -Q.denodeify = function (callback /*...args*/) { - var baseArgs = array_slice(arguments, 1); - return function () { - var nodeArgs = baseArgs.concat(array_slice(arguments)); - var deferred = defer(); - nodeArgs.push(deferred.makeNodeResolver()); - Q(callback).fapply(nodeArgs).fail(deferred.reject); - return deferred.promise; - }; -}; - -Promise.prototype.nfbind = -Promise.prototype.denodeify = function (/*...args*/) { - var args = array_slice(arguments); - args.unshift(this); - return Q.denodeify.apply(void 0, args); -}; - -Q.nbind = function (callback, thisp /*...args*/) { - var baseArgs = array_slice(arguments, 2); - return function () { - var nodeArgs = baseArgs.concat(array_slice(arguments)); - var deferred = defer(); - nodeArgs.push(deferred.makeNodeResolver()); - function bound() { - return callback.apply(thisp, arguments); - } - Q(bound).fapply(nodeArgs).fail(deferred.reject); - return deferred.promise; - }; -}; - -Promise.prototype.nbind = function (/*thisp, ...args*/) { - var args = array_slice(arguments, 0); - args.unshift(this); - return Q.nbind.apply(void 0, args); -}; - -/** - * Calls a method of a Node-style object that accepts a Node-style - * callback with a given array of arguments, plus a provided callback. - * @param object an object that has the named method - * @param {String} name name of the method of object - * @param {Array} args arguments to pass to the method; the callback - * will be provided by Q and appended to these arguments. - * @returns a promise for the value or error - */ -Q.nmapply = // XXX As proposed by "Redsandro" -Q.npost = function (object, name, args) { - return Q(object).npost(name, args); -}; - -Promise.prototype.nmapply = // XXX As proposed by "Redsandro" -Promise.prototype.npost = function (name, args) { - var nodeArgs = array_slice(args || []); - var deferred = defer(); - nodeArgs.push(deferred.makeNodeResolver()); - this.dispatch("post", [name, nodeArgs]).fail(deferred.reject); - return deferred.promise; -}; - -/** - * Calls a method of a Node-style object that accepts a Node-style - * callback, forwarding the given variadic arguments, plus a provided - * callback argument. - * @param object an object that has the named method - * @param {String} name name of the method of object - * @param ...args arguments to pass to the method; the callback will - * be provided by Q and appended to these arguments. - * @returns a promise for the value or error - */ -Q.nsend = // XXX Based on Mark Miller's proposed "send" -Q.nmcall = // XXX Based on "Redsandro's" proposal -Q.ninvoke = function (object, name /*...args*/) { - var nodeArgs = array_slice(arguments, 2); - var deferred = defer(); - nodeArgs.push(deferred.makeNodeResolver()); - Q(object).dispatch("post", [name, nodeArgs]).fail(deferred.reject); - return deferred.promise; -}; - -Promise.prototype.nsend = // XXX Based on Mark Miller's proposed "send" -Promise.prototype.nmcall = // XXX Based on "Redsandro's" proposal -Promise.prototype.ninvoke = function (name /*...args*/) { - var nodeArgs = array_slice(arguments, 1); - var deferred = defer(); - nodeArgs.push(deferred.makeNodeResolver()); - this.dispatch("post", [name, nodeArgs]).fail(deferred.reject); - return deferred.promise; -}; - -/** - * If a function would like to support both Node continuation-passing-style and - * promise-returning-style, it can end its internal promise chain with - * `nodeify(nodeback)`, forwarding the optional nodeback argument. If the user - * elects to use a nodeback, the result will be sent there. If they do not - * pass a nodeback, they will receive the result promise. - * @param object a result (or a promise for a result) - * @param {Function} nodeback a Node.js-style callback - * @returns either the promise or nothing - */ -Q.nodeify = nodeify; -function nodeify(object, nodeback) { - return Q(object).nodeify(nodeback); -} - -Promise.prototype.nodeify = function (nodeback) { - if (nodeback) { - this.then(function (value) { - Q.nextTick(function () { - nodeback(null, value); - }); - }, function (error) { - Q.nextTick(function () { - nodeback(error); - }); - }); - } else { - return this; - } -}; - -// All code before this point will be filtered from stack traces. -var qEndingLine = captureLine(); - -return Q; - -}); diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000015 b/Software/Embedded_SW/.jxbrowser-data/Cache/f_000015 deleted file mode 100644 index 53c131c08..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000015 +++ /dev/null @@ -1,1177 +0,0 @@ -/*global chrome*/ -/*global console*/ -/*global InstallTrigger*/ -/*global process*/ -/*global require*/ -/*global Q*/ -// use jsdoc agent.js to generate documentation -var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -}; -var TICloudAgent; -(function (TICloudAgent) { - // base error - var Error = (function () { - function Error(name, msg) { - if (name === void 0) { name = "Error"; } - if (msg === void 0) { msg = "ERROR"; } - this.name = name; - this.msg = msg; - } - return Error; - }()); - TICloudAgent.Error = Error; - var AlreadyInitialized = (function (_super) { - __extends(AlreadyInitialized, _super); - function AlreadyInitialized() { - return _super.call(this, "AlreadyInitialized", "AGENT_ALREADY_INITIALIZED") || this; - } - return AlreadyInitialized; - }(Error)); - TICloudAgent.AlreadyInitialized = AlreadyInitialized; - // Base for installation related errors. - var InstallError = (function (_super) { - __extends(InstallError, _super); - function InstallError() { - return _super.apply(this, arguments) || this; - } - return InstallError; - }(Error)); - TICloudAgent.InstallError = InstallError; - // Base error type that may require installation - var InvalidAgentVersion = (function (_super) { - __extends(InvalidAgentVersion, _super); - function InvalidAgentVersion() { - return _super.call(this, "InvalidAgentVersion", "Installed version is out of date") || this; - } - return InvalidAgentVersion; - }(Error)); - TICloudAgent.InvalidAgentVersion = InvalidAgentVersion; - var InvalidExtensionVersion = (function (_super) { - __extends(InvalidExtensionVersion, _super); - function InvalidExtensionVersion() { - return _super.call(this, "InvalidExtensionVersion", "Installed browser extension version is out of date") || this; - } - return InvalidExtensionVersion; - }(Error)); - TICloudAgent.InvalidExtensionVersion = InvalidExtensionVersion; - var MissingExtension = (function (_super) { - __extends(MissingExtension, _super); - function MissingExtension() { - return _super.call(this, "MissingExtension", "MISSING_EXTENTSION") || this; - } - return MissingExtension; - }(Error)); - TICloudAgent.MissingExtension = MissingExtension; - var AgentNotStarted = (function (_super) { - __extends(AgentNotStarted, _super); - function AgentNotStarted(msg) { - if (msg === void 0) { msg = "AGENT_NOT_STARTED"; } - return _super.call(this, "AgentNotStarted", msg) || this; - } - return AgentNotStarted; - }(Error)); - TICloudAgent.AgentNotStarted = AgentNotStarted; - // OS Enum - TICloudAgent.OS = { - WIN: "win", - LINUX: "linux", - OSX: "osx", - }; - // Browser Enum - TICloudAgent.BROWSER = { - CHROME: "chrome", - SAFARI: "safari", - FIREFOX: "firefox", - IE: "ie", - }; - function dynamicLink(url, newWindow) { - if (newWindow === void 0) { newWindow = false; } - var browser = getBrowser(); - var appendChild = browser === TICloudAgent.BROWSER.FIREFOX || browser === TICloudAgent.BROWSER.IE; - var a = document.createElement("a"); - a.href = url; - if (newWindow) { - a.target = "_blank"; - } - if (appendChild) { - document.body.appendChild(a); - } - a.click(); - } - // utility function to figure out the browser - function getBrowser() { - var browser = TICloudAgent.BROWSER.CHROME; - // chrome claims to be safari and chrome.. so special care is needed - if (navigator.userAgent.indexOf("Safari") !== -1 && navigator.userAgent.indexOf("Chrome") === -1) { - browser = TICloudAgent.BROWSER.SAFARI; - } - else if (navigator.userAgent.indexOf("Firefox") !== -1) { - browser = TICloudAgent.BROWSER.FIREFOX; - } - else if (!!navigator.userAgent.match(/Trident.*rv\:11\./)) { - browser = TICloudAgent.BROWSER.IE; - } - return browser; - } - TICloudAgent.getBrowser = getBrowser; - // utility function to figure out OS - function getOS() { - // default to linux because it is not always possible to tell it from - // the - // appVersion - var os = TICloudAgent.OS.LINUX; - if (navigator.appVersion.indexOf("Mac") !== -1) { - os = TICloudAgent.OS.OSX; - } - if (navigator.appVersion.indexOf("Win") !== -1) { - os = TICloudAgent.OS.WIN; - } - return os; - } - TICloudAgent.getOS = getOS; - ; - function assertNever(x) { - throw new Error("Unexpected object: " + x); - } - function getOSFolderName() { - var os = getOS(); - switch (os) { - case "win": return "win32"; - case "osx": return "mac"; - case "linux": return "linux"; - default: return assertNever(os); - } - } - var hostInfo; - (function (hostInfo) { - // Host and port of the server - var protocol = window.location.protocol; - var host = window.location.hostname; - var port = window.location.port ? ":" + window.location.port : ""; - // override - may be useful for testing - // explicitly check for undefined, empty strings are valid overrides - var hackOfWindowForTesting = window; - if (typeof hackOfWindowForTesting.TI_CLOUD_AGENT_HOST !== "undefined") { - host = hackOfWindowForTesting.TI_CLOUD_AGENT_HOST; - } - if (typeof hackOfWindowForTesting.TI_CLOUD_AGENT_PORT !== "undefined") { - port = hackOfWindowForTesting.TI_CLOUD_AGENT_PORT; - } - function tiCloudAgentServer() { - return protocol + "//" + host + port + "/ticloudagent"; - } - hostInfo.tiCloudAgentServer = tiCloudAgentServer; - function isProduction() { - return (host === "dev.ti.com"); - } - hostInfo.isProduction = isProduction; - })(hostInfo || (hostInfo = {})); - function isOfflineConfig(agentConfig) { - return undefined !== agentConfig.offline; - } - function isDesktopConfig(agentConfig) { - return undefined !== agentConfig.agentPort; - } - var loadAgentConfig; - if (typeof process === "undefined") { - loadAgentConfig = function () { - var deferred = Q.defer(); - var xmlhttp = new XMLHttpRequest(); - var url = hostInfo.tiCloudAgentServer() + "/agent_config.json"; - xmlhttp.onreadystatechange = function () { - if (xmlhttp.readyState === 4) { - if (xmlhttp.status === 200) { - deferred.resolve(JSON.parse(xmlhttp.responseText)); - } - else { - deferred.reject(xmlhttp.statusText); - } - } - }; - xmlhttp.open("GET", url); // sync - xmlhttp.send(); - return deferred.promise; - }; - } - else { - loadAgentConfig = function () { - var deferred = Q.defer(); - try { - // In the node case, agent_config.json contains the path to - // ticloudagent, and not version information - var path = require("path"); - var agentConfigData = require(path.resolve("../ticloudagent/server/public/agent_config.json")); - deferred.resolve(agentConfigData); - } - catch (e) { - console.warn("No agent_config.json found, switching to default config"); - deferred.resolve(); - } - return deferred.promise; - }; - } - var Extension = (function () { - function Extension() { - } - Extension.prototype.isInstalled = function () { - var extDomItem = document.getElementById("com.ti.TICloudAgent.Bridge"); - return extDomItem ? true : false; - }; - Extension.prototype.getVersion = function () { - var extDomItem = document.getElementById("com.ti.TICloudAgent.Bridge"); - return extDomItem.title; - }; - return Extension; - }()); - // chrome ext specific - var ChromeExt = (function (_super) { - __extends(ChromeExt, _super); - function ChromeExt() { - var _this = _super.apply(this, arguments) || this; - _this.ID = "pfillhniocmjcapelhjcianojmoidjdk"; - _this.port = null; - _this.lastRegLisenter = null; - return _this; - } - ChromeExt.prototype.init = function () { - var _this = this; - // connect to app if possible - if (chrome.runtime && chrome.runtime.connect) { - this.port = chrome.runtime.connect(this.ID); - this.port.onDisconnect.addListener(function () { - _this.port = null; - }); - } - }; - ChromeExt.prototype.postMessage = function (msgObj) { - this.port.postMessage(msgObj); - }; - ChromeExt.prototype.regOnMessage = function (listener) { - this.lastRegLisenter = listener; - this.port.onMessage.addListener(this.lastRegLisenter); - }; - ChromeExt.prototype.removeLastOnMessage = function () { - this.port.onMessage.removeListener(this.lastRegLisenter); - }; - ChromeExt.prototype.install = function () { - var failure = function (msg) { - console.error("Extension Installation Failed: " + msg); - }; - var url = "https://chrome.google.com/webstore/detail/" + this.ID; - // scheme is very delicate make sure to test all the use cases if you make changes - if (hostInfo.isProduction()) { - try { - // inline- install only works for production - chrome.webstore.install(url, function () { }, failure); - } - catch (e) { - dynamicLink(url, true); // do non inline install instead - } - } - else { - dynamicLink(url, true); // do non inline install instead - } - }; - return ChromeExt; - }(Extension)); - var DOMEventExt = (function (_super) { - __extends(DOMEventExt, _super); - function DOMEventExt() { - var _this = _super.apply(this, arguments) || this; - _this.TO_APP_MSG_STR = "ti-cloud-agent-msg-app"; - _this.TO_EXT_MSG_STR = "ti-cloud-agent-msg-ext"; - _this.lastRegListener = null; - return _this; - } - DOMEventExt.prototype.postMessage = function (msgObj) { - var event = window.document.createEvent("CustomEvent"); - event.initCustomEvent(this.TO_EXT_MSG_STR, true, true, msgObj); - window.dispatchEvent(event); - }; - DOMEventExt.prototype.regOnMessage = function (listener) { - this.lastRegListener = function (event) { - listener(event.detail); - }; - window.addEventListener(this.TO_APP_MSG_STR, this.lastRegListener, false); - }; - DOMEventExt.prototype.removeLastOnMessage = function () { - window.removeEventListener(this.TO_APP_MSG_STR, this.lastRegListener, false); - }; - return DOMEventExt; - }(Extension)); - var FirefoxExt = (function (_super) { - __extends(FirefoxExt, _super); - function FirefoxExt() { - return _super.apply(this, arguments) || this; - } - FirefoxExt.prototype.init = function (newconfig) { - this.config = newconfig; - }; - FirefoxExt.prototype.install = function () { - var extUrl = hostInfo.tiCloudAgentServer() + "/getFile/" + getOS() + "/ticloudagent/extensions/"; - extUrl += "firefox/ticloudagentbridge.xpi/LATEST"; - var params = { - TICloudAgentXPI: { - URL: extUrl, - Hash: this.config.hash, - toString: function () { - return extUrl; - }, - }, - }; - InstallTrigger.install(params); - }; - return FirefoxExt; - }(DOMEventExt)); - var SafariExt = (function (_super) { - __extends(SafariExt, _super); - function SafariExt() { - return _super.apply(this, arguments) || this; - } - SafariExt.prototype.init = function () { - }; - SafariExt.prototype.install = function () { - var extUrl = hostInfo.tiCloudAgentServer() + "/getFile/" + getOS() + "/ticloudagent/extensions/"; - extUrl += "safari/ticloudagentbridge.safariextz/LATEST"; - dynamicLink(extUrl, false); - }; - return SafariExt; - }(DOMEventExt)); - function createExtension(browser) { - switch (browser) { - case "chrome": return new ChromeExt(); - case "firefox": return new FirefoxExt(); - case "safari": return new SafariExt(); - default: return null; - } - } - // for firefox and safari use the firefoxExt object. - var browserExt = createExtension(getBrowser()); - // The socket abstraction for communicating with the host agent - // tslint:disable-next-line variable-name - it's a class - var Socket = WebSocket; - function launchHostApp(agentConfig) { - // abstraction for interfacting with the host app - function initExtensionBased(extAgentConfig, browser) { - // message types for the init TI cloud agent - var EXT_MSG_TYPES = { - INIT: "INIT_EXTENTION", - INIT_COMPLETE: "INIT_EXTENTION_COMPLETE", - }; - var POST_MESSAGE_TYPES = { - CREATE: "CREATE", - CLOSE: "CLOSE", - SEND: "SEND", - }; - var ON_MESSAGE_TYPES = { - ON_ERROR: "ON_ERROR", - ON_CLOSE: "ON_CLOSE", - ON_MESSAGE: "ON_MESSAGE", - ON_OPEN: "ON_OPEN", - }; - var typeToFunc = { - ON_ERROR: "onerror", - ON_CLOSE: "onclose", - ON_MESSAGE: "onmessage", - ON_OPEN: "onopen", - }; - var SocketToExtension = (function () { - function SocketToExtension(url, subProtocol) { - this.url = url; - this.subProtocol = subProtocol; - this.key = SocketToExtension.id++; - SocketToExtension.socketCache[this.key] = this; - browserExt.postMessage({ - key: this.key, - url: this.url, - subProtocol: this.subProtocol, - type: POST_MESSAGE_TYPES.CREATE, - }); - } - SocketToExtension.dispatchSocketEvent = function (msgObj) { - var funcName = typeToFunc[msgObj.type]; - var key = msgObj.key; - var socket = SocketToExtension.socketCache[key]; - if (socket && socket[funcName]) { - var func = socket[funcName]; - func.apply(socket, [msgObj.msgEvt]); - } - if (msgObj.type === ON_MESSAGE_TYPES.ON_CLOSE) { - if (SocketToExtension.socketCache[key]) { - delete SocketToExtension.socketCache[key]; - } - } - }; - SocketToExtension.prototype.close = function () { - // Do not rely on the extension sending us a close event. Instead, - // ignore all future events by removing ourself from the cache, and - // then send our own close event. - // See TICLD-1664 - delete SocketToExtension.socketCache[this.key]; - browserExt.postMessage({ - key: this.key, - type: POST_MESSAGE_TYPES.CLOSE, - }); - if (this.onclose) { - this.onclose(); - } - }; - SocketToExtension.prototype.send = function (data) { - browserExt.postMessage({ - key: this.key, - data: data, - type: POST_MESSAGE_TYPES.SEND, - }); - }; - return SocketToExtension; - }()); - SocketToExtension.id = 0; - SocketToExtension.socketCache = {}; - var deferred = Q.defer(); - try { - Socket = SocketToExtension; - var errors_1 = []; // list of issues while starting up - browserExt.init(extAgentConfig[browser]); - // browser ext is not installed return error - // we can't do anything else - if (!browserExt.isInstalled()) { - errors_1.push(new MissingExtension()); - deferred.reject(errors_1); - return deferred.promise; - } - var EXT_VERSION = extAgentConfig[browser].version; - // if the browser ext verision does not match, we can still try to start the agent - if (browserExt.getVersion() !== EXT_VERSION) { - errors_1.push(new InvalidExtensionVersion()); - } - function initEventListener(msgObj) { - if (msgObj.type === EXT_MSG_TYPES.INIT_COMPLETE) { - var cleanup = null; - browserExt.removeLastOnMessage(); // stop listening to the init event - if (msgObj.data.error) { - // there was an issues starting the agent - errors_1.push(new AgentNotStarted(msgObj.data.error)); - } - else if (msgObj.data.version !== extAgentConfig.installer.version) { - // we started fine, but the version was invalid - errors_1.push(new InvalidAgentVersion()); - // The agent will remain running until something - // connects to it. To prevent that, we'll connect - // but immediately close the agent - browserExt.regOnMessage(SocketToExtension.dispatchSocketEvent); - cleanup = createClientModule(msgObj.data.port) - .then(function (agent) { return agent.close(); }); - } - if (errors_1.length === 0) { - // expect all other messages to be for the - // socket interface - browserExt.regOnMessage(SocketToExtension.dispatchSocketEvent); - deferred.resolve(msgObj.data); - } - else { - if (cleanup) { - cleanup.finally(function () { return deferred.reject(errors_1); }); - } - else { - deferred.reject(errors_1); - } - } - } - else { - console.error("UNEXPECTED MESSAGE TYPE: " + msgObj.type); - } - } - // set up listeners - browserExt.regOnMessage(initEventListener); - // send message to init - browserExt.postMessage({ type: EXT_MSG_TYPES.INIT }); - } - catch (e) { - deferred.reject(e); - } - return deferred.promise; - } - function initIE() { - var deferred = Q.defer(); - var plugin = window.TICloudAgent_HACK.plugin; - var errors = []; - if (plugin && plugin.start) { - var initParamsRaw = plugin.start(); - var initParams = JSON.parse(initParamsRaw); - if (initParams.error) { - errors.push(new AgentNotStarted(initParams.error)); - deferred.reject(errors); - } - else { - deferred.resolve(initParams); - } - } - else { - errors.push(new MissingExtension()); - deferred.reject(errors); - } - return deferred.promise; - } - function initGUIComposer() { - var osFolderName = getOSFolderName(); - var isWin = /^win/.test(process.platform); - var ext = isWin ? ".bat" : ".sh"; - var spawn = require("child_process").spawn; - var fileToExec = "ticloudagent" + ext; - var pathObj = require("path"); - var fs = require("fs"); - var workingDir = pathObj.dirname(process.cwd()); - // folder structure is <install directory>/.../<app name> - // need <install directory>/win32/TICloudAgent - // start by going up to parent folder - var subdirectoryLimit = 3; - workingDir = pathObj.join(workingDir, osFolderName); - do { - workingDir = pathObj.join(workingDir, "../.."); - var dirName = "" + workingDir.toLowerCase(); - // if current folder name doesn't already end in the OS name, add it - if ((dirName.indexOf(osFolderName, dirName.length - osFolderName.length) === -1)) { - workingDir = pathObj.join(workingDir, osFolderName); - } - } while (!fs.existsSync(workingDir) && subdirectoryLimit-- > 0); - workingDir = pathObj.join(workingDir, "TICloudAgent"); - fileToExec = pathObj.join(workingDir, fileToExec); - var initParams = null; - var errors = []; - var deferred = Q.defer(); - var lp = spawn(fileToExec, ["not_chrome"], { cwd: workingDir }); - lp.stdout.on("data", function (data) { - if (initParams) { - throw new Error("AREADY INITIALIZED"); - } - initParams = JSON.parse(data.toString()); - deferred.resolve(initParams); - }); - lp.stderr.on("data", function (data) { - errors.push(new AgentNotStarted(data.toString())); - deferred.reject(errors); - }); - return deferred.promise; - } - function initGenericNW(configFile) { - var path = require("path"); - var hostAgentStart = require(path.resolve(configFile.offline.hostAgentPath)).start; - return hostAgentStart(); - } - if (!agentConfig) { - return initGUIComposer(); - } - else if (isOfflineConfig(agentConfig)) { - return initGenericNW(agentConfig); - } - else { - // Running in a browser of some kind - if (isDesktopConfig(agentConfig)) { - // Agent already launched, check for error, then return port - if (agentConfig.error) { - return Q.reject(agentConfig.error); - } - return Q({ port: agentConfig.agentPort }); - } - else { - var browser = getBrowser(); - switch (browser) { - case "ie": return initIE(); - case "chrome": - case "firefox": - case "safari": return initExtensionBased(agentConfig, browser); - default: return assertNever(browser); - } - } - } - } - var InstallWizard = (function () { - function InstallWizard(errors, connectionID) { - this.title = "TI Cloud Agent Setup"; - this.detailsLink = { - text: "What's this?", - url: "http://processors.wiki.ti.com/index.php/TI_Cloud_Agent#What_is_it.3F", - }; - this.helpLink = { - text: "Help. I already did this", - url: "http://processors.wiki.ti.com/index.php/TI_Cloud_Agent#Troubleshooting", - }; - this.finishStep = { - description: "Refresh the current browser page", - action: { - text: "$Refresh$ Page", - handler: function () { - window.location.reload(); - }, - }, - }; - this.initialMessage = { - description: "Install TI Cloud Agent to enable flashing.", - action: { - text: "Install TI Cloud Agent to enable flashing.", - }, - }; - this.description = InstallWizard.getDescriptionText(errors); - this.steps = InstallWizard.getSteps(errors, connectionID); - } - InstallWizard.getDescriptionText = function (errors) { - var wizardDesc = "Obsolete TI Cloud Agent installation found. An update is required."; - for (var _i = 0, errors_2 = errors; _i < errors_2.length; _i++) { - var error = errors_2[_i]; - if (error instanceof MissingExtension) { - wizardDesc = "Hardware interaction requires additional one time set up."; - break; - } - if (error instanceof AgentNotStarted) { - wizardDesc = "Could not launch TI Cloud Agent : " + error.msg + " ."; - } - } - wizardDesc += " Please perform the actions listed below and try your operation again."; - return wizardDesc; - }; - InstallWizard.createInstallAgentStep = function (connectionID, error) { - var actionText = "$Download$ and install the TI Cloud Agent Application"; - if (error instanceof InvalidAgentVersion) { - actionText = "$Download$ and install a new version of the TI Cloud Agent Application"; - } - var step = { - description: "Download and install the TI Cloud Agent host application.", - action: { - text: actionText, - handler: function () { - var url = hostInfo.tiCloudAgentServer() + "/getInstaller" + "?os=" + getOS(); - if (undefined !== connectionID) { - url += "&connectionID=" + connectionID; - } - dynamicLink(url); - }, - }, - }; - return step; - }; - InstallWizard.getSteps = function (errors, connectionID) { - var stepInstallExt = { - description: "Install the TI Cloud Agent browser extension.", - action: { - text: "$Install$ browser extension", - handler: function () { browserExt.install(); }, - }, - }; - var steps = []; - var browser = getBrowser(); - for (var _i = 0, errors_3 = errors; _i < errors_3.length; _i++) { - var error = errors_3[_i]; - // on I.E there is no inline extension install.. its all done by the host app installer - if (browser === TICloudAgent.BROWSER.IE && error instanceof MissingExtension) { - steps.push(InstallWizard.createInstallAgentStep(connectionID)); - } - else if (error instanceof MissingExtension) { - steps.push(stepInstallExt); - steps.push(InstallWizard.createInstallAgentStep(connectionID)); - } - else if (error instanceof AgentNotStarted || error instanceof InvalidAgentVersion) { - steps.push(InstallWizard.createInstallAgentStep(connectionID, error)); - } - else if (error instanceof InvalidExtensionVersion) { - steps.push(stepInstallExt); - } - } - // safari. we also need to restart the browser - if (browser === TICloudAgent.BROWSER.SAFARI) { - steps.push({ - description: "Restart the browser", - action: { - text: "Restart the browser", - }, - }); - } - return steps; - }; - return InstallWizard; - }()); - // make it async, to be consistent with all other API's - // We have to keep this poor name for now due to it's use throughout - // tslint:disable-next-line variable-name - TICloudAgent.Install = { - getInstallWizard: function (params) { - var deferred = Q.defer(); - deferred.resolve(new InstallWizard(params.errors, params.connectionID)); - return deferred.promise; - }, - }; - // create the client side module - function createClientModule(port, subProtocol) { - // add events related functions - var eventListeners = {}; - var moduleObj = { - addListener: function (type, listener) { - if (!eventListeners[type]) { - eventListeners[type] = []; - } - eventListeners[type].push(listener); - }, - removeListener: function (type, listener) { - if (eventListeners[type]) { - var typeListeners = eventListeners[type]; - // tslint:disable-next-line prefer-for-of - index is needed - for (var i = 0; i < typeListeners.length; i++) { - if (typeListeners[i] === listener) { - // don't remove it, just null it out - // if we remove it and the remove was called from a dispatch - // it could impact the dispatch because the length of eventsListeners will change - typeListeners[i] = null; - break; - } - } - } - }, - getSubModule: null, - close: null, - }; - var internalModuleObj = { - createSubModule: null, - listCommands: null, - }; - // command dispatch module - function createCommandDispatch() { - var commandID = 1; // start from 1 ( 0 could be mistaken for false, in certain places) - var pendingCommands = {}; - var rejectMsg = { message: "Module Closed" }; - var commandDispatchObj = { - exec: function (ws, commandName, data) { - var defCommand = Q.defer(); - var obj = { - command: commandName, - id: commandID++, - data: data, - }; - pendingCommands[obj.id] = defCommand; - var message = JSON.stringify(obj); - try { - ws.send(message); - } - catch (e) { - defCommand.reject(rejectMsg); - } - return defCommand.promise; - }, - ret: function (retObj) { - var response = retObj.response; - var error = retObj.error; - var data = retObj.data; - // it's should only be one of these - var id = response || error; - var defCommand = pendingCommands[id]; - if (defCommand) { - if (response) { - defCommand.resolve(data); - } - else { - defCommand.reject(data); - } - // delete it instaed of nulling so the map doesn't grow too large over time - delete pendingCommands[id]; - } - else { - console.error("commandDispatch : ret , Error, no promise found corresponding to id : " + id); - } - }, - }; - function cleanUp() { - // reject all outstanding requests - for (var key in pendingCommands) { - if (pendingCommands.hasOwnProperty(key)) { - var commandPromise = pendingCommands[key]; - commandPromise.reject(rejectMsg); - } - } - pendingCommands = {}; - // replace exec and ret to reject and ignore incoming requests - commandDispatchObj.exec = function () { - var defCommand = Q.defer(); - defCommand.reject(rejectMsg); - return defCommand.promise; - }; - commandDispatchObj.ret = function () { - // do nothing - return; - }; - } - moduleObj.addListener("close", cleanUp); - return commandDispatchObj; - } - var commandDispatch = createCommandDispatch(); - var eventsDispatch = { - dispatch: function (listeners, retObj) { - var typeListeners = listeners[retObj.event]; - if (typeListeners) { - for (var _i = 0, typeListeners_1 = typeListeners; _i < typeListeners_1.length; _i++) { - var listener = typeListeners_1[_i]; - if (listener) { - listener(retObj.data); - } - } - } - }, - }; - function socketUrl() { - return "ws://127.0.0.1:" + port; - } - var subModulePromises = {}; - moduleObj.getSubModule = function (subModuleName) { - var subModulePromise = subModulePromises[subModuleName]; - if (!subModulePromise) { - subModulePromise = internalModuleObj.createSubModule(subModuleName) - .then(function (data) { - return createClientModule(data.port, data.subProtocol); - }) - .then(function (subModule) { - // lets register for an onclose and onerror events to clean ourselves up - function cleanUp() { - subModulePromises[subModuleName] = null; - } - subModule.addListener("close", cleanUp); - return subModule; // pass the module down the chain - }) - .catch(function (err) { - subModulePromises[subModuleName] = null; - throw err; - }); - subModulePromises[subModuleName] = subModulePromise; - } - return subModulePromise; - }; - function createCommand(ws, fullCommandName) { - // add namespace - var commandNameParts = fullCommandName.split("."); - // everything up to the last part is part of the namespace - var parentObj = moduleObj; - // keep track of nested namespaces - var parentNamespace = ""; - function createAddListener(eventTypePrefix) { - return function (type, listener) { - // add name spaces - type = eventTypePrefix + type; - moduleObj.addListener(type, listener); - }; - } - function createRemoveListener(eventTypePrefix) { - return function (type, listener) { - // add name spaces - type = eventTypePrefix + type; - moduleObj.removeListener(type, listener); - }; - } - for (var i = 0; i < commandNameParts.length - 1; i++) { - var currentNamespacePart = commandNameParts[i]; - parentNamespace += commandNameParts[i]; - var newObj = parentObj[currentNamespacePart]; - if (!newObj) { - // lets create it - var eventTypePrefix = parentNamespace + "."; - newObj = { - addListener: createAddListener(eventTypePrefix), - removeListener: createRemoveListener(eventTypePrefix), - }; - } - // it becomes the new parent - parentObj[currentNamespacePart] = newObj; - parentObj = newObj; - parentNamespace = parentNamespace + "."; - } - var commandName = commandNameParts[commandNameParts.length - 1]; - if ("createSubModule" === fullCommandName || "listCommands" === fullCommandName) { - parentObj = internalModuleObj; - } - function theCommand() { - var data = Array.prototype.slice.call(arguments); - return commandDispatch.exec(ws, fullCommandName, data); - } - parentObj[commandName] = theCommand; - } - var setUpDef = Q.defer(); - var ws = subProtocol ? new Socket(socketUrl(), subProtocol) : new Socket(socketUrl()); - function pageUnloadHandler() { - ws.close(); - } - ws.onclose = function () { - setUpDef.reject("socket closed"); - eventsDispatch.dispatch(eventListeners, { - event: "close", - data: { - message: "socket closed", - }, - }); - // remove the listener - window.removeEventListener("unload", pageUnloadHandler); - }; - ws.onerror = function () { - setUpDef.reject("socket error"); - eventsDispatch.dispatch(eventListeners, { - event: "error", - data: { - message: "socket error", - }, - }); - }; - ws.onopen = function () { - try { - // close the socket before unloading to clean up agent - window.addEventListener("unload", pageUnloadHandler); - // set up command and event return messages - ws.onmessage = function (msgEvt) { - var retObj = JSON.parse(msgEvt.data); - if (retObj.event) { - eventsDispatch.dispatch(eventListeners, retObj); - } - else { - commandDispatch.ret(retObj); - } - }; - moduleObj.close = function () { - ws.close(); - return Q.when(); - }; - createCommand(ws, "listCommands"); // everymodule should have a listCommands command - internalModuleObj.listCommands() - .then(function (dataObj) { - // create commands - for (var _i = 0, _a = dataObj.commands; _i < _a.length; _i++) { - var command = _a[_i]; - if (command !== "listCommands") { - createCommand(ws, command); - } - } - setUpDef.resolve(moduleObj); - }) - .catch(function (err) { return setUpDef.reject(err); }); - } - catch (err) { - setUpDef.reject(err); - } - }; - return setUpDef.promise; - } - var cachedInit; - function Init() { - if (!cachedInit) { - cachedInit = loadAgentConfig() - .then(function (agentConfig) { - return launchHostApp(agentConfig); - }) - .then(function (initParams) { - return createClientModule(initParams.port); - }) - .then(function (agent) { - // Post creation configuration - return agent.addConfigProperty("cloudAgentInstallerServerURL", hostInfo.tiCloudAgentServer()) - .then(function () { - return agent; - }); - }); - } - return cachedInit; - } - TICloudAgent.Init = Init; - // hack API to figure out weather a target only supports flashing. - // it is the only sync api we have - function isFlashOnly(targetName) { - return targetName.match(".*MSP430.*G2.*") && getOS() !== TICloudAgent.OS.WIN; - } - TICloudAgent.isFlashOnly = isFlashOnly; - var Util; - (function (Util) { - function encodeAsBase64(data) { - var def = Q.defer(); - if (data instanceof Blob) { - // encode data as base 64string - var reader_1 = new FileReader(); - reader_1.readAsDataURL(data); - reader_1.onloadend = function () { - def.resolve(reader_1.result.split(",")[1]); - }; - } - else { - def.resolve(btoa(data)); - } - return def.promise; - } - Util.encodeAsBase64 = encodeAsBase64; - var keywords = ["Texas Instruments", "Texas_Instruments", "MSP", "FTDI"]; - // iterate over all ports and find the ones with matching key words - function findInterestingPorts(ports) { - var foundPorts = []; - for (var _i = 0, ports_1 = ports; _i < ports_1.length; _i++) { - var port = ports_1[_i]; - for (var _a = 0, keywords_1 = keywords; _a < keywords_1.length; _a++) { - var keyword = keywords_1[_a]; - if (port.displayName.indexOf(keyword) !== -1) { - foundPorts.push(port); - break; - } - } - } - return foundPorts; - } - ; - // select the port with match pnpId suffix - function selectWithMatchingPnpSuffixWinAndLinux(ports, suffix) { - var foundPorts = findInterestingPorts(ports); - var found = false; - // no interesting ports found - if (foundPorts.length === 0 && ports.length > 0) { - ports[0].selected = true; - } - else { - // try to find one with the matching suffix - for (var _i = 0, foundPorts_1 = foundPorts; _i < foundPorts_1.length; _i++) { - var port = foundPorts_1[_i]; - if (port.pnpId.indexOf(suffix, port.pnpId.length - suffix.length) !== -1) { - port.selected = true; - found = true; - break; - } - } - // we still haven't found one, default to the first found port - if (!found) { - foundPorts[0].selected = true; - found = true; - } - } - return found; - } - function selectDefaultWinAndLinux(ports) { - return selectWithMatchingPnpSuffixWinAndLinux(ports, "02"); - } - function selectMSP432WinAndLinux(ports) { - return selectWithMatchingPnpSuffixWinAndLinux(ports, "00"); - } - function selectMSP432OSX(ports) { - var foundPorts = findInterestingPorts(ports); - var found = false; - if (foundPorts.length > 0) { - foundPorts[0].selected = true; - found = true; - } - return found; - } - function selectDefaultOSX(ports) { - var found = false; - for (var _i = 0, ports_2 = ports; _i < ports_2.length; _i++) { - var port = ports_2[_i]; - if (port.comName.indexOf("/dev/cu.usb") !== -1 && port.manufacturer === "") { - found = true; - port.selected = found; - } - if (found) { - break; - } - } - if (!found && ports.length > 0) { - ports[0].selected = true; - } - return found; - } - function selectDefaultPort(params) { - var ports = params.ports; - var targetName = params.targetName ? params.targetName : ""; - var selectFunc = (getOS() === TICloudAgent.OS.OSX) ? selectDefaultOSX : selectDefaultWinAndLinux; - // 432 and f128 follow the same rules - if (targetName.indexOf("432") !== -1 || targetName.indexOf("cc2650f128") !== -1) { - selectFunc = (getOS() === TICloudAgent.OS.OSX) ? selectMSP432OSX : selectMSP432WinAndLinux; - } - if (targetName.indexOf("MSP430G2") !== -1 && getOS() === TICloudAgent.OS.OSX) { - selectFunc = selectMSP432OSX; - } - var found = selectFunc(ports); - return Q(found); - } - Util.selectDefaultPort = selectDefaultPort; - var baudRates = [{ - rate: "50", - selected: false, - }, { - rate: "75", - selected: false, - }, { - rate: "110", - selected: false, - }, { - rate: "134", - selected: false, - }, { - rate: "150", - selected: false, - }, { - rate: "300", - selected: false, - }, { - rate: "600", - selected: false, - }, { - rate: "1200", - selected: false, - }, { - rate: "1800", - selected: false, - }, { - rate: "2400", - selected: false, - }, { - rate: "4800", - selected: false, - }, { - rate: "7200", - selected: false, - }, { - rate: "9600", - selected: true, - }, { - rate: "14400", - selected: false, - }, { - rate: "19200", - selected: false, - }, { - rate: "28800", - selected: false, - }, { - rate: "38400", - selected: false, - }, { - rate: "56000", - selected: false, - }, { - rate: "57600", - selected: false, - }, { - rate: "115200", - selected: false, - }, { - rate: "128000", - selected: false, - }, { - rate: "153600", - selected: false, - }, { - rate: "230400", - selected: false, - }, { - rate: "256000", - selected: false, - }, { - rate: "460800", - selected: false, - }, { - rate: "921600", - selected: false, - }]; - function getBaudRates() { - return Q(baudRates); - } - Util.getBaudRates = getBaudRates; - })(Util = TICloudAgent.Util || (TICloudAgent.Util = {})); -})(TICloudAgent || (TICloudAgent = {})); diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000016 b/Software/Embedded_SW/.jxbrowser-data/Cache/f_000016 deleted file mode 100644 index 44059a5b7..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000016 +++ /dev/null @@ -1,2505 +0,0 @@ -/** - * @license - * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt - */ -// @version 0.7.22 -(function() { - window.WebComponents = window.WebComponents || { - flags: {} - }; - var file = "webcomponents-lite.js"; - var script = document.querySelector('script[src*="' + file + '"]'); - var flags = {}; - if (!flags.noOpts) { - location.search.slice(1).split("&").forEach(function(option) { - var parts = option.split("="); - var match; - if (parts[0] && (match = parts[0].match(/wc-(.+)/))) { - flags[match[1]] = parts[1] || true; - } - }); - if (script) { - for (var i = 0, a; a = script.attributes[i]; i++) { - if (a.name !== "src") { - flags[a.name] = a.value || true; - } - } - } - if (flags.log && flags.log.split) { - var parts = flags.log.split(","); - flags.log = {}; - parts.forEach(function(f) { - flags.log[f] = true; - }); - } else { - flags.log = {}; - } - } - if (flags.register) { - window.CustomElements = window.CustomElements || { - flags: {} - }; - window.CustomElements.flags.register = flags.register; - } - WebComponents.flags = flags; -})(); - -(function(scope) { - "use strict"; - var hasWorkingUrl = false; - if (!scope.forceJURL) { - try { - var u = new URL("b", "http://a"); - u.pathname = "c%20d"; - hasWorkingUrl = u.href === "http://a/c%20d"; - } catch (e) {} - } - if (hasWorkingUrl) return; - var relative = Object.create(null); - relative["ftp"] = 21; - relative["file"] = 0; - relative["gopher"] = 70; - relative["http"] = 80; - relative["https"] = 443; - relative["ws"] = 80; - relative["wss"] = 443; - var relativePathDotMapping = Object.create(null); - relativePathDotMapping["%2e"] = "."; - relativePathDotMapping[".%2e"] = ".."; - relativePathDotMapping["%2e."] = ".."; - relativePathDotMapping["%2e%2e"] = ".."; - function isRelativeScheme(scheme) { - return relative[scheme] !== undefined; - } - function invalid() { - clear.call(this); - this._isInvalid = true; - } - function IDNAToASCII(h) { - if ("" == h) { - invalid.call(this); - } - return h.toLowerCase(); - } - function percentEscape(c) { - var unicode = c.charCodeAt(0); - if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 63, 96 ].indexOf(unicode) == -1) { - return c; - } - return encodeURIComponent(c); - } - function percentEscapeQuery(c) { - var unicode = c.charCodeAt(0); - if (unicode > 32 && unicode < 127 && [ 34, 35, 60, 62, 96 ].indexOf(unicode) == -1) { - return c; - } - return encodeURIComponent(c); - } - var EOF = undefined, ALPHA = /[a-zA-Z]/, ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; - function parse(input, stateOverride, base) { - function err(message) { - errors.push(message); - } - var state = stateOverride || "scheme start", cursor = 0, buffer = "", seenAt = false, seenBracket = false, errors = []; - loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) { - var c = input[cursor]; - switch (state) { - case "scheme start": - if (c && ALPHA.test(c)) { - buffer += c.toLowerCase(); - state = "scheme"; - } else if (!stateOverride) { - buffer = ""; - state = "no scheme"; - continue; - } else { - err("Invalid scheme."); - break loop; - } - break; - - case "scheme": - if (c && ALPHANUMERIC.test(c)) { - buffer += c.toLowerCase(); - } else if (":" == c) { - this._scheme = buffer; - buffer = ""; - if (stateOverride) { - break loop; - } - if (isRelativeScheme(this._scheme)) { - this._isRelative = true; - } - if ("file" == this._scheme) { - state = "relative"; - } else if (this._isRelative && base && base._scheme == this._scheme) { - state = "relative or authority"; - } else if (this._isRelative) { - state = "authority first slash"; - } else { - state = "scheme data"; - } - } else if (!stateOverride) { - buffer = ""; - cursor = 0; - state = "no scheme"; - continue; - } else if (EOF == c) { - break loop; - } else { - err("Code point not allowed in scheme: " + c); - break loop; - } - break; - - case "scheme data": - if ("?" == c) { - this._query = "?"; - state = "query"; - } else if ("#" == c) { - this._fragment = "#"; - state = "fragment"; - } else { - if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._schemeData += percentEscape(c); - } - } - break; - - case "no scheme": - if (!base || !isRelativeScheme(base._scheme)) { - err("Missing scheme."); - invalid.call(this); - } else { - state = "relative"; - continue; - } - break; - - case "relative or authority": - if ("/" == c && "/" == input[cursor + 1]) { - state = "authority ignore slashes"; - } else { - err("Expected /, got: " + c); - state = "relative"; - continue; - } - break; - - case "relative": - this._isRelative = true; - if ("file" != this._scheme) this._scheme = base._scheme; - if (EOF == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._username = base._username; - this._password = base._password; - break loop; - } else if ("/" == c || "\\" == c) { - if ("\\" == c) err("\\ is an invalid code point."); - state = "relative slash"; - } else if ("?" == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = "?"; - this._username = base._username; - this._password = base._password; - state = "query"; - } else if ("#" == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._fragment = "#"; - this._username = base._username; - this._password = base._password; - state = "fragment"; - } else { - var nextC = input[cursor + 1]; - var nextNextC = input[cursor + 2]; - if ("file" != this._scheme || !ALPHA.test(c) || nextC != ":" && nextC != "|" || EOF != nextNextC && "/" != nextNextC && "\\" != nextNextC && "?" != nextNextC && "#" != nextNextC) { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - this._path = base._path.slice(); - this._path.pop(); - } - state = "relative path"; - continue; - } - break; - - case "relative slash": - if ("/" == c || "\\" == c) { - if ("\\" == c) { - err("\\ is an invalid code point."); - } - if ("file" == this._scheme) { - state = "file host"; - } else { - state = "authority ignore slashes"; - } - } else { - if ("file" != this._scheme) { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - } - state = "relative path"; - continue; - } - break; - - case "authority first slash": - if ("/" == c) { - state = "authority second slash"; - } else { - err("Expected '/', got: " + c); - state = "authority ignore slashes"; - continue; - } - break; - - case "authority second slash": - state = "authority ignore slashes"; - if ("/" != c) { - err("Expected '/', got: " + c); - continue; - } - break; - - case "authority ignore slashes": - if ("/" != c && "\\" != c) { - state = "authority"; - continue; - } else { - err("Expected authority, got: " + c); - } - break; - - case "authority": - if ("@" == c) { - if (seenAt) { - err("@ already seen."); - buffer += "%40"; - } - seenAt = true; - for (var i = 0; i < buffer.length; i++) { - var cp = buffer[i]; - if (" " == cp || "\n" == cp || "\r" == cp) { - err("Invalid whitespace in authority."); - continue; - } - if (":" == cp && null === this._password) { - this._password = ""; - continue; - } - var tempC = percentEscape(cp); - null !== this._password ? this._password += tempC : this._username += tempC; - } - buffer = ""; - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - cursor -= buffer.length; - buffer = ""; - state = "host"; - continue; - } else { - buffer += c; - } - break; - - case "file host": - if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ":" || buffer[1] == "|")) { - state = "relative path"; - } else if (buffer.length == 0) { - state = "relative path start"; - } else { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "relative path start"; - } - continue; - } else if (" " == c || "\n" == c || "\r" == c) { - err("Invalid whitespace in file host."); - } else { - buffer += c; - } - break; - - case "host": - case "hostname": - if (":" == c && !seenBracket) { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "port"; - if ("hostname" == stateOverride) { - break loop; - } - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "relative path start"; - if (stateOverride) { - break loop; - } - continue; - } else if (" " != c && "\n" != c && "\r" != c) { - if ("[" == c) { - seenBracket = true; - } else if ("]" == c) { - seenBracket = false; - } - buffer += c; - } else { - err("Invalid code point in host/hostname: " + c); - } - break; - - case "port": - if (/[0-9]/.test(c)) { - buffer += c; - } else if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c || stateOverride) { - if ("" != buffer) { - var temp = parseInt(buffer, 10); - if (temp != relative[this._scheme]) { - this._port = temp + ""; - } - buffer = ""; - } - if (stateOverride) { - break loop; - } - state = "relative path start"; - continue; - } else if (" " == c || "\n" == c || "\r" == c) { - err("Invalid code point in port: " + c); - } else { - invalid.call(this); - } - break; - - case "relative path start": - if ("\\" == c) err("'\\' not allowed in path."); - state = "relative path"; - if ("/" != c && "\\" != c) { - continue; - } - break; - - case "relative path": - if (EOF == c || "/" == c || "\\" == c || !stateOverride && ("?" == c || "#" == c)) { - if ("\\" == c) { - err("\\ not allowed in relative path."); - } - var tmp; - if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { - buffer = tmp; - } - if (".." == buffer) { - this._path.pop(); - if ("/" != c && "\\" != c) { - this._path.push(""); - } - } else if ("." == buffer && "/" != c && "\\" != c) { - this._path.push(""); - } else if ("." != buffer) { - if ("file" == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == "|") { - buffer = buffer[0] + ":"; - } - this._path.push(buffer); - } - buffer = ""; - if ("?" == c) { - this._query = "?"; - state = "query"; - } else if ("#" == c) { - this._fragment = "#"; - state = "fragment"; - } - } else if (" " != c && "\n" != c && "\r" != c) { - buffer += percentEscape(c); - } - break; - - case "query": - if (!stateOverride && "#" == c) { - this._fragment = "#"; - state = "fragment"; - } else if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._query += percentEscapeQuery(c); - } - break; - - case "fragment": - if (EOF != c && " " != c && "\n" != c && "\r" != c) { - this._fragment += c; - } - break; - } - cursor++; - } - } - function clear() { - this._scheme = ""; - this._schemeData = ""; - this._username = ""; - this._password = null; - this._host = ""; - this._port = ""; - this._path = []; - this._query = ""; - this._fragment = ""; - this._isInvalid = false; - this._isRelative = false; - } - function jURL(url, base) { - if (base !== undefined && !(base instanceof jURL)) base = new jURL(String(base)); - this._url = url; - clear.call(this); - var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ""); - parse.call(this, input, null, base); - } - jURL.prototype = { - toString: function() { - return this.href; - }, - get href() { - if (this._isInvalid) return this._url; - var authority = ""; - if ("" != this._username || null != this._password) { - authority = this._username + (null != this._password ? ":" + this._password : "") + "@"; - } - return this.protocol + (this._isRelative ? "//" + authority + this.host : "") + this.pathname + this._query + this._fragment; - }, - set href(href) { - clear.call(this); - parse.call(this, href); - }, - get protocol() { - return this._scheme + ":"; - }, - set protocol(protocol) { - if (this._isInvalid) return; - parse.call(this, protocol + ":", "scheme start"); - }, - get host() { - return this._isInvalid ? "" : this._port ? this._host + ":" + this._port : this._host; - }, - set host(host) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, host, "host"); - }, - get hostname() { - return this._host; - }, - set hostname(hostname) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, hostname, "hostname"); - }, - get port() { - return this._port; - }, - set port(port) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, port, "port"); - }, - get pathname() { - return this._isInvalid ? "" : this._isRelative ? "/" + this._path.join("/") : this._schemeData; - }, - set pathname(pathname) { - if (this._isInvalid || !this._isRelative) return; - this._path = []; - parse.call(this, pathname, "relative path start"); - }, - get search() { - return this._isInvalid || !this._query || "?" == this._query ? "" : this._query; - }, - set search(search) { - if (this._isInvalid || !this._isRelative) return; - this._query = "?"; - if ("?" == search[0]) search = search.slice(1); - parse.call(this, search, "query"); - }, - get hash() { - return this._isInvalid || !this._fragment || "#" == this._fragment ? "" : this._fragment; - }, - set hash(hash) { - if (this._isInvalid) return; - this._fragment = "#"; - if ("#" == hash[0]) hash = hash.slice(1); - parse.call(this, hash, "fragment"); - }, - get origin() { - var host; - if (this._isInvalid || !this._scheme) { - return ""; - } - switch (this._scheme) { - case "data": - case "file": - case "javascript": - case "mailto": - return "null"; - } - host = this.host; - if (!host) { - return ""; - } - return this._scheme + "://" + host; - } - }; - var OriginalURL = scope.URL; - if (OriginalURL) { - jURL.createObjectURL = function(blob) { - return OriginalURL.createObjectURL.apply(OriginalURL, arguments); - }; - jURL.revokeObjectURL = function(url) { - OriginalURL.revokeObjectURL(url); - }; - } - scope.URL = jURL; -})(self); - -if (typeof WeakMap === "undefined") { - (function() { - var defineProperty = Object.defineProperty; - var counter = Date.now() % 1e9; - var WeakMap = function() { - this.name = "__st" + (Math.random() * 1e9 >>> 0) + (counter++ + "__"); - }; - WeakMap.prototype = { - set: function(key, value) { - var entry = key[this.name]; - if (entry && entry[0] === key) entry[1] = value; else defineProperty(key, this.name, { - value: [ key, value ], - writable: true - }); - return this; - }, - get: function(key) { - var entry; - return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined; - }, - "delete": function(key) { - var entry = key[this.name]; - if (!entry || entry[0] !== key) return false; - entry[0] = entry[1] = undefined; - return true; - }, - has: function(key) { - var entry = key[this.name]; - if (!entry) return false; - return entry[0] === key; - } - }; - window.WeakMap = WeakMap; - })(); -} - -(function(global) { - if (global.JsMutationObserver) { - return; - } - var registrationsTable = new WeakMap(); - var setImmediate; - if (/Trident|Edge/.test(navigator.userAgent)) { - setImmediate = setTimeout; - } else if (window.setImmediate) { - setImmediate = window.setImmediate; - } else { - var setImmediateQueue = []; - var sentinel = String(Math.random()); - window.addEventListener("message", function(e) { - if (e.data === sentinel) { - var queue = setImmediateQueue; - setImmediateQueue = []; - queue.forEach(function(func) { - func(); - }); - } - }); - setImmediate = function(func) { - setImmediateQueue.push(func); - window.postMessage(sentinel, "*"); - }; - } - var isScheduled = false; - var scheduledObservers = []; - function scheduleCallback(observer) { - scheduledObservers.push(observer); - if (!isScheduled) { - isScheduled = true; - setImmediate(dispatchCallbacks); - } - } - function wrapIfNeeded(node) { - return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node; - } - function dispatchCallbacks() { - isScheduled = false; - var observers = scheduledObservers; - scheduledObservers = []; - observers.sort(function(o1, o2) { - return o1.uid_ - o2.uid_; - }); - var anyNonEmpty = false; - observers.forEach(function(observer) { - var queue = observer.takeRecords(); - removeTransientObserversFor(observer); - if (queue.length) { - observer.callback_(queue, observer); - anyNonEmpty = true; - } - }); - if (anyNonEmpty) dispatchCallbacks(); - } - function removeTransientObserversFor(observer) { - observer.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - if (!registrations) return; - registrations.forEach(function(registration) { - if (registration.observer === observer) registration.removeTransientObservers(); - }); - }); - } - function forEachAncestorAndObserverEnqueueRecord(target, callback) { - for (var node = target; node; node = node.parentNode) { - var registrations = registrationsTable.get(node); - if (registrations) { - for (var j = 0; j < registrations.length; j++) { - var registration = registrations[j]; - var options = registration.options; - if (node !== target && !options.subtree) continue; - var record = callback(options); - if (record) registration.enqueue(record); - } - } - } - } - var uidCounter = 0; - function JsMutationObserver(callback) { - this.callback_ = callback; - this.nodes_ = []; - this.records_ = []; - this.uid_ = ++uidCounter; - } - JsMutationObserver.prototype = { - observe: function(target, options) { - target = wrapIfNeeded(target); - if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) { - throw new SyntaxError(); - } - var registrations = registrationsTable.get(target); - if (!registrations) registrationsTable.set(target, registrations = []); - var registration; - for (var i = 0; i < registrations.length; i++) { - if (registrations[i].observer === this) { - registration = registrations[i]; - registration.removeListeners(); - registration.options = options; - break; - } - } - if (!registration) { - registration = new Registration(this, target, options); - registrations.push(registration); - this.nodes_.push(target); - } - registration.addListeners(); - }, - disconnect: function() { - this.nodes_.forEach(function(node) { - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - var registration = registrations[i]; - if (registration.observer === this) { - registration.removeListeners(); - registrations.splice(i, 1); - break; - } - } - }, this); - this.records_ = []; - }, - takeRecords: function() { - var copyOfRecords = this.records_; - this.records_ = []; - return copyOfRecords; - } - }; - function MutationRecord(type, target) { - this.type = type; - this.target = target; - this.addedNodes = []; - this.removedNodes = []; - this.previousSibling = null; - this.nextSibling = null; - this.attributeName = null; - this.attributeNamespace = null; - this.oldValue = null; - } - function copyMutationRecord(original) { - var record = new MutationRecord(original.type, original.target); - record.addedNodes = original.addedNodes.slice(); - record.removedNodes = original.removedNodes.slice(); - record.previousSibling = original.previousSibling; - record.nextSibling = original.nextSibling; - record.attributeName = original.attributeName; - record.attributeNamespace = original.attributeNamespace; - record.oldValue = original.oldValue; - return record; - } - var currentRecord, recordWithOldValue; - function getRecord(type, target) { - return currentRecord = new MutationRecord(type, target); - } - function getRecordWithOldValue(oldValue) { - if (recordWithOldValue) return recordWithOldValue; - recordWithOldValue = copyMutationRecord(currentRecord); - recordWithOldValue.oldValue = oldValue; - return recordWithOldValue; - } - function clearRecords() { - currentRecord = recordWithOldValue = undefined; - } - function recordRepresentsCurrentMutation(record) { - return record === recordWithOldValue || record === currentRecord; - } - function selectRecord(lastRecord, newRecord) { - if (lastRecord === newRecord) return lastRecord; - if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue; - return null; - } - function Registration(observer, target, options) { - this.observer = observer; - this.target = target; - this.options = options; - this.transientObservedNodes = []; - } - Registration.prototype = { - enqueue: function(record) { - var records = this.observer.records_; - var length = records.length; - if (records.length > 0) { - var lastRecord = records[length - 1]; - var recordToReplaceLast = selectRecord(lastRecord, record); - if (recordToReplaceLast) { - records[length - 1] = recordToReplaceLast; - return; - } - } else { - scheduleCallback(this.observer); - } - records[length] = record; - }, - addListeners: function() { - this.addListeners_(this.target); - }, - addListeners_: function(node) { - var options = this.options; - if (options.attributes) node.addEventListener("DOMAttrModified", this, true); - if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.addEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true); - }, - removeListeners: function() { - this.removeListeners_(this.target); - }, - removeListeners_: function(node) { - var options = this.options; - if (options.attributes) node.removeEventListener("DOMAttrModified", this, true); - if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true); - if (options.childList) node.removeEventListener("DOMNodeInserted", this, true); - if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true); - }, - addTransientObserver: function(node) { - if (node === this.target) return; - this.addListeners_(node); - this.transientObservedNodes.push(node); - var registrations = registrationsTable.get(node); - if (!registrations) registrationsTable.set(node, registrations = []); - registrations.push(this); - }, - removeTransientObservers: function() { - var transientObservedNodes = this.transientObservedNodes; - this.transientObservedNodes = []; - transientObservedNodes.forEach(function(node) { - this.removeListeners_(node); - var registrations = registrationsTable.get(node); - for (var i = 0; i < registrations.length; i++) { - if (registrations[i] === this) { - registrations.splice(i, 1); - break; - } - } - }, this); - }, - handleEvent: function(e) { - e.stopImmediatePropagation(); - switch (e.type) { - case "DOMAttrModified": - var name = e.attrName; - var namespace = e.relatedNode.namespaceURI; - var target = e.target; - var record = new getRecord("attributes", target); - record.attributeName = name; - record.attributeNamespace = namespace; - var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.attributes) return; - if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) { - return; - } - if (options.attributeOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMCharacterDataModified": - var target = e.target; - var record = getRecord("characterData", target); - var oldValue = e.prevValue; - forEachAncestorAndObserverEnqueueRecord(target, function(options) { - if (!options.characterData) return; - if (options.characterDataOldValue) return getRecordWithOldValue(oldValue); - return record; - }); - break; - - case "DOMNodeRemoved": - this.addTransientObserver(e.target); - - case "DOMNodeInserted": - var changedNode = e.target; - var addedNodes, removedNodes; - if (e.type === "DOMNodeInserted") { - addedNodes = [ changedNode ]; - removedNodes = []; - } else { - addedNodes = []; - removedNodes = [ changedNode ]; - } - var previousSibling = changedNode.previousSibling; - var nextSibling = changedNode.nextSibling; - var record = getRecord("childList", e.target.parentNode); - record.addedNodes = addedNodes; - record.removedNodes = removedNodes; - record.previousSibling = previousSibling; - record.nextSibling = nextSibling; - forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) { - if (!options.childList) return; - return record; - }); - } - clearRecords(); - } - }; - global.JsMutationObserver = JsMutationObserver; - if (!global.MutationObserver) { - global.MutationObserver = JsMutationObserver; - JsMutationObserver._isPolyfilled = true; - } -})(self); - -(function() { - var needsTemplate = typeof HTMLTemplateElement === "undefined"; - if (/Trident/.test(navigator.userAgent)) { - (function() { - var importNode = document.importNode; - document.importNode = function() { - var n = importNode.apply(document, arguments); - if (n.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { - var f = document.createDocumentFragment(); - f.appendChild(n); - return f; - } else { - return n; - } - }; - })(); - } - var needsCloning = function() { - if (!needsTemplate) { - var t = document.createElement("template"); - var t2 = document.createElement("template"); - t2.content.appendChild(document.createElement("div")); - t.content.appendChild(t2); - var clone = t.cloneNode(true); - return clone.content.childNodes.length === 0 || clone.content.firstChild.content.childNodes.length === 0; - } - }(); - var TEMPLATE_TAG = "template"; - var TemplateImpl = function() {}; - if (needsTemplate) { - var contentDoc = document.implementation.createHTMLDocument("template"); - var canDecorate = true; - var templateStyle = document.createElement("style"); - templateStyle.textContent = TEMPLATE_TAG + "{display:none;}"; - var head = document.head; - head.insertBefore(templateStyle, head.firstElementChild); - TemplateImpl.prototype = Object.create(HTMLElement.prototype); - TemplateImpl.decorate = function(template) { - if (template.content) { - return; - } - template.content = contentDoc.createDocumentFragment(); - var child; - while (child = template.firstChild) { - template.content.appendChild(child); - } - template.cloneNode = function(deep) { - return TemplateImpl.cloneNode(this, deep); - }; - if (canDecorate) { - try { - Object.defineProperty(template, "innerHTML", { - get: function() { - var o = ""; - for (var e = this.content.firstChild; e; e = e.nextSibling) { - o += e.outerHTML || escapeData(e.data); - } - return o; - }, - set: function(text) { - contentDoc.body.innerHTML = text; - TemplateImpl.bootstrap(contentDoc); - while (this.content.firstChild) { - this.content.removeChild(this.content.firstChild); - } - while (contentDoc.body.firstChild) { - this.content.appendChild(contentDoc.body.firstChild); - } - }, - configurable: true - }); - } catch (err) { - canDecorate = false; - } - } - TemplateImpl.bootstrap(template.content); - }; - TemplateImpl.bootstrap = function(doc) { - var templates = doc.querySelectorAll(TEMPLATE_TAG); - for (var i = 0, l = templates.length, t; i < l && (t = templates[i]); i++) { - TemplateImpl.decorate(t); - } - }; - document.addEventListener("DOMContentLoaded", function() { - TemplateImpl.bootstrap(document); - }); - var createElement = document.createElement; - document.createElement = function() { - "use strict"; - var el = createElement.apply(document, arguments); - if (el.localName === "template") { - TemplateImpl.decorate(el); - } - return el; - }; - var escapeDataRegExp = /[&\u00A0<>]/g; - function escapeReplace(c) { - switch (c) { - case "&": - return "&"; - - case "<": - return "<"; - - case ">": - return ">"; - - case " ": - return " "; - } - } - function escapeData(s) { - return s.replace(escapeDataRegExp, escapeReplace); - } - } - if (needsTemplate || needsCloning) { - var nativeCloneNode = Node.prototype.cloneNode; - TemplateImpl.cloneNode = function(template, deep) { - var clone = nativeCloneNode.call(template, false); - if (this.decorate) { - this.decorate(clone); - } - if (deep) { - clone.content.appendChild(nativeCloneNode.call(template.content, true)); - this.fixClonedDom(clone.content, template.content); - } - return clone; - }; - TemplateImpl.fixClonedDom = function(clone, source) { - if (!source.querySelectorAll) return; - var s$ = source.querySelectorAll(TEMPLATE_TAG); - var t$ = clone.querySelectorAll(TEMPLATE_TAG); - for (var i = 0, l = t$.length, t, s; i < l; i++) { - s = s$[i]; - t = t$[i]; - if (this.decorate) { - this.decorate(s); - } - t.parentNode.replaceChild(s.cloneNode(true), t); - } - }; - var originalImportNode = document.importNode; - Node.prototype.cloneNode = function(deep) { - var dom = nativeCloneNode.call(this, deep); - if (deep) { - TemplateImpl.fixClonedDom(dom, this); - } - return dom; - }; - document.importNode = function(element, deep) { - if (element.localName === TEMPLATE_TAG) { - return TemplateImpl.cloneNode(element, deep); - } else { - var dom = originalImportNode.call(document, element, deep); - if (deep) { - TemplateImpl.fixClonedDom(dom, element); - } - return dom; - } - }; - if (needsCloning) { - HTMLTemplateElement.prototype.cloneNode = function(deep) { - return TemplateImpl.cloneNode(this, deep); - }; - } - } - if (needsTemplate) { - window.HTMLTemplateElement = TemplateImpl; - } -})(); - -(function(scope) { - "use strict"; - if (!window.performance) { - var start = Date.now(); - window.performance = { - now: function() { - return Date.now() - start; - } - }; - } - if (!window.requestAnimationFrame) { - window.requestAnimationFrame = function() { - var nativeRaf = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame; - return nativeRaf ? function(callback) { - return nativeRaf(function() { - callback(performance.now()); - }); - } : function(callback) { - return window.setTimeout(callback, 1e3 / 60); - }; - }(); - } - if (!window.cancelAnimationFrame) { - window.cancelAnimationFrame = function() { - return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function(id) { - clearTimeout(id); - }; - }(); - } - var workingDefaultPrevented = function() { - var e = document.createEvent("Event"); - e.initEvent("foo", true, true); - e.preventDefault(); - return e.defaultPrevented; - }(); - if (!workingDefaultPrevented) { - var origPreventDefault = Event.prototype.preventDefault; - Event.prototype.preventDefault = function() { - if (!this.cancelable) { - return; - } - origPreventDefault.call(this); - Object.defineProperty(this, "defaultPrevented", { - get: function() { - return true; - }, - configurable: true - }); - }; - } - var isIE = /Trident/.test(navigator.userAgent); - if (!window.CustomEvent || isIE && typeof window.CustomEvent !== "function") { - window.CustomEvent = function(inType, params) { - params = params || {}; - var e = document.createEvent("CustomEvent"); - e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail); - return e; - }; - window.CustomEvent.prototype = window.Event.prototype; - } - if (!window.Event || isIE && typeof window.Event !== "function") { - var origEvent = window.Event; - window.Event = function(inType, params) { - params = params || {}; - var e = document.createEvent("Event"); - e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable)); - return e; - }; - window.Event.prototype = origEvent.prototype; - } -})(window.WebComponents); - -window.HTMLImports = window.HTMLImports || { - flags: {} -}; - -(function(scope) { - var IMPORT_LINK_TYPE = "import"; - var useNative = Boolean(IMPORT_LINK_TYPE in document.createElement("link")); - var hasShadowDOMPolyfill = Boolean(window.ShadowDOMPolyfill); - var wrap = function(node) { - return hasShadowDOMPolyfill ? window.ShadowDOMPolyfill.wrapIfNeeded(node) : node; - }; - var rootDocument = wrap(document); - var currentScriptDescriptor = { - get: function() { - var script = window.HTMLImports.currentScript || document.currentScript || (document.readyState !== "complete" ? document.scripts[document.scripts.length - 1] : null); - return wrap(script); - }, - configurable: true - }; - Object.defineProperty(document, "_currentScript", currentScriptDescriptor); - Object.defineProperty(rootDocument, "_currentScript", currentScriptDescriptor); - var isIE = /Trident/.test(navigator.userAgent); - function whenReady(callback, doc) { - doc = doc || rootDocument; - whenDocumentReady(function() { - watchImportsLoad(callback, doc); - }, doc); - } - var requiredReadyState = isIE ? "complete" : "interactive"; - var READY_EVENT = "readystatechange"; - function isDocumentReady(doc) { - return doc.readyState === "complete" || doc.readyState === requiredReadyState; - } - function whenDocumentReady(callback, doc) { - if (!isDocumentReady(doc)) { - var checkReady = function() { - if (doc.readyState === "complete" || doc.readyState === requiredReadyState) { - doc.removeEventListener(READY_EVENT, checkReady); - whenDocumentReady(callback, doc); - } - }; - doc.addEventListener(READY_EVENT, checkReady); - } else if (callback) { - callback(); - } - } - function markTargetLoaded(event) { - event.target.__loaded = true; - } - function watchImportsLoad(callback, doc) { - var imports = doc.querySelectorAll("link[rel=import]"); - var parsedCount = 0, importCount = imports.length, newImports = [], errorImports = []; - function checkDone() { - if (parsedCount == importCount && callback) { - callback({ - allImports: imports, - loadedImports: newImports, - errorImports: errorImports - }); - } - } - function loadedImport(e) { - markTargetLoaded(e); - newImports.push(this); - parsedCount++; - checkDone(); - } - function errorLoadingImport(e) { - errorImports.push(this); - parsedCount++; - checkDone(); - } - if (importCount) { - for (var i = 0, imp; i < importCount && (imp = imports[i]); i++) { - if (isImportLoaded(imp)) { - newImports.push(this); - parsedCount++; - checkDone(); - } else { - imp.addEventListener("load", loadedImport); - imp.addEventListener("error", errorLoadingImport); - } - } - } else { - checkDone(); - } - } - function isImportLoaded(link) { - return useNative ? link.__loaded || link.import && link.import.readyState !== "loading" : link.__importParsed; - } - if (useNative) { - new MutationObserver(function(mxns) { - for (var i = 0, l = mxns.length, m; i < l && (m = mxns[i]); i++) { - if (m.addedNodes) { - handleImports(m.addedNodes); - } - } - }).observe(document.head, { - childList: true - }); - function handleImports(nodes) { - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (isImport(n)) { - handleImport(n); - } - } - } - function isImport(element) { - return element.localName === "link" && element.rel === "import"; - } - function handleImport(element) { - var loaded = element.import; - if (loaded) { - markTargetLoaded({ - target: element - }); - } else { - element.addEventListener("load", markTargetLoaded); - element.addEventListener("error", markTargetLoaded); - } - } - (function() { - if (document.readyState === "loading") { - var imports = document.querySelectorAll("link[rel=import]"); - for (var i = 0, l = imports.length, imp; i < l && (imp = imports[i]); i++) { - handleImport(imp); - } - } - })(); - } - whenReady(function(detail) { - window.HTMLImports.ready = true; - window.HTMLImports.readyTime = new Date().getTime(); - var evt = rootDocument.createEvent("CustomEvent"); - evt.initCustomEvent("HTMLImportsLoaded", true, true, detail); - rootDocument.dispatchEvent(evt); - }); - scope.IMPORT_LINK_TYPE = IMPORT_LINK_TYPE; - scope.useNative = useNative; - scope.rootDocument = rootDocument; - scope.whenReady = whenReady; - scope.isIE = isIE; -})(window.HTMLImports); - -(function(scope) { - var modules = []; - var addModule = function(module) { - modules.push(module); - }; - var initializeModules = function() { - modules.forEach(function(module) { - module(scope); - }); - }; - scope.addModule = addModule; - scope.initializeModules = initializeModules; -})(window.HTMLImports); - -window.HTMLImports.addModule(function(scope) { - var CSS_URL_REGEXP = /(url\()([^)]*)(\))/g; - var CSS_IMPORT_REGEXP = /(@import[\s]+(?!url\())([^;]*)(;)/g; - var path = { - resolveUrlsInStyle: function(style, linkUrl) { - var doc = style.ownerDocument; - var resolver = doc.createElement("a"); - style.textContent = this.resolveUrlsInCssText(style.textContent, linkUrl, resolver); - return style; - }, - resolveUrlsInCssText: function(cssText, linkUrl, urlObj) { - var r = this.replaceUrls(cssText, urlObj, linkUrl, CSS_URL_REGEXP); - r = this.replaceUrls(r, urlObj, linkUrl, CSS_IMPORT_REGEXP); - return r; - }, - replaceUrls: function(text, urlObj, linkUrl, regexp) { - return text.replace(regexp, function(m, pre, url, post) { - var urlPath = url.replace(/["']/g, ""); - if (linkUrl) { - urlPath = new URL(urlPath, linkUrl).href; - } - urlObj.href = urlPath; - urlPath = urlObj.href; - return pre + "'" + urlPath + "'" + post; - }); - } - }; - scope.path = path; -}); - -window.HTMLImports.addModule(function(scope) { - var xhr = { - async: true, - ok: function(request) { - return request.status >= 200 && request.status < 300 || request.status === 304 || request.status === 0; - }, - load: function(url, next, nextContext) { - var request = new XMLHttpRequest(); - if (scope.flags.debug || scope.flags.bust) { - url += "?" + Math.random(); - } - request.open("GET", url, xhr.async); - request.addEventListener("readystatechange", function(e) { - if (request.readyState === 4) { - var redirectedUrl = null; - try { - var locationHeader = request.getResponseHeader("Location"); - if (locationHeader) { - redirectedUrl = locationHeader.substr(0, 1) === "/" ? location.origin + locationHeader : locationHeader; - } - } catch (e) { - console.error(e.message); - } - next.call(nextContext, !xhr.ok(request) && request, request.response || request.responseText, redirectedUrl); - } - }); - request.send(); - return request; - }, - loadDocument: function(url, next, nextContext) { - this.load(url, next, nextContext).responseType = "document"; - } - }; - scope.xhr = xhr; -}); - -window.HTMLImports.addModule(function(scope) { - var xhr = scope.xhr; - var flags = scope.flags; - var Loader = function(onLoad, onComplete) { - this.cache = {}; - this.onload = onLoad; - this.oncomplete = onComplete; - this.inflight = 0; - this.pending = {}; - }; - Loader.prototype = { - addNodes: function(nodes) { - this.inflight += nodes.length; - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - this.require(n); - } - this.checkDone(); - }, - addNode: function(node) { - this.inflight++; - this.require(node); - this.checkDone(); - }, - require: function(elt) { - var url = elt.src || elt.href; - elt.__nodeUrl = url; - if (!this.dedupe(url, elt)) { - this.fetch(url, elt); - } - }, - dedupe: function(url, elt) { - if (this.pending[url]) { - this.pending[url].push(elt); - return true; - } - var resource; - if (this.cache[url]) { - this.onload(url, elt, this.cache[url]); - this.tail(); - return true; - } - this.pending[url] = [ elt ]; - return false; - }, - fetch: function(url, elt) { - flags.load && console.log("fetch", url, elt); - if (!url) { - setTimeout(function() { - this.receive(url, elt, { - error: "href must be specified" - }, null); - }.bind(this), 0); - } else if (url.match(/^data:/)) { - var pieces = url.split(","); - var header = pieces[0]; - var body = pieces[1]; - if (header.indexOf(";base64") > -1) { - body = atob(body); - } else { - body = decodeURIComponent(body); - } - setTimeout(function() { - this.receive(url, elt, null, body); - }.bind(this), 0); - } else { - var receiveXhr = function(err, resource, redirectedUrl) { - this.receive(url, elt, err, resource, redirectedUrl); - }.bind(this); - xhr.load(url, receiveXhr); - } - }, - receive: function(url, elt, err, resource, redirectedUrl) { - this.cache[url] = resource; - var $p = this.pending[url]; - for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { - this.onload(url, p, resource, err, redirectedUrl); - this.tail(); - } - this.pending[url] = null; - }, - tail: function() { - --this.inflight; - this.checkDone(); - }, - checkDone: function() { - if (!this.inflight) { - this.oncomplete(); - } - } - }; - scope.Loader = Loader; -}); - -window.HTMLImports.addModule(function(scope) { - var Observer = function(addCallback) { - this.addCallback = addCallback; - this.mo = new MutationObserver(this.handler.bind(this)); - }; - Observer.prototype = { - handler: function(mutations) { - for (var i = 0, l = mutations.length, m; i < l && (m = mutations[i]); i++) { - if (m.type === "childList" && m.addedNodes.length) { - this.addedNodes(m.addedNodes); - } - } - }, - addedNodes: function(nodes) { - if (this.addCallback) { - this.addCallback(nodes); - } - for (var i = 0, l = nodes.length, n, loading; i < l && (n = nodes[i]); i++) { - if (n.children && n.children.length) { - this.addedNodes(n.children); - } - } - }, - observe: function(root) { - this.mo.observe(root, { - childList: true, - subtree: true - }); - } - }; - scope.Observer = Observer; -}); - -window.HTMLImports.addModule(function(scope) { - var path = scope.path; - var rootDocument = scope.rootDocument; - var flags = scope.flags; - var isIE = scope.isIE; - var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; - var IMPORT_SELECTOR = "link[rel=" + IMPORT_LINK_TYPE + "]"; - var importParser = { - documentSelectors: IMPORT_SELECTOR, - importsSelectors: [ IMPORT_SELECTOR, "link[rel=stylesheet]:not([type])", "style:not([type])", "script:not([type])", 'script[type="application/javascript"]', 'script[type="text/javascript"]' ].join(","), - map: { - link: "parseLink", - script: "parseScript", - style: "parseStyle" - }, - dynamicElements: [], - parseNext: function() { - var next = this.nextToParse(); - if (next) { - this.parse(next); - } - }, - parse: function(elt) { - if (this.isParsed(elt)) { - flags.parse && console.log("[%s] is already parsed", elt.localName); - return; - } - var fn = this[this.map[elt.localName]]; - if (fn) { - this.markParsing(elt); - fn.call(this, elt); - } - }, - parseDynamic: function(elt, quiet) { - this.dynamicElements.push(elt); - if (!quiet) { - this.parseNext(); - } - }, - markParsing: function(elt) { - flags.parse && console.log("parsing", elt); - this.parsingElement = elt; - }, - markParsingComplete: function(elt) { - elt.__importParsed = true; - this.markDynamicParsingComplete(elt); - if (elt.__importElement) { - elt.__importElement.__importParsed = true; - this.markDynamicParsingComplete(elt.__importElement); - } - this.parsingElement = null; - flags.parse && console.log("completed", elt); - }, - markDynamicParsingComplete: function(elt) { - var i = this.dynamicElements.indexOf(elt); - if (i >= 0) { - this.dynamicElements.splice(i, 1); - } - }, - parseImport: function(elt) { - elt.import = elt.__doc; - if (window.HTMLImports.__importsParsingHook) { - window.HTMLImports.__importsParsingHook(elt); - } - if (elt.import) { - elt.import.__importParsed = true; - } - this.markParsingComplete(elt); - if (elt.__resource && !elt.__error) { - elt.dispatchEvent(new CustomEvent("load", { - bubbles: false - })); - } else { - elt.dispatchEvent(new CustomEvent("error", { - bubbles: false - })); - } - if (elt.__pending) { - var fn; - while (elt.__pending.length) { - fn = elt.__pending.shift(); - if (fn) { - fn({ - target: elt - }); - } - } - } - this.parseNext(); - }, - parseLink: function(linkElt) { - if (nodeIsImport(linkElt)) { - this.parseImport(linkElt); - } else { - linkElt.href = linkElt.href; - this.parseGeneric(linkElt); - } - }, - parseStyle: function(elt) { - var src = elt; - elt = cloneStyle(elt); - src.__appliedElement = elt; - elt.__importElement = src; - this.parseGeneric(elt); - }, - parseGeneric: function(elt) { - this.trackElement(elt); - this.addElementToDocument(elt); - }, - rootImportForElement: function(elt) { - var n = elt; - while (n.ownerDocument.__importLink) { - n = n.ownerDocument.__importLink; - } - return n; - }, - addElementToDocument: function(elt) { - var port = this.rootImportForElement(elt.__importElement || elt); - port.parentNode.insertBefore(elt, port); - }, - trackElement: function(elt, callback) { - var self = this; - var done = function(e) { - elt.removeEventListener("load", done); - elt.removeEventListener("error", done); - if (callback) { - callback(e); - } - self.markParsingComplete(elt); - self.parseNext(); - }; - elt.addEventListener("load", done); - elt.addEventListener("error", done); - if (isIE && elt.localName === "style") { - var fakeLoad = false; - if (elt.textContent.indexOf("@import") == -1) { - fakeLoad = true; - } else if (elt.sheet) { - fakeLoad = true; - var csr = elt.sheet.cssRules; - var len = csr ? csr.length : 0; - for (var i = 0, r; i < len && (r = csr[i]); i++) { - if (r.type === CSSRule.IMPORT_RULE) { - fakeLoad = fakeLoad && Boolean(r.styleSheet); - } - } - } - if (fakeLoad) { - setTimeout(function() { - elt.dispatchEvent(new CustomEvent("load", { - bubbles: false - })); - }); - } - } - }, - parseScript: function(scriptElt) { - var script = document.createElement("script"); - script.__importElement = scriptElt; - script.src = scriptElt.src ? scriptElt.src : generateScriptDataUrl(scriptElt); - scope.currentScript = scriptElt; - this.trackElement(script, function(e) { - if (script.parentNode) { - script.parentNode.removeChild(script); - } - scope.currentScript = null; - }); - this.addElementToDocument(script); - }, - nextToParse: function() { - this._mayParse = []; - return !this.parsingElement && (this.nextToParseInDoc(rootDocument) || this.nextToParseDynamic()); - }, - nextToParseInDoc: function(doc, link) { - if (doc && this._mayParse.indexOf(doc) < 0) { - this._mayParse.push(doc); - var nodes = doc.querySelectorAll(this.parseSelectorsForNode(doc)); - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (!this.isParsed(n)) { - if (this.hasResource(n)) { - return nodeIsImport(n) ? this.nextToParseInDoc(n.__doc, n) : n; - } else { - return; - } - } - } - } - return link; - }, - nextToParseDynamic: function() { - return this.dynamicElements[0]; - }, - parseSelectorsForNode: function(node) { - var doc = node.ownerDocument || node; - return doc === rootDocument ? this.documentSelectors : this.importsSelectors; - }, - isParsed: function(node) { - return node.__importParsed; - }, - needsDynamicParsing: function(elt) { - return this.dynamicElements.indexOf(elt) >= 0; - }, - hasResource: function(node) { - if (nodeIsImport(node) && node.__doc === undefined) { - return false; - } - return true; - } - }; - function nodeIsImport(elt) { - return elt.localName === "link" && elt.rel === IMPORT_LINK_TYPE; - } - function generateScriptDataUrl(script) { - var scriptContent = generateScriptContent(script); - return "data:text/javascript;charset=utf-8," + encodeURIComponent(scriptContent); - } - function generateScriptContent(script) { - return script.textContent + generateSourceMapHint(script); - } - function generateSourceMapHint(script) { - var owner = script.ownerDocument; - owner.__importedScripts = owner.__importedScripts || 0; - var moniker = script.ownerDocument.baseURI; - var num = owner.__importedScripts ? "-" + owner.__importedScripts : ""; - owner.__importedScripts++; - return "\n//# sourceURL=" + moniker + num + ".js\n"; - } - function cloneStyle(style) { - var clone = style.ownerDocument.createElement("style"); - clone.textContent = style.textContent; - path.resolveUrlsInStyle(clone); - return clone; - } - scope.parser = importParser; - scope.IMPORT_SELECTOR = IMPORT_SELECTOR; -}); - -window.HTMLImports.addModule(function(scope) { - var flags = scope.flags; - var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE; - var IMPORT_SELECTOR = scope.IMPORT_SELECTOR; - var rootDocument = scope.rootDocument; - var Loader = scope.Loader; - var Observer = scope.Observer; - var parser = scope.parser; - var importer = { - documents: {}, - documentPreloadSelectors: IMPORT_SELECTOR, - importsPreloadSelectors: [ IMPORT_SELECTOR ].join(","), - loadNode: function(node) { - importLoader.addNode(node); - }, - loadSubtree: function(parent) { - var nodes = this.marshalNodes(parent); - importLoader.addNodes(nodes); - }, - marshalNodes: function(parent) { - return parent.querySelectorAll(this.loadSelectorsForNode(parent)); - }, - loadSelectorsForNode: function(node) { - var doc = node.ownerDocument || node; - return doc === rootDocument ? this.documentPreloadSelectors : this.importsPreloadSelectors; - }, - loaded: function(url, elt, resource, err, redirectedUrl) { - flags.load && console.log("loaded", url, elt); - elt.__resource = resource; - elt.__error = err; - if (isImportLink(elt)) { - var doc = this.documents[url]; - if (doc === undefined) { - doc = err ? null : makeDocument(resource, redirectedUrl || url); - if (doc) { - doc.__importLink = elt; - this.bootDocument(doc); - } - this.documents[url] = doc; - } - elt.__doc = doc; - } - parser.parseNext(); - }, - bootDocument: function(doc) { - this.loadSubtree(doc); - this.observer.observe(doc); - parser.parseNext(); - }, - loadedAll: function() { - parser.parseNext(); - } - }; - var importLoader = new Loader(importer.loaded.bind(importer), importer.loadedAll.bind(importer)); - importer.observer = new Observer(); - function isImportLink(elt) { - return isLinkRel(elt, IMPORT_LINK_TYPE); - } - function isLinkRel(elt, rel) { - return elt.localName === "link" && elt.getAttribute("rel") === rel; - } - function hasBaseURIAccessor(doc) { - return !!Object.getOwnPropertyDescriptor(doc, "baseURI"); - } - function makeDocument(resource, url) { - var doc = document.implementation.createHTMLDocument(IMPORT_LINK_TYPE); - doc._URL = url; - var base = doc.createElement("base"); - base.setAttribute("href", url); - if (!doc.baseURI && !hasBaseURIAccessor(doc)) { - Object.defineProperty(doc, "baseURI", { - value: url - }); - } - var meta = doc.createElement("meta"); - meta.setAttribute("charset", "utf-8"); - doc.head.appendChild(meta); - doc.head.appendChild(base); - doc.body.innerHTML = resource; - if (window.HTMLTemplateElement && HTMLTemplateElement.bootstrap) { - HTMLTemplateElement.bootstrap(doc); - } - return doc; - } - if (!document.baseURI) { - var baseURIDescriptor = { - get: function() { - var base = document.querySelector("base"); - return base ? base.href : window.location.href; - }, - configurable: true - }; - Object.defineProperty(document, "baseURI", baseURIDescriptor); - Object.defineProperty(rootDocument, "baseURI", baseURIDescriptor); - } - scope.importer = importer; - scope.importLoader = importLoader; -}); - -window.HTMLImports.addModule(function(scope) { - var parser = scope.parser; - var importer = scope.importer; - var dynamic = { - added: function(nodes) { - var owner, parsed, loading; - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) { - if (!owner) { - owner = n.ownerDocument; - parsed = parser.isParsed(owner); - } - loading = this.shouldLoadNode(n); - if (loading) { - importer.loadNode(n); - } - if (this.shouldParseNode(n) && parsed) { - parser.parseDynamic(n, loading); - } - } - }, - shouldLoadNode: function(node) { - return node.nodeType === 1 && matches.call(node, importer.loadSelectorsForNode(node)); - }, - shouldParseNode: function(node) { - return node.nodeType === 1 && matches.call(node, parser.parseSelectorsForNode(node)); - } - }; - importer.observer.addCallback = dynamic.added.bind(dynamic); - var matches = HTMLElement.prototype.matches || HTMLElement.prototype.matchesSelector || HTMLElement.prototype.webkitMatchesSelector || HTMLElement.prototype.mozMatchesSelector || HTMLElement.prototype.msMatchesSelector; -}); - -(function(scope) { - var initializeModules = scope.initializeModules; - var isIE = scope.isIE; - if (scope.useNative) { - return; - } - initializeModules(); - var rootDocument = scope.rootDocument; - function bootstrap() { - window.HTMLImports.importer.bootDocument(rootDocument); - } - if (document.readyState === "complete" || document.readyState === "interactive" && !window.attachEvent) { - bootstrap(); - } else { - document.addEventListener("DOMContentLoaded", bootstrap); - } -})(window.HTMLImports); - -window.CustomElements = window.CustomElements || { - flags: {} -}; - -(function(scope) { - var flags = scope.flags; - var modules = []; - var addModule = function(module) { - modules.push(module); - }; - var initializeModules = function() { - modules.forEach(function(module) { - module(scope); - }); - }; - scope.addModule = addModule; - scope.initializeModules = initializeModules; - scope.hasNative = Boolean(document.registerElement); - scope.isIE = /Trident/.test(navigator.userAgent); - scope.useNative = !flags.register && scope.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative); -})(window.CustomElements); - -window.CustomElements.addModule(function(scope) { - var IMPORT_LINK_TYPE = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none"; - function forSubtree(node, cb) { - findAllElements(node, function(e) { - if (cb(e)) { - return true; - } - forRoots(e, cb); - }); - forRoots(node, cb); - } - function findAllElements(node, find, data) { - var e = node.firstElementChild; - if (!e) { - e = node.firstChild; - while (e && e.nodeType !== Node.ELEMENT_NODE) { - e = e.nextSibling; - } - } - while (e) { - if (find(e, data) !== true) { - findAllElements(e, find, data); - } - e = e.nextElementSibling; - } - return null; - } - function forRoots(node, cb) { - var root = node.shadowRoot; - while (root) { - forSubtree(root, cb); - root = root.olderShadowRoot; - } - } - function forDocumentTree(doc, cb) { - _forDocumentTree(doc, cb, []); - } - function _forDocumentTree(doc, cb, processingDocuments) { - doc = window.wrap(doc); - if (processingDocuments.indexOf(doc) >= 0) { - return; - } - processingDocuments.push(doc); - var imports = doc.querySelectorAll("link[rel=" + IMPORT_LINK_TYPE + "]"); - for (var i = 0, l = imports.length, n; i < l && (n = imports[i]); i++) { - if (n.import) { - _forDocumentTree(n.import, cb, processingDocuments); - } - } - cb(doc); - } - scope.forDocumentTree = forDocumentTree; - scope.forSubtree = forSubtree; -}); - -window.CustomElements.addModule(function(scope) { - var flags = scope.flags; - var forSubtree = scope.forSubtree; - var forDocumentTree = scope.forDocumentTree; - function addedNode(node, isAttached) { - return added(node, isAttached) || addedSubtree(node, isAttached); - } - function added(node, isAttached) { - if (scope.upgrade(node, isAttached)) { - return true; - } - if (isAttached) { - attached(node); - } - } - function addedSubtree(node, isAttached) { - forSubtree(node, function(e) { - if (added(e, isAttached)) { - return true; - } - }); - } - var hasThrottledAttached = window.MutationObserver._isPolyfilled && flags["throttle-attached"]; - scope.hasPolyfillMutations = hasThrottledAttached; - scope.hasThrottledAttached = hasThrottledAttached; - var isPendingMutations = false; - var pendingMutations = []; - function deferMutation(fn) { - pendingMutations.push(fn); - if (!isPendingMutations) { - isPendingMutations = true; - setTimeout(takeMutations); - } - } - function takeMutations() { - isPendingMutations = false; - var $p = pendingMutations; - for (var i = 0, l = $p.length, p; i < l && (p = $p[i]); i++) { - p(); - } - pendingMutations = []; - } - function attached(element) { - if (hasThrottledAttached) { - deferMutation(function() { - _attached(element); - }); - } else { - _attached(element); - } - } - function _attached(element) { - if (element.__upgraded__ && !element.__attached) { - element.__attached = true; - if (element.attachedCallback) { - element.attachedCallback(); - } - } - } - function detachedNode(node) { - detached(node); - forSubtree(node, function(e) { - detached(e); - }); - } - function detached(element) { - if (hasThrottledAttached) { - deferMutation(function() { - _detached(element); - }); - } else { - _detached(element); - } - } - function _detached(element) { - if (element.__upgraded__ && element.__attached) { - element.__attached = false; - if (element.detachedCallback) { - element.detachedCallback(); - } - } - } - function inDocument(element) { - var p = element; - var doc = window.wrap(document); - while (p) { - if (p == doc) { - return true; - } - p = p.parentNode || p.nodeType === Node.DOCUMENT_FRAGMENT_NODE && p.host; - } - } - function watchShadow(node) { - if (node.shadowRoot && !node.shadowRoot.__watched) { - flags.dom && console.log("watching shadow-root for: ", node.localName); - var root = node.shadowRoot; - while (root) { - observe(root); - root = root.olderShadowRoot; - } - } - } - function handler(root, mutations) { - if (flags.dom) { - var mx = mutations[0]; - if (mx && mx.type === "childList" && mx.addedNodes) { - if (mx.addedNodes) { - var d = mx.addedNodes[0]; - while (d && d !== document && !d.host) { - d = d.parentNode; - } - var u = d && (d.URL || d._URL || d.host && d.host.localName) || ""; - u = u.split("/?").shift().split("/").pop(); - } - } - console.group("mutations (%d) [%s]", mutations.length, u || ""); - } - var isAttached = inDocument(root); - mutations.forEach(function(mx) { - if (mx.type === "childList") { - forEach(mx.addedNodes, function(n) { - if (!n.localName) { - return; - } - addedNode(n, isAttached); - }); - forEach(mx.removedNodes, function(n) { - if (!n.localName) { - return; - } - detachedNode(n); - }); - } - }); - flags.dom && console.groupEnd(); - } - function takeRecords(node) { - node = window.wrap(node); - if (!node) { - node = window.wrap(document); - } - while (node.parentNode) { - node = node.parentNode; - } - var observer = node.__observer; - if (observer) { - handler(node, observer.takeRecords()); - takeMutations(); - } - } - var forEach = Array.prototype.forEach.call.bind(Array.prototype.forEach); - function observe(inRoot) { - if (inRoot.__observer) { - return; - } - var observer = new MutationObserver(handler.bind(this, inRoot)); - observer.observe(inRoot, { - childList: true, - subtree: true - }); - inRoot.__observer = observer; - } - function upgradeDocument(doc) { - doc = window.wrap(doc); - flags.dom && console.group("upgradeDocument: ", doc.baseURI.split("/").pop()); - var isMainDocument = doc === window.wrap(document); - addedNode(doc, isMainDocument); - observe(doc); - flags.dom && console.groupEnd(); - } - function upgradeDocumentTree(doc) { - forDocumentTree(doc, upgradeDocument); - } - var originalCreateShadowRoot = Element.prototype.createShadowRoot; - if (originalCreateShadowRoot) { - Element.prototype.createShadowRoot = function() { - var root = originalCreateShadowRoot.call(this); - window.CustomElements.watchShadow(this); - return root; - }; - } - scope.watchShadow = watchShadow; - scope.upgradeDocumentTree = upgradeDocumentTree; - scope.upgradeDocument = upgradeDocument; - scope.upgradeSubtree = addedSubtree; - scope.upgradeAll = addedNode; - scope.attached = attached; - scope.takeRecords = takeRecords; -}); - -window.CustomElements.addModule(function(scope) { - var flags = scope.flags; - function upgrade(node, isAttached) { - if (node.localName === "template") { - if (window.HTMLTemplateElement && HTMLTemplateElement.decorate) { - HTMLTemplateElement.decorate(node); - } - } - if (!node.__upgraded__ && node.nodeType === Node.ELEMENT_NODE) { - var is = node.getAttribute("is"); - var definition = scope.getRegisteredDefinition(node.localName) || scope.getRegisteredDefinition(is); - if (definition) { - if (is && definition.tag == node.localName || !is && !definition.extends) { - return upgradeWithDefinition(node, definition, isAttached); - } - } - } - } - function upgradeWithDefinition(element, definition, isAttached) { - flags.upgrade && console.group("upgrade:", element.localName); - if (definition.is) { - element.setAttribute("is", definition.is); - } - implementPrototype(element, definition); - element.__upgraded__ = true; - created(element); - if (isAttached) { - scope.attached(element); - } - scope.upgradeSubtree(element, isAttached); - flags.upgrade && console.groupEnd(); - return element; - } - function implementPrototype(element, definition) { - if (Object.__proto__) { - element.__proto__ = definition.prototype; - } else { - customMixin(element, definition.prototype, definition.native); - element.__proto__ = definition.prototype; - } - } - function customMixin(inTarget, inSrc, inNative) { - var used = {}; - var p = inSrc; - while (p !== inNative && p !== HTMLElement.prototype) { - var keys = Object.getOwnPropertyNames(p); - for (var i = 0, k; k = keys[i]; i++) { - if (!used[k]) { - Object.defineProperty(inTarget, k, Object.getOwnPropertyDescriptor(p, k)); - used[k] = 1; - } - } - p = Object.getPrototypeOf(p); - } - } - function created(element) { - if (element.createdCallback) { - element.createdCallback(); - } - } - scope.upgrade = upgrade; - scope.upgradeWithDefinition = upgradeWithDefinition; - scope.implementPrototype = implementPrototype; -}); - -window.CustomElements.addModule(function(scope) { - var isIE = scope.isIE; - var upgradeDocumentTree = scope.upgradeDocumentTree; - var upgradeAll = scope.upgradeAll; - var upgradeWithDefinition = scope.upgradeWithDefinition; - var implementPrototype = scope.implementPrototype; - var useNative = scope.useNative; - function register(name, options) { - var definition = options || {}; - if (!name) { - throw new Error("document.registerElement: first argument `name` must not be empty"); - } - if (name.indexOf("-") < 0) { - throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '" + String(name) + "'."); - } - if (isReservedTag(name)) { - throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '" + String(name) + "'. The type name is invalid."); - } - if (getRegisteredDefinition(name)) { - throw new Error("DuplicateDefinitionError: a type with name '" + String(name) + "' is already registered"); - } - if (!definition.prototype) { - definition.prototype = Object.create(HTMLElement.prototype); - } - definition.__name = name.toLowerCase(); - if (definition.extends) { - definition.extends = definition.extends.toLowerCase(); - } - definition.lifecycle = definition.lifecycle || {}; - definition.ancestry = ancestry(definition.extends); - resolveTagName(definition); - resolvePrototypeChain(definition); - overrideAttributeApi(definition.prototype); - registerDefinition(definition.__name, definition); - definition.ctor = generateConstructor(definition); - definition.ctor.prototype = definition.prototype; - definition.prototype.constructor = definition.ctor; - if (scope.ready) { - upgradeDocumentTree(document); - } - return definition.ctor; - } - function overrideAttributeApi(prototype) { - if (prototype.setAttribute._polyfilled) { - return; - } - var setAttribute = prototype.setAttribute; - prototype.setAttribute = function(name, value) { - changeAttribute.call(this, name, value, setAttribute); - }; - var removeAttribute = prototype.removeAttribute; - prototype.removeAttribute = function(name) { - changeAttribute.call(this, name, null, removeAttribute); - }; - prototype.setAttribute._polyfilled = true; - } - function changeAttribute(name, value, operation) { - name = name.toLowerCase(); - var oldValue = this.getAttribute(name); - operation.apply(this, arguments); - var newValue = this.getAttribute(name); - if (this.attributeChangedCallback && newValue !== oldValue) { - this.attributeChangedCallback(name, oldValue, newValue); - } - } - function isReservedTag(name) { - for (var i = 0; i < reservedTagList.length; i++) { - if (name === reservedTagList[i]) { - return true; - } - } - } - var reservedTagList = [ "annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", "font-face-format", "font-face-name", "missing-glyph" ]; - function ancestry(extnds) { - var extendee = getRegisteredDefinition(extnds); - if (extendee) { - return ancestry(extendee.extends).concat([ extendee ]); - } - return []; - } - function resolveTagName(definition) { - var baseTag = definition.extends; - for (var i = 0, a; a = definition.ancestry[i]; i++) { - baseTag = a.is && a.tag; - } - definition.tag = baseTag || definition.__name; - if (baseTag) { - definition.is = definition.__name; - } - } - function resolvePrototypeChain(definition) { - if (!Object.__proto__) { - var nativePrototype = HTMLElement.prototype; - if (definition.is) { - var inst = document.createElement(definition.tag); - nativePrototype = Object.getPrototypeOf(inst); - } - var proto = definition.prototype, ancestor; - var foundPrototype = false; - while (proto) { - if (proto == nativePrototype) { - foundPrototype = true; - } - ancestor = Object.getPrototypeOf(proto); - if (ancestor) { - proto.__proto__ = ancestor; - } - proto = ancestor; - } - if (!foundPrototype) { - console.warn(definition.tag + " prototype not found in prototype chain for " + definition.is); - } - definition.native = nativePrototype; - } - } - function instantiate(definition) { - return upgradeWithDefinition(domCreateElement(definition.tag), definition); - } - var registry = {}; - function getRegisteredDefinition(name) { - if (name) { - return registry[name.toLowerCase()]; - } - } - function registerDefinition(name, definition) { - registry[name] = definition; - } - function generateConstructor(definition) { - return function() { - return instantiate(definition); - }; - } - var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; - function createElementNS(namespace, tag, typeExtension) { - if (namespace === HTML_NAMESPACE) { - return createElement(tag, typeExtension); - } else { - return domCreateElementNS(namespace, tag); - } - } - function createElement(tag, typeExtension) { - if (tag) { - tag = tag.toLowerCase(); - } - if (typeExtension) { - typeExtension = typeExtension.toLowerCase(); - } - var definition = getRegisteredDefinition(typeExtension || tag); - if (definition) { - if (tag == definition.tag && typeExtension == definition.is) { - return new definition.ctor(); - } - if (!typeExtension && !definition.is) { - return new definition.ctor(); - } - } - var element; - if (typeExtension) { - element = createElement(tag); - element.setAttribute("is", typeExtension); - return element; - } - element = domCreateElement(tag); - if (tag.indexOf("-") >= 0) { - implementPrototype(element, HTMLElement); - } - return element; - } - var domCreateElement = document.createElement.bind(document); - var domCreateElementNS = document.createElementNS.bind(document); - var isInstance; - if (!Object.__proto__ && !useNative) { - isInstance = function(obj, ctor) { - if (obj instanceof ctor) { - return true; - } - var p = obj; - while (p) { - if (p === ctor.prototype) { - return true; - } - p = p.__proto__; - } - return false; - }; - } else { - isInstance = function(obj, base) { - return obj instanceof base; - }; - } - function wrapDomMethodToForceUpgrade(obj, methodName) { - var orig = obj[methodName]; - obj[methodName] = function() { - var n = orig.apply(this, arguments); - upgradeAll(n); - return n; - }; - } - wrapDomMethodToForceUpgrade(Node.prototype, "cloneNode"); - wrapDomMethodToForceUpgrade(document, "importNode"); - document.registerElement = register; - document.createElement = createElement; - document.createElementNS = createElementNS; - scope.registry = registry; - scope.instanceof = isInstance; - scope.reservedTagList = reservedTagList; - scope.getRegisteredDefinition = getRegisteredDefinition; - document.register = document.registerElement; -}); - -(function(scope) { - var useNative = scope.useNative; - var initializeModules = scope.initializeModules; - var isIE = scope.isIE; - if (useNative) { - var nop = function() {}; - scope.watchShadow = nop; - scope.upgrade = nop; - scope.upgradeAll = nop; - scope.upgradeDocumentTree = nop; - scope.upgradeSubtree = nop; - scope.takeRecords = nop; - scope.instanceof = function(obj, base) { - return obj instanceof base; - }; - } else { - initializeModules(); - } - var upgradeDocumentTree = scope.upgradeDocumentTree; - var upgradeDocument = scope.upgradeDocument; - if (!window.wrap) { - if (window.ShadowDOMPolyfill) { - window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded; - window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded; - } else { - window.wrap = window.unwrap = function(node) { - return node; - }; - } - } - if (window.HTMLImports) { - window.HTMLImports.__importsParsingHook = function(elt) { - if (elt.import) { - upgradeDocument(wrap(elt.import)); - } - }; - } - function bootstrap() { - upgradeDocumentTree(window.wrap(document)); - window.CustomElements.ready = true; - var requestAnimationFrame = window.requestAnimationFrame || function(f) { - setTimeout(f, 16); - }; - requestAnimationFrame(function() { - setTimeout(function() { - window.CustomElements.readyTime = Date.now(); - if (window.HTMLImports) { - window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime; - } - document.dispatchEvent(new CustomEvent("WebComponentsReady", { - bubbles: true - })); - }); - }); - } - if (document.readyState === "complete" || scope.flags.eager) { - bootstrap(); - } else if (document.readyState === "interactive" && !window.attachEvent && (!window.HTMLImports || window.HTMLImports.ready)) { - bootstrap(); - } else { - var loadEvent = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded" : "DOMContentLoaded"; - window.addEventListener(loadEvent, bootstrap); - } -})(window.CustomElements); - -(function(scope) { - var style = document.createElement("style"); - style.textContent = "" + "body {" + "transition: opacity ease-in 0.2s;" + " } \n" + "body[unresolved] {" + "opacity: 0; display: block; overflow: hidden; position: relative;" + " } \n"; - var head = document.querySelector("head"); - head.insertBefore(style, head.firstChild); -})(window.WebComponents);
\ No newline at end of file diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000017 b/Software/Embedded_SW/.jxbrowser-data/Cache/f_000017 deleted file mode 100644 index fd6212c0e..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000017 +++ /dev/null @@ -1,1308 +0,0 @@ -<link rel="import" href="../../components/polymer/polymer.html"> -<link rel="import" href="../../elements/ti-rov-styles/ti-rov-viewStyles.html"> -<link rel="import" href="../../elements/ti-rov-behaviors/ti-rov-behaviors.html"> -<link rel="import" href="../../components/paper-styles/paper-styles.html"> -<link rel="stylesheet" href="../../components/paper-styles/demo.css"> -<link rel="import" href="../../components/iron-icons/iron-icons.html"> -<link rel="import" href="../../components/iron-icons/av-icons.html"> -<link rel="import" href="../../components/iron-icons/hardware-icons.html"> -<link rel="import" href="../../components/iron-icons/device-icons.html"> -<link rel="import" href="../../components/paper-drawer-panel/paper-drawer-panel.html"> -<link rel="import" href="../../components/paper-header-panel/paper-header-panel.html"> -<link rel="import" href="../../components/paper-toolbar/paper-toolbar.html"> -<link rel="import" href="../../components/paper-icon-button/paper-icon-button.html"> -<link rel="import" href="../../components/paper-button/paper-button.html"> -<link rel="import" href="../../components/paper-item/paper-item.html"> -<link rel="import" href="../../components/iron-collapse/iron-collapse.html"> -<link rel="import" href="../../components/paper-menu/paper-menu.html"> -<link rel="import" href="../../components/paper-material/paper-material.html"> -<link rel="import" href="../../components/paper-card/paper-card.html"> -<link rel="import" href="../../components/paper-input/paper-input.html"> -<link rel="import" href="../../components/paper-listbox/paper-listbox.html"> -<link rel="import" href="../../components/paper-dialog/paper-dialog.html"> -<link rel="import" href="../../components/paper-progress/paper-progress.html"> -<link rel="import" href="../../components/paper-toast/paper-toast.html"> -<link rel="import" href="../../components/iron-flex-layout/iron-flex-layout.html"> -<link rel="import" href="../../elements/ti-rov-view/ti-rov-view.html"> - -<!-- This overrides default paper-header-panel style - paper-header-panel::shadow .paper-header-panel { - overflow-x: auto !important; - } - - Example of using a style mixin: --paper-menu-selected-item - #modulesMenu { - font-family: arial; - font-size: 14px; - margin-left: 15px; - margin-bottom: 10px; - --paper-menu-selected-item : { - font-style: italic; - }; - ---> - -<dom-module id="ti-rov-panel"> - <template> - <!-- include global rov styles --> - <style include="ti-rov-styles"></style> - <style is="custom-style"> - paper-drawer-panel { - font-family: var(--rovFontFamily); - --paper-drawer-panel-main-container: { - background-color: var(--rovMainBackground); - }; - } - paper-header-panel::shadow .paper-header-panel { - overflow-x: auto !important; - } - paper-item { - cursor: pointer; - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - } - #modulesMenu, #favoritesMenu { - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - margin-left: 5px; - padding-left: 0px; - margin-bottom: 10px; - } - #filterToolbar { - display:block; - height: 48px; - min-width: 184px; - background-color: var(--rovFilterToolbarBackground); - box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.24); - margin-bottom: 5px; - } - #rovTitleToolbar{ - color: var(--rovTitleToolbarColor); - background-color: var(--rovTitleToolbarBackground); - height: 48px; - } - #filterModulesInput { - margin-top: 12px; - margin-left: 10px; - background-color: rgb(255, 255, 255); - width: 130px; - } - #filterButtonLeft{ - margin-top: 12px; - width: 36px; - height: 36px; - color: var(--rovTitleToolbarColor); - padding-left: 0px; - background-color: transparent; - } - #modulesMaterial { - position: relative; - overflow-y: auto; - width: 100%; - height: calc(100% - 48px); - background-color: var(--rovMainBackground); - min-width: 184px; - box-shadow: 0px -1px 10px 2px rgba(0, 0, 0, 0.14) !important; - } - #filterButtonRight{ - margin-left: 0px; - margin-top: 12px; - padding-left: 4px; - color: var(--rovTitleToolbarColor); - background-color: transparent; - width: 36px; - height: 36px; - } - #modsLabel { - margin-top: 20px; - margin-left: -1px; - color: var(--rovTitleToolbarColor); - } - #favModsLabel { - display: inline-block; - margin-top: 18px; - margin-left: -1px; - color: var(--rovTitleToolbarColor); - } - #listDashboardsDialog, #listViewsDialog, #otherViewsDialog, #rovOptionsMenuDialog { - position: fixed; - top: 24px; - --paper-dialog-background-color: var(--rovTitleToolbarBackground); - --paper-dialog-color: var(--rovTitleToolbarColor); - @apply(--layout-vertical); - @apply(--layout-self-stretch); - } - #listViewsDialog, #otherViewsDialog { - margin-left: 0px; - } - #rovOptionsMenuDialog { - margin-right: 0px; - right:0px; - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - } - .attachedMenu { - --paper-menu-background-color: var(--rovTitleToolbarBackground); - --paper-menu-color: var(--rovTitleToolbarColor); - } - #toggleDrawerBtn { - position: absolute; - top: 1px; - left: 2px; - padding: 2px 2px 2px 2px; - width: 26px; - height: 26px; - --paper-button-ink-color: transparent; - color: var(--rovTitleToolbarColor); - background-color: transparent; - } - #openDashboardButton, #saveDashboardButton, #deleteDashboardButton, #rovOptionsButton, - #openDashboardFileButton, .toolbarOverflowDialogButton { - padding-top: 0px; - margin-top: 0px; - width: 36px; - height: 36px; - } - #rovOptionsButton { - position: absolute; - top: 12px; - margin-left: 0px; - right: 12px; - } - #openDashboardButton { - color: var(--rovTitleToolbarDisabledColor); - margin-right: 0px; - } - #deleteDashboardButton { - margin-left: 0px; - } - #openDashboardFileButton { - margin-right: 0px; - } - #dashboardDiv { - position: absolute; - top: 0px; - right: 66px; - height: 48px; - display: inline-block; - margin-left:0px; - } - #saveDashboardInput, #exportDashboardsInput { - display: inline-block; - padding-left: 0px; - --paper-input-container-color: #118899; - --paper-input-container-focus-color: black; - --paper-input-container-input: { - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - color: black; - }; - } - #saveDashboardInput { - margin: 0px 0px 0px 0px; - } - #exportDashboardsInput { - /* margin: 0px 0px 10px 0px; */ - margin: 0px 0px 10px 16px; - --paper-input-container: { - padding-top: 0px; - padding-bottom: 4px; - }; - } - #showSavedDashboardsButton, #showExportedDashboardsButton { - box-sizing: content-box !important; - width: 24px; - height: 24px; - margin-top: 0px; - padding-right: 0px; - padding-left: 5px; - } - #listSavedDashboardsDialog, #introListDashboardsDialog { - position: fixed; - --paper-dialog-background-color: white; - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - margin: 0px 0px 0px 0px; - } - .topitem { - display: flex; - padding-top: 0px; - margin-top: 1px; - margin-left: 5px; - padding-left: 12px; - cursor: pointer; - } - .subitem { - cursor: default; - display: flex; - padding-top: 0px; - margin-top: 1px; - margin-left: 0px; - } - .subcontent { - display: flex; - margin-left: 28px; - cursor: pointer; - } - .subcontentmenu { - padding-top: 0px; - padding-bottom: 0px; - } - .subicon { - --iron-icon-width: 18px; - --iron-icon-height: var(--rovSubiconHeight); - cursor: pointer; - } - .topitem::-moz-selection, .subitem::-moz-selection, .subcontent::-moz-selection { - background: white; - } - .topitem::selection, .subitem::selection, .subcontent::selection { - background: white; - } - #stopRepeatRefreshButton, #repeatRefreshButton, #refreshAllButton, #closeAllButton, #saveAllButton, #viewToTopButton, #otherViewsButton { - width: 36px; - height: 36px; - } - #refreshAllButton, #otherViewsButton { - margin-right: -8px; - } - #stopRepeatRefreshButton, #overflowStopRepeatRefreshButton { - color: red; - } - .settingsRow { - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - padding-top: 5px; - padding-bottom: 5px; - margin-left: 15px; - } - .settingsH { - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - font-weight: bold !important; - margin-bottom: 1px !important; - margin-top: 1px !important; - margin-left: 15px; - } - #rovTitle { - position: absolute; - top: 19px; - left: 45px; - font-size: var(--rovTitleFontSize); - white-space:nowrap; - overflow: hidden; - } - .erroricon { - width: 20px; - height: 20px; - color: rgb(204, 0, 0); - --iron-icon-stroke-color: white; - } - #exportDashboardCheckbox { - margin-left: 16px; - margin-top: 10px; - padding-left: 0px; - --paper-checkbox-unchecked-color: #118899; - --paper-checkbox-unchecked-ink-color: transparent; - --paper-checkbox-checked-color: #118899; - --paper-checkbox-checked-ink-color: #118899; - --paper-checkbox-checkmark-color: white; - --paper-checkbox-label-color: #333333; - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - } - #modContextDialog,#listDashboardsDialog > *:last-child { - margin-bottom: 2px; - } - #modContextDialog,#listDashboardsDialog > *:first-child { - margin-top: 2px; - } - #modContextMenu { - margin-top: 0px !important; - margin-bottom: 0px !important; - padding: 0px; - white-space:nowrap - } - #modContextItem { - display:flex; - padding-left: 20px; - padding-right: 20px; - margin-top: 2px; - margin-bottom: 2px; - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - } - #modContextItem:hover { - background-color: white; - cursor:pointer; - } - #statusConsole { - z-index: 9000; - display: inline-block; - position: fixed; - box-shadow: 0px -1px 3px 1px rgba(0, 0, 0, 0.4); - bottom: 0; - right: 0; - background: whitesmoke; - } - #closeStatusButton { - width: 18px; - height: 18px; - position: absolute; - right: 10px; - top: 4px; - color: darkslategray; - padding: 0; - background-color: whitesmoke; - } - .statusItem { - display: flex; - padding-top: 0px; - margin-top: 1px; - margin-left: 5px; - margin-bottom: 5px; - padding-left: 2px; - } - .consoleStatusIcon { - --iron-icon-width: 18px; - --iron-icon-height: 18px; - min-width: 18px; - min-height: 18px; - padding-right: 5px; - } - .consoleErrorIcon { - --iron-icon-width: 18px; - --iron-icon-height: 18px; - --iron-icon-stroke-color: white; - min-width: 18px; - min-height: 18px; - padding-right: 5px; - } - .consoleWarningIcon { - --iron-icon-width: 18px; - --iron-icon-height: 18px; - --iron-icon-stroke-color: black; - min-width: 18px; - min-height: 18px; - padding-right: 5px; - } - #statusList { - padding: 0; - } - #connectDialog { - z-index: 9000; - display: inline-block; - margin: 0; - position: fixed; - left: 10px !important; - top: 52px !important; - width: 460px !important; - max-width: 460px !important; - min-height: 195px !important; - background-color: white; - outline-style: solid !important; - outline-width: 1px !important; - outline-color: gray !important; - - } - #exesMruButton { - padding: 0; - width: 24px; - height: 24px; - } - #exeInput { - margin-top: 0px; - margin-left: 0px; - width: 400px; - display: inline-block; - font-size: var(--rovContentFontSize); - --paper-input-container-color: #118899; - --paper-input-container-focus-color: black; - --paper-input-container-input: { - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - color: black; - }; - --paper-input-container: { - padding-top: 0px; - padding-bottom: 4px; - }; - } - #commLinkInput { - margin-top: 8px; - margin-left: 0px; - width: 200px; - display: inline-block; - font-size: var(--rovContentFontSize); - --paper-input-container-color: #118899; - --paper-input-container-focus-color: black; - --paper-input-container-input: { - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - color: black; - }; - --paper-input-container: { - padding-top: 4px; - padding-bottom: 4px; - }; - } - #connectButton { - margin-left: 30px; - margin-top: 10px; - background: white; - } - #autoConnectCheckbox { - margin-left: 140px; - } - #connectMessageDiv, #autoConnectStatusDiv { - margin-top: 10px; - margin-bottom: 10px; - margin-right: 5px; - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - word-wrap: break-word; - } - #connectMessageDiv { - margin-left: 38px; - } - #autoConnectStatusDiv { - margin-left: 30px; - padding: 0; - } - #currentDashboardDiv { - height:11px; - margin:1px 0px 0px 16px; - padding:0px; - font-size: 11px; - line-height: 11px; - cursor: default; - } - #connectProgress, #autoConnectProgress { - display: inline-block; - --paper-progress-active-color: #115566; - --paper-progress-height: 4px; - margin-left: 4px; - width: 378px; - } - #viewToTopMenu, #dashboardNamesMenu, #matchedModulesMenu, #selectModulesViewMenu, #otherViewsMenu { - margin-top: 0px; - margin-bottom: 10px !important; - padding-left: 8px; - padding-right: 12px; - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - } - #listSavedDashboardsMenu, #introDashboardNamesMenu { - margin-top:0px; - margin-bottom:8px; - padding-left:0px; - padding-right:8px; - background-color: white; - font-size: var(--rovContentFontSize); - } - .modulesSelectIcon { - width: 24px; - height: 24px; - background-color: transparent; - color: var(--rovTitleToolbarColor); - cursor: pointer; - } - #selectModulesViewDialog { - position: fixed; - top: 43px; - margin-top: 5px; - margin-bottom: 0px; - margin-left: 0px; - margin-right: 0px; - --paper-dialog-background-color: var(--rovFilterToolbarBackground); - --paper-dialog-color: var(--rovTitleToolbarColor); - @apply(--layout-vertical); - @apply(--layout-self-stretch); - } - #selectModulesViewMenu { - font-family: var(--rovFontFamily); - background-color: var(--rovFilterToolbarBackground); - } - #discoveredAddOnsList { - position: absolute; - text-align: right; - right: 20px; - } - #loadAddOnButton { - margin-top: 0px; - margin-left: 4px; - margin-right: 0px; - padding: 0px; - text-align: left; - } - #removeAddOnButton, #rediscoverAddOnButton, #addDiscoveredAddOnButton { - position: absolute; - margin-top: 0px; - padding-top: 0px; - } - #removeAddOnButton { - text-align: left; - left: 16px; - } - #rediscoverAddOnButton { - text-align: right; - right: 9px; - } - #addDiscoveredAddOnButton { - text-align: left; - left: 290px; - } - #addOnInput { - --paper-input-container-color: #118899; - --paper-input-container-focus-color: black; - --paper-input-container-input: { - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - color: black; - }; - --paper-input-container: { - padding-top: 0px; - padding-bottom: 4px; - }; - margin-left: 0px; - margin-right: 0px; - margin-top: 22px; - padding: 0px; - width: 360px; - display: inline-block; - } - #curAddOnsList, #discoveredAddOnsList { - display: inline-block; - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - --paper-listbox-background-color: whitesmoke; - width: 210px; - height: 110px; - margin-top:0px; - margin-right: 0px; - margin-left:20px; - padding: 4px 0px 0px 0px; - overflow-y: auto; - } - #discoveredAddOnsList { - position: absolute; - right: 20px; - } - #dataOptionsDialog { - top: 52px; - width: 200px; - min-width: 200px; - height: 240px; - min-height: 240px; - } - #manageAddOnsDialog { - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - line-height: var(--rovTitleLineHeight); - position: fixed; - width: 525px; - min-width: 525px; - min-height: 240px; - max-width: 525px; - max-height: 276px; - left: 10px !important; - top: 52px; - margin: 0; - } - #addOnMruButton, #exeMruButton, #commLinkMruButton { - box-sizing: content-box !important; - padding: 0; - width: 24px; - height: 24px; - } - #showAddOnInput, #hideAddOnInput { - box-sizing: content-box !important; - padding: 0px; - } - #showAddOnInput { - position: absolute; - width: 18px; - height: 18px; - left: 364px; - } - #hideAddOnInput { - margin-left: 25px; - width: 16px; - height: 16px; - } - #addOnMruDialog, #exeMruDialog, #commLinkMruDialog { - position: fixed; - margin: 0px 0px 0px 12px; - padding: 0; - } - #exeMruButton, #commLinkMruButton { - margin-left:10px; - } - #addOnMruMenu, #exeMruMenu, #commLinkMruMenu { - margin-top:0px; - margin-bottom:0px; - padding-bottom:4px; - padding-left:4px; - padding-right:8px; - background-color: transparent; - } - .addOnMruMenuItem, .exeMruMenuItem, .commLinkMruMenuItem { - --paper-item-min-height: 24px; - font-size: var(--rovContentFontSize); - font-family: var(--rovFontFamily); - margin-top:0px; - margin-bottom:0px; - padding-left:0px; - padding-right:8px; - background-color: transparent; - } - #manageStorageDialog { - position: fixed; - top: 52px; - height: 350px; - min-height: 350px; - } - #viewsStorageList { - --paper-listbox-background-color: whitesmoke; - padding-top: 0px; - height: 215px; - min-height: 215px; - max-height: 230px; - min-width: 290px; - overflow-y: auto; - overflow-x: hidden; - } - #overwriteDashboardsDialog { - margin: 0; - top: 52px; - height: 270px; - min-height: 270px; - } - #exportDashboardsDialog { - margin: 0; - top: 52px; - height: 280px; - min-height: 280px; - } - #overwriteDashboardsList, #exportDashboardsList { - --paper-listbox-background-color: whitesmoke; - height: 140px; - min-height: 140px; - max-height: 140px; - max-width: 260px; - width: 260px; - margin: 0; - padding-top: 0px; - padding-bottom: 0px; - overflow-y: auto; - overflow-x: hidden; - } - #rovOptionsMenu { - margin: 0px; - padding: 10px 0px 10px 0px; - } - #clearViewStorageButton, #clearViewStorageDone, #overwriteDashboardsButton, - #overwriteDashboardsDone, #exportDashboardsButton, #exportDashboardsDone { - padding-top: 0px; - padding-bottom: 0px; - } - #clearViewStorageDone { - padding-right: 0px; - } - .rovOptionsItem { - padding-left: 0px; - font-family: var(--rovFontFamily) !important; - font-size: var(--rovContentFontSize) !important; - --paper-item-min-height: 24px; - } - .rovOptionsMenuButtonIcon { - height: 20px; - width: 20px; - } - .rovOptionsMenuButton { - padding-top: 0px; - padding-bottom: 0px; - margin-top: 3px; - margin-bottom: 3px; - text-transform: none; - } - .rovPanelDropdownItem { - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - --paper-item-min-height: 24px; - cursor: pointer; - padding-left: 8px; - padding-right: 8px; - } - #showConnectDialogCheckbox { - padding-top: 0px; - padding-bottom: 0px; - padding-left: 8px; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 6px; - --paper-checkbox-unchecked-color: var(--rovTitleToolbarColor); - --paper-checkbox-unchecked-ink-color: transparent; - --paper-checkbox-checked-color: var(--rovTitleToolbarColor); - --paper-checkbox-checked-ink-color: transparent; - --paper-checkbox-checkmark-color: var(--rovTitleToolbarBackground); - --paper-checkbox-label-color: var(--rovTitleToolbarColor); - --paper-checkbox-size: 16px; - font-weight: normal; - } - #autoConnectProgressDialog { - position: fixed; - left: 10px !important; - top: 52px !important; - margin: 0; - width: 460px !important; - max-width: 460px !important; - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - line-height: 16px; - } - .addOnListItem, .viewsStorageListItem, .selectModulesViewMenuItem, .dashboardsChecklistItem { - --paper-item-min-height: 22px; - height: 22px; - font-family: var(--rovFontFamily); - cursor: pointer; - padding-left: 8px; - padding-right: 8px; - } - .addOnListItem, .viewsStorageListItem, .dashboardsChecklistItem { - font-size: var(--rovContentFontSize); - } - .selectModulesViewMenuItem { - font-size: var(--rovTitleFontSize); - } - #overwriteDashboardsLabel { - font-family: var(--rovFontFamily); - font-size:var(--rovContentFontSize); - font-weight:normal; - white-space:normal; - } - .rovOptionsMenuLabel { - cursor: pointer; - } - #addOnErrorToast { - position: absolute; - --paper-toast-background-color: #CC0000; - --paper-toast-color: white; - word-wrap: break-word; - max-height: 300px; - } - #addOnErrorClose { - width: 20px; - height: 20px; - background-color: transparent; - color: white; - position: absolute; - padding: 0; - right: 4px; - top: 2px; - } - #saveDashboardDialog { - top: 52px; - } - #confirmDialog { - top: 78px; - } - #saveDashboardComment { - font-family: var(--rovFontFamily); - font-size: var(--rovContentFontSize); - resize: none; - width: 88%; - } - .rovDialogInput:focus { - outline: none !important; - border-color: #118899; - } - #saveDashboardComment:focus { - outline: none !important; - border-color: #118899; - box-shadow: 0 0 1px #118899; - } - #dashboardOverflowDialog, #titleOverflowDialog { - position: fixed; - top: 28px; - --paper-dialog-background-color: var(--rovTitleToolbarBackground); - --paper-dialog-color: var(--rovTitleToolbarColor); - @apply(--layout-vertical); - @apply(--layout-self-stretch); - margin-top: 20px; - margin-right: 0px; - margin-left: 0px; - margin-bottom: 0px; - padding-top: 12px; - } - #dashboardOverflowDialog { - right: 36px; - } - #dashboardOverflowDialogButton, #titleOverflowDialogButton { - position: absolute; - top: 20px; - right: 40px; - margin-top: 0px; - margin-left: 0px; - padding-left: 4px; - padding-top: 0px; - padding-right: 4px; - width: 28px; - height: 28px; - } - #dashboardOverflowDialogButton { - right: 40px; - } - #titleOverflowDialogButton { - left: 14px; - } - .toolbarOverflowDialogButton { - padding-left: 8px; - padding-right: 8px; - padding-bottom: 8px; - margin-bottom: 0px; - } - #introDialog { - position: fixed; - left: 184px !important; - top: 48px !important; - min-width: 364px; - } - .introDashboardItem { - color: #118899; - } - .introDashboardItem:hover { - text-decoration: underline; - } - #noIntroCheckbox { - margin-left: 80px; - } - #introDashboardsButton { - margin-left: 40px; - } - </style> - <div id="connectDialog" hidden> - <h2 class="rovDialogTitle">Connect Target</h2> - <div> - <paper-icon-button id="exeMruButton" icon="arrow-drop-down" on-click="mruClicked" role="button"></paper-icon-button> - <paper-input autofocus label="Executable path" id="exeInput" type="text" placeholder=" " on-keypress="connectKeyPress" on-click="exeInputClicked"></paper-input> - <iron-icon id="exeInputInvalid" class="erroricon" title="Invalid exe" icon="error" hidden></iron-icon> - </div> - <div> - <paper-icon-button id="commLinkMruButton" icon="arrow-drop-down" on-click="mruClicked" role="button"></paper-icon-button> - <paper-input label="Target communication link" id="commLinkInput" type="text" placeholder=" " on-keypress="connectKeyPress"></paper-input> - <iron-icon id="commLinkInputInvalid" class="erroricon" title="Invalid COM port" icon="error" hidden></iron-icon> - </div> - <paper-button tabindex="0" id="connectButton" class="rovDialogButton" on-click="connectClicked">Connect</paper-button> - <paper-checkbox class="rovCheckbox" id="autoConnectCheckbox">Do not show this again</paper-checkbox> - <div id="connectMessageDiv" hidden> - <iron-icon id="connectErrorIcon" class="erroricon" icon="error" hidden></iron-icon> - <label>{{connectMessage}}</label> - <paper-progress id="connectProgress"></paper-progress> - </div> - <paper-dialog id="commLinkMruDialog"> - <paper-menu id="commLinkMruMenu" on-iron-select="mruSelected"> - <template is="dom-repeat" items="{{commLinkMrus}}" as="mruItem"> - <paper-item class="commLinkMruMenuItem" role="menuitem">{{mruItem}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - <paper-dialog id="exeMruDialog"> - <paper-menu id="exeMruMenu" on-iron-select="mruSelected"> - <template is="dom-repeat" items="{{exeMrus}}" as="mruItem"> - <paper-item class="exeMruMenuItem" role="menuitem">{{mruItem}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - </div> - <paper-dialog id="autoConnectProgressDialog" no-cancel-on-outside-click alwaysOnTop> - <h2 class="rovDialogTitle">Connect Target</h2> - <div style="width:100%;text-align:center;margin:0px 0px 16px 0px;padding:0;"> - <label class="rovDialogLabel">{{autoConnectMessage}}</label> - </div> - <div id="autoConnectStatusDiv"> - <label>{{connectMessage}}</label> - <paper-progress id="autoConnectProgress"></paper-progress> - </div> - </paper-dialog> - <paper-dialog id="manageAddOnsDialog" on-click="dlgClicked" on-iron-overlay-closed="dialogClosed" on-iron-overlay-opened="dialogOpened" no-cancel-on-outside-click alwaysOnTop> - <h2 class="rovDialogTitle"><iron-icon style="height:20px;width:20px;margin-right:8px;" icon="hardware:devices-other"></iron-icon>ROV Add-on Views<iron-icon id="manageAddOnsDialogClose" class="rovDialogCloseIcon" icon="close" on-click="addOnDoneClicked"></iron-icon></h2> - <div style="margin-top:20px;padding:0px;margin-left:24px;margin-right:0px;"> - <paper-checkbox id="selectAllCurrentAddOnsCheckbox" class="rovCheckbox" style="margin:0px 0px 2px 4px;" on-click="selectAllCurrentAddOnsClicked" title="Select all"></paper-checkbox> - <label class="rovDialogLabel" style="position:absolute;right:300px;">Imported add-ons</label> - <paper-checkbox id="selectAllDiscoveredAddOnsCheckbox" class="rovCheckbox" style="position:absolute;left:299px;margin:0px 0px 2px 4px;" on-click="selectAllDiscoveredAddOnsClicked" title="Select all"></paper-checkbox> - <label class="rovDialogLabel" - style="position:absolute;right:26px;">Available add-ons</label> - </div> - <paper-listbox id="curAddOnsList" role="listbox"> - <template id="curAddOnsTemplate" is="dom-repeat" items="{{dlgOtherViews}}" as="view"> - <paper-item class="addOnListItem"> - <paper-checkbox class="rovCheckbox" on-click="curAddOnClicked" title$="{{view.path}}">{{view.name}}</paper-checkbox> - </paper-item> - </template> - </paper-listbox> - <paper-listbox id="discoveredAddOnsList" role="listbox"> - <template id="discoveredAddOnsTemplate" is="dom-repeat" items="{{dlgDiscoveredAddOns}}" as="addOn"> - <paper-item class="addOnListItem"> - <paper-checkbox class="rovCheckbox" on-click="discoveredAddOnClicked" title$="{{addOn.path}}">{{addOn.name}}</paper-checkbox> - </paper-item> - </template> - </paper-listbox> - <div class="buttons" style="margin-top:4px;padding-top:0px;padding-bottom:0px;"> - <paper-button class="rovDialogButton" id="removeAddOnButton" on-click="removeAddOnClicked" disabled>Remove</paper-button> - <paper-button class="rovDialogButton" id="addDiscoveredAddOnButton" on-click="addDiscoveredAddOnClicked" disabled>Import</paper-button> - <paper-icon-button class="rovDialogButton" id="showAddOnInput" icon="create" on-click="showAddOnInputClicked" title="Enter add-on location" role="button"></paper-icon-button> - <paper-button class="rovDialogButton" id="rediscoverAddOnButton" on-click="rediscoverAddOnsClicked">Rediscover</paper-button> - </div> - <paper-icon-button id="hideAddOnInput" class="rovDialogButton" icon="close" on-click="showAddOnInputClicked" title="Hide enter add-on location" role="button" hidden></paper-icon-button> - <paper-icon-button id="addOnMruButton" icon="arrow-drop-down" on-click="mruClicked" role="button" hidden></paper-icon-button> - <paper-input id="addOnInput" type="text" placeholder="Enter add-on location" no-label-float no-animations autofocus on-input="addOnOnInput" on-keypress="addOnKeyPress" hidden></paper-input> - <paper-button class="rovDialogButton" id="loadAddOnButton" on-click="loadAddOnClicked" disabled hidden>Import</paper-button> - <paper-button id="closeManageAddOnsDialogButton" class="rovDialogButton" style="position:absolute;bottom:8px;left:211px;margin-top:0px;padding-top:0px;" on-click="addOnDoneClicked">Close</paper-button> - <paper-toast id="addOnErrorToast" duration="0" style="margin-left:10px;margin-bottom:40px"> - <paper-icon-button id="addOnErrorClose" icon="close" on-click="addOnErrorCloseClicked" role="button"></paper-icon-button><br> - </paper-toast> - <paper-dialog id="addOnMruDialog"> - <paper-menu id="addOnMruMenu" on-iron-select="addOnMruSelected"> - <template is="dom-repeat" items="{{addOnMrus}}" as="mruItem"> - <paper-item class="addOnMruMenuItem" role="menuitem">{{mruItem}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - </paper-dialog> - <paper-dialog id="introDialog" class="rovDialog" no-cancel-on-outside-click alwaysOnTop on-iron-overlay-opened="dialogOpened" on-iron-overlay-closed="introDialogClosed"> - <h2 class="rovDialogTitle">Gettting Started<iron-icon id="introDialogClose" class="rovDialogCloseIcon" icon="close" on-click="dialogCloseClicked"></iron-icon></h2> - <div style="width:100%;text-align:center;margin:0px 0px 12px 0px;padding:0;"> - <label class="rovDialogLabel">{{introMessage}}</label> - </div> - <div style="padding:0px;margin-top:0px;"> - <iron-icon icon="hardware:keyboard-backspace"></iron-icon> - <label class="rovDialogLabel">{{introModulesMessage}}</label> - <label class="rovDialogLabel" id="introOr" style="margin-left:38px;">or</label> - <paper-button class="rovDialogButton" id="introDashboardsButton" on-click="introDashboardsClicked">Open a dashboard</paper-button> - </div> - <paper-button class="rovDialogButton" id="introClose" dialog-dismiss>Close</paper-button> - <paper-checkbox class="rovCheckbox" id="noIntroCheckbox" style="margin-bottom:14px;">Do not show this again</paper-checkbox> - </paper-dialog> - <paper-dialog id="introListDashboardsDialog" class="rovDialog"> - <paper-menu id="introDashboardNamesMenu" on-iron-select="dashboardSelected"> - <template is="dom-repeat" items="{{dashboardNames}}" as="dash"> - <paper-item class="rovPanelDropdownItem introDashboardItem" role="menuitem" title$="{{dash.comment}}">{{dash.name}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - <paper-dialog id="selectModulesViewDialog"> - <paper-menu id="selectModulesViewMenu" on-iron-select="modulesViewItemSelected" class="attachedMenu"> - <template is="dom-repeat" items="{{otherModsLabels}}" as="label"> - <paper-item class="selectModulesViewMenuItem" role="menuitem" id="all">{{label}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - <paper-drawer-panel id="rovDrawerPanel" style="min-width:184px" drawer-width="184px" responsive-width="0px"> - <div drawer> - <span id="filterToolbar"> - <template is="dom-if" if="{{allModulesVisible}}"> - <template is="dom-if" if="{{showFilterButtonRight}}"> - <span id="modsLabel"><iron-icon class="modulesSelectIcon" icon="arrow-drop-down" on-click="selectModulesViewDialogClicked" title="Select modules list"></iron-icon>{{curModsLabel}}</span> - <paper-icon-button id="filterButtonRight" icon="filter-list" on-click="filterRightClicked" title="Filter modules" role="button" tabindex="0"></paper-icon-button> - </template> - <template is="dom-if" if="{{showFilterButtonLeft}}"> - <input id="filterModulesInput" type="search" placeholder="Filter Modules" on-input="filterModulesChanged" tabindex="1" autofocus></input> - <paper-icon-button id="filterButtonLeft" icon="close" on-click="filterLeftClicked" title="Close filter modules" role="button" tabindex="0"></paper-icon-button> - </template> - </template> - <template is="dom-if" if="{{!allModulesVisible}}"> - <span id="favModsLabel"><iron-icon class="modulesSelectIcon" icon="arrow-drop-down" on-click="selectModulesViewDialogClicked" title="Select modules list"></iron-icon>{{curModsLabel}}</span> - </template> - </span> - <paper-material id="modulesMaterial" elevation="4"> - <template is="dom-if" if="{{allModulesVisible}}"> - <ul id="modulesMenu"> - <template is="dom-repeat" items="{{tocItems}}" as="item"> - <template is="dom-if" if="{{!item.hasDups}}"> - <li id$="{{item.id}}" title$="{{item.id}}" class="topitem" on-click="modClicked" on-contextmenu="modContextMenu">{{item.name}}</li> - </template> - <template is="dom-if" if="{{item.hasDups}}" restamp="true"> - <template is="dom-if" if="{{item.expanded}}"> - <li id$="{{item.id}}" class="subitem" on-click="subMenuClicked"><iron-icon class="subicon" icon="expand-less"></iron-icon>{{item.name}}</li> - <template is="dom-repeat" items="{{item.dups}}" as="dupItem"> - <li id$="{{dupItem.id}}" title$="{{item.id}}" class="subcontent" on-click="modClicked" on-contextmenu="modContextMenu">{{dupItem.name}}</li> - </template> - </template> - <template is="dom-if" if="{{!item.expanded}}"> - <li id$="{{item.id}}" class="subitem" on-click="subMenuClicked"><iron-icon class="subicon" icon="expand-more"></iron-icon>{{item.name}}</li> - </template> - </template> - </template> - </ul> - </template> - <template is="dom-if" if="{{!allModulesVisible}}"> - <ul id="favoritesMenu"> - <template is="dom-repeat" items="{{favoriteTocItems}}" as="item"> - <template is="dom-if" if="{{!item.hasDups}}"> - <li id$="{{item.id}}" title$="{{item.id}}" class="topitem" on-click="modClicked" on-contextmenu="modContextMenu">{{item.name}}</li> - </template> - <template is="dom-if" if="{{item.hasDups}}" restamp="true"> - <template is="dom-if" if="{{item.expanded}}"> - <li id$="{{item.id}}" class="subitem" on-click="subMenuClicked"><iron-icon class="subicon" icon="expand-less"></iron-icon>{{item.name}}</li> - <template is="dom-repeat" items="{{item.dups}}" as="dupItem"> - <li id$="{{dupItem.id}}" title$="{{item.id}}" class="subcontent" on-click="modClicked" on-contextmenu="modContextMenu">{{dupItem.name}}</li> - </template> - </template> - <template is="dom-if" if="{{!item.expanded}}"> - <li id$="{{item.id}}" class="subitem" on-click="subMenuClicked"><iron-icon class="subicon" icon="expand-more"></iron-icon>{{item.name}}</li> - </template> - </template> - </template> - </ul> - </template> - <paper-dialog id="modContextDialog" style="position:fixed;margin:0px !important" alwaysOnTop> - <ul id="modContextMenu" > - <li id="modContextItem" on-click="modContextMenuItemClicked">{{favoriteMenuItem}}</li> - </ul> - </paper-dialog> - </paper-material> - </div> - <div main on-dragstart="viewDragStart" on-dragover="viewDragOver" on-dragenter="viewDragEnter" on-drop="viewDrop" on-dragend="viewDragEnd"> - <paper-header-panel id="rovHeaderPanel" class="main" mode="standard"> - <!-- Main Toolbar --> - <paper-toolbar id="rovTitleToolbar" on-dragenter="toolbarDragEnter" on-dragover="toolbarDragOver"> - <span title$="{{toggleTooltip}}" style="margin-left:0px;max-width:30px;"><paper-icon-button id="toggleDrawerBtn" on-click="toggleDrawerClicked" icon={{toggleIcon}} disabled></paper-icon-button></span> - <paper-icon-button id="titleOverflowDialogButton" icon="menu" on-click="overflowToolbarButtonClicked" role="button" title="Open the views toolbar" hidden disabled></paper-icon-button> - <label id="rovTitle">Runtime Object View</label> - <span title id="titleSpan" style="position:absolute;margin-left:0px;left:210px;top:4px;min-width:48px;"> - <paper-icon-button id="otherViewsButton" icon="hardware:devices-other" on-click="otherViewsDialog" title="Open other view" role="button" hidden$="{{!enableOtherViews}}"></paper-icon-button> - <paper-icon-button id="refreshAllButton" icon="refresh" on-click="refreshAllClicked" title="Refresh all" role="button" disabled></paper-icon-button> - <paper-icon-button id="repeatRefreshButton" hidden$="{{inRepeatRefresh}}" icon="autorenew" on-click="repeatRefreshClicked" title="Repeat refresh" role="button" disabled></paper-icon-button> - <paper-icon-button id="stopRepeatRefreshButton" hidden$="{{!inRepeatRefresh}}" icon="av:stop" on-click="stopRepeatRefreshClicked" title="Stop repeat refresh" role="button"></paper-icon-button> - <paper-icon-button id="saveAllButton" icon="file-download" on-click="saveAllViews" title="Save data displayed in all current views" role="button" disabled></paper-icon-button> - <paper-icon-button id="viewToTopButton" icon="flip-to-front" on-click="viewToTopDialog" title="Bring a view to the top" role="button" disabled></paper-icon-button> - <paper-icon-button id="closeAllButton" icon="close" on-click="closeAllClicked" title="Close all views" role="button" disabled></paper-icon-button> - </span> - <div id="dashboardDiv" on-dragenter="dashboardDragEnter" on-dragover="dashboardDragOver" title=""> - <div id="currentDashboardDiv" title="">{{currentDashboard}}</div> - <paper-icon-button id="openDashboardButton" icon="dashboard" on-drop="openDashboardDrop" on-click="openDashboardClicked" role="button" title="" disabled></paper-icon-button> - <paper-icon-button id="openDashboardFileButton" icon="folder-open" on-click="openDashboardFileClicked" role="button" title="Import a dashboard" disabled></paper-icon-button> - <input type="file" id="openDashboardFileInput" accept=".rov.json" on-change="openDashboardFileSelected" hidden></input> - <paper-icon-button id="saveDashboardButton" icon="save" on-click="saveDashboardClicked" role="button" title="Save all current views as a dashboard" disabled></paper-icon-button> - <paper-icon-button id="deleteDashboardButton" icon="delete" on-click="deleteDashboardClicked" role="button" title="Delete a dashboard" disabled></paper-icon-button> - </div> - <paper-icon-button id="dashboardOverflowDialogButton" icon="more-vert" on-click="overflowToolbarButtonClicked" role="button" title="Open the dashboard toolbar" hidden disabled></paper-icon-button> - <paper-icon-button id="rovOptionsButton" icon="settings" on-click="rovOptionsClicked" role="button" title="ROV options" disabled></paper-icon-button> - </paper-toolbar> - <span> - <paper-dialog id="saveDashboardDialog" class="rovDialog" on-click="dlgClicked" on-keypress="saveDashboardKeyPress" on-iron-overlay-closed="dialogClosed" on-iron-overlay-opened="dialogOpened" no-cancel-on-outside-click alwaysOnTop> - <h3 class="rovDialogTitle">Save Dashboard<iron-icon id="saveDashboardDialogClose" class="rovDialogCloseIcon" icon="close" on-click="dialogCloseClicked"></iron-icon></h3> - <paper-icon-button id="showSavedDashboardsButton" icon="arrow-drop-down" on-click="showSavedDashboardsClicked" role="button"></paper-icon-button> - <paper-input id="saveDashboardInput" type="text" placeholder="Dashboard name" no-label-float no-animations autofocus></paper-input> - <div style="margin-top:10px;margin-left:14px;padding-left:0px;"><label class="rovDialogLabel">Comment</label></div> - <div style="margin-top:0px;margin-left:14px;padding-right:0px;margin-right:0px;padding-left:0px;"> - <textarea id="saveDashboardComment" rows="4"></textarea> - </div> - <paper-checkbox id="exportDashboardCheckbox">Export file</paper-checkbox> - <div style="margin-right:32px;padding-top:0px;padding-bottom:4px;" class="buttons"> - <paper-button class="rovDialogButton" autofocus on-click="saveDashboardOkClicked">OK</paper-button> - <paper-button class="rovDialogButton" dialog-dismiss>Cancel</paper-button> - </div> - </paper-dialog> - <paper-dialog id="listSavedDashboardsDialog"> - <paper-menu id="listSavedDashboardsMenu" on-iron-select="dashboardSelected"> - <template is="dom-repeat" items="{{dashboardNames}}" as="dash"> - <paper-item class="rovPanelDropdownItem" role="menuitem">{{dash.name}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - <paper-dialog id="listDashboardsDialog" style="max-width:500px;" on-iron-overlay-closed="listDashboardsDialogClosed"> - <paper-menu id="dashboardNamesMenu" class="attachedMenu" on-iron-select="dashboardSelected"> - <template is="dom-repeat" items="{{dashboardNames}}" as="dash"> - <paper-item class="rovPanelDropdownItem" role="menuitem" title$="{{dash.comment}}">{{dash.name}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - <paper-dialog id="confirmDialog" class="rovDialog" on-click="dlgClicked" no-cancel-on-outside-click alwaysOnTop> - <h3 class="rovDialogTitle">{{confirmTitle}}<iron-icon id="confirmDialogClose" class="rovDialogCloseIcon" icon="close" on-click="dialogCloseClicked"></iron-icon></h3> - <div class="rovDialogLabel">{{confirmLabel}}</div> - <div class="buttons"> - <paper-button class="rovDialogButton" autofocus on-click="confirmOkClicked">OK</paper-button> - <paper-button class="rovDialogButton" dialog-dismiss>Cancel</paper-button> - </div> - </paper-dialog> - <paper-dialog id="listViewsDialog"> - <paper-menu id="viewToTopMenu" on-iron-select="viewToTopMenuItemSelected" class="attachedMenu"> - <template is="dom-repeat" items="{{viewToTopList}}" as="view"> - <paper-item class="rovPanelDropdownItem" role="menuitem" id$="{{view.id}}" title$="{{view.fullName}}">{{view.name}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - <paper-dialog id="otherViewsDialog" on-iron-overlay-closed="otherViewsDialogClosed"> - <paper-menu id="otherViewsMenu" on-iron-select="otherViewSelected" class="attachedMenu"> - <template is="dom-repeat" items="{{dlgOtherViews}}" as="view"> - <paper-item class="rovPanelDropdownItem" role="menuitem" id$="{{view.element}}" title$="{{view.path}}">{{view.name}}</paper-item> - </template> - </paper-menu> - </paper-dialog> - <paper-dialog id="dataOptionsDialog" class="rovDialog" on-click="dlgClicked" on-keypress="dataOptionsKeyPress" on-iron-overlay-closed="dialogClosed" on-iron-overlay-opened="dialogOpened" no-cancel-on-outside-click alwaysOnTop> - <h3 class="rovDialogTitle">Data retrieval settings<iron-icon id="dataOptionsDialogClose" class="rovDialogCloseIcon" icon="close" on-click="dialogCloseClicked"></iron-icon></h3> - <section id="repeatRefreshSection" style="margin-top:0px;padding-top:0px;padding-bottom:0px;"> - <h4 class="settingsH">Repeat Refresh</h4> - <div class="settingsRow"> - <label> - <span id="repeatRefreshLabel" style="margin-right:2px">Interval:</span> - <input id="repeatRefreshInput" class="rovDialogInput" type="text" size="5"> - <span>ms</span> - <iron-icon id="repeatRefreshInputInvalid" class="erroricon" title="Invalid interval" icon="error" hidden></iron-icon> - </label> - </div> - </section> - <section id="dataTimeoutSection" style="margin-top:5px;padding-top:0px;padding-bottom:0px;"> - <h4 class="settingsH">Read Data Timeout</h4> - <div class="settingsRow"> - <label> - <span id="dataTimeoutLabel" style="margin-right:2px">Period:</span> - <input id="dataTimeoutInput" class="rovDialogInput" type="text" size="5"> - <span>ms</span> - <iron-icon id="dataTimeoutInputInvalid" class="erroricon" title="Invalid timeout period" icon="error" hidden></iron-icon> - </label> - </div> - </section> - <section id="connectTimeoutSection" style="margin-top:5px;padding-top:0px;padding-bottom:0px;"> - <h4 class="settingsH">Connect Target Timeout</h4> - <div class="settingsRow"> - <label> - <span id="connectTimeoutLabel" style="margin-right:2px">Period:</span> - <input id="connectTimeoutInput" class="rovDialogInput" type="text" size="5"> - <span>ms</span> - <iron-icon id="connectTimeoutInputInvalid" class="erroricon" title="Invalid timeout period" icon="error" hidden></iron-icon> - </label> - </div> - </section> - <div class="buttons" style="padding-top:0px;padding-bottom:0px;"> - <paper-button class="rovDialogButton" autofocus on-click="saveDataOptionsOkClicked">Save</paper-button> - <paper-button class="rovDialogButton" dialog-dismiss>Cancel</paper-button> - </div> - </paper-dialog> - <paper-dialog id="manageStorageDialog" class="rovDialog" on-click="dlgClicked" on-keypress="manageStorageKeyPress" on-iron-overlay-closed="dialogClosed" on-iron-overlay-opened="dialogOpened" no-cancel-on-outside-click alwaysOnTop> - <h3 class="rovDialogTitle">Delete a view's local storage<iron-icon id="manageStorageDialogClose" class="rovDialogCloseIcon" icon="close" on-click="dialogCloseClicked"></iron-icon></h3> - <div style="margin:0px 16px 0px 16px;padding:0px;"> - <paper-checkbox id="selectAllViewsStorageCheckbox" class="rovCheckbox" style="margin:0px 0px 4px 8px;" on-click="selectAllViewStorageClicked">Select all</paper-checkbox> - <paper-listbox id="viewsStorageList" role="listbox"> - <template is="dom-repeat" items="{{viewsStorageItems}}" as="view"> - <paper-item class="viewsStorageListItem"><paper-checkbox class="rovCheckbox" on-change="clearAViewChecked">{{view}}</paper-checkbox></paper-item> - </template> - </paper-listbox> - <div style="margin-top:5px;padding-right:0px" class="buttons"> - <paper-button class="rovDialogButton" id="clearViewStorageButton" on-click="clearViewStorageClicked" disabled>Delete selected</paper-button> - <paper-button class="rovDialogButton" id="clearViewStorageDone" dialog-dismiss>Close</paper-button> - </div> - <div style="margin:0;padding:0;" class="buttons"> - <paper-button class="rovDialogButton" id="clearAllStorageButton" on-click="clearAllStorageClicked" style="position:absolute;margin:5px 0px 0px 0px;right:11px;padding:0;">Clear All ROV Storage</paper-button> - </div> - </div> - </paper-dialog> - <paper-dialog id="rovOptionsMenuDialog"> - <paper-menu id="rovOptionsMenu" class="attachedMenu" on-iron-select="rovOptionsItemSelected"> - <paper-item class="rovOptionsItem" id="addOnViewsClicked"> - <paper-button class="rovOptionsMenuButton"> - <iron-icon class="rovOptionsMenuButtonIcon" icon="hardware:devices-other"></iron-icon> - <label class="rovOptionsMenuLabel">Add-on views</label> - </paper-button> - </paper-item> - <paper-item class="rovOptionsItem" id="dataOptionsClicked"> - <paper-button class="rovOptionsMenuButton"> - <iron-icon class="rovOptionsMenuButtonIcon" icon="swap-vert"></iron-icon> - <label class="rovOptionsMenuLabel">Data retrieval settings</label> - </paper-button> - </paper-item> - <paper-item class="rovOptionsItem" id="storageOptionsDialog"> - <paper-button class="rovOptionsMenuButton"> - <iron-icon class="rovOptionsMenuButtonIcon" icon="device:storage"></iron-icon> - <label class="rovOptionsMenuLabel">Local storage options</label> - </paper-button> - </paper-item> - <paper-item class="rovOptionsItem" id="exportDashboardsClicked" hidden> - <paper-button class="rovOptionsMenuButton"> - <iron-icon class="rovOptionsMenuButtonIcon" icon="archive"></iron-icon> - <label class="rovOptionsMenuLabel">Export dashboards to file</label> - </paper-button> - </paper-item> - <paper-item class="rovOptionsItem" id="showConnectDialogItem"> - <paper-checkbox id="showConnectDialogCheckbox" on-change="showConnectDialogChecked">Show connect dialog</paper-checkbox> - </paper-item> - </paper-menu> - </paper-dialog> - <paper-dialog id="overwriteDashboardsDialog" class="rovDialog" on-click="dlgClicked" on-keypress="overwriteDashboardsKeyPress" on-iron-overlay-closed="dialogClosed" on-iron-overlay-opened="dialogOpened" no-cancel-on-outside-click alwaysOnTop> - <h3 class="rovDialogTitle">Save Dashboards<iron-icon id="overwriteDashboardsDialogClose" class="rovDialogCloseIcon" icon="close" on-click="dialogCloseClicked"></iron-icon></h3> - <div style="margin-top:10px;padding:0px;margin-left:16px;margin-right:16px;width:260px;height:50px;"> - <label id="overwriteDashboardsLabel">The following dashboards already exist in ROV local memory:</label> - </div> - <div style="margin-top:0px;padding:0px;margin-left:16px;margin-right:16px;"> - <paper-listbox id="overwriteDashboardsList" role="listbox"> - <template is="dom-repeat" items="{{overwriteDashboardsItems}}" as="dashboard"> - <paper-item class="dashboardsChecklistItem"> - <paper-checkbox class="rovCheckbox" on-click="overwriteADashboardChecked" checked>{{dashboard}}</paper-checkbox> - </paper-item> - </template> - </paper-listbox> - <div style="margin-top:5px;padding-left:0px;padding-right:0px" class="buttons"> - <paper-button class="rovDialogButton" id="overwriteDashboardsButton" on-click="overwriteDashboardsClicked">Overwrite selected</paper-button> - <paper-button class="rovDialogButton" id="overwriteDashboardsDone" dialog-dismiss>Close</paper-button> - </div> - </div> - </paper-dialog> - <paper-dialog id="exportDashboardsDialog" class="rovDialog" on-click="dlgClicked" on-keypress="exportDashboardsKeyPress" on-iron-overlay-closed="dialogClosed" on-iron-overlay-opened="dialogOpened" no-cancel-on-outside-click alwaysOnTop> - <h3 class="rovDialogTitle">Export Dashboards to File<iron-icon id="exportDashboardsDialogClose" class="rovDialogCloseIcon" icon="close" on-click="dialogCloseClicked"></iron-icon></h3> - <div style="margin-top:0px;padding:0px;margin-left:8px;margin-right:16px;width:260px;height:40px;"> - <paper-input id="exportDashboardsInput" type="text" placeholder="Enter filename" no-label-float no-animations autofocus on-input="exportDashboardsOnInput"></paper-input><br> - </div> - <div style="margin-top:0px;padding:0px;margin-left:16px;margin-right:16px;"> - <paper-checkbox id="selectAllExportDashboardsCheckbox" class="rovCheckbox" style="margin:0px 0px 4px 8px;" on-click="selectAllExportDashboardsClicked" checked>Select all dashboards</paper-checkbox> - <paper-listbox id="exportDashboardsList" role="listbox"> - <template is="dom-repeat" items="{{dashboardNames}}" as="dash"> - <paper-item class="dashboardsChecklistItem"> - <paper-checkbox class="rovCheckbox" on-click="exportADashboardChecked" checked title$="{{dash.comment}}">{{dash.name}}</paper-checkbox> - </paper-item> - </template> - </paper-listbox> - <div style="margin-top:5px;padding-left:0px;padding-right:0px" class="buttons"> - <paper-button class="rovDialogButton" id="exportDashboardsButton" on-click="exportDashboardsButtonClicked">Export selected</paper-button> - <paper-button class="rovDialogButton" id="exportDashboardsDone" dialog-dismiss>Cancel</paper-button> - </div> - </div> - </paper-dialog> - - <paper-dialog id="titleOverflowDialog"> - <paper-icon-button id="overflowRefreshAllButton" class="toolbarOverflowDialogButton" icon="refresh" on-click="refreshAllClicked" title="Refresh all" role="button" disabled></paper-icon-button> - <paper-icon-button id="overflowRepeatRefreshButton" class="toolbarOverflowDialogButton" hidden$="{{inRepeatRefresh}}" icon="autorenew" on-click="repeatRefreshClicked" title="Repeat refresh" role="button" disabled></paper-icon-button> - <paper-icon-button id="overflowStopRepeatRefreshButton" class="toolbarOverflowDialogButton" hidden$="{{!inRepeatRefresh}}" icon="av:stop" on-click="stopRepeatRefreshClicked" title="Stop repeat refresh" role="button"></paper-icon-button> - <paper-icon-button id="overflowCloseAllButton" class="toolbarOverflowDialogButton" icon="close" on-click="closeAllClicked" title="Close all views" role="button" disabled></paper-icon-button> - </paper-dialog> - - <paper-dialog id="dashboardOverflowDialog" on-dragenter="dashboardDragEnter" on-dragover="dashboardDragOver"> - <paper-icon-button id="overflowOpenDashboardButton" class="toolbarOverflowDialogButton" icon="dashboard" on-click="openDashboardClicked" on-drop="openDashboardDrop" role="button" title="" disabled></paper-icon-button> - <paper-icon-button id="overflowOpenDashboardFileButton" class="toolbarOverflowDialogButton" icon="folder-open" on-click="openDashboardFileClicked" role="button" title="Import a dashboard" disabled></paper-icon-button> - <input type="file" id="overflowOpenDashboardFileInput" accept=".rov.json" on-change="openDashboardFileSelected" hidden></input> - <paper-icon-button id="overflowSaveDashboardButton" class="toolbarOverflowDialogButton" icon="save" on-click="saveDashboardClicked" role="button" title="Save all current views as a dashboard" disabled></paper-icon-button> - <paper-icon-button id="overflowDeleteDashboardButton" class="toolbarOverflowDialogButton" icon="delete" on-click="deleteDashboardClicked" role="button" title="Delete a dashboard" disabled></paper-icon-button> - </paper-dialog> - - </span> - - <!-- Main Content --> - <div id="contentDiv" class="content"> - <div id="statusConsole" hidden> - <paper-icon-button id="closeStatusButton" title="Close" on-click="hideStatus" icon="close" role="button" tabindex="0"></paper-icon-button> - <ul id="statusList"> - <template is="dom-repeat" items="{{statusItems}}" as="item"> - <li class="statusItem" style$="{{item.style}}"><iron-icon icon$="{{item.icon}}" hidden$="{{item.iconHidden}}" style$="{{item.iconStyle}}" class$="{{item.iconClass}}"></iron-icon>{{item.message}}</li> - </template> - </ul> - </div> - </div> - </paper-header-panel> - </div> - </paper-drawer-panel> - <ti-rov-data id="rovData"></ti-rov-data> - </template> - <script src="ti-rov-panel.js"></script> -</dom-module> - diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000018 b/Software/Embedded_SW/.jxbrowser-data/Cache/f_000018 deleted file mode 100644 index 3c991af21..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000018 +++ /dev/null @@ -1,1132 +0,0 @@ -/* - * ======== rovapi.js ======== - * Browser-side ROVServer API - */ - -var rov; /* TICloudAgent ROVServer sub module */ - -var packagePath; /* package path array from the environment, CCS, or ... */ - -var wssPort = 8888; /* standalone nodeserver's WebSocket server port */ -var sock; /* standalone WebSocket server socket */ - -/* ccs7 is true when we are running in the context of the CCS cloud */ -var ccs7 = false; - -var ds; /* DebugServer module: agent.getSubModule("DS") */ -var dsFlag = false; /* true if we're told to connect via DSLite */ -var dsActiveCoreName = null; - -var deferedSymbols = null; -var exeSet = null; /* exeSet != null => ROV connected to the exe exeSet */ - -/* - * ======== debuggerStatus ======== - * Current debugger state - * - * null - unknown or disconnected - * "Disconnected" - - * "TargetHalt" - - * "Running" - - * "Connected" - - * - * TODO: connected/disconnected should be orthogonal to - * running/halted so what's up with the states above?!?! - */ -var debuggerStatus = null; - -/* - * ======== init ======== - */ -function init() -{ - ccs7 = (typeof TICloudAgent) == "undefined" ? false : true; - - /* parse URL for setup parameters */ - var tokens = location.href.split(/[?&]/); - tokens.shift(); - for (var i = 0; i < tokens.length; i++) { - var param = tokens.shift(); - var pair = param.split('='); - switch (pair[0]) { - case "wsPort": { - if (pair[1]) { - wssPort = pair[1]; - console.log("set wssPort to: " + wssPort); - } - break; - } - } - } -} - -/* - * ======== setExecutable ======== - * Specify the executable to decode - * - * This function initializes ROV and must be called before any other calls. - * - * During the operation, progress() is called with a progress string that - * may be useful to an impatient user. - * - * On completion, callback() is called with a response of the form: - * {resStr: "...", exeName: "...", connType: "...", connArgs: ["...", ...]} - * where, - * exeName - full path of the executable - * connType - connection type: "DSLite", "Serial", "Net", ... - * connArgs - array of String values needed by the connection - * or, in the event that none are supplied, [] - * coreName - name of core to which we're connected (if unknown, null) - * resStr - final status result string from this operation: - * "OK" - success - * any other string - failure and the string is a printable - * message explaining the cause - * - * Events coming from the target after a connection is estabilished - * but possibly _before_ and after the executable has been set are - * returned by calling targetEvents(). - * - * path is a string of the form: - * <exe_path>?comm=<comm_type>[:<comm_arg>]*[&<name=value>]* - * where, - * <exe_path> is the full path to the executable - * <comm_type> is "DSLite", "Serial", "Net", ... - * <comm_arg> is a communication-specific value - * <name=value> is an arbitrary name-value pair that is - * specified by the client - */ -function setExecutable(path, reqObj, callback, progress, targetEvents) -{ - init(); - - /* standalone (for now we need TICloudAgent to use DSLite, blech!) */ - if (!ccs7 && path.indexOf("DSLite") == -1) { - var old = sock; - sock = new WebSocket("ws://localhost:" + wssPort); - sock.onopen = function() { - sock.send(JSON.stringify("exec:" + path + "\r\n")); - if (old != null) { - old.close(); - } - }; - - sock.onmessage = function (ret) { - console.log("setExec response: " + ret.data); - if (ret.data != null && ret.data.indexOf("Working:") == 0) { - if (progress != null) progress(ret.data, reqObj); - } - else { - var result = _parseExePath(path); - - /* add resStr to result to form callback value */ - result.resStr = ret.data; - result.exeName = ""; /* safe, but is this needed??? */ - result.coreName = ""; - callback(result, reqObj); - } - }; - } - /* TI Cloud */ - else { - var dev = ""; - var k = path.indexOf("DSLite"); - if (k != -1) { - dsFlag = true; - - /* check path for a device name (default is "") */ - var tmp = path.substr(k + 7).split(':')[0]; - if (tmp != null && tmp != "" && tmp != "undefined") { - dev = tmp; - } - } - - /* connect to the ROV module and DS (if requested) */ - _connect().then( - /* connect to active core's module */ - function(obj) { - /* save ROVServer module for subsequent use */ - rov = obj; - - /* use ds to get debug core */ - if (ds == null || dsFlag == false) { - var promContainer = Q.defer(); - var prom = promContainer.promise; - promContainer.resolve(); - return (prom); /* return undefined */ - } - - /* if ds != null, get all core names */ - return ds.listCores().then( - function(cores) { - return _setupCore(cores, dev, targetEvents, reqObj); - } - ).then( - function(core0) { - console.log("dstatus: " + debuggerStatus); - if (debuggerStatus == null - || debuggerStatus == "Disconnected") { - console.log("debugger is not connected"); - /* don't fail if connection is, say, Serial. - * (does this make sense?) - */ - if (dsFlag) { - throw new Error("The debugger is not connected"); - } - } - return (core0); /* return core's module */ - } - ); - } - ) - .then( - /* use debug core to get exe name */ - function(core0) { - if (core0 != null) { - /* ask debugger for files loaded on specified core */ - return _getSymbols(core0); - } - console.log("no debugger => no symbol file list"); - return ({symbolFiles: []}); - } - ) - .then( - /* get package path for the specified exe */ - function(files) { - console.log("core files: " - + JSON.stringify(files, null, 3)); - var exe = _validateExe(path, files).split('?')[0]; - return _getProject(exe).then( - function (proj) { - console.log("exe project: " - + JSON.stringify(proj, null, 3)); - if (proj.location && rov_setFileDefaults) { - rov_setFileDefaults(proj.location, proj.location); - } - return (_getPackagePath(proj.name)); - } - ) - .then( - function (path) { - packagePath = path; - console.log("exe package path: " + path); - return (files); - } - ) - .fail( - function(msg) { - throw new Error(msg); - } - ); - } - ) - .then( - /* start ROV model with an exe specified by path or debugger */ - function(files) { - console.log("core files: " - + JSON.stringify(files, null, 3)); - var newPath = _validateExe(path, files); - var obj = _parsePackagePath(packagePath); - - console.log("rov.setExec(" + newPath + ", " + obj.xdcroot - + ", " + obj.xdcpath + ")"); - return rov.setExec(newPath, obj.xdcroot, obj.xdcpath).then( - function detectProgress(res) { - console.log("setExec response: " + res); - if (res != null && res.indexOf("Working:") == 0) { - rov.getProgress().then(detectProgress); - if (progress != null) { - progress(res, reqObj); - } - } - else { - /* parse newPath for the UI */ - var result = _parseExePath(newPath); - result.coreName = _getCoreName(dsActiveCoreName); - - /* add resStr to result to form callback value */ - result.resStr = res; - - /* save just the exe name */ - exeSet = result.exeName; - - callback(result, reqObj); - } - } - ); - } - ) - .fail( - function(err) { - var msg = err.message ? err.message : err; - console.log("Error: setExecutable() failed: " + msg); - var result = _parseExePath(path); - result.resStr = String(msg); - result.exeName = ""; - result.coreName = ""; - callback(result, reqObj); - } - ); - } - - return (true); -} - -/* - * ======== discoverAddons ======== - */ -function discoverAddons(reqObj, callback) -{ - /* standalone */ - if (sock != null) { - sock.onmessage = function(ret) { - var parsed = null; - var err = null; - try { - parsed = JSON.parse(ret.data); - } - catch (e) { - err = 'Error: JSON.parse exception: ' + e.message; - } - callback(err, parsed, reqObj); - }; - sock.send(JSON.stringify("addons\r\n")); - } - /* TI Cloud */ - else { - rov.discoverAddons().then( - function(list) { - console.log("addons: " + list); - var parsed = null; - var err = null; - try { - parsed = JSON.parse(list); - } - catch (e) { - err = 'Error: JSON.parse exception: ' + e.message; - } - callback(err, parsed, reqObj); - } - ).fail( - function (err) { - var msg = err.message ? err.message : err; - console.log( - "Error: Unexpected Exception from discoverAddons callback:" - + msg); - } - ); - } - - return (true); -} - -/* - * ======== getViewList ======== - * Get list of all modules and their supported views - * - * The view list is a map of arrays, where keys are module names and values - * are arrays of the objects with 'name' and 'type' properties. - * [{name:"view1", type:"view1_type"}, ... ,{name:"viewN", type:"viewN_type"}] - * - * Returns the view list or an error by calling callback(err, list, reqObj), - * where, - * err - error string (or null for no error) - * list - the view list (or null if err is non-null - * reqObj - the passed in context object - */ -function getViewList(reqObj, callback) -{ - /* standalone */ - if (sock != null) { - sock.onmessage = function(ret) { - var parsed = null; - var err = null; - try { - parsed = JSON.parse(ret.data); - } - catch (e) { - err = 'Error: JSON.parse exception: ' + e.message; - } - callback(err, parsed, reqObj); - }; - sock.send(JSON.stringify("list\r\n")); - } - /* TI Cloud */ - else { - rov.getViews().then( - function(list) { - console.log("list: " + list); - var parsed = null; - var err = null; - try { - parsed = JSON.parse(list); - } - catch (e) { - err = 'Error: JSON.parse exception: ' + e.message; - } - callback(err, parsed, reqObj); - } - ).fail( - function (err) { - var msg = err.message ? err.message : err; - console.log( - "Error: Unexpected Exception from getViewList callback:" - + msg); - } - ); - } - - return (true); -} - -/* - * ======== getView ======== - * Get specified view from a module - * - * Returns the view list or an error by calling - * callback(err, view, module, view,reqObj), - * where, - * err - error string (or null forno error) - * list - the view JSON object (or null if err is non-null - * module - the passed in modeule name - * view - the passed in view name - * reqObj - the passed in context object - */ -var queue = []; -function getView(module, view, reqObj, callback) -{ - /* standalone */ - if (sock != null) { - queue.push({module: module, view: view, reqObj: reqObj}); - sock.onmessage = function(ret) { - var parsed = null; - var err = null; - - if (ret.data.indexOf("Error:") == 0) { - err = ret.data; - } - else { - try { - parsed = JSON.parse(ret.data); - } - catch (e) { - err = 'Error: JSON.parse exception: ' - + e.message + ": " + ret.data; - } - } - var args = queue.shift(); - callback(err, parsed, args.module, args.view, args.reqObj); - }; - - sock.send(JSON.stringify("view:" + module + "," + view + "\r\n")); - } - /* TI Cloud */ - else { - //if (debuggerStatus == "Running") { - // callback("Target is running!", null, module, view, reqObj); - // return; - //} - if (dsFlag && (debuggerStatus == null - || debuggerStatus == "Disconnected")) { - callback("Target is disconnected!", null, module, view, reqObj); - return (false); - } - rov.getView(module, view).then( - function(response) { - if (response.indexOf("Error:") == 0) { - callback(response, null, module, view, reqObj); - } - else { - var parsedRes; - var parseErr = null; - try { - parsedRes = JSON.parse(response); - } - catch (e) { - parseErr = 'Error: JSON.parse exception: ' + e.message; - parsedRes = null; - } - callback(parseErr, parsedRes, module, view, reqObj); - } - console.log(module + ":" + view + ": " + response); - } - ).fail( - function (err) { - var msg = err.message ? err.message : err; - console.log("Error: Unexpected exception from getView(" - + module + ", " + view + "): " + msg); - } - ); - } - - return (true); -} - -/* - * ======== _configureDebugger ======== - * Configure debugger using the supplied target configuration - * - * devName is the basename of a .ccxml file (minus the .ccxml extension) - * that defines how to setup the debugger - * - * rov is assumed to be non-null (i.e., _connect() returns a promise to get - * the ROVServer module _and_ that promise resolved to rov). - * - * ds is also assumed to be non-null, which is implied by rov != null - * because, ds is initialized by _connect() before creating the promise to - * get rov. - * - * Returns a promise - * resolved to dbg, where dbg.cores == array of cores - * or - * rejected because devName.ccxml is not found or - * configuration with this file failed - * - * (Internal function) - */ -function _configureDebugger(devName) -{ - console.log("_configureDebugger(" + devName + ")"); - return _getProject().then( - /* get the package path from active project (or workspace if none) */ - function(proj) { - console.log("activeProjectContext: " + JSON.stringify(proj, null, 3)); - return _getPackagePath(proj.name); - } - ).then( - /* lookup .ccxml file along package path */ - function (packagePath) { - return rov.find(devName + ".ccxml", packagePath); - } - ).then( - /* configure the debugger */ - function(ccxmlFile) { - console.log("configuring with: " + ccxmlFile); - return ds.configure(ccxmlFile).fail( - function(err) { - var msg = "configuration for '" + devName - + "' failed: " + (err.message ? err.message : err); - console.log(msg); - throw new Error(msg); - } - ); - } - ).fail( - function(err) { - debuggerStatus = null; - - var msg = "can't find " + devName + ".ccxml"; - console.log(msg); - throw new Error(msg); - } - ); -} - -/* - * ======== _connect ======== - * Connect to the ROV module in the TICloudAgent WebSocket server - * - * Called directly by setExecutable() to establish connection with - * the ROVServer module (rov_server.js). - * - * Returns a promise - * resolved to rov = ROVServer submodule (agent.getSubModule("ROVServer")) - * rejected because we can't start agent or the connection is - * DSLite and we failed to get the DS submodule - * - * Throws an exception if TICloudAgent.Init() throws (which it shouldn't) - * - * Side Effects: sets ds to the DebugServer/DSLite module - * - * (Internal function) - */ -function _connect() -{ - var agent; - console.log("_connect: connecting ..."); - - if (rov != null) { - var prom = Q.defer(); - prom.resolve(rov); - console.log("_connect: using cached rov = " + rov); - return (prom.promise); - } - - return TICloudAgent.Init().then( - /* init/configure agent and get EventBroker module */ - function(_agent) { - agent = _agent; - agent.addConfigProperty("cloudAgentInstallerServerURL", - location.origin + "/ticloudagent/"); - return agent.getSubModule("EventBroker"); - } - ).then( - /* add EventBroker listeners and get active project */ - function(broker) { - broker.addListener("ccs.debug.activeContextChangedEvent", - function(data) { - console.log("ccs.debug.activeContextChanged: " - + JSON.stringify(data, null, 3)); - }); - - return broker.fetchData("ccs.debug.activeContext"); - } - ).then( - /* get DS module */ - function(obj) { - console.log("activeDebugContext: " + JSON.stringify(obj, null, 3)); - if (obj.data && obj.data.length > 0) { - dsActiveCoreName = obj.data[0].core; - } - - /* get DS sub-model from agent */ - return agent.getSubModule("DS"); - } - ).then( - /* add DS listeners */ - function(_ds) { - ds = _ds; - console.log("acquired DS sub-module: " + ds); - ds.addListener("close", - function() { - console.log("DS closing"); - debuggerStatus = null; - } - ); - ds.addListener("configChanged", - function(data) { - console.log("DS config changed: " - + JSON.stringify(data, null, 3)); - if (data.cores[0] == undefined) { - debuggerStatus = null; - console.log("DS config changed: debugger terminated"); - if (exeSet != null) { - location.reload(true); - exeSet = null; - } - } - } - ); - } - ).fail( - /* throw exception if we can't start agent or get DS submodule */ - function(err) { - var emsg = err.message ? err.message : err; - if (agent == null) { - var msg = "ROV _connect failed to start agent: " + emsg; - console.log(msg); - throw new Error(msg); - } - else if (ds == null) { - var msg = "ROV _connect failed to acquire DS: " + emsg; - console.log(msg); - if (String(emsg).indexOf("ccs.debug.activeContext") != -1) { - msg = "Unable to obtain package path from CCS. Try " - + "restarting ROV after starting the debugger. " - + emsg; - } - if (dsFlag) { - throw new Error(msg); - } - } - } - ).then( - /* return ROVServer submodule */ - function() { - console.log("_connect: requesting server ROV Module from agent"); - return agent.getSubModule("ROVServer"); - } - ); -} - -/* - * ======== _getCoreName ======== - */ -function _getCoreName(dsName) -{ - var coreName = ""; - if (dsName != null) { - var k = dsName.lastIndexOf('/'); - coreName = dsName.substr(k + 1); - } - - return (coreName); -} - -/* - * ======== _getProject ======== - * Return the "current project" or the project containing exePath - * - * Returns a promise that resolves to an object containing the name of the - * current project and its location. - * - * XMLHttpRequest returns: - * 400 and an error message when a required argument is not present - * in the request. - * 500 and log the error message when there is an unexpected exception - * while servicing a request - * 200 and an empty body when there is nothing to return. Eg, if the - * findContextProject finds nothing - * 200 and a JSON object in body (with contentType header set to - * "application/json"), when there is data to return - * 404, 403, etc. in the cases where server is down for some reason, - * or when request is sent to an unknown route - */ -function _getProject(exePath) -{ - var defer = Q.defer(); - - if (!ccs7) { - defer.resolve(null); - return (defer.promise); - } - - /* get project/workspace information */ - function transferFailed(req) { - /* the request for info failed */ - return function (evt) { - var msg = "An error occurred while getting " - + req + " info: " + evt; - console.log(msg); - defer.reject(msg); - }; - } - - function reqListener(req) { - /* the request for info succeeded (maybe: 404 errors return HTML!) */ - return function() { - console.log(req + " info: " + this.responseText); - var result = {name: null, location: null}; - try { - /* TODO: throw if req.status != 200? */ - if (this.responseText != "") { - result = JSON.parse(this.responseText); - } - } - catch (e) { - /* TODO: use statusText rather than responseText? */ - defer.reject("An error occurred while getting " - + req + " info: IDE server failed: " + this.responseText); - } - defer.resolve(result); - }; - } - - /* request current project from the CCS "ide server" */ - var req = new XMLHttpRequest(); - console.log("getting project ..."); - req.addEventListener("load", reqListener("project")); - req.addEventListener("error", transferFailed("project")); - - var suffix = "/ide/findContextProject"; - if (exePath != null) { - suffix = "/ide/findOwnerProject?resourcePath=" + exePath; - } - - req.open("GET", encodeURI(location.origin + suffix)); - req.send(); - - return (defer.promise); -} - -/* - * ======== _getPackagePath ======== - * Return the package path from the current context (if provided) - * - * Returns an array consisting of the package path components, the last - * being the "./packages" sub-directory of XDCtools. - * - * If running in the context of CCS7, ask CCS, otherwise returns null. - */ -function _getPackagePath(projectName) -{ - var defer = Q.defer(); - - if (!ccs7) { - defer.resolve(null); - return (defer.promise); - } - - /* get project/workspace information */ - function transferFailed(req) { - /* the request for info failed */ - return function (evt) { - var msg = "An error occurred while getting " - + req + " info: " + evt; - console.log(msg); - defer.reject(msg); - }; - } - - function reqListener(req) { - /* the request for info succeeded (maybe: 404 errors return HTML!) */ - return function() { - console.log(req + " info: " + this.responseText); - var result = null; - try { - if (this.responseText != "") { - var obj = JSON.parse(this.responseText); - result = obj.packagePath; - } - } - catch (e) { - defer.reject("An error occurred while getting " - + req + " info: IDE server failed: " + this.responseText); - } - defer.resolve(result); - }; - } - - /* request package path from the CCS "ide server" */ - var req = new XMLHttpRequest(); - if (projectName != null && projectName != "") { - /* get path from project */ - console.log("getting package path from project '" + projectName + "'."); - req.addEventListener("load", reqListener("project")); - req.addEventListener("error", transferFailed("project")); - req.open("GET", location.origin - + "/ide/getProjectProperties?projectName=" + projectName); - } - else { - /* get path from workspace */ - console.log("getting package path from workspace"); - req.addEventListener("load", reqListener("workspace")); - req.addEventListener("error", transferFailed("workspace")); - req.open("GET", location.origin + "/ide/getBuildPreferences"); - } - req.send(); - - return (defer.promise); -} - -/* - * ======== _getSymbols ======== - * Return a non-empty set of symbol files for the specified core - * - * If the current set of symbol files is [], wait up to 5s for that to - * change. If it doesn't, fail by rejecting the returned promise. - */ -function _getSymbols(core) -{ - console.log("_getSymbols: request core's symbol files"); - var defered = Q.defer(); - deferedSymbols = defered; /* request symbol files from symbols listener */ - return (core.symbols.getSymbolFiles().then( - function (syms) { - if (syms.symbolFiles.length != 0) { - console.log("_getSymbols: canceled core.symbols request"); - deferedSymbols = null; /* cancel symbols listener request */ - defered.resolve(syms); - } - return (defered.promise.timeout(5000, - "Can't connect: Program symbols must be loaded to " - + "core '" + dsActiveCoreName + "'")); - } - )); -} - -/* - * ======== _parsePackagePath ======== - */ -function _parsePackagePath(packagePath) -{ - if (packagePath != null && packagePath.length > 0) { - var xdcroot = packagePath[packagePath.length - 1].replace(/packages$/, ""); - var xdcpath = packagePath.slice(0, packagePath.length - 1).join(';'); - return ({ - xdcroot: xdcroot, - xdcpath: xdcpath - }); - } - return ({xdcpath: null, xdcroot:null}); -} - -/* - * ======== _parseExePath ======== - * Return JSON object with path components split out into distinct items - * { - * exeName: non-null String - * connType: non-null String - * connArgs: Array of 0 or more Strings - * } - * where, - * exeName - full path of the executable - * connType - connection type: "DSLite", "Serial", "Net", ... - * connArgs - array of String values needed by the connection - * or, in the event that none are supplied, [] - * - */ -function _parseExePath(path) -{ - var result = {}; - - /* separate exe from path */ - var tokens = path.split('?'); - result.exeName = tokens[0]; - - /* separate connection from name=value pairs */ - var connection = tokens[1].split('&')[0]; - - /* split connection into type and args */ - tokens = connection.split(':'); - result.connType = tokens.shift(); - result.connArgs = tokens; - - return (result); -} - -/* - * ======== _setupCore ======== - * If the debugger is not already configured, we configure it here for the - * specified device - * - * This function is only called when we are connecting via DSLite. - * - * dbg is the a debugger object that has a list of (possibly already) - * configured cores. - * - * devName is either "" or and basename (minus extension) of a .ccxml file - * that should be used to configure the device; if devName is "" - * the debugger should already have been configured. - * - * targetEvents and obj are used to send target events generated by - * dbg.cores[0] up to the caller - * - * Returns a promise - * resolved to core 0 module with debugger connected and target running - * or - * rejected because we can't start agent or the connection is - * DSLite and we failed to get the DS submodule - * - * (Internal function) - */ -function _setupCore(dbg, devName, targetEvents, obj) -{ - var prom; - console.log("configuring one debugger core of " + dbg.cores.length - + " cores"); - if (dbg.cores.length == 0 && devName != "") { - /* if the number of cores is 0, core 0 has not already been configured - * by the user via the debugger or a second instance of ROV; so, we - * try to do it now using the .ccxml file specified by devName. - */ - prom = _configureDebugger(devName); - } - else { - var promContainer = Q.defer(); - prom = promContainer.promise; - - if (dbg.cores.length == 0) { /* and devName == "" */ - promContainer.reject(new Error( - "the debugger has not been configured for any device. " - + "Try reconnecting after connecting to the target with " - + "the debugger.")); - } - else if (devName != "") { /* and dbg.cores.length != 0 */ - /* deconfigure closes websockets connected to all cores; so, to - * properly deconfigure we must restart monserver. For now we - * skip the deconfigure step until we figure out how to manage - * the lifecycle of DSLite cores and monserver instances - */ - promContainer.reject(new Error( - "the debugger has already been configured for the device. " - + "To connect with the existing configuration, don't " - + "specify a device configuration; use just 'Debugger'.")); - } - else { /* devName == "" and dbg.cores.length != 0 */ - /* Assume that the debugger has already started for the - * right configuration. - */ - console.log("debugger is up for core " + dbg.cores[0]); - promContainer.resolve(dbg); - } - } - - /* at this point prom is either resolved as dbg, or rejected */ - return prom.then( - function(dbg) { - /* select the currently active debug core */ - var id = 0; - if (dsActiveCoreName != null) { - for (var i = 0; i < dbg.cores.length; i++) { - if (dbg.cores[i] == dsActiveCoreName) { - id = i; - break; - } - } - } - var cname = dbg.cores[id]; - - console.log("adding listeners to core[" + id + "] = '" + cname + "'"); - return ds.getSubModule(cname).then( - /* add listeners to active core */ - function(debugCore) { - console.log("adding target state halt listener"); - debugCore.targetState.waitForHalt( - function(halted) { - debuggerStatus = "TargetHalt"; - console.log("targetState halted"); - } - ); - - debugCore.addListener("refresh", - function(status) { - console.log("core 'refresh' status: " - + JSON.stringify(status, null, 3)); - debuggerStatus = status.reason; - if (targetEvents) { - targetEvents(debuggerStatus, obj); - } - } - ); - - console.log("adding target state change listener"); - debugCore.targetState.addListener("changed", - function(status) { - console.log("targetState status: " - + JSON.stringify(status, null, 3)); - if (status.description == "Running") { - debuggerStatus = "Running"; - } - else if (status.description.match(/^Disconnected/)) - { - debuggerStatus = "Disconnected"; - } - } - ); - - console.log("adding target symbols change listener"); - debugCore.symbols.addListener("changed", - function(status) { - console.log("core.symbols status: " - + JSON.stringify(status, null, 3)); - - /* resolve non-empty symbol file requests */ - if (deferedSymbols - && status.symbolFiles - && status.symbolFiles.length != 0) { - - deferedSymbols.resolve(status); - deferedSymbols = null; - console.log("core.symbols resolved request"); - } - - /* trigger ROV reloads (if necessary) */ - if (exeSet != null - && status.symbolFiles - && status.symbolFiles.length == 0) { - - exeSet = null; - location.reload(true); - } - } - ); - - return (debugCore); - } - ).then( - /* connect to and start "active" debug core */ - function(debugCore) { - var alreadyConnected = false; - - console.log("connecting to active core"); - return debugCore.targetState.connect().then( - function() { - debuggerStatus = "Connected"; - } - ).fail( - function(err) { - if (err.message != undefined - && err.message == - "Target is already connected") { - /* If we made it here with this error message, - * it means the user already started debugger - * so we are not going to call run(). We - * let the user control ROV via the debugger. - */ - debuggerStatus = "Connected"; - alreadyConnected = true; - } - else { - console.log("connect failed: " - + (err.message ? err.message : err)); - throw (err); - } - } - ).then( - function() { - if (alreadyConnected == false) { - /* try starting the core, but ignore fails */ - console.log("starting: " + debugCore); - debugCore.targetState.run().fail( - function (err) { - var msg = - err.message ? err.message : err; - console.log(debugCore - + " could not be started: " + msg); - } - ); - } - - return (debugCore); - } - ); - } - ); - } - ). - fail( - /* handle the case where original prom was rejected */ - function(err) { - var msg = "Debugger setup failed: " - + (err.message ? err.message : err); - console.log(msg); - throw new Error(msg); - } - ); -} - -/* - * ======== _validateExe ======== - */ -function _validateExe(path, files) -{ - console.log("_validateExe(" + path + ", [" + files.symbolFiles + "])"); - - var tokens = path.split('?'); /* split exe path from the connection */ - var fpath = tokens[0].replace(/\\/g, '/'); - var suffix = '?' + tokens[1]; - - var dpath = ""; - if (files.symbolFiles.length > 0) { - dpath = files.symbolFiles[0].replace(/\\/g, '/'); - } - - /* check for miracles */ - if (dpath == fpath) { - return (dpath + suffix); - } - - /* take debugger's path if it's set and nothing else if specified */ - if (dpath != "" && (fpath == "undefined" || fpath == "")) { - return (dpath + suffix); - } - - /* take specified path if it's set and the debugger is clueless */ - if (dpath == "" && (fpath != "undefined" && fpath != "")) { - return (fpath + suffix); - } - - /* else fail */ - var msg = "can't determine the executable path from input '" - + fpath + "' and debugger's '" + dpath + "'"; - - if (dpath != "" && fpath != "undefined" && fpath != "") { - msg = "debugger loaded " + dpath - + "' but '" + fpath + "' was specified."; - } - else if (dpath == "" && (fpath == "undefined" || fpath == "")) { - msg = "no executable path was specifed. Either specify the path to the executable or, if connected via CCS, load program symbols."; - } - - throw (new Error(msg)); -} diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000020 b/Software/Embedded_SW/.jxbrowser-data/Cache/f_000020 deleted file mode 100644 index 010d57dc8..000000000 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/f_000020 +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -!function(a,b){var c={},d={},e={},f=null;!function(a,b){function c(a){if("number"==typeof a)return a;var b={};for(var c in a)b[c]=a[c];return b}function d(){this._delay=0,this._endDelay=0,this._fill="none",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction="normal",this._easing="linear",this._easingFunction=x}function e(){return a.isDeprecated("Invalid timing inputs","2016-03-02","TypeError exceptions will be thrown instead.",!0)}function f(b,c,e){var f=new d;return c&&(f.fill="both",f.duration="auto"),"number"!=typeof b||isNaN(b)?void 0!==b&&Object.getOwnPropertyNames(b).forEach(function(c){if("auto"!=b[c]){if(("number"==typeof f[c]||"duration"==c)&&("number"!=typeof b[c]||isNaN(b[c])))return;if("fill"==c&&v.indexOf(b[c])==-1)return;if("direction"==c&&w.indexOf(b[c])==-1)return;if("playbackRate"==c&&1!==b[c]&&a.isDeprecated("AnimationEffectTiming.playbackRate","2014-11-28","Use Animation.playbackRate instead."))return;f[c]=b[c]}}):f.duration=b,f}function g(a){return"number"==typeof a&&(a=isNaN(a)?{duration:0}:{duration:a}),a}function h(b,c){return b=a.numericTimingToObject(b),f(b,c)}function i(a,b,c,d){return a<0||a>1||c<0||c>1?x:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(e<=0){var g=0;return a>0?g=b/a:!b&&c>0&&(g=d/c),g*e}if(e>=1){var h=0;return c<1?h=(d-1)/(c-1):1==c&&a<1&&(h=(b-1)/(a-1)),1+h*(e-1)}for(var i=0,j=1;i<j;){var k=(i+j)/2,l=f(a,c,k);if(Math.abs(e-l)<1e-5)return f(b,d,k);l<e?i=k:j=k}return f(b,d,k)}}function j(a,b){return function(c){if(c>=1)return 1;var d=1/a;return c+=b*d,c-c%d}}function k(a){C||(C=document.createElement("div").style),C.animationTimingFunction="",C.animationTimingFunction=a;var b=C.animationTimingFunction;if(""==b&&e())throw new TypeError(a+" is not a valid value for easing");return b}function l(a){if("linear"==a)return x;var b=E.exec(a);if(b)return i.apply(this,b.slice(1).map(Number));var c=F.exec(a);if(c)return j(Number(c[1]),{start:y,middle:z,end:A}[c[2]]);var d=B[a];return d?d:x}function m(a){return Math.abs(n(a)/a.playbackRate)}function n(a){return 0===a.duration||0===a.iterations?0:a.duration*a.iterations}function o(a,b,c){if(null==b)return G;var d=c.delay+a+c.endDelay;return b<Math.min(c.delay,d)?H:b>=Math.min(c.delay+a,d)?I:J}function p(a,b,c,d,e){switch(d){case H:return"backwards"==b||"both"==b?0:null;case J:return c-e;case I:return"forwards"==b||"both"==b?a:null;case G:return null}}function q(a,b,c,d,e){var f=e;return 0===a?b!==H&&(f+=c):f+=d/a,f}function r(a,b,c,d,e,f){var g=a===1/0?b%1:a%1;return 0!==g||c!==I||0===d||0===e&&0!==f||(g=1),g}function s(a,b,c,d){return a===I&&b===1/0?1/0:1===c?Math.floor(d)-1:Math.floor(d)}function t(a,b,c){var d=a;if("normal"!==a&&"reverse"!==a){var e=b;"alternate-reverse"===a&&(e+=1),d="normal",e!==1/0&&e%2!==0&&(d="reverse")}return"normal"===d?c:1-c}function u(a,b,c){var d=o(a,b,c),e=p(a,c.fill,b,d,c.delay);if(null===e)return null;var f=q(c.duration,d,c.iterations,e,c.iterationStart),g=r(f,c.iterationStart,d,c.iterations,e,c.duration),h=s(d,c.iterations,g,f),i=t(c.direction,h,g);return c._easingFunction(i)}var v="backwards|forwards|both|none".split("|"),w="reverse|alternate|alternate-reverse".split("|"),x=function(a){return a};d.prototype={_setMember:function(b,c){this["_"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember("delay",a)},get delay(){return this._delay},set endDelay(a){this._setMember("endDelay",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember("fill",a)},get fill(){return this._fill},set iterationStart(a){if((isNaN(a)||a<0)&&e())throw new TypeError("iterationStart must be a non-negative number, received: "+timing.iterationStart);this._setMember("iterationStart",a)},get iterationStart(){return this._iterationStart},set duration(a){if("auto"!=a&&(isNaN(a)||a<0)&&e())throw new TypeError("duration must be non-negative or auto, received: "+a);this._setMember("duration",a)},get duration(){return this._duration},set direction(a){this._setMember("direction",a)},get direction(){return this._direction},set easing(a){this._easingFunction=l(k(a)),this._setMember("easing",a)},get easing(){return this._easing},set iterations(a){if((isNaN(a)||a<0)&&e())throw new TypeError("iterations must be non-negative, received: "+a);this._setMember("iterations",a)},get iterations(){return this._iterations}};var y=1,z=.5,A=0,B={ease:i(.25,.1,.25,1),"ease-in":i(.42,0,1,1),"ease-out":i(0,0,.58,1),"ease-in-out":i(.42,0,.58,1),"step-start":j(1,y),"step-middle":j(1,z),"step-end":j(1,A)},C=null,D="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",E=new RegExp("cubic-bezier\\("+D+","+D+","+D+","+D+"\\)"),F=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,G=0,H=1,I=2,J=3;a.cloneTimingInput=c,a.makeTiming=f,a.numericTimingToObject=g,a.normalizeTimingInput=h,a.calculateActiveDuration=m,a.calculateIterationProgress=u,a.calculatePhase=o,a.normalizeEasing=k,a.parseEasingFunction=l}(c,f),function(a,b){function c(a,b){return a in k?k[a][b]||b:b}function d(a){return"display"===a||0===a.lastIndexOf("animation",0)||0===a.lastIndexOf("transition",0)}function e(a,b,e){if(!d(a)){var f=h[a];if(f){i.style[a]=b;for(var g in f){var j=f[g],k=i.style[j];e[j]=c(j,k)}}else e[a]=c(a,b)}}function f(a){var b=[];for(var c in a)if(!(c in["easing","offset","composite"])){var d=a[c];Array.isArray(d)||(d=[d]);for(var e,f=d.length,g=0;g<f;g++)e={},"offset"in a?e.offset=a.offset:1==f?e.offset=1:e.offset=g/(f-1),"easing"in a&&(e.easing=a.easing),"composite"in a&&(e.composite=a.composite),e[c]=d[g],b.push(e)}return b.sort(function(a,b){return a.offset-b.offset}),b}function g(b){function c(){var a=d.length;null==d[a-1].offset&&(d[a-1].offset=1),a>1&&null==d[0].offset&&(d[0].offset=0);for(var b=0,c=d[0].offset,e=1;e<a;e++){var f=d[e].offset;if(null!=f){for(var g=1;g<e-b;g++)d[b+g].offset=c+(f-c)*g/(e-b);b=e,c=f}}}if(null==b)return[];window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||(b=f(b));for(var d=b.map(function(b){var c={};for(var d in b){var f=b[d];if("offset"==d){if(null!=f){if(f=Number(f),!isFinite(f))throw new TypeError("Keyframe offsets must be numbers.");if(f<0||f>1)throw new TypeError("Keyframe offsets must be between 0 and 1.")}}else if("composite"==d){if("add"==f||"accumulate"==f)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"add compositing is not supported"};if("replace"!=f)throw new TypeError("Invalid composite mode "+f+".")}else f="easing"==d?a.normalizeEasing(f):""+f;e(d,f,c)}return void 0==c.offset&&(c.offset=null),void 0==c.easing&&(c.easing="linear"),c}),g=!0,h=-(1/0),i=0;i<d.length;i++){var j=d[i].offset;if(null!=j){if(j<h)throw new TypeError("Keyframes are not loosely sorted by offset. Sort or specify offsets.");h=j}else g=!1}return d=d.filter(function(a){return a.offset>=0&&a.offset<=1}),g||c(),d}var h={background:["backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","backgroundAttachment","backgroundOrigin","backgroundClip","backgroundColor"],border:["borderTopColor","borderTopStyle","borderTopWidth","borderRightColor","borderRightStyle","borderRightWidth","borderBottomColor","borderBottomStyle","borderBottomWidth","borderLeftColor","borderLeftStyle","borderLeftWidth"],borderBottom:["borderBottomWidth","borderBottomStyle","borderBottomColor"],borderColor:["borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],borderLeft:["borderLeftWidth","borderLeftStyle","borderLeftColor"],borderRadius:["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],borderRight:["borderRightWidth","borderRightStyle","borderRightColor"],borderTop:["borderTopWidth","borderTopStyle","borderTopColor"],borderWidth:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],flex:["flexGrow","flexShrink","flexBasis"],font:["fontFamily","fontSize","fontStyle","fontVariant","fontWeight","lineHeight"],margin:["marginTop","marginRight","marginBottom","marginLeft"],outline:["outlineColor","outlineStyle","outlineWidth"],padding:["paddingTop","paddingRight","paddingBottom","paddingLeft"]},i=document.createElementNS("http://www.w3.org/1999/xhtml","div"),j={thin:"1px",medium:"3px",thick:"5px"},k={borderBottomWidth:j,borderLeftWidth:j,borderRightWidth:j,borderTopWidth:j,fontSize:{"xx-small":"60%","x-small":"75%",small:"89%",medium:"100%",large:"120%","x-large":"150%","xx-large":"200%"},fontWeight:{normal:"400",bold:"700"},outlineWidth:j,textShadow:{none:"0px 0px 0px transparent"},boxShadow:{none:"0px 0px 0px 0px transparent"}};a.convertToArrayForm=f,a.normalizeKeyframes=g}(c,f),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?"are":"is",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),!(g<h&&(a in b||console.warn("Web Animations: "+a+" "+f+" deprecated and will stop working on "+h.toDateString()+". "+d),b[a]=!0,1))},a.deprecated=function(b,c,d,e){var f=e?"are":"is";if(a.isDeprecated(b,c,d,e))throw new Error(b+" "+f+" no longer supported. "+d)}}(c),function(){if(document.documentElement.animate){var a=document.documentElement.animate([],0),b=!0;if(a&&(b=!1,"play|currentTime|pause|reverse|playbackRate|cancel|finish|startTime|playState".split("|").forEach(function(c){void 0===a[c]&&(b=!0)})),!b)return}!function(a,b,c){function d(a){for(var b={},c=0;c<a.length;c++)for(var d in a[c])if("offset"!=d&&"easing"!=d&&"composite"!=d){var e={offset:a[c].offset,easing:a[c].easing,value:a[c][d]};b[d]=b[d]||[],b[d].push(e)}for(var f in b){var g=b[f];if(0!=g[0].offset||1!=g[g.length-1].offset)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"Partial keyframes are not supported"}}return b}function e(c){var d=[];for(var e in c)for(var f=c[e],g=0;g<f.length-1;g++){var h=g,i=g+1,j=f[h].offset,k=f[i].offset,l=j,m=k;0==g&&(l=-(1/0),0==k&&(i=h)),g==f.length-2&&(m=1/0,1==j&&(h=i)),d.push({applyFrom:l,applyTo:m,startOffset:f[h].offset,endOffset:f[i].offset,easingFunction:a.parseEasingFunction(f[h].easing),property:e,interpolation:b.propertyInterpolation(e,f[h].value,f[i].value)})}return d.sort(function(a,b){return a.startOffset-b.startOffset}),d}b.convertEffectInput=function(c){var f=a.normalizeKeyframes(c),g=d(f),h=e(g);return function(a,c){if(null!=c)h.filter(function(a){return c>=a.applyFrom&&c<a.applyTo}).forEach(function(d){var e=c-d.startOffset,f=d.endOffset-d.startOffset,g=0==f?0:d.easingFunction(e/f);b.apply(a,d.property,d.interpolation(g))});else for(var d in g)"offset"!=d&&"easing"!=d&&"composite"!=d&&b.clear(a,d)}}}(c,d,f),function(a,b,c){function d(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}function e(a,b,c){h[c]=h[c]||[],h[c].push([a,b])}function f(a,b,c){for(var f=0;f<c.length;f++){var g=c[f];e(a,b,d(g))}}function g(c,e,f){var g=c;/-/.test(c)&&!a.isDeprecated("Hyphenated property names","2016-03-22","Use camelCase instead.",!0)&&(g=d(c)),"initial"!=e&&"initial"!=f||("initial"==e&&(e=i[g]),"initial"==f&&(f=i[g]));for(var j=e==f?[]:h[g],k=0;j&&k<j.length;k++){var l=j[k][0](e),m=j[k][0](f);if(void 0!==l&&void 0!==m){var n=j[k][1](l,m);if(n){var o=b.Interpolation.apply(null,n);return function(a){return 0==a?e:1==a?f:o(a)}}}}return b.Interpolation(!1,!0,function(a){return a?f:e})}var h={};b.addPropertiesHandler=f;var i={backgroundColor:"transparent",backgroundPosition:"0% 0%",borderBottomColor:"currentColor",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",borderBottomWidth:"3px",borderLeftColor:"currentColor",borderLeftWidth:"3px",borderRightColor:"currentColor",borderRightWidth:"3px",borderSpacing:"2px",borderTopColor:"currentColor",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderTopWidth:"3px",bottom:"auto",clip:"rect(0px, 0px, 0px, 0px)",color:"black",fontSize:"100%",fontWeight:"400",height:"auto",left:"auto",letterSpacing:"normal",lineHeight:"120%",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",marginTop:"0px",maxHeight:"none",maxWidth:"none",minHeight:"0px",minWidth:"0px",opacity:"1.0",outlineColor:"invert",outlineOffset:"0px",outlineWidth:"3px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",paddingTop:"0px",right:"auto",textIndent:"0px",textShadow:"0px 0px 0px transparent",top:"auto",transform:"",verticalAlign:"0px",visibility:"visible",width:"auto",wordSpacing:"normal",zIndex:"auto"};b.propertyInterpolation=g}(c,d,f),function(a,b,c){function d(b){var c=a.calculateActiveDuration(b),d=function(d){return a.calculateIterationProgress(c,d,b)};return d._totalDuration=b.delay+c+b.endDelay,d}b.KeyframeEffect=function(c,e,f,g){var h,i=d(a.normalizeTimingInput(f)),j=b.convertEffectInput(e),k=function(){j(c,h)};return k._update=function(a){return h=i(a),null!==h},k._clear=function(){j(c,null)},k._hasSameTarget=function(a){return c===a},k._target=c,k._totalDuration=i._totalDuration,k._id=g,k},b.NullEffect=function(a){var b=function(){a&&(a(),a=null)};return b._update=function(){return null},b._totalDuration=0,b._hasSameTarget=function(){return!1},b}}(c,d,f),function(a,b){a.apply=function(b,c,d){b.style[a.propertyName(c)]=d},a.clear=function(b,c){b.style[a.propertyName(c)]=""}}(d,f),function(a){window.Element.prototype.animate=function(b,c){var d="";return c&&c.id&&(d=c.id),a.timeline._play(a.KeyframeEffect(this,b,c,d))}}(d),function(a,b){function c(a,b,d){if("number"==typeof a&&"number"==typeof b)return a*(1-d)+b*d;if("boolean"==typeof a&&"boolean"==typeof b)return d<.5?a:b;if(a.length==b.length){for(var e=[],f=0;f<a.length;f++)e.push(c(a[f],b[f],d));return e}throw"Mismatched interpolation arguments "+a+":"+b}a.Interpolation=function(a,b,d){return function(e){return d(c(a,b,e))}}}(d,f),function(a,b,c){a.sequenceNumber=0;var d=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type="finish",this.bubbles=!1,this.cancelable=!1,this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()};b.Animation=function(b){this.id="",b&&b._id&&(this.id=b._id),this._sequenceNumber=a.sequenceNumber++,this._currentTime=0,this._startTime=null,this._paused=!1,this._playbackRate=1,this._inTimeline=!0,this._finishedFlag=!0,this.onfinish=null,this._finishHandlers=[],this._effect=b,this._inEffect=this._effect._update(0),this._idle=!0,this._currentTimePending=!1},b.Animation.prototype={_ensureAlive:function(){this.playbackRate<0&&0===this.currentTime?this._inEffect=this._effect._update(-1):this._inEffect=this._effect._update(this.currentTime),this._inTimeline||!this._inEffect&&this._finishedFlag||(this._inTimeline=!0,b.timeline._animations.push(this))},_tickCurrentTime:function(a,b){a!=this._currentTime&&(this._currentTime=a,this._isFinished&&!b&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(a,!0),b.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var c=this.currentTime;this._playbackRate=a,this._startTime=null,"paused"!=this.playState&&"idle"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)),null!=c&&(this.currentTime=c)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?"idle":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?"pending":this._paused?"paused":this._isFinished?"finished":"running"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException("Unable to rewind negative playback rate animation with infinite duration","InvalidStateError");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,b.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._isFinished=!0,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),b.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){"function"==typeof b&&"finish"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if("finish"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){if(this._isFinished){if(!this._finishedFlag){var b=new d(this,this._currentTime,a),c=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){c.forEach(function(a){a.call(b.target,b)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(a,b){this._idle||this._paused||(null==this._startTime?b&&(this.startTime=a-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),b&&(this._currentTimePending=!1,this._fireEvents(a))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var a=this._effect._target;return a._activeAnimations||(a._activeAnimations=[]),a._activeAnimations},_markTarget:function(){var a=this._targetAnimations();a.indexOf(this)===-1&&a.push(this)},_unmarkTarget:function(){var a=this._targetAnimations(),b=a.indexOf(this);b!==-1&&a.splice(b,1)}}}(c,d,f),function(a,b,c){function d(a){var b=j;j=[],a<q.currentTime&&(a=q.currentTime),q._animations.sort(e),q._animations=h(a,!0,q._animations)[0],b.forEach(function(b){b[1](a)}),g(),l=void 0}function e(a,b){return a._sequenceNumber-b._sequenceNumber}function f(){this._animations=[],this.currentTime=window.performance&&performance.now?performance.now():0}function g(){o.forEach(function(a){a()}),o.length=0}function h(a,c,d){p=!0,n=!1;var e=b.timeline;e.currentTime=a,m=!1;var f=[],g=[],h=[],i=[];return d.forEach(function(b){b._tick(a,c),b._inEffect?(g.push(b._effect),b._markTarget()):(f.push(b._effect),b._unmarkTarget()),b._needsTick&&(m=!0);var d=b._inEffect||b._needsTick;b._inTimeline=d,d?h.push(b):i.push(b)}),o.push.apply(o,f),o.push.apply(o,g),m&&requestAnimationFrame(function(){}),p=!1,[h,i]}var i=window.requestAnimationFrame,j=[],k=0;window.requestAnimationFrame=function(a){var b=k++;return 0==j.length&&i(d),j.push([b,a]),b},window.cancelAnimationFrame=function(a){j.forEach(function(b){b[0]==a&&(b[1]=function(){})})},f.prototype={_play:function(c){c._timing=a.normalizeTimingInput(c.timing);var d=new b.Animation(c);return d._idle=!1,d._timeline=this,this._animations.push(d),b.restart(),b.applyDirtiedAnimation(d),d}};var l=void 0,m=!1,n=!1;b.restart=function(){return m||(m=!0,requestAnimationFrame(function(){}),n=!0),n},b.applyDirtiedAnimation=function(a){if(!p){a._markTarget();var c=a._targetAnimations();c.sort(e);var d=h(b.timeline.currentTime,!1,c.slice())[1];d.forEach(function(a){var b=q._animations.indexOf(a);b!==-1&&q._animations.splice(b,1)}),g()}};var o=[],p=!1,q=new f;b.timeline=q}(c,d,f),function(a){function b(a,b){var c=a.exec(b);if(c)return c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]}function c(a,b){b=b.replace(/^\s*/,"");var c=a(b);if(c)return[c[0],c[1].replace(/^\s*/,"")]}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],g=b(d,e),!g||""==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;d<b.length&&(!/\s|,/.test(b[d])||0!=c);d++)if("("==b[d])c++;else if(")"==b[d]&&(c--,0==c&&d++,c<=0))break;var e=a(b.substr(0,d));return void 0==e?void 0:[e,b.substr(d)]}function f(a,b){for(var c=a,d=b;c&&d;)c>d?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){var d=a(c);return d?d:[b,c]}}function i(b,c){for(var d=[],e=0;e<b.length;e++){var f=a.consumeTrimmed(b[e],c);if(!f||""==f[0])return;void 0!==f[0]&&d.push(f[0]),c=f[1]}if(""==c)return d}function j(a,b,c,d,e){for(var g=[],h=[],i=[],j=f(d.length,e.length),k=0;k<j;k++){var l=b(d[k%d.length],e[k%e.length]);if(!l)return;g.push(l[0]),h.push(l[1]),i.push(l[2])}return[g,h,function(b){var d=b.map(function(a,b){return i[b](a)}).join(c);return a?a(d):d}]}function k(a,b,c){for(var d=[],e=[],f=[],g=0,h=0;h<c.length;h++)if("function"==typeof c[h]){var i=c[h](a[g],b[g++]);d.push(i[0]),e.push(i[1]),f.push(i[2])}else!function(a){d.push(!1),e.push(!1),f.push(function(){return c[a]})}(h);return[d,e,function(a){for(var b="",c=0;c<a.length;c++)b+=f[c](a[c]);return b}]}a.consumeToken=b,a.consumeTrimmed=c,a.consumeRepeated=d,a.consumeParenthesised=e,a.ignore=g,a.optional=h,a.consumeList=i,a.mergeNestedRepeated=j.bind(null,null),a.mergeWrappedNestedRepeated=j,a.mergeList=k}(d),function(a){function b(b){function c(b){var c=a.consumeToken(/^inset/i,b);if(c)return d.inset=!0,c;var c=a.consumeLengthOrPercent(b);if(c)return d.lengths.push(c[0]),c;var c=a.consumeColor(b);return c?(d.color=c[0],c):void 0}var d={inset:!1,lengths:[],color:null},e=a.consumeRepeated(c,/^/,b);if(e&&e[0].length)return[d,e[1]]}function c(c){var d=a.consumeRepeated(b,/^,/,c);if(d&&""==d[1])return d[0]}function d(b,c){for(;b.lengths.length<Math.max(b.lengths.length,c.lengths.length);)b.lengths.push({px:0});for(;c.lengths.length<Math.max(b.lengths.length,c.lengths.length);)c.lengths.push({px:0});if(b.inset==c.inset&&!!b.color==!!c.color){for(var d,e=[],f=[[],0],g=[[],0],h=0;h<b.lengths.length;h++){var i=a.mergeDimensions(b.lengths[h],c.lengths[h],2==h);f[0].push(i[0]),g[0].push(i[1]),e.push(i[2])}if(b.color&&c.color){var j=a.mergeColors(b.color,c.color);f[1]=j[0],g[1]=j[1],d=j[2]}return[f,g,function(a){for(var c=b.inset?"inset ":" ",f=0;f<e.length;f++)c+=e[f](a[0][f])+" ";return d&&(c+=d(a[1])),c}]}}function e(b,c,d,e){function f(a){return{inset:a,color:[0,0,0,0],lengths:[{px:0},{px:0},{px:0},{px:0}]}}for(var g=[],h=[],i=0;i<d.length||i<e.length;i++){var j=d[i]||f(e[i].inset),k=e[i]||f(d[i].inset);g.push(j),h.push(k)}return a.mergeNestedRepeated(b,c,g,h)}var f=e.bind(null,d,", ");a.addPropertiesHandler(c,f,["box-shadow","text-shadow"])}(d),function(a,b){function c(a){return a.toFixed(3).replace(".000","")}function d(a,b,c){return Math.min(b,Math.max(a,c))}function e(a){if(/^\s*[-+]?(\d*\.)?\d+\s*$/.test(a))return Number(a)}function f(a,b){return[a,b,c]}function g(a,b){if(0!=a)return i(0,1/0)(a,b)}function h(a,b){return[a,b,function(a){return Math.round(d(1,1/0,a))}]}function i(a,b){return function(e,f){return[e,f,function(e){return c(d(a,b,e))}]}}function j(a,b){return[a,b,Math.round]}a.clamp=d,a.addPropertiesHandler(e,i(0,1/0),["border-image-width","line-height"]),a.addPropertiesHandler(e,i(0,1),["opacity","shape-image-threshold"]),a.addPropertiesHandler(e,g,["flex-grow","flex-shrink"]),a.addPropertiesHandler(e,h,["orphans","widows"]),a.addPropertiesHandler(e,j,["z-index"]),a.parseNumber=e,a.mergeNumbers=f,a.numberToString=c}(d,f),function(a,b){function c(a,b){if("visible"==a||"visible"==b)return[0,1,function(c){return c<=0?a:c>=1?b:"visible"}]}a.addPropertiesHandler(String,c,["visibility"])}(d),function(a,b){function c(a){a=a.trim(),f.fillStyle="#000",f.fillStyle=a;var b=f.fillStyle;if(f.fillStyle="#fff",f.fillStyle=a,b==f.fillStyle){f.fillRect(0,0,1,1);var c=f.getImageData(0,0,1,1).data;f.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function d(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;d<3;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),"rgba("+b.join(",")+")"}]}var e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");e.width=e.height=1;var f=e.getContext("2d");a.addPropertiesHandler(c,d,["background-color","border-bottom-color","border-left-color","border-right-color","border-top-color","color","outline-color","text-decoration-color"]),a.consumeColor=a.consumeParenthesised.bind(null,c),a.mergeColors=d}(d,f),function(a,b){function c(a,b){if(b=b.trim().toLowerCase(),"0"==b&&"px".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\(/g,"(");var c={};b=b.replace(a,function(a){return c[a]=null,"U"+a});for(var d="U("+a.source+")",e=b.replace(/[-+]?(\d*\.)?\d+/g,"N").replace(new RegExp("N"+d,"g"),"D").replace(/\s[+-]\s/g,"O").replace(/\s/g,""),f=[/N\*(D)/g,/(N|D)[*\/]N/g,/(N|D)O\1/g,/\((N|D)\)/g],g=0;g<f.length;)f[g].test(e)?(e=e.replace(f[g],"$1"),g=0):g++;if("D"==e){for(var h in c){var i=eval(b.replace(new RegExp("U"+h,"g"),"").replace(new RegExp(d,"g"),"*0"));if(!isFinite(i))return;c[h]=i}return c}}}function d(a,b){return e(a,b,!0)}function e(b,c,d){var e,f=[];for(e in b)f.push(e);for(e in c)f.indexOf(e)<0&&f.push(e);return b=f.map(function(a){return b[a]||0}),c=f.map(function(a){return c[a]||0}),[b,c,function(b){var c=b.map(function(c,e){return 1==b.length&&d&&(c=Math.max(c,0)),a.numberToString(c)+f[e]}).join(" + ");return b.length>1?"calc("+c+")":c}]}var f="px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc",g=c.bind(null,new RegExp(f,"g")),h=c.bind(null,new RegExp(f+"|%","g")),i=c.bind(null,/deg|rad|grad|turn/g);a.parseLength=g,a.parseLengthOrPercent=h,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,h),a.parseAngle=i,a.mergeDimensions=e;var j=a.consumeParenthesised.bind(null,g),k=a.consumeRepeated.bind(void 0,j,/^/),l=a.consumeRepeated.bind(void 0,k,/^,/);a.consumeSizePairList=l;var m=function(a){var b=l(a);if(b&&""==b[1])return b[0]},n=a.mergeNestedRepeated.bind(void 0,d," "),o=a.mergeNestedRepeated.bind(void 0,n,",");a.mergeNonNegativeSizePair=n,a.addPropertiesHandler(m,o,["background-size"]),a.addPropertiesHandler(h,d,["border-bottom-width","border-image-width","border-left-width","border-right-width","border-top-width","flex-basis","font-size","height","line-height","max-height","max-width","outline-width","width"]),a.addPropertiesHandler(h,e,["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","bottom","left","letter-spacing","margin-bottom","margin-left","margin-right","margin-top","min-height","min-width","outline-offset","padding-bottom","padding-left","padding-right","padding-top","perspective","right","shape-margin","text-indent","top","vertical-align","word-spacing"])}(d,f),function(a,b){function c(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function d(b){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\(/)),a.consumeRepeated.bind(null,c,/^,/),a.ignore(a.consumeToken.bind(null,/^\)/))],b);if(d&&4==d[0].length)return d[0]}function e(b,c){return"auto"==b||"auto"==c?[!0,!1,function(d){var e=d?b:c;if("auto"==e)return"auto";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function f(a){return"rect("+a+")"}var g=a.mergeWrappedNestedRepeated.bind(null,f,e,", ");a.parseBox=d,a.mergeBoxes=g,a.addPropertiesHandler(d,g,["clip"])}(d,f),function(a,b){function c(a){return function(b){var c=0;return a.map(function(a){return a===k?b[c++]:a})}}function d(a){return a}function e(b){if(b=b.toLowerCase().trim(),"none"==b)return[];for(var c,d=/\s*(\w+)\(([^)]*)\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=n[g];if(!h)return;var i=c[2].split(","),j=h[0];if(j.length<i.length)return;for(var k=[],o=0;o<j.length;o++){var p,q=i[o],r=j[o];if(p=q?{A:function(b){return"0"==b.trim()?m:a.parseAngle(b)},N:a.parseNumber,T:a.parseLengthOrPercent,L:a.parseLength}[r.toUpperCase()](q):{a:m,n:k[0],t:l}[r],void 0===p)return;k.push(p)}if(e.push({t:g,d:k}),d.lastIndex==b.length)return e}}function f(a){return a.toFixed(6).replace(".000000","")}function g(b,c){if(b.decompositionPair!==c){b.decompositionPair=c;var d=a.makeMatrixDecomposition(b)}if(c.decompositionPair!==b){c.decompositionPair=b;var e=a.makeMatrixDecomposition(c)}return null==d[0]||null==e[0]?[[!1],[!0],function(a){return a?c[0].d:b[0].d}]:(d[0].push(0),e[0].push(1),[d,e,function(b){var c=a.quat(d[0][3],e[0][3],b[5]),g=a.composeMatrix(b[0],b[1],b[2],c,b[4]),h=g.map(f).join(",");return h}])}function h(a){return a.replace(/[xy]/,"")}function i(a){return a.replace(/(x|y|z|3d)?$/,"3d")}function j(b,c){var d=a.makeMatrixDecomposition&&!0,e=!1;if(!b.length||!c.length){b.length||(e=!0,b=c,c=[]);for(var f=0;f<b.length;f++){var j=b[f].t,k=b[f].d,l="scale"==j.substr(0,5)?1:0;c.push({t:j,d:k.map(function(a){if("number"==typeof a)return l;var b={};for(var c in a)b[c]=l;return b})})}}var m=function(a,b){return"perspective"==a&&"perspective"==b||("matrix"==a||"matrix3d"==a)&&("matrix"==b||"matrix3d"==b)},o=[],p=[],q=[];if(b.length!=c.length){if(!d)return;var r=g(b,c);o=[r[0]],p=[r[1]],q=[["matrix",[r[2]]]]}else for(var f=0;f<b.length;f++){var j,s=b[f].t,t=c[f].t,u=b[f].d,v=c[f].d,w=n[s],x=n[t];if(m(s,t)){if(!d)return;var r=g([b[f]],[c[f]]);o.push(r[0]),p.push(r[1]),q.push(["matrix",[r[2]]])}else{if(s==t)j=s;else if(w[2]&&x[2]&&h(s)==h(t))j=h(s),u=w[2](u),v=x[2](v);else{if(!w[1]||!x[1]||i(s)!=i(t)){if(!d)return;var r=g(b,c);o=[r[0]],p=[r[1]],q=[["matrix",[r[2]]]];break}j=i(s),u=w[1](u),v=x[1](v)}for(var y=[],z=[],A=[],B=0;B<u.length;B++){var C="number"==typeof u[B]?a.mergeNumbers:a.mergeDimensions,r=C(u[B],v[B]);y[B]=r[0],z[B]=r[1],A.push(r[2])}o.push(y),p.push(z),q.push([j,A])}}if(e){var D=o;o=p,p=D}return[o,p,function(a){return a.map(function(a,b){var c=a.map(function(a,c){return q[b][1][c](a)}).join(",");return"matrix"==q[b][0]&&16==c.split(",").length&&(q[b][0]="matrix3d"),q[b][0]+"("+c+")"}).join(" ")}]}var k=null,l={px:0},m={deg:0},n={matrix:["NNNNNN",[k,k,0,0,k,k,0,0,0,0,1,0,k,k,0,1],d],matrix3d:["NNNNNNNNNNNNNNNN",d],rotate:["A"],rotatex:["A"],rotatey:["A"],rotatez:["A"],rotate3d:["NNNA"],perspective:["L"],scale:["Nn",c([k,k,1]),d],scalex:["N",c([k,1,1]),c([k,1])],scaley:["N",c([1,k,1]),c([1,k])],scalez:["N",c([1,1,k])],scale3d:["NNN",d],skew:["Aa",null,d],skewx:["A",null,c([k,m])],skewy:["A",null,c([m,k])],translate:["Tt",c([k,k,l]),d],translatex:["T",c([k,l,l]),c([k,l])],translatey:["T",c([l,k,l]),c([l,k])],translatez:["L",c([l,l,k])],translate3d:["TTL",d]};a.addPropertiesHandler(e,j,["transform"])}(d,f),function(a,b){function c(a,b){b.concat([a]).forEach(function(b){b in document.documentElement.style&&(d[a]=b)})}var d={};c("transform",["webkitTransform","msTransform"]),c("transformOrigin",["webkitTransformOrigin"]),c("perspective",["webkitPerspective"]),c("perspectiveOrigin",["webkitPerspectiveOrigin"]),a.propertyName=function(a){return d[a]||a}}(d,f)}(),!function(){if(void 0===document.createElement("div").animate([]).oncancel){var a;if(window.performance&&performance.now)var a=function(){return performance.now()};else var a=function(){return Date.now()};var b=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type="cancel",this.bubbles=!1,this.cancelable=!1, -this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()},c=window.Element.prototype.animate;window.Element.prototype.animate=function(d,e){var f=c.call(this,d,e);f._cancelHandlers=[],f.oncancel=null;var g=f.cancel;f.cancel=function(){g.call(this);var c=new b(this,null,a()),d=this._cancelHandlers.concat(this.oncancel?[this.oncancel]:[]);setTimeout(function(){d.forEach(function(a){a.call(c.target,c)})},0)};var h=f.addEventListener;f.addEventListener=function(a,b){"function"==typeof b&&"cancel"==a?this._cancelHandlers.push(b):h.call(this,a,b)};var i=f.removeEventListener;return f.removeEventListener=function(a,b){if("cancel"==a){var c=this._cancelHandlers.indexOf(b);c>=0&&this._cancelHandlers.splice(c,1)}else i.call(this,a,b)},f}}}(),function(a){var b=document.documentElement,c=null,d=!1;try{var e=getComputedStyle(b).getPropertyValue("opacity"),f="0"==e?"1":"0";c=b.animate({opacity:[f,f]},{duration:1}),c.currentTime=0,d=getComputedStyle(b).getPropertyValue("opacity")==f}catch(a){}finally{c&&c.cancel()}if(!d){var g=window.Element.prototype.animate;window.Element.prototype.animate=function(b,c){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||null===b||(b=a.convertToArrayForm(b)),g.call(this,b,c)}}}(c),!function(a,b,c){function d(a){var c=b.timeline;c.currentTime=a,c._discardAnimations(),0==c._animations.length?f=!1:requestAnimationFrame(d)}var e=window.requestAnimationFrame;window.requestAnimationFrame=function(a){return e(function(c){b.timeline._updateAnimationsPromises(),a(c),b.timeline._updateAnimationsPromises()})},b.AnimationTimeline=function(){this._animations=[],this.currentTime=void 0},b.AnimationTimeline.prototype={getAnimations:function(){return this._discardAnimations(),this._animations.slice()},_updateAnimationsPromises:function(){b.animationsWithPromises=b.animationsWithPromises.filter(function(a){return a._updatePromises()})},_discardAnimations:function(){this._updateAnimationsPromises(),this._animations=this._animations.filter(function(a){return"finished"!=a.playState&&"idle"!=a.playState})},_play:function(a){var c=new b.Animation(a,this);return this._animations.push(c),b.restartWebAnimationsNextTick(),c._updatePromises(),c._animation.play(),c._updatePromises(),c},play:function(a){return a&&a.remove(),this._play(a)}};var f=!1;b.restartWebAnimationsNextTick=function(){f||(f=!0,requestAnimationFrame(d))};var g=new b.AnimationTimeline;b.timeline=g;try{Object.defineProperty(window.document,"timeline",{configurable:!0,get:function(){return g}})}catch(a){}try{window.document.timeline=g}catch(a){}}(c,e,f),function(a,b,c){b.animationsWithPromises=[],b.Animation=function(b,c){if(this.id="",b&&b._id&&(this.id=b._id),this.effect=b,b&&(b._animation=this),!c)throw new Error("Animation with null timeline is not supported");this._timeline=c,this._sequenceNumber=a.sequenceNumber++,this._holdTime=0,this._paused=!1,this._isGroup=!1,this._animation=null,this._childAnimations=[],this._callback=null,this._oldPlayState="idle",this._rebuildUnderlyingAnimation(),this._animation.cancel(),this._updatePromises()},b.Animation.prototype={_updatePromises:function(){var a=this._oldPlayState,b=this.playState;return this._readyPromise&&b!==a&&("idle"==b?(this._rejectReadyPromise(),this._readyPromise=void 0):"pending"==a?this._resolveReadyPromise():"pending"==b&&(this._readyPromise=void 0)),this._finishedPromise&&b!==a&&("idle"==b?(this._rejectFinishedPromise(),this._finishedPromise=void 0):"finished"==b?this._resolveFinishedPromise():"finished"==a&&(this._finishedPromise=void 0)),this._oldPlayState=this.playState,this._readyPromise||this._finishedPromise},_rebuildUnderlyingAnimation:function(){this._updatePromises();var a,c,d,e,f=!!this._animation;f&&(a=this.playbackRate,c=this._paused,d=this.startTime,e=this.currentTime,this._animation.cancel(),this._animation._wrapper=null,this._animation=null),(!this.effect||this.effect instanceof window.KeyframeEffect)&&(this._animation=b.newUnderlyingAnimationForKeyframeEffect(this.effect),b.bindAnimationForKeyframeEffect(this)),(this.effect instanceof window.SequenceEffect||this.effect instanceof window.GroupEffect)&&(this._animation=b.newUnderlyingAnimationForGroup(this.effect),b.bindAnimationForGroup(this)),this.effect&&this.effect._onsample&&b.bindAnimationForCustomEffect(this),f&&(1!=a&&(this.playbackRate=a),null!==d?this.startTime=d:null!==e?this.currentTime=e:null!==this._holdTime&&(this.currentTime=this._holdTime),c&&this.pause()),this._updatePromises()},_updateChildren:function(){if(this.effect&&"idle"!=this.playState){var a=this.effect._timing.delay;this._childAnimations.forEach(function(c){this._arrangeChildren(c,a),this.effect instanceof window.SequenceEffect&&(a+=b.groupChildDuration(c.effect))}.bind(this))}},_setExternalAnimation:function(a){if(this.effect&&this._isGroup)for(var b=0;b<this.effect.children.length;b++)this.effect.children[b]._animation=a,this._childAnimations[b]._setExternalAnimation(a)},_constructChildAnimations:function(){if(this.effect&&this._isGroup){var a=this.effect._timing.delay;this._removeChildAnimations(),this.effect.children.forEach(function(c){var d=b.timeline._play(c);this._childAnimations.push(d),d.playbackRate=this.playbackRate,this._paused&&d.pause(),c._animation=this.effect._animation,this._arrangeChildren(d,a),this.effect instanceof window.SequenceEffect&&(a+=b.groupChildDuration(c))}.bind(this))}},_arrangeChildren:function(a,b){null===this.startTime?a.currentTime=this.currentTime-b/this.playbackRate:a.startTime!==this.startTime+b/this.playbackRate&&(a.startTime=this.startTime+b/this.playbackRate)},get timeline(){return this._timeline},get playState(){return this._animation?this._animation.playState:"idle"},get finished(){return window.Promise?(this._finishedPromise||(b.animationsWithPromises.indexOf(this)==-1&&b.animationsWithPromises.push(this),this._finishedPromise=new Promise(function(a,b){this._resolveFinishedPromise=function(){a(this)},this._rejectFinishedPromise=function(){b({type:DOMException.ABORT_ERR,name:"AbortError"})}}.bind(this)),"finished"==this.playState&&this._resolveFinishedPromise()),this._finishedPromise):(console.warn("Animation Promises require JavaScript Promise constructor"),null)},get ready(){return window.Promise?(this._readyPromise||(b.animationsWithPromises.indexOf(this)==-1&&b.animationsWithPromises.push(this),this._readyPromise=new Promise(function(a,b){this._resolveReadyPromise=function(){a(this)},this._rejectReadyPromise=function(){b({type:DOMException.ABORT_ERR,name:"AbortError"})}}.bind(this)),"pending"!==this.playState&&this._resolveReadyPromise()),this._readyPromise):(console.warn("Animation Promises require JavaScript Promise constructor"),null)},get onfinish(){return this._animation.onfinish},set onfinish(a){"function"==typeof a?this._animation.onfinish=function(b){b.target=this,a.call(this,b)}.bind(this):this._animation.onfinish=a},get oncancel(){return this._animation.oncancel},set oncancel(a){"function"==typeof a?this._animation.oncancel=function(b){b.target=this,a.call(this,b)}.bind(this):this._animation.oncancel=a},get currentTime(){this._updatePromises();var a=this._animation.currentTime;return this._updatePromises(),a},set currentTime(a){this._updatePromises(),this._animation.currentTime=isFinite(a)?a:Math.sign(a)*Number.MAX_VALUE,this._register(),this._forEachChild(function(b,c){b.currentTime=a-c}),this._updatePromises()},get startTime(){return this._animation.startTime},set startTime(a){this._updatePromises(),this._animation.startTime=isFinite(a)?a:Math.sign(a)*Number.MAX_VALUE,this._register(),this._forEachChild(function(b,c){b.startTime=a+c}),this._updatePromises()},get playbackRate(){return this._animation.playbackRate},set playbackRate(a){this._updatePromises();var b=this.currentTime;this._animation.playbackRate=a,this._forEachChild(function(b){b.playbackRate=a}),null!==b&&(this.currentTime=b),this._updatePromises()},play:function(){this._updatePromises(),this._paused=!1,this._animation.play(),this._timeline._animations.indexOf(this)==-1&&this._timeline._animations.push(this),this._register(),b.awaitStartTime(this),this._forEachChild(function(a){var b=a.currentTime;a.play(),a.currentTime=b}),this._updatePromises()},pause:function(){this._updatePromises(),this.currentTime&&(this._holdTime=this.currentTime),this._animation.pause(),this._register(),this._forEachChild(function(a){a.pause()}),this._paused=!0,this._updatePromises()},finish:function(){this._updatePromises(),this._animation.finish(),this._register(),this._updatePromises()},cancel:function(){this._updatePromises(),this._animation.cancel(),this._register(),this._removeChildAnimations(),this._updatePromises()},reverse:function(){this._updatePromises();var a=this.currentTime;this._animation.reverse(),this._forEachChild(function(a){a.reverse()}),null!==a&&(this.currentTime=a),this._updatePromises()},addEventListener:function(a,b){var c=b;"function"==typeof b&&(c=function(a){a.target=this,b.call(this,a)}.bind(this),b._wrapper=c),this._animation.addEventListener(a,c)},removeEventListener:function(a,b){this._animation.removeEventListener(a,b&&b._wrapper||b)},_removeChildAnimations:function(){for(;this._childAnimations.length;)this._childAnimations.pop().cancel()},_forEachChild:function(b){var c=0;if(this.effect.children&&this._childAnimations.length<this.effect.children.length&&this._constructChildAnimations(),this._childAnimations.forEach(function(a){b.call(this,a,c),this.effect instanceof window.SequenceEffect&&(c+=a.effect.activeDuration)}.bind(this)),"pending"!=this.playState){var d=this.effect._timing,e=this.currentTime;null!==e&&(e=a.calculateIterationProgress(a.calculateActiveDuration(d),e,d)),(null==e||isNaN(e))&&this._removeChildAnimations()}}},window.Animation=b.Animation}(c,e,f),function(a,b,c){function d(b){this._frames=a.normalizeKeyframes(b)}function e(){for(var a=!1;i.length;){var b=i.shift();b._updateChildren(),a=!0}return a}var f=function(a){if(a._animation=void 0,a instanceof window.SequenceEffect||a instanceof window.GroupEffect)for(var b=0;b<a.children.length;b++)f(a.children[b])};b.removeMulti=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];d._parent?(b.indexOf(d._parent)==-1&&b.push(d._parent),d._parent.children.splice(d._parent.children.indexOf(d),1),d._parent=null,f(d)):d._animation&&d._animation.effect==d&&(d._animation.cancel(),d._animation.effect=new KeyframeEffect(null,[]),d._animation._callback&&(d._animation._callback._animation=null),d._animation._rebuildUnderlyingAnimation(),f(d))}for(c=0;c<b.length;c++)b[c]._rebuild()},b.KeyframeEffect=function(b,c,e,f){return this.target=b,this._parent=null,e=a.numericTimingToObject(e),this._timingInput=a.cloneTimingInput(e),this._timing=a.normalizeTimingInput(e),this.timing=a.makeTiming(e,!1,this),this.timing._effect=this,"function"==typeof c?(a.deprecated("Custom KeyframeEffect","2015-06-22","Use KeyframeEffect.onsample instead."),this._normalizedKeyframes=c):this._normalizedKeyframes=new d(c),this._keyframes=c,this.activeDuration=a.calculateActiveDuration(this._timing),this._id=f,this},b.KeyframeEffect.prototype={getFrames:function(){return"function"==typeof this._normalizedKeyframes?this._normalizedKeyframes:this._normalizedKeyframes._frames},set onsample(a){if("function"==typeof this.getFrames())throw new Error("Setting onsample on custom effect KeyframeEffect is not supported.");this._onsample=a,this._animation&&this._animation._rebuildUnderlyingAnimation()},get parent(){return this._parent},clone:function(){if("function"==typeof this.getFrames())throw new Error("Cloning custom effects is not supported.");var b=new KeyframeEffect(this.target,[],a.cloneTimingInput(this._timingInput),this._id);return b._normalizedKeyframes=this._normalizedKeyframes,b._keyframes=this._keyframes,b},remove:function(){b.removeMulti([this])}};var g=Element.prototype.animate;Element.prototype.animate=function(a,c){var d="";return c&&c.id&&(d=c.id),b.timeline._play(new b.KeyframeEffect(this,a,c,d))};var h=document.createElementNS("http://www.w3.org/1999/xhtml","div");b.newUnderlyingAnimationForKeyframeEffect=function(a){if(a){var b=a.target||h,c=a._keyframes;"function"==typeof c&&(c=[]);var d=a._timingInput;d.id=a._id}else var b=h,c=[],d=0;return g.apply(b,[c,d])},b.bindAnimationForKeyframeEffect=function(a){a.effect&&"function"==typeof a.effect._normalizedKeyframes&&b.bindAnimationForCustomEffect(a)};var i=[];b.awaitStartTime=function(a){null===a.startTime&&a._isGroup&&(0==i.length&&requestAnimationFrame(e),i.push(a))};var j=window.getComputedStyle;Object.defineProperty(window,"getComputedStyle",{configurable:!0,enumerable:!0,value:function(){b.timeline._updateAnimationsPromises();var a=j.apply(this,arguments);return e()&&(a=j.apply(this,arguments)),b.timeline._updateAnimationsPromises(),a}}),window.KeyframeEffect=b.KeyframeEffect,window.Element.prototype.getAnimations=function(){return document.timeline.getAnimations().filter(function(a){return null!==a.effect&&a.effect.target==this}.bind(this))}}(c,e,f),function(a,b,c){function d(a){a._registered||(a._registered=!0,g.push(a),h||(h=!0,requestAnimationFrame(e)))}function e(a){var b=g;g=[],b.sort(function(a,b){return a._sequenceNumber-b._sequenceNumber}),b=b.filter(function(a){a();var b=a._animation?a._animation.playState:"idle";return"running"!=b&&"pending"!=b&&(a._registered=!1),a._registered}),g.push.apply(g,b),g.length?(h=!0,requestAnimationFrame(e)):h=!1}var f=(document.createElementNS("http://www.w3.org/1999/xhtml","div"),0);b.bindAnimationForCustomEffect=function(b){var c,e=b.effect.target,g="function"==typeof b.effect.getFrames();c=g?b.effect.getFrames():b.effect._onsample;var h=b.effect.timing,i=null;h=a.normalizeTimingInput(h);var j=function(){var d=j._animation?j._animation.currentTime:null;null!==d&&(d=a.calculateIterationProgress(a.calculateActiveDuration(h),d,h),isNaN(d)&&(d=null)),d!==i&&(g?c(d,e,b.effect):c(d,b.effect,b.effect._animation)),i=d};j._animation=b,j._registered=!1,j._sequenceNumber=f++,b._callback=j,d(j)};var g=[],h=!1;b.Animation.prototype._register=function(){this._callback&&d(this._callback)}}(c,e,f),function(a,b,c){function d(a){return a._timing.delay+a.activeDuration+a._timing.endDelay}function e(b,c,d){this._id=d,this._parent=null,this.children=b||[],this._reparent(this.children),c=a.numericTimingToObject(c),this._timingInput=a.cloneTimingInput(c),this._timing=a.normalizeTimingInput(c,!0),this.timing=a.makeTiming(c,!0,this),this.timing._effect=this,"auto"===this._timing.duration&&(this._timing.duration=this.activeDuration)}window.SequenceEffect=function(){e.apply(this,arguments)},window.GroupEffect=function(){e.apply(this,arguments)},e.prototype={_isAncestor:function(a){for(var b=this;null!==b;){if(b==a)return!0;b=b._parent}return!1},_rebuild:function(){for(var a=this;a;)"auto"===a.timing.duration&&(a._timing.duration=a.activeDuration),a=a._parent;this._animation&&this._animation._rebuildUnderlyingAnimation()},_reparent:function(a){b.removeMulti(a);for(var c=0;c<a.length;c++)a[c]._parent=this},_putChild:function(a,b){for(var c=b?"Cannot append an ancestor or self":"Cannot prepend an ancestor or self",d=0;d<a.length;d++)if(this._isAncestor(a[d]))throw{type:DOMException.HIERARCHY_REQUEST_ERR,name:"HierarchyRequestError",message:c};for(var d=0;d<a.length;d++)b?this.children.push(a[d]):this.children.unshift(a[d]);this._reparent(a),this._rebuild()},append:function(){this._putChild(arguments,!0)},prepend:function(){this._putChild(arguments,!1)},get parent(){return this._parent},get firstChild(){return this.children.length?this.children[0]:null},get lastChild(){return this.children.length?this.children[this.children.length-1]:null},clone:function(){for(var b=a.cloneTimingInput(this._timingInput),c=[],d=0;d<this.children.length;d++)c.push(this.children[d].clone());return this instanceof GroupEffect?new GroupEffect(c,b):new SequenceEffect(c,b)},remove:function(){b.removeMulti([this])}},window.SequenceEffect.prototype=Object.create(e.prototype),Object.defineProperty(window.SequenceEffect.prototype,"activeDuration",{get:function(){var a=0;return this.children.forEach(function(b){a+=d(b)}),Math.max(a,0)}}),window.GroupEffect.prototype=Object.create(e.prototype),Object.defineProperty(window.GroupEffect.prototype,"activeDuration",{get:function(){var a=0;return this.children.forEach(function(b){a=Math.max(a,d(b))}),a}}),b.newUnderlyingAnimationForGroup=function(c){var d,e=null,f=function(b){var c=d._wrapper;if(c&&"pending"!=c.playState&&c.effect)return null==b?void c._removeChildAnimations():0==b&&c.playbackRate<0&&(e||(e=a.normalizeTimingInput(c.effect.timing)),b=a.calculateIterationProgress(a.calculateActiveDuration(e),-1,e),isNaN(b)||null==b)?(c._forEachChild(function(a){a.currentTime=-1}),void c._removeChildAnimations()):void 0},g=new KeyframeEffect(null,[],c._timing,c._id);return g.onsample=f,d=b.timeline._play(g)},b.bindAnimationForGroup=function(a){a._animation._wrapper=a,a._isGroup=!0,b.awaitStartTime(a),a._constructChildAnimations(),a._setExternalAnimation(a)},b.groupChildDuration=d}(c,e,f),b.true=a}({},function(){return this}()); -//# sourceMappingURL=web-animations-next-lite.min.js.map
\ No newline at end of file diff --git a/Software/Embedded_SW/.jxbrowser-data/Cache/index b/Software/Embedded_SW/.jxbrowser-data/Cache/index Binary files differindex 3fa0ebf0f..ed6acc445 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Cache/index +++ b/Software/Embedded_SW/.jxbrowser-data/Cache/index diff --git a/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_0 b/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_0 Binary files differindex d76fb77e9..34fb752e2 100644 --- a/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_0 +++ b/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_0 diff --git a/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_1 b/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_1 Binary files differindex 33c2cc543..6c622e353 100644 --- a/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_1 +++ b/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_1 diff --git a/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_3 b/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_3 Binary files differindex 5eec97358..4bd65425b 100644 --- a/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_3 +++ b/Software/Embedded_SW/.jxbrowser-data/GPUCache/data_3 diff --git a/Software/Embedded_SW/.jxbrowser-data/History b/Software/Embedded_SW/.jxbrowser-data/History Binary files differindex 56cc9160c..19d66f71f 100644 --- a/Software/Embedded_SW/.jxbrowser-data/History +++ b/Software/Embedded_SW/.jxbrowser-data/History diff --git a/Software/Embedded_SW/.jxbrowser-data/Local Storage - EXT/file_null.localstorage b/Software/Embedded_SW/.jxbrowser-data/Local Storage - EXT/file_null.localstorage index 98a571ab8..d88e15f93 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Local Storage - EXT/file_null.localstorage +++ b/Software/Embedded_SW/.jxbrowser-data/Local Storage - EXT/file_null.localstorage @@ -1 +1 @@ -#Mon Apr 30 13:34:31 IDT 2018 +#Sun Mar 03 14:31:53 IST 2019 diff --git a/Software/Embedded_SW/.jxbrowser-data/Local Storage/https_www.youtube-nocookie.com_0.localstorage b/Software/Embedded_SW/.jxbrowser-data/Local Storage/https_www.youtube-nocookie.com_0.localstorage Binary files differindex 49885cc2b..28d528d41 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Local Storage/https_www.youtube-nocookie.com_0.localstorage +++ b/Software/Embedded_SW/.jxbrowser-data/Local Storage/https_www.youtube-nocookie.com_0.localstorage diff --git a/Software/Embedded_SW/.jxbrowser-data/Login Data b/Software/Embedded_SW/.jxbrowser-data/Login Data Binary files differindex 7684f598d..0f9e99815 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Login Data +++ b/Software/Embedded_SW/.jxbrowser-data/Login Data diff --git a/Software/Embedded_SW/.jxbrowser-data/Web Data b/Software/Embedded_SW/.jxbrowser-data/Web Data Binary files differindex 39fa867fd..eeec13065 100644 --- a/Software/Embedded_SW/.jxbrowser-data/Web Data +++ b/Software/Embedded_SW/.jxbrowser-data/Web Data diff --git a/Software/Embedded_SW/Embedded/debug_w_pmr/makefile b/Software/Embedded_SW/Embedded/debug_w_pmr/makefile index 573c3ae41..a20bf907b 100644 --- a/Software/Embedded_SW/Embedded/debug_w_pmr/makefile +++ b/Software/Embedded_SW/Embedded/debug_w_pmr/makefile @@ -4,7 +4,7 @@ SHELL = cmd.exe -CG_TOOL_ROOT := C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS +CG_TOOL_ROOT := C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS GEN_OPTS__FLAG := --cmd_file="configPkg/compiler.opt" GEN_CMDS__FLAG := -l"configPkg/linker.cmd" @@ -23,7 +23,6 @@ ORDERED_OBJS += \ "./Common/Utilities/Utils.obj" \ "./Common/Utilities/idle_task.obj" \ "./Common/Utilities/ustdlib.obj" \ -"./Common/protobuf-c/person-pb-c.obj" \ "./Common/protobuf-c/protobuf-c.obj" \ "./Common/report/distributor.obj" \ "./Common/report/filter.obj" \ @@ -102,6 +101,12 @@ ORDERED_OBJS += \ "./Communication/PMR/Diagnostics/ValveState.pb-c.obj" \ "./Communication/PMR/Diagnostics/ValveStateCode.pb-c.obj" \ "./Communication/PMR/Diagnostics/ValveType.pb-c.obj" \ +"./Communication/PMR/EmbeddedParameters/AlarmHandlingItem.pb-c.obj" \ +"./Communication/PMR/EmbeddedParameters/AlarmParameters.pb-c.obj" \ +"./Communication/PMR/EmbeddedParameters/AlarmSourceType.pb-c.obj" \ +"./Communication/PMR/EmbeddedParameters/ConfigurationParameters.pb-c.obj" \ +"./Communication/PMR/EmbeddedParameters/DispenserData.pb-c.obj" \ +"./Communication/PMR/EmbeddedParameters/DispenserRunningData.pb-c.obj" \ "./Communication/PMR/FirmwareUpgrade/ActivateVersionRequest.pb-c.obj" \ "./Communication/PMR/FirmwareUpgrade/ActivateVersionResponse.pb-c.obj" \ "./Communication/PMR/FirmwareUpgrade/ValidateVersionRequest.pb-c.obj" \ @@ -159,6 +164,8 @@ ORDERED_OBJS += \ "./Communication/PMR/Printing/DispenserLiquidType.pb-c.obj" \ "./Communication/PMR/Printing/DispenserStepDivision.pb-c.obj" \ "./Communication/PMR/Printing/JobBrushStop.pb-c.obj" \ +"./Communication/PMR/Printing/JobDescriptionFileBrushStop.pb-c.obj" \ +"./Communication/PMR/Printing/JobDescriptionFileSegment.pb-c.obj" \ "./Communication/PMR/Printing/JobDispenser.pb-c.obj" \ "./Communication/PMR/Printing/JobRequest.pb-c.obj" \ "./Communication/PMR/Printing/JobResponse.pb-c.obj" \ @@ -167,6 +174,7 @@ ORDERED_OBJS += \ "./Communication/PMR/Printing/JobSpoolType.pb-c.obj" \ "./Communication/PMR/Printing/JobStatus.pb-c.obj" \ "./Communication/PMR/Printing/JobTicket.pb-c.obj" \ +"./Communication/PMR/Printing/JobUploadStrategy.pb-c.obj" \ "./Communication/PMR/Printing/JobWindingMethod.pb-c.obj" \ "./Communication/PMR/Printing/ProcessParameters.pb-c.obj" \ "./Communication/PMR/Printing/ResumeCurrentJobRequest.pb-c.obj" \ @@ -281,10 +289,10 @@ ORDERED_OBJS += \ "./Drivers/FPGA/FPGA_SSI_Comm.obj" \ "./Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.obj" \ "./Drivers/FPGA/FPGA_INTERRUPTS/FPGA_Interrupts.obj" \ -"./Drivers/FPGA/JTAG_VME/slim_vme_8051/Handle_vme_file.obj" \ -"./Drivers/FPGA/JTAG_VME/slim_vme_8051/hardware.obj" \ -"./Drivers/FPGA/JTAG_VME/slim_vme_8051/slim_pro.obj" \ -"./Drivers/FPGA/JTAG_VME/slim_vme_8051/slim_vme.obj" \ +"./Drivers/FPGA/Full_Vme/FPGA_Programming_Up.obj" \ +"./Drivers/FPGA/Full_Vme/ispvme/hardware.obj" \ +"./Drivers/FPGA/Full_Vme/ispvme/ispvm_ui.obj" \ +"./Drivers/FPGA/Full_Vme/ispvme/ivm_core.obj" \ "./Drivers/FPGA/Moters_Driver/L6470.obj" \ "./Drivers/Flash_Memory/FATFS/Control_File_System.obj" \ "./Drivers/Flash_Memory/FATFS/cc932.obj" \ @@ -301,9 +309,11 @@ ORDERED_OBJS += \ "./Drivers/I2C_Communication/Dispensers_EEPROM_MUX/Disp_EEPROM_MUX.obj" \ "./Drivers/I2C_Communication/I2C.obj" \ "./Drivers/I2C_Communication/I2C_Comm.obj" \ -"./Drivers/I2C_Communication/I2C_Switch/I2C_Swith.obj" \ +"./Drivers/I2C_Communication/RFID_NFC/NFC_I2C/NFC_I2C.obj" \ +"./Drivers/I2C_Communication/RFID_NFC/PN7150/PN7150.obj" \ "./Drivers/I2C_Communication/Thermo_K/MCP9600.obj" \ "./Drivers/Motors/Motor.obj" \ +"./Drivers/Motors/MotorActions.obj" \ "./Drivers/On_Chip_Flash/Flashstore.obj" \ "./Drivers/SPI/SPI_Comm.obj" \ "./Drivers/SSI_Comm/Dancer/Dancer.obj" \ @@ -312,6 +322,7 @@ ORDERED_OBJS += \ "./Drivers/USB_Communication/USBCDCD.obj" \ "./Drivers/Uart_Comm/Uart.obj" \ "./Drivers/Valves/Valve.obj" \ +"./Drivers/flash_ram/FlashProgram.obj" \ "./Modules/AlarmHandling/AlarmHandling.obj" \ "./Modules/Control/DriverWithCallbackExample.obj" \ "./Modules/Control/MillisecTask.obj" \ @@ -322,6 +333,7 @@ ORDERED_OBJS += \ "./Modules/Diagnostics/DiagnosticsHoming.obj" \ "./Modules/Diagnostics/DiagnosticsJogging.obj" \ "./Modules/General/GeneralHardware.obj" \ +"./Modules/General/buttons.obj" \ "./Modules/General/process.obj" \ "./Modules/Heaters/Heaters_bit.obj" \ "./Modules/Heaters/Heaters_init.obj" \ @@ -360,6 +372,7 @@ ORDERED_OBJS += \ "./Modules/Stubs_Handler/Stub_Valve.obj" \ "./Modules/Stubs_Handler/User_Leds.obj" \ "./Modules/Stubs_Handler/temperature_sensor.obj" \ +"./Modules/Thread/ThreadLoad.obj" \ "./Modules/Thread/Thread_BIT.obj" \ "./Modules/Thread/Thread_Winder.obj" \ "./Modules/Thread/Thread_init.obj" \ @@ -369,6 +382,7 @@ ORDERED_OBJS += \ "./Modules/Waste/Waste_init.obj" \ "./Modules/Waste/Waste_maint.obj" \ "./Modules/Waste/Waste_print.obj" \ +"./StateMachines/Initialization/InitSequence.obj" \ "./StateMachines/Printing/JobSTM.obj" \ "./StateMachines/Printing/PrintingSTM.obj" \ "../tm4c129xnczad.cmd" \ @@ -398,6 +412,7 @@ RMDIR := RMDIR /S/Q -include Communication/PMR/Connection/subdir_vars.mk -include Communication/PMR/Debugging/subdir_vars.mk -include Communication/PMR/Diagnostics/subdir_vars.mk +-include Communication/PMR/EmbeddedParameters/subdir_vars.mk -include Communication/PMR/FirmwareUpgrade/subdir_vars.mk -include Communication/PMR/Hardware/subdir_vars.mk -include Communication/PMR/IO/subdir_vars.mk @@ -407,7 +422,8 @@ RMDIR := RMDIR /S/Q -include Drivers/FPGA/subdir_vars.mk -include Drivers/FPGA/FPGA_GPIO/subdir_vars.mk -include Drivers/FPGA/FPGA_INTERRUPTS/subdir_vars.mk --include Drivers/FPGA/JTAG_VME/slim_vme_8051/subdir_vars.mk +-include Drivers/FPGA/Full_Vme/subdir_vars.mk +-include Drivers/FPGA/Full_Vme/ispvme/subdir_vars.mk -include Drivers/FPGA/Moters_Driver/subdir_vars.mk -include Drivers/Flash_Memory/FATFS/subdir_vars.mk -include Drivers/Flash_Memory/subdir_vars.mk @@ -416,7 +432,8 @@ RMDIR := RMDIR /S/Q -include Drivers/I2C_Communication/DAC/subdir_vars.mk -include Drivers/I2C_Communication/Dispensers_EEPROM_MUX/subdir_vars.mk -include Drivers/I2C_Communication/subdir_vars.mk --include Drivers/I2C_Communication/I2C_Switch/subdir_vars.mk +-include Drivers/I2C_Communication/RFID_NFC/NFC_I2C/subdir_vars.mk +-include Drivers/I2C_Communication/RFID_NFC/PN7150/subdir_vars.mk -include Drivers/I2C_Communication/Thermo_K/subdir_vars.mk -include Drivers/Motors/subdir_vars.mk -include Drivers/On_Chip_Flash/subdir_vars.mk @@ -427,6 +444,7 @@ RMDIR := RMDIR /S/Q -include Drivers/USB_Communication/subdir_vars.mk -include Drivers/Uart_Comm/subdir_vars.mk -include Drivers/Valves/subdir_vars.mk +-include Drivers/flash_ram/subdir_vars.mk -include Modules/AlarmHandling/subdir_vars.mk -include Modules/Control/subdir_vars.mk -include Modules/Diagnostics/subdir_vars.mk @@ -436,6 +454,7 @@ RMDIR := RMDIR /S/Q -include Modules/Stubs_Handler/subdir_vars.mk -include Modules/Thread/subdir_vars.mk -include Modules/Waste/subdir_vars.mk +-include StateMachines/Initialization/subdir_vars.mk -include StateMachines/Printing/subdir_vars.mk -include subdir_rules.mk -include Common/SWUpdate/subdir_rules.mk @@ -450,6 +469,7 @@ RMDIR := RMDIR /S/Q -include Communication/PMR/Connection/subdir_rules.mk -include Communication/PMR/Debugging/subdir_rules.mk -include Communication/PMR/Diagnostics/subdir_rules.mk +-include Communication/PMR/EmbeddedParameters/subdir_rules.mk -include Communication/PMR/FirmwareUpgrade/subdir_rules.mk -include Communication/PMR/Hardware/subdir_rules.mk -include Communication/PMR/IO/subdir_rules.mk @@ -459,7 +479,8 @@ RMDIR := RMDIR /S/Q -include Drivers/FPGA/subdir_rules.mk -include Drivers/FPGA/FPGA_GPIO/subdir_rules.mk -include Drivers/FPGA/FPGA_INTERRUPTS/subdir_rules.mk --include Drivers/FPGA/JTAG_VME/slim_vme_8051/subdir_rules.mk +-include Drivers/FPGA/Full_Vme/subdir_rules.mk +-include Drivers/FPGA/Full_Vme/ispvme/subdir_rules.mk -include Drivers/FPGA/Moters_Driver/subdir_rules.mk -include Drivers/Flash_Memory/FATFS/subdir_rules.mk -include Drivers/Flash_Memory/subdir_rules.mk @@ -468,7 +489,8 @@ RMDIR := RMDIR /S/Q -include Drivers/I2C_Communication/DAC/subdir_rules.mk -include Drivers/I2C_Communication/Dispensers_EEPROM_MUX/subdir_rules.mk -include Drivers/I2C_Communication/subdir_rules.mk --include Drivers/I2C_Communication/I2C_Switch/subdir_rules.mk +-include Drivers/I2C_Communication/RFID_NFC/NFC_I2C/subdir_rules.mk +-include Drivers/I2C_Communication/RFID_NFC/PN7150/subdir_rules.mk -include Drivers/I2C_Communication/Thermo_K/subdir_rules.mk -include Drivers/Motors/subdir_rules.mk -include Drivers/On_Chip_Flash/subdir_rules.mk @@ -479,6 +501,7 @@ RMDIR := RMDIR /S/Q -include Drivers/USB_Communication/subdir_rules.mk -include Drivers/Uart_Comm/subdir_rules.mk -include Drivers/Valves/subdir_rules.mk +-include Drivers/flash_ram/subdir_rules.mk -include Modules/AlarmHandling/subdir_rules.mk -include Modules/Control/subdir_rules.mk -include Modules/Diagnostics/subdir_rules.mk @@ -488,6 +511,7 @@ RMDIR := RMDIR /S/Q -include Modules/Stubs_Handler/subdir_rules.mk -include Modules/Thread/subdir_rules.mk -include Modules/Waste/subdir_rules.mk +-include StateMachines/Initialization/subdir_rules.mk -include StateMachines/Printing/subdir_rules.mk -include objects.mk @@ -607,20 +631,21 @@ main-build: Embedded.out # Tool invocations Embedded.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS) - @echo 'Building target: $@' + @echo 'Building target: "$@"' @echo 'Invoking: ARM Linker' - @echo 'Flags: -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=0 --define=ENABLE_LFN --define=DEBUG_TEST_FUNCTIONS --define=TARGET_IS_TM4C129_RA0 --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=PART_TM4C129XNCZAD -g --gcc --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --abi=eabi -z -m"Embedded.map" --heap_size=20480 --stack_size=4095 -i"C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/lib" -i"C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/include" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="Embedded_linkInfo.xml" --rom_model' - $(shell echo -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=0 --define=ENABLE_LFN --define=DEBUG_TEST_FUNCTIONS --define=TARGET_IS_TM4C129_RA0 --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=PART_TM4C129XNCZAD -g --gcc --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --abi=eabi -z -m"Embedded.map" --heap_size=20480 --stack_size=4095 -i"C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/lib" -i"C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/include" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="Embedded_linkInfo.xml" --rom_model > "ccsLinker.opt") + @echo 'Flags: -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=0 --define=ENABLE_LFN --define=DEBUG_TEST_FUNCTIONS --define=TARGET_IS_TM4C129_RA0 --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=PART_TM4C129XNCZAD -g --gcc --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --abi=eabi -z -m"Embedded.map" --heap_size=20480 --stack_size=4095 -i"C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/lib" -i"C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/include" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="Embedded_linkInfo.xml" --rom_model' + $(shell echo -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=0 --define=ENABLE_LFN --define=DEBUG_TEST_FUNCTIONS --define=TARGET_IS_TM4C129_RA0 --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=PART_TM4C129XNCZAD -g --gcc --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --abi=eabi -z -m"Embedded.map" --heap_size=20480 --stack_size=4095 -i"C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/lib" -i"C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/include" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="Embedded_linkInfo.xml" --rom_model > "ccsLinker.opt") $(shell type "ccsObjs.opt" >> "ccsLinker.opt") - "C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/bin/armcl" -@"ccsLinker.opt" -o "Embedded.out" - @echo 'Finished building target: $@' + "C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/bin/armcl" -@"ccsLinker.opt" -o "Embedded.out" + @echo 'Finished building target: "$@"' @echo ' ' @$(MAKE) --no-print-directory post-build Embedded.bin: $(EXE_OUTPUTS) + @echo 'Building files: $(strip $(EXE_OUTPUTS__QUOTED))' @echo 'Invoking: ARM Hex Utility' - "C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/bin/armhex" -o "Embedded.bin" $(EXE_OUTPUTS__QUOTED) - @echo 'Finished building: $@' + "C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/bin/armhex" -o "Embedded.bin" $(EXE_OUTPUTS__QUOTED) + @echo 'Finished building: $(strip $(EXE_OUTPUTS__QUOTED))' @echo ' ' @$(MAKE) --no-print-directory post-build @@ -628,52 +653,53 @@ Embedded.bin: $(EXE_OUTPUTS) clean: -$(RM) $(GEN_CMDS__QUOTED)$(GEN_MISC_FILES__QUOTED)$(BIN_OUTPUTS__QUOTED)$(GEN_FILES__QUOTED)$(EXE_OUTPUTS__QUOTED)$(GEN_OPTS__QUOTED) -$(RMDIR) $(GEN_MISC_DIRS__QUOTED) - -$(RM) "Main.obj" "delay.obj" "Common\SWUpdate\FileSystem.obj" "Common\SWUpdate\FirmwareUpgrade.obj" "Common\SW_Info\SW_Info.obj" "Common\Software_CRC\sw_crc.obj" "Common\Sys_PinOut_Config\MCU_MAIN_pinout.obj" "Common\Sys_PinOut_Config\Pin.obj" "Common\Sys_PinOut_Config\Pin_config.obj" "Common\Utilities\Update.obj" "Common\Utilities\Utils.obj" "Common\Utilities\idle_task.obj" "Common\Utilities\ustdlib.obj" "Common\protobuf-c\person-pb-c.obj" "Common\protobuf-c\protobuf-c.obj" "Common\report\distributor.obj" "Common\report\filter.obj" "Common\report\reportInit.obj" "Communication\CommunicationTask.obj" "Communication\Connection.obj" "Communication\Container.obj" "Communication\PMR\Common\ErrorCode.pb-c.obj" "Communication\PMR\Common\ErrorResponse.pb-c.obj" "Communication\PMR\Common\MessageContainer.pb-c.obj" "Communication\PMR\Common\MessageType.pb-c.obj" "Communication\PMR\Connection\ConnectRequest.pb-c.obj" "Communication\PMR\Connection\ConnectResponse.pb-c.obj" "Communication\PMR\Connection\DeviceInformation.pb-c.obj" - -$(RM) "Communication\PMR\Connection\DisconnectRequest.pb-c.obj" "Communication\PMR\Connection\DisconnectResponse.pb-c.obj" "Communication\PMR\Connection\KeepAliveRequest.pb-c.obj" "Communication\PMR\Connection\KeepAliveResponse.pb-c.obj" "Communication\PMR\Debugging\DebugLogCategory.pb-c.obj" "Communication\PMR\Debugging\StartDebugLogRequest.pb-c.obj" "Communication\PMR\Debugging\StartDebugLogResponse.pb-c.obj" "Communication\PMR\Debugging\StopDebugLogRequest.pb-c.obj" "Communication\PMR\Debugging\StopDebugLogResponse.pb-c.obj" "Communication\PMR\Diagnostics\DataFileFrame.pb-c.obj" "Communication\PMR\Diagnostics\DiagnosticsMonitors.pb-c.obj" "Communication\PMR\Diagnostics\DigitalInterfaceState.pb-c.obj" "Communication\PMR\Diagnostics\DispenserAbortHomingRequest.pb-c.obj" "Communication\PMR\Diagnostics\DispenserAbortHomingResponse.pb-c.obj" "Communication\PMR\Diagnostics\DispenserAbortJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\DispenserAbortJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\DispenserHomingRequest.pb-c.obj" - -$(RM) "Communication\PMR\Diagnostics\DispenserHomingResponse.pb-c.obj" "Communication\PMR\Diagnostics\DispenserJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\DispenserJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\DoubleArray.pb-c.obj" "Communication\PMR\Diagnostics\Event.pb-c.obj" "Communication\PMR\Diagnostics\EventType.pb-c.obj" "Communication\PMR\Diagnostics\HeaterState.pb-c.obj" "Communication\PMR\Diagnostics\HeaterType.pb-c.obj" "Communication\PMR\Diagnostics\InterfaceIOs.pb-c.obj" "Communication\PMR\Diagnostics\MotorAbortHomingRequest.pb-c.obj" "Communication\PMR\Diagnostics\MotorAbortHomingResponse.pb-c.obj" "Communication\PMR\Diagnostics\MotorAbortJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\MotorAbortJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\MotorDirection.pb-c.obj" "Communication\PMR\Diagnostics\MotorHomingRequest.pb-c.obj" "Communication\PMR\Diagnostics\MotorHomingResponse.pb-c.obj" "Communication\PMR\Diagnostics\MotorJoggingRequest.pb-c.obj" - -$(RM) "Communication\PMR\Diagnostics\MotorJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\ResolveEventRequest.pb-c.obj" "Communication\PMR\Diagnostics\ResolveEventResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetBlowerStateRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetBlowerStateResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetComponentValueRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetComponentValueResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetDigitalOutRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetDigitalOutResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetHeaterStateRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetHeaterStateResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetValveStateRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetValveStateResponse.pb-c.obj" "Communication\PMR\Diagnostics\StartDiagnosticsRequest.pb-c.obj" "Communication\PMR\Diagnostics\StartDiagnosticsResponse.pb-c.obj" "Communication\PMR\Diagnostics\StartEventsNotificationRequest.pb-c.obj" - -$(RM) "Communication\PMR\Diagnostics\StartEventsNotificationResponse.pb-c.obj" "Communication\PMR\Diagnostics\StopDiagnosticsRequest.pb-c.obj" "Communication\PMR\Diagnostics\StopDiagnosticsResponse.pb-c.obj" "Communication\PMR\Diagnostics\StopEventsNotificationRequest.pb-c.obj" "Communication\PMR\Diagnostics\StopEventsNotificationResponse.pb-c.obj" "Communication\PMR\Diagnostics\ThreadAbortJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\ThreadAbortJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\ThreadJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\ThreadJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\ValueComponent.pb-c.obj" "Communication\PMR\Diagnostics\ValueComponentState.pb-c.obj" "Communication\PMR\Diagnostics\ValveState.pb-c.obj" "Communication\PMR\Diagnostics\ValveStateCode.pb-c.obj" "Communication\PMR\Diagnostics\ValveType.pb-c.obj" "Communication\PMR\FirmwareUpgrade\ActivateVersionRequest.pb-c.obj" "Communication\PMR\FirmwareUpgrade\ActivateVersionResponse.pb-c.obj" - -$(RM) "Communication\PMR\FirmwareUpgrade\ValidateVersionRequest.pb-c.obj" "Communication\PMR\FirmwareUpgrade\ValidateVersionResponse.pb-c.obj" "Communication\PMR\FirmwareUpgrade\VersionFileDescriptor.pb-c.obj" "Communication\PMR\FirmwareUpgrade\VersionFileDestination.pb-c.obj" "Communication\PMR\FirmwareUpgrade\VersionPackageDescriptor.pb-c.obj" "Communication\PMR\Hardware\HardwareBlower.pb-c.obj" "Communication\PMR\Hardware\HardwareBlowerType.pb-c.obj" "Communication\PMR\Hardware\HardwareBreakSensor.pb-c.obj" "Communication\PMR\Hardware\HardwareBreakSensorType.pb-c.obj" "Communication\PMR\Hardware\HardwareConfiguration.pb-c.obj" "Communication\PMR\Hardware\HardwareDancer.pb-c.obj" "Communication\PMR\Hardware\HardwareDancerType.pb-c.obj" "Communication\PMR\Hardware\HardwareDispenser.pb-c.obj" "Communication\PMR\Hardware\HardwareDispenserType.pb-c.obj" "Communication\PMR\Hardware\HardwareMotor.pb-c.obj" "Communication\PMR\Hardware\HardwareMotorType.pb-c.obj" "Communication\PMR\Hardware\HardwarePidControl.pb-c.obj" - -$(RM) "Communication\PMR\Hardware\HardwarePidControlType.pb-c.obj" "Communication\PMR\Hardware\HardwareSpeedSensor.pb-c.obj" "Communication\PMR\Hardware\HardwareSpeedSensorType.pb-c.obj" "Communication\PMR\Hardware\HardwareWinder.pb-c.obj" "Communication\PMR\Hardware\HardwareWinderType.pb-c.obj" "Communication\PMR\Hardware\SystemResetRequest.pb-c.obj" "Communication\PMR\Hardware\SystemResetResponse.pb-c.obj" "Communication\PMR\Hardware\UploadHardwareConfigurationRequest.pb-c.obj" "Communication\PMR\Hardware\UploadHardwareConfigurationResponse.pb-c.obj" "Communication\PMR\IO\CreateRequest.pb-c.obj" "Communication\PMR\IO\CreateResponse.pb-c.obj" "Communication\PMR\IO\DeleteRequest.pb-c.obj" "Communication\PMR\IO\DeleteResponse.pb-c.obj" "Communication\PMR\IO\ExecuteProcessRequest.pb-c.obj" "Communication\PMR\IO\ExecuteProcessResponse.pb-c.obj" "Communication\PMR\IO\FileAttribute.pb-c.obj" "Communication\PMR\IO\FileChunkDownloadRequest.pb-c.obj" "Communication\PMR\IO\FileChunkDownloadResponse.pb-c.obj" - -$(RM) "Communication\PMR\IO\FileChunkUploadRequest.pb-c.obj" "Communication\PMR\IO\FileChunkUploadResponse.pb-c.obj" "Communication\PMR\IO\FileDownloadRequest.pb-c.obj" "Communication\PMR\IO\FileDownloadResponse.pb-c.obj" "Communication\PMR\IO\FileInfo.pb-c.obj" "Communication\PMR\IO\FileUploadRequest.pb-c.obj" "Communication\PMR\IO\FileUploadResponse.pb-c.obj" "Communication\PMR\IO\GetFilesRequest.pb-c.obj" "Communication\PMR\IO\GetFilesResponse.pb-c.obj" "Communication\PMR\IO\GetStorageInfoRequest.pb-c.obj" "Communication\PMR\IO\GetStorageInfoResponse.pb-c.obj" "Communication\PMR\IO\KillProcessRequest.pb-c.obj" "Communication\PMR\IO\KillProcessResponse.pb-c.obj" "Communication\PMR\Printing\AbortJobRequest.pb-c.obj" "Communication\PMR\Printing\AbortJobResponse.pb-c.obj" "Communication\PMR\Printing\CurrentJobRequest.pb-c.obj" "Communication\PMR\Printing\CurrentJobResponse.pb-c.obj" "Communication\PMR\Printing\DispenserLiquidType.pb-c.obj" "Communication\PMR\Printing\DispenserStepDivision.pb-c.obj" - -$(RM) "Communication\PMR\Printing\JobBrushStop.pb-c.obj" "Communication\PMR\Printing\JobDispenser.pb-c.obj" "Communication\PMR\Printing\JobRequest.pb-c.obj" "Communication\PMR\Printing\JobResponse.pb-c.obj" "Communication\PMR\Printing\JobSegment.pb-c.obj" "Communication\PMR\Printing\JobSpool.pb-c.obj" "Communication\PMR\Printing\JobSpoolType.pb-c.obj" "Communication\PMR\Printing\JobStatus.pb-c.obj" "Communication\PMR\Printing\JobTicket.pb-c.obj" "Communication\PMR\Printing\JobWindingMethod.pb-c.obj" "Communication\PMR\Printing\ProcessParameters.pb-c.obj" "Communication\PMR\Printing\ResumeCurrentJobRequest.pb-c.obj" "Communication\PMR\Printing\ResumeCurrentJobResponse.pb-c.obj" "Communication\PMR\Printing\UploadProcessParametersRequest.pb-c.obj" "Communication\PMR\Printing\UploadProcessParametersResponse.pb-c.obj" "Communication\PMR\Stubs\CalculateRequest.pb-c.obj" "Communication\PMR\Stubs\CalculateResponse.pb-c.obj" "Communication\PMR\Stubs\ProgressRequest.pb-c.obj" "Communication\PMR\Stubs\ProgressResponse.pb-c.obj" - -$(RM) "Communication\PMR\Stubs\StubAbortJobRequest.pb-c.obj" "Communication\PMR\Stubs\StubAbortJobResponse.pb-c.obj" "Communication\PMR\Stubs\StubCartridgeReadRequest.pb-c.obj" "Communication\PMR\Stubs\StubCartridgeReadResponse.pb-c.obj" "Communication\PMR\Stubs\StubCartridgeWriteRequest.pb-c.obj" "Communication\PMR\Stubs\StubCartridgeWriteResponse.pb-c.obj" "Communication\PMR\Stubs\StubDancerPositionRequest.pb-c.obj" "Communication\PMR\Stubs\StubDancerPositionResponse.pb-c.obj" "Communication\PMR\Stubs\StubDispenserRequest.pb-c.obj" "Communication\PMR\Stubs\StubDispenserResponse.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashReadRequest.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashReadResponse.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashReadWordsRequest.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashReadWordsResponse.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashWriteRequest.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashWriteResponse.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashWriteWordsRequest.pb-c.obj" - -$(RM) "Communication\PMR\Stubs\StubExtFlashWriteWordsResponse.pb-c.obj" "Communication\PMR\Stubs\StubF3Gpo01WriteRequest.pb-c.obj" "Communication\PMR\Stubs\StubF3Gpo01WriteResponse.pb-c.obj" "Communication\PMR\Stubs\StubFPGAReadBackRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubFPGAReadBackRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubFPGAReadVersionRequest.pb-c.obj" "Communication\PMR\Stubs\StubFPGAReadVersionResponse.pb-c.obj" "Communication\PMR\Stubs\StubFpgaReadRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubFpgaReadRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubFpgaWriteRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubFpgaWriteRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOInputSetupRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOInputSetupResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOReadBitRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOReadBitResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOReadByteRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOReadByteResponse.pb-c.obj" - -$(RM) "Communication\PMR\Stubs\StubGPIOWriteBitRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOWriteBitResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOWriteByteRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOWriteByteResponse.pb-c.obj" "Communication\PMR\Stubs\StubHWVersionRequest.pb-c.obj" "Communication\PMR\Stubs\StubHWVersionResponse.pb-c.obj" "Communication\PMR\Stubs\StubHeaterRequest.pb-c.obj" "Communication\PMR\Stubs\StubHeaterResponse.pb-c.obj" "Communication\PMR\Stubs\StubHeatingTestPollRequest.pb-c.obj" "Communication\PMR\Stubs\StubHeatingTestPollResponse.pb-c.obj" "Communication\PMR\Stubs\StubHeatingTestRequest.pb-c.obj" "Communication\PMR\Stubs\StubHeatingTestResponse.pb-c.obj" "Communication\PMR\Stubs\StubI2CReadBytesRequest.pb-c.obj" "Communication\PMR\Stubs\StubI2CReadBytesResponse.pb-c.obj" "Communication\PMR\Stubs\StubI2CRequest.pb-c.obj" "Communication\PMR\Stubs\StubI2CResponse.pb-c.obj" "Communication\PMR\Stubs\StubI2CWriteBytesRequest.pb-c.obj" "Communication\PMR\Stubs\StubI2CWriteBytesResponse.pb-c.obj" - -$(RM) "Communication\PMR\Stubs\StubIntADCReadRequest.pb-c.obj" "Communication\PMR\Stubs\StubIntADCReadResponse.pb-c.obj" "Communication\PMR\Stubs\StubJobRequest.pb-c.obj" "Communication\PMR\Stubs\StubJobResponse.pb-c.obj" "Communication\PMR\Stubs\StubL6470DriverRequest.pb-c.obj" "Communication\PMR\Stubs\StubL6470DriverResponse.pb-c.obj" "Communication\PMR\Stubs\StubMidTankPressureSensorRequest.pb-c.obj" "Communication\PMR\Stubs\StubMidTankPressureSensorResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorHomeMarkRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorHomeMarkResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorInitRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorInitResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorMovRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorMovResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorPositionRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorPositionResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorResponse.pb-c.obj" - -$(RM) "Communication\PMR\Stubs\StubMotorRunRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorRunResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorRunStepTickRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorRunStepTickResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorSpeedRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorSpeedResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorStatusRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorStatusResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorStopRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorStopResponse.pb-c.obj" "Communication\PMR\Stubs\StubOptLimitSwitchRequest.pb-c.obj" "Communication\PMR\Stubs\StubOptLimitSwitchResponse.pb-c.obj" "Communication\PMR\Stubs\StubReadEmbeddedVersionRequest.pb-c.obj" "Communication\PMR\Stubs\StubReadEmbeddedVersionResponse.pb-c.obj" "Communication\PMR\Stubs\StubRealTimeUsageRequest.pb-c.obj" "Communication\PMR\Stubs\StubRealTimeUsageResponse.pb-c.obj" "Communication\PMR\Stubs\StubSpeedSensorRequest.pb-c.obj" - -$(RM) "Communication\PMR\Stubs\StubSpeedSensorResponse.pb-c.obj" "Communication\PMR\Stubs\StubSteperMotorRequest.pb-c.obj" "Communication\PMR\Stubs\StubSteperMotorResponse.pb-c.obj" "Communication\PMR\Stubs\StubTempSensorRequest.pb-c.obj" "Communication\PMR\Stubs\StubTempSensorResponse.pb-c.obj" "Communication\PMR\Stubs\StubTivaReadRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubTivaReadRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubTivaWriteRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubTivaWriteRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubValveRequest.pb-c.obj" "Communication\PMR\Stubs\StubValveResponse.pb-c.obj" "Drivers\ADC_Sampling\ADC.obj" "Drivers\FPGA\FPGA.obj" "Drivers\FPGA\FPGA_SPI_Comm.obj" "Drivers\FPGA\FPGA_SSI_Comm.obj" "Drivers\FPGA\FPGA_GPIO\FPGA_GPIO.obj" "Drivers\FPGA\FPGA_INTERRUPTS\FPGA_Interrupts.obj" "Drivers\FPGA\JTAG_VME\slim_vme_8051\Handle_vme_file.obj" "Drivers\FPGA\JTAG_VME\slim_vme_8051\hardware.obj" "Drivers\FPGA\JTAG_VME\slim_vme_8051\slim_pro.obj" - -$(RM) "Drivers\FPGA\JTAG_VME\slim_vme_8051\slim_vme.obj" "Drivers\FPGA\Moters_Driver\L6470.obj" "Drivers\Flash_Memory\FATFS\Control_File_System.obj" "Drivers\Flash_Memory\FATFS\cc932.obj" "Drivers\Flash_Memory\FATFS\fatfs_port_mx66l51235f.obj" "Drivers\Flash_Memory\FATFS\ff.obj" "Drivers\Flash_Memory\FATFS\mx66l51235f.obj" "Drivers\Flash_Memory\FATFS\spi_flash.obj" "Drivers\Flash_Memory\Flash_Memory.obj" "Drivers\Heater\ADS1220.obj" "Drivers\Heater\Heater.obj" "Drivers\Heater\TemperatureSensor.obj" "Drivers\I2C_Communication\ADC_MUX\ADC_MUX.obj" "Drivers\I2C_Communication\DAC\Blower.obj" "Drivers\I2C_Communication\Dispensers_EEPROM_MUX\Disp_EEPROM_MUX.obj" "Drivers\I2C_Communication\I2C.obj" "Drivers\I2C_Communication\I2C_Comm.obj" "Drivers\I2C_Communication\I2C_Switch\I2C_Swith.obj" "Drivers\I2C_Communication\Thermo_K\MCP9600.obj" "Drivers\Motors\Motor.obj" "Drivers\On_Chip_Flash\Flashstore.obj" "Drivers\SPI\SPI_Comm.obj" "Drivers\SSI_Comm\Dancer\Dancer.obj" "Drivers\SSI_Comm\SSI_Comm.obj" "Drivers\SSI_Comm\Speed_Sensor\Speed_Sensor.obj" - -$(RM) "Drivers\USB_Communication\USBCDCD.obj" "Drivers\Uart_Comm\Uart.obj" "Drivers\Valves\Valve.obj" "Modules\AlarmHandling\AlarmHandling.obj" "Modules\Control\DriverWithCallbackExample.obj" "Modules\Control\MillisecTask.obj" "Modules\Control\PIDAlgo.obj" "Modules\Control\control.obj" "Modules\Diagnostics\DiagnosticActions.obj" "Modules\Diagnostics\Diagnostics.obj" "Modules\Diagnostics\DiagnosticsHoming.obj" "Modules\Diagnostics\DiagnosticsJogging.obj" "Modules\General\GeneralHardware.obj" "Modules\General\process.obj" "Modules\Heaters\Heaters_bit.obj" "Modules\Heaters\Heaters_init.obj" "Modules\Heaters\Heaters_maint.obj" "Modules\Heaters\Heaters_print.obj" "Modules\IDS\IDS_BIT.obj" "Modules\IDS\IDS_dispenser.obj" "Modules\IDS\IDS_init.obj" "Modules\IDS\IDS_maint.obj" "Modules\IDS\IDS_print.obj" "Modules\Stubs_Handler\Calculate.obj" "Modules\Stubs_Handler\Progress.obj" "Modules\Stubs_Handler\StubRealTimeUsage.obj" "Modules\Stubs_Handler\Stub_Cartridge.obj" "Modules\Stubs_Handler\Stub_Dancer.obj" - -$(RM) "Modules\Stubs_Handler\Stub_Dispenser.obj" "Modules\Stubs_Handler\Stub_ExtFlash.obj" "Modules\Stubs_Handler\Stub_FPGARWReg.obj" "Modules\Stubs_Handler\Stub_FPGAReadBackReg.obj" "Modules\Stubs_Handler\Stub_FPGAReadVersion.obj" "Modules\Stubs_Handler\Stub_GPIO.obj" "Modules\Stubs_Handler\Stub_HW_Version.obj" "Modules\Stubs_Handler\Stub_Heater.obj" "Modules\Stubs_Handler\Stub_I2C.obj" "Modules\Stubs_Handler\Stub_IntADC.obj" "Modules\Stubs_Handler\Stub_L6470.obj" "Modules\Stubs_Handler\Stub_MidTankPressureSensor.obj" "Modules\Stubs_Handler\Stub_Motor.obj" "Modules\Stubs_Handler\Stub_OptLimitSwitch.obj" "Modules\Stubs_Handler\Stub_ReadEmbeddedVersion.obj" "Modules\Stubs_Handler\Stub_SpeedSensor.obj" "Modules\Stubs_Handler\Stub_Status.obj" "Modules\Stubs_Handler\Stub_SteperMotor.obj" "Modules\Stubs_Handler\Stub_TempSensor.obj" "Modules\Stubs_Handler\Stub_TivaReg.obj" "Modules\Stubs_Handler\Stub_Valve.obj" "Modules\Stubs_Handler\User_Leds.obj" "Modules\Stubs_Handler\temperature_sensor.obj" "Modules\Thread\Thread_BIT.obj" - -$(RM) "Modules\Thread\Thread_Winder.obj" "Modules\Thread\Thread_init.obj" "Modules\Thread\Thread_maint.obj" "Modules\Thread\Thread_print.obj" "Modules\Waste\Waste_BIT.obj" "Modules\Waste\Waste_init.obj" "Modules\Waste\Waste_maint.obj" "Modules\Waste\Waste_print.obj" "StateMachines\Printing\JobSTM.obj" "StateMachines\Printing\PrintingSTM.obj" - -$(RM) "Main.d" "delay.d" "Common\SWUpdate\FileSystem.d" "Common\SWUpdate\FirmwareUpgrade.d" "Common\SW_Info\SW_Info.d" "Common\Software_CRC\sw_crc.d" "Common\Sys_PinOut_Config\MCU_MAIN_pinout.d" "Common\Sys_PinOut_Config\Pin.d" "Common\Sys_PinOut_Config\Pin_config.d" "Common\Utilities\Update.d" "Common\Utilities\Utils.d" "Common\Utilities\idle_task.d" "Common\Utilities\ustdlib.d" "Common\protobuf-c\person-pb-c.d" "Common\protobuf-c\protobuf-c.d" "Common\report\distributor.d" "Common\report\filter.d" "Common\report\reportInit.d" "Communication\CommunicationTask.d" "Communication\Connection.d" "Communication\Container.d" "Communication\PMR\Common\ErrorCode.pb-c.d" "Communication\PMR\Common\ErrorResponse.pb-c.d" "Communication\PMR\Common\MessageContainer.pb-c.d" "Communication\PMR\Common\MessageType.pb-c.d" "Communication\PMR\Connection\ConnectRequest.pb-c.d" "Communication\PMR\Connection\ConnectResponse.pb-c.d" "Communication\PMR\Connection\DeviceInformation.pb-c.d" "Communication\PMR\Connection\DisconnectRequest.pb-c.d" - -$(RM) "Communication\PMR\Connection\DisconnectResponse.pb-c.d" "Communication\PMR\Connection\KeepAliveRequest.pb-c.d" "Communication\PMR\Connection\KeepAliveResponse.pb-c.d" "Communication\PMR\Debugging\DebugLogCategory.pb-c.d" "Communication\PMR\Debugging\StartDebugLogRequest.pb-c.d" "Communication\PMR\Debugging\StartDebugLogResponse.pb-c.d" "Communication\PMR\Debugging\StopDebugLogRequest.pb-c.d" "Communication\PMR\Debugging\StopDebugLogResponse.pb-c.d" "Communication\PMR\Diagnostics\DataFileFrame.pb-c.d" "Communication\PMR\Diagnostics\DiagnosticsMonitors.pb-c.d" "Communication\PMR\Diagnostics\DigitalInterfaceState.pb-c.d" "Communication\PMR\Diagnostics\DispenserAbortHomingRequest.pb-c.d" "Communication\PMR\Diagnostics\DispenserAbortHomingResponse.pb-c.d" "Communication\PMR\Diagnostics\DispenserAbortJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\DispenserAbortJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\DispenserHomingRequest.pb-c.d" "Communication\PMR\Diagnostics\DispenserHomingResponse.pb-c.d" - -$(RM) "Communication\PMR\Diagnostics\DispenserJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\DispenserJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\DoubleArray.pb-c.d" "Communication\PMR\Diagnostics\Event.pb-c.d" "Communication\PMR\Diagnostics\EventType.pb-c.d" "Communication\PMR\Diagnostics\HeaterState.pb-c.d" "Communication\PMR\Diagnostics\HeaterType.pb-c.d" "Communication\PMR\Diagnostics\InterfaceIOs.pb-c.d" "Communication\PMR\Diagnostics\MotorAbortHomingRequest.pb-c.d" "Communication\PMR\Diagnostics\MotorAbortHomingResponse.pb-c.d" "Communication\PMR\Diagnostics\MotorAbortJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\MotorAbortJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\MotorDirection.pb-c.d" "Communication\PMR\Diagnostics\MotorHomingRequest.pb-c.d" "Communication\PMR\Diagnostics\MotorHomingResponse.pb-c.d" "Communication\PMR\Diagnostics\MotorJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\MotorJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\ResolveEventRequest.pb-c.d" - -$(RM) "Communication\PMR\Diagnostics\ResolveEventResponse.pb-c.d" "Communication\PMR\Diagnostics\SetBlowerStateRequest.pb-c.d" "Communication\PMR\Diagnostics\SetBlowerStateResponse.pb-c.d" "Communication\PMR\Diagnostics\SetComponentValueRequest.pb-c.d" "Communication\PMR\Diagnostics\SetComponentValueResponse.pb-c.d" "Communication\PMR\Diagnostics\SetDigitalOutRequest.pb-c.d" "Communication\PMR\Diagnostics\SetDigitalOutResponse.pb-c.d" "Communication\PMR\Diagnostics\SetHeaterStateRequest.pb-c.d" "Communication\PMR\Diagnostics\SetHeaterStateResponse.pb-c.d" "Communication\PMR\Diagnostics\SetValveStateRequest.pb-c.d" "Communication\PMR\Diagnostics\SetValveStateResponse.pb-c.d" "Communication\PMR\Diagnostics\StartDiagnosticsRequest.pb-c.d" "Communication\PMR\Diagnostics\StartDiagnosticsResponse.pb-c.d" "Communication\PMR\Diagnostics\StartEventsNotificationRequest.pb-c.d" "Communication\PMR\Diagnostics\StartEventsNotificationResponse.pb-c.d" "Communication\PMR\Diagnostics\StopDiagnosticsRequest.pb-c.d" - -$(RM) "Communication\PMR\Diagnostics\StopDiagnosticsResponse.pb-c.d" "Communication\PMR\Diagnostics\StopEventsNotificationRequest.pb-c.d" "Communication\PMR\Diagnostics\StopEventsNotificationResponse.pb-c.d" "Communication\PMR\Diagnostics\ThreadAbortJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\ThreadAbortJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\ThreadJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\ThreadJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\ValueComponent.pb-c.d" "Communication\PMR\Diagnostics\ValueComponentState.pb-c.d" "Communication\PMR\Diagnostics\ValveState.pb-c.d" "Communication\PMR\Diagnostics\ValveStateCode.pb-c.d" "Communication\PMR\Diagnostics\ValveType.pb-c.d" "Communication\PMR\FirmwareUpgrade\ActivateVersionRequest.pb-c.d" "Communication\PMR\FirmwareUpgrade\ActivateVersionResponse.pb-c.d" "Communication\PMR\FirmwareUpgrade\ValidateVersionRequest.pb-c.d" "Communication\PMR\FirmwareUpgrade\ValidateVersionResponse.pb-c.d" "Communication\PMR\FirmwareUpgrade\VersionFileDescriptor.pb-c.d" - -$(RM) "Communication\PMR\FirmwareUpgrade\VersionFileDestination.pb-c.d" "Communication\PMR\FirmwareUpgrade\VersionPackageDescriptor.pb-c.d" "Communication\PMR\Hardware\HardwareBlower.pb-c.d" "Communication\PMR\Hardware\HardwareBlowerType.pb-c.d" "Communication\PMR\Hardware\HardwareBreakSensor.pb-c.d" "Communication\PMR\Hardware\HardwareBreakSensorType.pb-c.d" "Communication\PMR\Hardware\HardwareConfiguration.pb-c.d" "Communication\PMR\Hardware\HardwareDancer.pb-c.d" "Communication\PMR\Hardware\HardwareDancerType.pb-c.d" "Communication\PMR\Hardware\HardwareDispenser.pb-c.d" "Communication\PMR\Hardware\HardwareDispenserType.pb-c.d" "Communication\PMR\Hardware\HardwareMotor.pb-c.d" "Communication\PMR\Hardware\HardwareMotorType.pb-c.d" "Communication\PMR\Hardware\HardwarePidControl.pb-c.d" "Communication\PMR\Hardware\HardwarePidControlType.pb-c.d" "Communication\PMR\Hardware\HardwareSpeedSensor.pb-c.d" "Communication\PMR\Hardware\HardwareSpeedSensorType.pb-c.d" "Communication\PMR\Hardware\HardwareWinder.pb-c.d" - -$(RM) "Communication\PMR\Hardware\HardwareWinderType.pb-c.d" "Communication\PMR\Hardware\SystemResetRequest.pb-c.d" "Communication\PMR\Hardware\SystemResetResponse.pb-c.d" "Communication\PMR\Hardware\UploadHardwareConfigurationRequest.pb-c.d" "Communication\PMR\Hardware\UploadHardwareConfigurationResponse.pb-c.d" "Communication\PMR\IO\CreateRequest.pb-c.d" "Communication\PMR\IO\CreateResponse.pb-c.d" "Communication\PMR\IO\DeleteRequest.pb-c.d" "Communication\PMR\IO\DeleteResponse.pb-c.d" "Communication\PMR\IO\ExecuteProcessRequest.pb-c.d" "Communication\PMR\IO\ExecuteProcessResponse.pb-c.d" "Communication\PMR\IO\FileAttribute.pb-c.d" "Communication\PMR\IO\FileChunkDownloadRequest.pb-c.d" "Communication\PMR\IO\FileChunkDownloadResponse.pb-c.d" "Communication\PMR\IO\FileChunkUploadRequest.pb-c.d" "Communication\PMR\IO\FileChunkUploadResponse.pb-c.d" "Communication\PMR\IO\FileDownloadRequest.pb-c.d" "Communication\PMR\IO\FileDownloadResponse.pb-c.d" "Communication\PMR\IO\FileInfo.pb-c.d" "Communication\PMR\IO\FileUploadRequest.pb-c.d" - -$(RM) "Communication\PMR\IO\FileUploadResponse.pb-c.d" "Communication\PMR\IO\GetFilesRequest.pb-c.d" "Communication\PMR\IO\GetFilesResponse.pb-c.d" "Communication\PMR\IO\GetStorageInfoRequest.pb-c.d" "Communication\PMR\IO\GetStorageInfoResponse.pb-c.d" "Communication\PMR\IO\KillProcessRequest.pb-c.d" "Communication\PMR\IO\KillProcessResponse.pb-c.d" "Communication\PMR\Printing\AbortJobRequest.pb-c.d" "Communication\PMR\Printing\AbortJobResponse.pb-c.d" "Communication\PMR\Printing\CurrentJobRequest.pb-c.d" "Communication\PMR\Printing\CurrentJobResponse.pb-c.d" "Communication\PMR\Printing\DispenserLiquidType.pb-c.d" "Communication\PMR\Printing\DispenserStepDivision.pb-c.d" "Communication\PMR\Printing\JobBrushStop.pb-c.d" "Communication\PMR\Printing\JobDispenser.pb-c.d" "Communication\PMR\Printing\JobRequest.pb-c.d" "Communication\PMR\Printing\JobResponse.pb-c.d" "Communication\PMR\Printing\JobSegment.pb-c.d" "Communication\PMR\Printing\JobSpool.pb-c.d" "Communication\PMR\Printing\JobSpoolType.pb-c.d" - -$(RM) "Communication\PMR\Printing\JobStatus.pb-c.d" "Communication\PMR\Printing\JobTicket.pb-c.d" "Communication\PMR\Printing\JobWindingMethod.pb-c.d" "Communication\PMR\Printing\ProcessParameters.pb-c.d" "Communication\PMR\Printing\ResumeCurrentJobRequest.pb-c.d" "Communication\PMR\Printing\ResumeCurrentJobResponse.pb-c.d" "Communication\PMR\Printing\UploadProcessParametersRequest.pb-c.d" "Communication\PMR\Printing\UploadProcessParametersResponse.pb-c.d" "Communication\PMR\Stubs\CalculateRequest.pb-c.d" "Communication\PMR\Stubs\CalculateResponse.pb-c.d" "Communication\PMR\Stubs\ProgressRequest.pb-c.d" "Communication\PMR\Stubs\ProgressResponse.pb-c.d" "Communication\PMR\Stubs\StubAbortJobRequest.pb-c.d" "Communication\PMR\Stubs\StubAbortJobResponse.pb-c.d" "Communication\PMR\Stubs\StubCartridgeReadRequest.pb-c.d" "Communication\PMR\Stubs\StubCartridgeReadResponse.pb-c.d" "Communication\PMR\Stubs\StubCartridgeWriteRequest.pb-c.d" "Communication\PMR\Stubs\StubCartridgeWriteResponse.pb-c.d" "Communication\PMR\Stubs\StubDancerPositionRequest.pb-c.d" - -$(RM) "Communication\PMR\Stubs\StubDancerPositionResponse.pb-c.d" "Communication\PMR\Stubs\StubDispenserRequest.pb-c.d" "Communication\PMR\Stubs\StubDispenserResponse.pb-c.d" "Communication\PMR\Stubs\StubExtFlashReadRequest.pb-c.d" "Communication\PMR\Stubs\StubExtFlashReadResponse.pb-c.d" "Communication\PMR\Stubs\StubExtFlashReadWordsRequest.pb-c.d" "Communication\PMR\Stubs\StubExtFlashReadWordsResponse.pb-c.d" "Communication\PMR\Stubs\StubExtFlashWriteRequest.pb-c.d" "Communication\PMR\Stubs\StubExtFlashWriteResponse.pb-c.d" "Communication\PMR\Stubs\StubExtFlashWriteWordsRequest.pb-c.d" "Communication\PMR\Stubs\StubExtFlashWriteWordsResponse.pb-c.d" "Communication\PMR\Stubs\StubF3Gpo01WriteRequest.pb-c.d" "Communication\PMR\Stubs\StubF3Gpo01WriteResponse.pb-c.d" "Communication\PMR\Stubs\StubFPGAReadBackRegRequest.pb-c.d" "Communication\PMR\Stubs\StubFPGAReadBackRegResponse.pb-c.d" "Communication\PMR\Stubs\StubFPGAReadVersionRequest.pb-c.d" "Communication\PMR\Stubs\StubFPGAReadVersionResponse.pb-c.d" - -$(RM) "Communication\PMR\Stubs\StubFpgaReadRegRequest.pb-c.d" "Communication\PMR\Stubs\StubFpgaReadRegResponse.pb-c.d" "Communication\PMR\Stubs\StubFpgaWriteRegRequest.pb-c.d" "Communication\PMR\Stubs\StubFpgaWriteRegResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOInputSetupRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOInputSetupResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOReadBitRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOReadBitResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOReadByteRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOReadByteResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOWriteBitRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOWriteBitResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOWriteByteRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOWriteByteResponse.pb-c.d" "Communication\PMR\Stubs\StubHWVersionRequest.pb-c.d" "Communication\PMR\Stubs\StubHWVersionResponse.pb-c.d" "Communication\PMR\Stubs\StubHeaterRequest.pb-c.d" "Communication\PMR\Stubs\StubHeaterResponse.pb-c.d" - -$(RM) "Communication\PMR\Stubs\StubHeatingTestPollRequest.pb-c.d" "Communication\PMR\Stubs\StubHeatingTestPollResponse.pb-c.d" "Communication\PMR\Stubs\StubHeatingTestRequest.pb-c.d" "Communication\PMR\Stubs\StubHeatingTestResponse.pb-c.d" "Communication\PMR\Stubs\StubI2CReadBytesRequest.pb-c.d" "Communication\PMR\Stubs\StubI2CReadBytesResponse.pb-c.d" "Communication\PMR\Stubs\StubI2CRequest.pb-c.d" "Communication\PMR\Stubs\StubI2CResponse.pb-c.d" "Communication\PMR\Stubs\StubI2CWriteBytesRequest.pb-c.d" "Communication\PMR\Stubs\StubI2CWriteBytesResponse.pb-c.d" "Communication\PMR\Stubs\StubIntADCReadRequest.pb-c.d" "Communication\PMR\Stubs\StubIntADCReadResponse.pb-c.d" "Communication\PMR\Stubs\StubJobRequest.pb-c.d" "Communication\PMR\Stubs\StubJobResponse.pb-c.d" "Communication\PMR\Stubs\StubL6470DriverRequest.pb-c.d" "Communication\PMR\Stubs\StubL6470DriverResponse.pb-c.d" "Communication\PMR\Stubs\StubMidTankPressureSensorRequest.pb-c.d" "Communication\PMR\Stubs\StubMidTankPressureSensorResponse.pb-c.d" - -$(RM) "Communication\PMR\Stubs\StubMotorHomeMarkRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorHomeMarkResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorInitRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorInitResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorMovRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorMovResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorPositionRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorPositionResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorRunRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorRunResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorRunStepTickRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorRunStepTickResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorSpeedRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorSpeedResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorStatusRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorStatusResponse.pb-c.d" - -$(RM) "Communication\PMR\Stubs\StubMotorStopRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorStopResponse.pb-c.d" "Communication\PMR\Stubs\StubOptLimitSwitchRequest.pb-c.d" "Communication\PMR\Stubs\StubOptLimitSwitchResponse.pb-c.d" "Communication\PMR\Stubs\StubReadEmbeddedVersionRequest.pb-c.d" "Communication\PMR\Stubs\StubReadEmbeddedVersionResponse.pb-c.d" "Communication\PMR\Stubs\StubRealTimeUsageRequest.pb-c.d" "Communication\PMR\Stubs\StubRealTimeUsageResponse.pb-c.d" "Communication\PMR\Stubs\StubSpeedSensorRequest.pb-c.d" "Communication\PMR\Stubs\StubSpeedSensorResponse.pb-c.d" "Communication\PMR\Stubs\StubSteperMotorRequest.pb-c.d" "Communication\PMR\Stubs\StubSteperMotorResponse.pb-c.d" "Communication\PMR\Stubs\StubTempSensorRequest.pb-c.d" "Communication\PMR\Stubs\StubTempSensorResponse.pb-c.d" "Communication\PMR\Stubs\StubTivaReadRegRequest.pb-c.d" "Communication\PMR\Stubs\StubTivaReadRegResponse.pb-c.d" "Communication\PMR\Stubs\StubTivaWriteRegRequest.pb-c.d" "Communication\PMR\Stubs\StubTivaWriteRegResponse.pb-c.d" - -$(RM) "Communication\PMR\Stubs\StubValveRequest.pb-c.d" "Communication\PMR\Stubs\StubValveResponse.pb-c.d" "Drivers\ADC_Sampling\ADC.d" "Drivers\FPGA\FPGA.d" "Drivers\FPGA\FPGA_SPI_Comm.d" "Drivers\FPGA\FPGA_SSI_Comm.d" "Drivers\FPGA\FPGA_GPIO\FPGA_GPIO.d" "Drivers\FPGA\FPGA_INTERRUPTS\FPGA_Interrupts.d" "Drivers\FPGA\JTAG_VME\slim_vme_8051\Handle_vme_file.d" "Drivers\FPGA\JTAG_VME\slim_vme_8051\hardware.d" "Drivers\FPGA\JTAG_VME\slim_vme_8051\slim_pro.d" "Drivers\FPGA\JTAG_VME\slim_vme_8051\slim_vme.d" "Drivers\FPGA\Moters_Driver\L6470.d" "Drivers\Flash_Memory\FATFS\Control_File_System.d" "Drivers\Flash_Memory\FATFS\cc932.d" "Drivers\Flash_Memory\FATFS\fatfs_port_mx66l51235f.d" "Drivers\Flash_Memory\FATFS\ff.d" "Drivers\Flash_Memory\FATFS\mx66l51235f.d" "Drivers\Flash_Memory\FATFS\spi_flash.d" "Drivers\Flash_Memory\Flash_Memory.d" "Drivers\Heater\ADS1220.d" "Drivers\Heater\Heater.d" "Drivers\Heater\TemperatureSensor.d" "Drivers\I2C_Communication\ADC_MUX\ADC_MUX.d" "Drivers\I2C_Communication\DAC\Blower.d" - -$(RM) "Drivers\I2C_Communication\Dispensers_EEPROM_MUX\Disp_EEPROM_MUX.d" "Drivers\I2C_Communication\I2C.d" "Drivers\I2C_Communication\I2C_Comm.d" "Drivers\I2C_Communication\I2C_Switch\I2C_Swith.d" "Drivers\I2C_Communication\Thermo_K\MCP9600.d" "Drivers\Motors\Motor.d" "Drivers\On_Chip_Flash\Flashstore.d" "Drivers\SPI\SPI_Comm.d" "Drivers\SSI_Comm\Dancer\Dancer.d" "Drivers\SSI_Comm\SSI_Comm.d" "Drivers\SSI_Comm\Speed_Sensor\Speed_Sensor.d" "Drivers\USB_Communication\USBCDCD.d" "Drivers\Uart_Comm\Uart.d" "Drivers\Valves\Valve.d" "Modules\AlarmHandling\AlarmHandling.d" "Modules\Control\DriverWithCallbackExample.d" "Modules\Control\MillisecTask.d" "Modules\Control\PIDAlgo.d" "Modules\Control\control.d" "Modules\Diagnostics\DiagnosticActions.d" "Modules\Diagnostics\Diagnostics.d" "Modules\Diagnostics\DiagnosticsHoming.d" "Modules\Diagnostics\DiagnosticsJogging.d" "Modules\General\GeneralHardware.d" "Modules\General\process.d" "Modules\Heaters\Heaters_bit.d" "Modules\Heaters\Heaters_init.d" "Modules\Heaters\Heaters_maint.d" - -$(RM) "Modules\Heaters\Heaters_print.d" "Modules\IDS\IDS_BIT.d" "Modules\IDS\IDS_dispenser.d" "Modules\IDS\IDS_init.d" "Modules\IDS\IDS_maint.d" "Modules\IDS\IDS_print.d" "Modules\Stubs_Handler\Calculate.d" "Modules\Stubs_Handler\Progress.d" "Modules\Stubs_Handler\StubRealTimeUsage.d" "Modules\Stubs_Handler\Stub_Cartridge.d" "Modules\Stubs_Handler\Stub_Dancer.d" "Modules\Stubs_Handler\Stub_Dispenser.d" "Modules\Stubs_Handler\Stub_ExtFlash.d" "Modules\Stubs_Handler\Stub_FPGARWReg.d" "Modules\Stubs_Handler\Stub_FPGAReadBackReg.d" "Modules\Stubs_Handler\Stub_FPGAReadVersion.d" "Modules\Stubs_Handler\Stub_GPIO.d" "Modules\Stubs_Handler\Stub_HW_Version.d" "Modules\Stubs_Handler\Stub_Heater.d" "Modules\Stubs_Handler\Stub_I2C.d" "Modules\Stubs_Handler\Stub_IntADC.d" "Modules\Stubs_Handler\Stub_L6470.d" "Modules\Stubs_Handler\Stub_MidTankPressureSensor.d" "Modules\Stubs_Handler\Stub_Motor.d" "Modules\Stubs_Handler\Stub_OptLimitSwitch.d" "Modules\Stubs_Handler\Stub_ReadEmbeddedVersion.d" "Modules\Stubs_Handler\Stub_SpeedSensor.d" - -$(RM) "Modules\Stubs_Handler\Stub_Status.d" "Modules\Stubs_Handler\Stub_SteperMotor.d" "Modules\Stubs_Handler\Stub_TempSensor.d" "Modules\Stubs_Handler\Stub_TivaReg.d" "Modules\Stubs_Handler\Stub_Valve.d" "Modules\Stubs_Handler\User_Leds.d" "Modules\Stubs_Handler\temperature_sensor.d" "Modules\Thread\Thread_BIT.d" "Modules\Thread\Thread_Winder.d" "Modules\Thread\Thread_init.d" "Modules\Thread\Thread_maint.d" "Modules\Thread\Thread_print.d" "Modules\Waste\Waste_BIT.d" "Modules\Waste\Waste_init.d" "Modules\Waste\Waste_maint.d" "Modules\Waste\Waste_print.d" "StateMachines\Printing\JobSTM.d" "StateMachines\Printing\PrintingSTM.d" + -$(RM) "Main.obj" "delay.obj" "Common\SWUpdate\FileSystem.obj" "Common\SWUpdate\FirmwareUpgrade.obj" "Common\SW_Info\SW_Info.obj" "Common\Software_CRC\sw_crc.obj" "Common\Sys_PinOut_Config\MCU_MAIN_pinout.obj" "Common\Sys_PinOut_Config\Pin.obj" "Common\Sys_PinOut_Config\Pin_config.obj" "Common\Utilities\Update.obj" "Common\Utilities\Utils.obj" "Common\Utilities\idle_task.obj" "Common\Utilities\ustdlib.obj" "Common\protobuf-c\protobuf-c.obj" "Common\report\distributor.obj" "Common\report\filter.obj" "Common\report\reportInit.obj" "Communication\CommunicationTask.obj" "Communication\Connection.obj" "Communication\Container.obj" "Communication\PMR\Common\ErrorCode.pb-c.obj" "Communication\PMR\Common\ErrorResponse.pb-c.obj" "Communication\PMR\Common\MessageContainer.pb-c.obj" "Communication\PMR\Common\MessageType.pb-c.obj" "Communication\PMR\Connection\ConnectRequest.pb-c.obj" "Communication\PMR\Connection\ConnectResponse.pb-c.obj" "Communication\PMR\Connection\DeviceInformation.pb-c.obj" "Communication\PMR\Connection\DisconnectRequest.pb-c.obj" + -$(RM) "Communication\PMR\Connection\DisconnectResponse.pb-c.obj" "Communication\PMR\Connection\KeepAliveRequest.pb-c.obj" "Communication\PMR\Connection\KeepAliveResponse.pb-c.obj" "Communication\PMR\Debugging\DebugLogCategory.pb-c.obj" "Communication\PMR\Debugging\StartDebugLogRequest.pb-c.obj" "Communication\PMR\Debugging\StartDebugLogResponse.pb-c.obj" "Communication\PMR\Debugging\StopDebugLogRequest.pb-c.obj" "Communication\PMR\Debugging\StopDebugLogResponse.pb-c.obj" "Communication\PMR\Diagnostics\DataFileFrame.pb-c.obj" "Communication\PMR\Diagnostics\DiagnosticsMonitors.pb-c.obj" "Communication\PMR\Diagnostics\DigitalInterfaceState.pb-c.obj" "Communication\PMR\Diagnostics\DispenserAbortHomingRequest.pb-c.obj" "Communication\PMR\Diagnostics\DispenserAbortHomingResponse.pb-c.obj" "Communication\PMR\Diagnostics\DispenserAbortJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\DispenserAbortJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\DispenserHomingRequest.pb-c.obj" "Communication\PMR\Diagnostics\DispenserHomingResponse.pb-c.obj" + -$(RM) "Communication\PMR\Diagnostics\DispenserJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\DispenserJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\DoubleArray.pb-c.obj" "Communication\PMR\Diagnostics\Event.pb-c.obj" "Communication\PMR\Diagnostics\EventType.pb-c.obj" "Communication\PMR\Diagnostics\HeaterState.pb-c.obj" "Communication\PMR\Diagnostics\HeaterType.pb-c.obj" "Communication\PMR\Diagnostics\InterfaceIOs.pb-c.obj" "Communication\PMR\Diagnostics\MotorAbortHomingRequest.pb-c.obj" "Communication\PMR\Diagnostics\MotorAbortHomingResponse.pb-c.obj" "Communication\PMR\Diagnostics\MotorAbortJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\MotorAbortJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\MotorDirection.pb-c.obj" "Communication\PMR\Diagnostics\MotorHomingRequest.pb-c.obj" "Communication\PMR\Diagnostics\MotorHomingResponse.pb-c.obj" "Communication\PMR\Diagnostics\MotorJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\MotorJoggingResponse.pb-c.obj" + -$(RM) "Communication\PMR\Diagnostics\ResolveEventRequest.pb-c.obj" "Communication\PMR\Diagnostics\ResolveEventResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetBlowerStateRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetBlowerStateResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetComponentValueRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetComponentValueResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetDigitalOutRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetDigitalOutResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetHeaterStateRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetHeaterStateResponse.pb-c.obj" "Communication\PMR\Diagnostics\SetValveStateRequest.pb-c.obj" "Communication\PMR\Diagnostics\SetValveStateResponse.pb-c.obj" "Communication\PMR\Diagnostics\StartDiagnosticsRequest.pb-c.obj" "Communication\PMR\Diagnostics\StartDiagnosticsResponse.pb-c.obj" "Communication\PMR\Diagnostics\StartEventsNotificationRequest.pb-c.obj" "Communication\PMR\Diagnostics\StartEventsNotificationResponse.pb-c.obj" + -$(RM) "Communication\PMR\Diagnostics\StopDiagnosticsRequest.pb-c.obj" "Communication\PMR\Diagnostics\StopDiagnosticsResponse.pb-c.obj" "Communication\PMR\Diagnostics\StopEventsNotificationRequest.pb-c.obj" "Communication\PMR\Diagnostics\StopEventsNotificationResponse.pb-c.obj" "Communication\PMR\Diagnostics\ThreadAbortJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\ThreadAbortJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\ThreadJoggingRequest.pb-c.obj" "Communication\PMR\Diagnostics\ThreadJoggingResponse.pb-c.obj" "Communication\PMR\Diagnostics\ValueComponent.pb-c.obj" "Communication\PMR\Diagnostics\ValueComponentState.pb-c.obj" "Communication\PMR\Diagnostics\ValveState.pb-c.obj" "Communication\PMR\Diagnostics\ValveStateCode.pb-c.obj" "Communication\PMR\Diagnostics\ValveType.pb-c.obj" "Communication\PMR\EmbeddedParameters\AlarmHandlingItem.pb-c.obj" "Communication\PMR\EmbeddedParameters\AlarmParameters.pb-c.obj" "Communication\PMR\EmbeddedParameters\AlarmSourceType.pb-c.obj" + -$(RM) "Communication\PMR\EmbeddedParameters\ConfigurationParameters.pb-c.obj" "Communication\PMR\EmbeddedParameters\DispenserData.pb-c.obj" "Communication\PMR\EmbeddedParameters\DispenserRunningData.pb-c.obj" "Communication\PMR\FirmwareUpgrade\ActivateVersionRequest.pb-c.obj" "Communication\PMR\FirmwareUpgrade\ActivateVersionResponse.pb-c.obj" "Communication\PMR\FirmwareUpgrade\ValidateVersionRequest.pb-c.obj" "Communication\PMR\FirmwareUpgrade\ValidateVersionResponse.pb-c.obj" "Communication\PMR\FirmwareUpgrade\VersionFileDescriptor.pb-c.obj" "Communication\PMR\FirmwareUpgrade\VersionFileDestination.pb-c.obj" "Communication\PMR\FirmwareUpgrade\VersionPackageDescriptor.pb-c.obj" "Communication\PMR\Hardware\HardwareBlower.pb-c.obj" "Communication\PMR\Hardware\HardwareBlowerType.pb-c.obj" "Communication\PMR\Hardware\HardwareBreakSensor.pb-c.obj" "Communication\PMR\Hardware\HardwareBreakSensorType.pb-c.obj" "Communication\PMR\Hardware\HardwareConfiguration.pb-c.obj" "Communication\PMR\Hardware\HardwareDancer.pb-c.obj" + -$(RM) "Communication\PMR\Hardware\HardwareDancerType.pb-c.obj" "Communication\PMR\Hardware\HardwareDispenser.pb-c.obj" "Communication\PMR\Hardware\HardwareDispenserType.pb-c.obj" "Communication\PMR\Hardware\HardwareMotor.pb-c.obj" "Communication\PMR\Hardware\HardwareMotorType.pb-c.obj" "Communication\PMR\Hardware\HardwarePidControl.pb-c.obj" "Communication\PMR\Hardware\HardwarePidControlType.pb-c.obj" "Communication\PMR\Hardware\HardwareSpeedSensor.pb-c.obj" "Communication\PMR\Hardware\HardwareSpeedSensorType.pb-c.obj" "Communication\PMR\Hardware\HardwareWinder.pb-c.obj" "Communication\PMR\Hardware\HardwareWinderType.pb-c.obj" "Communication\PMR\Hardware\SystemResetRequest.pb-c.obj" "Communication\PMR\Hardware\SystemResetResponse.pb-c.obj" "Communication\PMR\Hardware\UploadHardwareConfigurationRequest.pb-c.obj" "Communication\PMR\Hardware\UploadHardwareConfigurationResponse.pb-c.obj" "Communication\PMR\IO\CreateRequest.pb-c.obj" "Communication\PMR\IO\CreateResponse.pb-c.obj" "Communication\PMR\IO\DeleteRequest.pb-c.obj" + -$(RM) "Communication\PMR\IO\DeleteResponse.pb-c.obj" "Communication\PMR\IO\ExecuteProcessRequest.pb-c.obj" "Communication\PMR\IO\ExecuteProcessResponse.pb-c.obj" "Communication\PMR\IO\FileAttribute.pb-c.obj" "Communication\PMR\IO\FileChunkDownloadRequest.pb-c.obj" "Communication\PMR\IO\FileChunkDownloadResponse.pb-c.obj" "Communication\PMR\IO\FileChunkUploadRequest.pb-c.obj" "Communication\PMR\IO\FileChunkUploadResponse.pb-c.obj" "Communication\PMR\IO\FileDownloadRequest.pb-c.obj" "Communication\PMR\IO\FileDownloadResponse.pb-c.obj" "Communication\PMR\IO\FileInfo.pb-c.obj" "Communication\PMR\IO\FileUploadRequest.pb-c.obj" "Communication\PMR\IO\FileUploadResponse.pb-c.obj" "Communication\PMR\IO\GetFilesRequest.pb-c.obj" "Communication\PMR\IO\GetFilesResponse.pb-c.obj" "Communication\PMR\IO\GetStorageInfoRequest.pb-c.obj" "Communication\PMR\IO\GetStorageInfoResponse.pb-c.obj" "Communication\PMR\IO\KillProcessRequest.pb-c.obj" "Communication\PMR\IO\KillProcessResponse.pb-c.obj" "Communication\PMR\Printing\AbortJobRequest.pb-c.obj" + -$(RM) "Communication\PMR\Printing\AbortJobResponse.pb-c.obj" "Communication\PMR\Printing\CurrentJobRequest.pb-c.obj" "Communication\PMR\Printing\CurrentJobResponse.pb-c.obj" "Communication\PMR\Printing\DispenserLiquidType.pb-c.obj" "Communication\PMR\Printing\DispenserStepDivision.pb-c.obj" "Communication\PMR\Printing\JobBrushStop.pb-c.obj" "Communication\PMR\Printing\JobDescriptionFileBrushStop.pb-c.obj" "Communication\PMR\Printing\JobDescriptionFileSegment.pb-c.obj" "Communication\PMR\Printing\JobDispenser.pb-c.obj" "Communication\PMR\Printing\JobRequest.pb-c.obj" "Communication\PMR\Printing\JobResponse.pb-c.obj" "Communication\PMR\Printing\JobSegment.pb-c.obj" "Communication\PMR\Printing\JobSpool.pb-c.obj" "Communication\PMR\Printing\JobSpoolType.pb-c.obj" "Communication\PMR\Printing\JobStatus.pb-c.obj" "Communication\PMR\Printing\JobTicket.pb-c.obj" "Communication\PMR\Printing\JobUploadStrategy.pb-c.obj" "Communication\PMR\Printing\JobWindingMethod.pb-c.obj" "Communication\PMR\Printing\ProcessParameters.pb-c.obj" + -$(RM) "Communication\PMR\Printing\ResumeCurrentJobRequest.pb-c.obj" "Communication\PMR\Printing\ResumeCurrentJobResponse.pb-c.obj" "Communication\PMR\Printing\UploadProcessParametersRequest.pb-c.obj" "Communication\PMR\Printing\UploadProcessParametersResponse.pb-c.obj" "Communication\PMR\Stubs\CalculateRequest.pb-c.obj" "Communication\PMR\Stubs\CalculateResponse.pb-c.obj" "Communication\PMR\Stubs\ProgressRequest.pb-c.obj" "Communication\PMR\Stubs\ProgressResponse.pb-c.obj" "Communication\PMR\Stubs\StubAbortJobRequest.pb-c.obj" "Communication\PMR\Stubs\StubAbortJobResponse.pb-c.obj" "Communication\PMR\Stubs\StubCartridgeReadRequest.pb-c.obj" "Communication\PMR\Stubs\StubCartridgeReadResponse.pb-c.obj" "Communication\PMR\Stubs\StubCartridgeWriteRequest.pb-c.obj" "Communication\PMR\Stubs\StubCartridgeWriteResponse.pb-c.obj" "Communication\PMR\Stubs\StubDancerPositionRequest.pb-c.obj" "Communication\PMR\Stubs\StubDancerPositionResponse.pb-c.obj" "Communication\PMR\Stubs\StubDispenserRequest.pb-c.obj" + -$(RM) "Communication\PMR\Stubs\StubDispenserResponse.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashReadRequest.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashReadResponse.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashReadWordsRequest.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashReadWordsResponse.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashWriteRequest.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashWriteResponse.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashWriteWordsRequest.pb-c.obj" "Communication\PMR\Stubs\StubExtFlashWriteWordsResponse.pb-c.obj" "Communication\PMR\Stubs\StubF3Gpo01WriteRequest.pb-c.obj" "Communication\PMR\Stubs\StubF3Gpo01WriteResponse.pb-c.obj" "Communication\PMR\Stubs\StubFPGAReadBackRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubFPGAReadBackRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubFPGAReadVersionRequest.pb-c.obj" "Communication\PMR\Stubs\StubFPGAReadVersionResponse.pb-c.obj" "Communication\PMR\Stubs\StubFpgaReadRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubFpgaReadRegResponse.pb-c.obj" + -$(RM) "Communication\PMR\Stubs\StubFpgaWriteRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubFpgaWriteRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOInputSetupRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOInputSetupResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOReadBitRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOReadBitResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOReadByteRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOReadByteResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOWriteBitRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOWriteBitResponse.pb-c.obj" "Communication\PMR\Stubs\StubGPIOWriteByteRequest.pb-c.obj" "Communication\PMR\Stubs\StubGPIOWriteByteResponse.pb-c.obj" "Communication\PMR\Stubs\StubHWVersionRequest.pb-c.obj" "Communication\PMR\Stubs\StubHWVersionResponse.pb-c.obj" "Communication\PMR\Stubs\StubHeaterRequest.pb-c.obj" "Communication\PMR\Stubs\StubHeaterResponse.pb-c.obj" "Communication\PMR\Stubs\StubHeatingTestPollRequest.pb-c.obj" "Communication\PMR\Stubs\StubHeatingTestPollResponse.pb-c.obj" + -$(RM) "Communication\PMR\Stubs\StubHeatingTestRequest.pb-c.obj" "Communication\PMR\Stubs\StubHeatingTestResponse.pb-c.obj" "Communication\PMR\Stubs\StubI2CReadBytesRequest.pb-c.obj" "Communication\PMR\Stubs\StubI2CReadBytesResponse.pb-c.obj" "Communication\PMR\Stubs\StubI2CRequest.pb-c.obj" "Communication\PMR\Stubs\StubI2CResponse.pb-c.obj" "Communication\PMR\Stubs\StubI2CWriteBytesRequest.pb-c.obj" "Communication\PMR\Stubs\StubI2CWriteBytesResponse.pb-c.obj" "Communication\PMR\Stubs\StubIntADCReadRequest.pb-c.obj" "Communication\PMR\Stubs\StubIntADCReadResponse.pb-c.obj" "Communication\PMR\Stubs\StubJobRequest.pb-c.obj" "Communication\PMR\Stubs\StubJobResponse.pb-c.obj" "Communication\PMR\Stubs\StubL6470DriverRequest.pb-c.obj" "Communication\PMR\Stubs\StubL6470DriverResponse.pb-c.obj" "Communication\PMR\Stubs\StubMidTankPressureSensorRequest.pb-c.obj" "Communication\PMR\Stubs\StubMidTankPressureSensorResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorHomeMarkRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorHomeMarkResponse.pb-c.obj" + -$(RM) "Communication\PMR\Stubs\StubMotorInitRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorInitResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorMovRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorMovResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorPositionRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorPositionResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorRunRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorRunResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorRunStepTickRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorRunStepTickResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorSpeedRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorSpeedResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorStatusRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorStatusResponse.pb-c.obj" "Communication\PMR\Stubs\StubMotorStopRequest.pb-c.obj" "Communication\PMR\Stubs\StubMotorStopResponse.pb-c.obj" + -$(RM) "Communication\PMR\Stubs\StubOptLimitSwitchRequest.pb-c.obj" "Communication\PMR\Stubs\StubOptLimitSwitchResponse.pb-c.obj" "Communication\PMR\Stubs\StubReadEmbeddedVersionRequest.pb-c.obj" "Communication\PMR\Stubs\StubReadEmbeddedVersionResponse.pb-c.obj" "Communication\PMR\Stubs\StubRealTimeUsageRequest.pb-c.obj" "Communication\PMR\Stubs\StubRealTimeUsageResponse.pb-c.obj" "Communication\PMR\Stubs\StubSpeedSensorRequest.pb-c.obj" "Communication\PMR\Stubs\StubSpeedSensorResponse.pb-c.obj" "Communication\PMR\Stubs\StubSteperMotorRequest.pb-c.obj" "Communication\PMR\Stubs\StubSteperMotorResponse.pb-c.obj" "Communication\PMR\Stubs\StubTempSensorRequest.pb-c.obj" "Communication\PMR\Stubs\StubTempSensorResponse.pb-c.obj" "Communication\PMR\Stubs\StubTivaReadRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubTivaReadRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubTivaWriteRegRequest.pb-c.obj" "Communication\PMR\Stubs\StubTivaWriteRegResponse.pb-c.obj" "Communication\PMR\Stubs\StubValveRequest.pb-c.obj" + -$(RM) "Communication\PMR\Stubs\StubValveResponse.pb-c.obj" "Drivers\ADC_Sampling\ADC.obj" "Drivers\FPGA\FPGA.obj" "Drivers\FPGA\FPGA_SPI_Comm.obj" "Drivers\FPGA\FPGA_SSI_Comm.obj" "Drivers\FPGA\FPGA_GPIO\FPGA_GPIO.obj" "Drivers\FPGA\FPGA_INTERRUPTS\FPGA_Interrupts.obj" "Drivers\FPGA\Full_Vme\FPGA_Programming_Up.obj" "Drivers\FPGA\Full_Vme\ispvme\hardware.obj" "Drivers\FPGA\Full_Vme\ispvme\ispvm_ui.obj" "Drivers\FPGA\Full_Vme\ispvme\ivm_core.obj" "Drivers\FPGA\Moters_Driver\L6470.obj" "Drivers\Flash_Memory\FATFS\Control_File_System.obj" "Drivers\Flash_Memory\FATFS\cc932.obj" "Drivers\Flash_Memory\FATFS\fatfs_port_mx66l51235f.obj" "Drivers\Flash_Memory\FATFS\ff.obj" "Drivers\Flash_Memory\FATFS\mx66l51235f.obj" "Drivers\Flash_Memory\FATFS\spi_flash.obj" "Drivers\Flash_Memory\Flash_Memory.obj" "Drivers\Heater\ADS1220.obj" "Drivers\Heater\Heater.obj" "Drivers\Heater\TemperatureSensor.obj" "Drivers\I2C_Communication\ADC_MUX\ADC_MUX.obj" "Drivers\I2C_Communication\DAC\Blower.obj" "Drivers\I2C_Communication\Dispensers_EEPROM_MUX\Disp_EEPROM_MUX.obj" + -$(RM) "Drivers\I2C_Communication\I2C.obj" "Drivers\I2C_Communication\I2C_Comm.obj" "Drivers\I2C_Communication\RFID_NFC\NFC_I2C\NFC_I2C.obj" "Drivers\I2C_Communication\RFID_NFC\PN7150\PN7150.obj" "Drivers\I2C_Communication\Thermo_K\MCP9600.obj" "Drivers\Motors\Motor.obj" "Drivers\Motors\MotorActions.obj" "Drivers\On_Chip_Flash\Flashstore.obj" "Drivers\SPI\SPI_Comm.obj" "Drivers\SSI_Comm\Dancer\Dancer.obj" "Drivers\SSI_Comm\SSI_Comm.obj" "Drivers\SSI_Comm\Speed_Sensor\Speed_Sensor.obj" "Drivers\USB_Communication\USBCDCD.obj" "Drivers\Uart_Comm\Uart.obj" "Drivers\Valves\Valve.obj" "Drivers\flash_ram\FlashProgram.obj" "Modules\AlarmHandling\AlarmHandling.obj" "Modules\Control\DriverWithCallbackExample.obj" "Modules\Control\MillisecTask.obj" "Modules\Control\PIDAlgo.obj" "Modules\Control\control.obj" "Modules\Diagnostics\DiagnosticActions.obj" "Modules\Diagnostics\Diagnostics.obj" "Modules\Diagnostics\DiagnosticsHoming.obj" "Modules\Diagnostics\DiagnosticsJogging.obj" "Modules\General\GeneralHardware.obj" + -$(RM) "Modules\General\buttons.obj" "Modules\General\process.obj" "Modules\Heaters\Heaters_bit.obj" "Modules\Heaters\Heaters_init.obj" "Modules\Heaters\Heaters_maint.obj" "Modules\Heaters\Heaters_print.obj" "Modules\IDS\IDS_BIT.obj" "Modules\IDS\IDS_dispenser.obj" "Modules\IDS\IDS_init.obj" "Modules\IDS\IDS_maint.obj" "Modules\IDS\IDS_print.obj" "Modules\Stubs_Handler\Calculate.obj" "Modules\Stubs_Handler\Progress.obj" "Modules\Stubs_Handler\StubRealTimeUsage.obj" "Modules\Stubs_Handler\Stub_Cartridge.obj" "Modules\Stubs_Handler\Stub_Dancer.obj" "Modules\Stubs_Handler\Stub_Dispenser.obj" "Modules\Stubs_Handler\Stub_ExtFlash.obj" "Modules\Stubs_Handler\Stub_FPGARWReg.obj" "Modules\Stubs_Handler\Stub_FPGAReadBackReg.obj" "Modules\Stubs_Handler\Stub_FPGAReadVersion.obj" "Modules\Stubs_Handler\Stub_GPIO.obj" "Modules\Stubs_Handler\Stub_HW_Version.obj" "Modules\Stubs_Handler\Stub_Heater.obj" "Modules\Stubs_Handler\Stub_I2C.obj" "Modules\Stubs_Handler\Stub_IntADC.obj" "Modules\Stubs_Handler\Stub_L6470.obj" + -$(RM) "Modules\Stubs_Handler\Stub_MidTankPressureSensor.obj" "Modules\Stubs_Handler\Stub_Motor.obj" "Modules\Stubs_Handler\Stub_OptLimitSwitch.obj" "Modules\Stubs_Handler\Stub_ReadEmbeddedVersion.obj" "Modules\Stubs_Handler\Stub_SpeedSensor.obj" "Modules\Stubs_Handler\Stub_Status.obj" "Modules\Stubs_Handler\Stub_SteperMotor.obj" "Modules\Stubs_Handler\Stub_TempSensor.obj" "Modules\Stubs_Handler\Stub_TivaReg.obj" "Modules\Stubs_Handler\Stub_Valve.obj" "Modules\Stubs_Handler\User_Leds.obj" "Modules\Stubs_Handler\temperature_sensor.obj" "Modules\Thread\ThreadLoad.obj" "Modules\Thread\Thread_BIT.obj" "Modules\Thread\Thread_Winder.obj" "Modules\Thread\Thread_init.obj" "Modules\Thread\Thread_maint.obj" "Modules\Thread\Thread_print.obj" "Modules\Waste\Waste_BIT.obj" "Modules\Waste\Waste_init.obj" "Modules\Waste\Waste_maint.obj" "Modules\Waste\Waste_print.obj" "StateMachines\Initialization\InitSequence.obj" "StateMachines\Printing\JobSTM.obj" "StateMachines\Printing\PrintingSTM.obj" + -$(RM) "Main.d" "delay.d" "Common\SWUpdate\FileSystem.d" "Common\SWUpdate\FirmwareUpgrade.d" "Common\SW_Info\SW_Info.d" "Common\Software_CRC\sw_crc.d" "Common\Sys_PinOut_Config\MCU_MAIN_pinout.d" "Common\Sys_PinOut_Config\Pin.d" "Common\Sys_PinOut_Config\Pin_config.d" "Common\Utilities\Update.d" "Common\Utilities\Utils.d" "Common\Utilities\idle_task.d" "Common\Utilities\ustdlib.d" "Common\protobuf-c\protobuf-c.d" "Common\report\distributor.d" "Common\report\filter.d" "Common\report\reportInit.d" "Communication\CommunicationTask.d" "Communication\Connection.d" "Communication\Container.d" "Communication\PMR\Common\ErrorCode.pb-c.d" "Communication\PMR\Common\ErrorResponse.pb-c.d" "Communication\PMR\Common\MessageContainer.pb-c.d" "Communication\PMR\Common\MessageType.pb-c.d" "Communication\PMR\Connection\ConnectRequest.pb-c.d" "Communication\PMR\Connection\ConnectResponse.pb-c.d" "Communication\PMR\Connection\DeviceInformation.pb-c.d" "Communication\PMR\Connection\DisconnectRequest.pb-c.d" "Communication\PMR\Connection\DisconnectResponse.pb-c.d" + -$(RM) "Communication\PMR\Connection\KeepAliveRequest.pb-c.d" "Communication\PMR\Connection\KeepAliveResponse.pb-c.d" "Communication\PMR\Debugging\DebugLogCategory.pb-c.d" "Communication\PMR\Debugging\StartDebugLogRequest.pb-c.d" "Communication\PMR\Debugging\StartDebugLogResponse.pb-c.d" "Communication\PMR\Debugging\StopDebugLogRequest.pb-c.d" "Communication\PMR\Debugging\StopDebugLogResponse.pb-c.d" "Communication\PMR\Diagnostics\DataFileFrame.pb-c.d" "Communication\PMR\Diagnostics\DiagnosticsMonitors.pb-c.d" "Communication\PMR\Diagnostics\DigitalInterfaceState.pb-c.d" "Communication\PMR\Diagnostics\DispenserAbortHomingRequest.pb-c.d" "Communication\PMR\Diagnostics\DispenserAbortHomingResponse.pb-c.d" "Communication\PMR\Diagnostics\DispenserAbortJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\DispenserAbortJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\DispenserHomingRequest.pb-c.d" "Communication\PMR\Diagnostics\DispenserHomingResponse.pb-c.d" "Communication\PMR\Diagnostics\DispenserJoggingRequest.pb-c.d" + -$(RM) "Communication\PMR\Diagnostics\DispenserJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\DoubleArray.pb-c.d" "Communication\PMR\Diagnostics\Event.pb-c.d" "Communication\PMR\Diagnostics\EventType.pb-c.d" "Communication\PMR\Diagnostics\HeaterState.pb-c.d" "Communication\PMR\Diagnostics\HeaterType.pb-c.d" "Communication\PMR\Diagnostics\InterfaceIOs.pb-c.d" "Communication\PMR\Diagnostics\MotorAbortHomingRequest.pb-c.d" "Communication\PMR\Diagnostics\MotorAbortHomingResponse.pb-c.d" "Communication\PMR\Diagnostics\MotorAbortJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\MotorAbortJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\MotorDirection.pb-c.d" "Communication\PMR\Diagnostics\MotorHomingRequest.pb-c.d" "Communication\PMR\Diagnostics\MotorHomingResponse.pb-c.d" "Communication\PMR\Diagnostics\MotorJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\MotorJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\ResolveEventRequest.pb-c.d" "Communication\PMR\Diagnostics\ResolveEventResponse.pb-c.d" + -$(RM) "Communication\PMR\Diagnostics\SetBlowerStateRequest.pb-c.d" "Communication\PMR\Diagnostics\SetBlowerStateResponse.pb-c.d" "Communication\PMR\Diagnostics\SetComponentValueRequest.pb-c.d" "Communication\PMR\Diagnostics\SetComponentValueResponse.pb-c.d" "Communication\PMR\Diagnostics\SetDigitalOutRequest.pb-c.d" "Communication\PMR\Diagnostics\SetDigitalOutResponse.pb-c.d" "Communication\PMR\Diagnostics\SetHeaterStateRequest.pb-c.d" "Communication\PMR\Diagnostics\SetHeaterStateResponse.pb-c.d" "Communication\PMR\Diagnostics\SetValveStateRequest.pb-c.d" "Communication\PMR\Diagnostics\SetValveStateResponse.pb-c.d" "Communication\PMR\Diagnostics\StartDiagnosticsRequest.pb-c.d" "Communication\PMR\Diagnostics\StartDiagnosticsResponse.pb-c.d" "Communication\PMR\Diagnostics\StartEventsNotificationRequest.pb-c.d" "Communication\PMR\Diagnostics\StartEventsNotificationResponse.pb-c.d" "Communication\PMR\Diagnostics\StopDiagnosticsRequest.pb-c.d" "Communication\PMR\Diagnostics\StopDiagnosticsResponse.pb-c.d" + -$(RM) "Communication\PMR\Diagnostics\StopEventsNotificationRequest.pb-c.d" "Communication\PMR\Diagnostics\StopEventsNotificationResponse.pb-c.d" "Communication\PMR\Diagnostics\ThreadAbortJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\ThreadAbortJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\ThreadJoggingRequest.pb-c.d" "Communication\PMR\Diagnostics\ThreadJoggingResponse.pb-c.d" "Communication\PMR\Diagnostics\ValueComponent.pb-c.d" "Communication\PMR\Diagnostics\ValueComponentState.pb-c.d" "Communication\PMR\Diagnostics\ValveState.pb-c.d" "Communication\PMR\Diagnostics\ValveStateCode.pb-c.d" "Communication\PMR\Diagnostics\ValveType.pb-c.d" "Communication\PMR\EmbeddedParameters\AlarmHandlingItem.pb-c.d" "Communication\PMR\EmbeddedParameters\AlarmParameters.pb-c.d" "Communication\PMR\EmbeddedParameters\AlarmSourceType.pb-c.d" "Communication\PMR\EmbeddedParameters\ConfigurationParameters.pb-c.d" "Communication\PMR\EmbeddedParameters\DispenserData.pb-c.d" "Communication\PMR\EmbeddedParameters\DispenserRunningData.pb-c.d" + -$(RM) "Communication\PMR\FirmwareUpgrade\ActivateVersionRequest.pb-c.d" "Communication\PMR\FirmwareUpgrade\ActivateVersionResponse.pb-c.d" "Communication\PMR\FirmwareUpgrade\ValidateVersionRequest.pb-c.d" "Communication\PMR\FirmwareUpgrade\ValidateVersionResponse.pb-c.d" "Communication\PMR\FirmwareUpgrade\VersionFileDescriptor.pb-c.d" "Communication\PMR\FirmwareUpgrade\VersionFileDestination.pb-c.d" "Communication\PMR\FirmwareUpgrade\VersionPackageDescriptor.pb-c.d" "Communication\PMR\Hardware\HardwareBlower.pb-c.d" "Communication\PMR\Hardware\HardwareBlowerType.pb-c.d" "Communication\PMR\Hardware\HardwareBreakSensor.pb-c.d" "Communication\PMR\Hardware\HardwareBreakSensorType.pb-c.d" "Communication\PMR\Hardware\HardwareConfiguration.pb-c.d" "Communication\PMR\Hardware\HardwareDancer.pb-c.d" "Communication\PMR\Hardware\HardwareDancerType.pb-c.d" "Communication\PMR\Hardware\HardwareDispenser.pb-c.d" "Communication\PMR\Hardware\HardwareDispenserType.pb-c.d" "Communication\PMR\Hardware\HardwareMotor.pb-c.d" + -$(RM) "Communication\PMR\Hardware\HardwareMotorType.pb-c.d" "Communication\PMR\Hardware\HardwarePidControl.pb-c.d" "Communication\PMR\Hardware\HardwarePidControlType.pb-c.d" "Communication\PMR\Hardware\HardwareSpeedSensor.pb-c.d" "Communication\PMR\Hardware\HardwareSpeedSensorType.pb-c.d" "Communication\PMR\Hardware\HardwareWinder.pb-c.d" "Communication\PMR\Hardware\HardwareWinderType.pb-c.d" "Communication\PMR\Hardware\SystemResetRequest.pb-c.d" "Communication\PMR\Hardware\SystemResetResponse.pb-c.d" "Communication\PMR\Hardware\UploadHardwareConfigurationRequest.pb-c.d" "Communication\PMR\Hardware\UploadHardwareConfigurationResponse.pb-c.d" "Communication\PMR\IO\CreateRequest.pb-c.d" "Communication\PMR\IO\CreateResponse.pb-c.d" "Communication\PMR\IO\DeleteRequest.pb-c.d" "Communication\PMR\IO\DeleteResponse.pb-c.d" "Communication\PMR\IO\ExecuteProcessRequest.pb-c.d" "Communication\PMR\IO\ExecuteProcessResponse.pb-c.d" "Communication\PMR\IO\FileAttribute.pb-c.d" "Communication\PMR\IO\FileChunkDownloadRequest.pb-c.d" + -$(RM) "Communication\PMR\IO\FileChunkDownloadResponse.pb-c.d" "Communication\PMR\IO\FileChunkUploadRequest.pb-c.d" "Communication\PMR\IO\FileChunkUploadResponse.pb-c.d" "Communication\PMR\IO\FileDownloadRequest.pb-c.d" "Communication\PMR\IO\FileDownloadResponse.pb-c.d" "Communication\PMR\IO\FileInfo.pb-c.d" "Communication\PMR\IO\FileUploadRequest.pb-c.d" "Communication\PMR\IO\FileUploadResponse.pb-c.d" "Communication\PMR\IO\GetFilesRequest.pb-c.d" "Communication\PMR\IO\GetFilesResponse.pb-c.d" "Communication\PMR\IO\GetStorageInfoRequest.pb-c.d" "Communication\PMR\IO\GetStorageInfoResponse.pb-c.d" "Communication\PMR\IO\KillProcessRequest.pb-c.d" "Communication\PMR\IO\KillProcessResponse.pb-c.d" "Communication\PMR\Printing\AbortJobRequest.pb-c.d" "Communication\PMR\Printing\AbortJobResponse.pb-c.d" "Communication\PMR\Printing\CurrentJobRequest.pb-c.d" "Communication\PMR\Printing\CurrentJobResponse.pb-c.d" "Communication\PMR\Printing\DispenserLiquidType.pb-c.d" "Communication\PMR\Printing\DispenserStepDivision.pb-c.d" + -$(RM) "Communication\PMR\Printing\JobBrushStop.pb-c.d" "Communication\PMR\Printing\JobDescriptionFileBrushStop.pb-c.d" "Communication\PMR\Printing\JobDescriptionFileSegment.pb-c.d" "Communication\PMR\Printing\JobDispenser.pb-c.d" "Communication\PMR\Printing\JobRequest.pb-c.d" "Communication\PMR\Printing\JobResponse.pb-c.d" "Communication\PMR\Printing\JobSegment.pb-c.d" "Communication\PMR\Printing\JobSpool.pb-c.d" "Communication\PMR\Printing\JobSpoolType.pb-c.d" "Communication\PMR\Printing\JobStatus.pb-c.d" "Communication\PMR\Printing\JobTicket.pb-c.d" "Communication\PMR\Printing\JobUploadStrategy.pb-c.d" "Communication\PMR\Printing\JobWindingMethod.pb-c.d" "Communication\PMR\Printing\ProcessParameters.pb-c.d" "Communication\PMR\Printing\ResumeCurrentJobRequest.pb-c.d" "Communication\PMR\Printing\ResumeCurrentJobResponse.pb-c.d" "Communication\PMR\Printing\UploadProcessParametersRequest.pb-c.d" "Communication\PMR\Printing\UploadProcessParametersResponse.pb-c.d" "Communication\PMR\Stubs\CalculateRequest.pb-c.d" + -$(RM) "Communication\PMR\Stubs\CalculateResponse.pb-c.d" "Communication\PMR\Stubs\ProgressRequest.pb-c.d" "Communication\PMR\Stubs\ProgressResponse.pb-c.d" "Communication\PMR\Stubs\StubAbortJobRequest.pb-c.d" "Communication\PMR\Stubs\StubAbortJobResponse.pb-c.d" "Communication\PMR\Stubs\StubCartridgeReadRequest.pb-c.d" "Communication\PMR\Stubs\StubCartridgeReadResponse.pb-c.d" "Communication\PMR\Stubs\StubCartridgeWriteRequest.pb-c.d" "Communication\PMR\Stubs\StubCartridgeWriteResponse.pb-c.d" "Communication\PMR\Stubs\StubDancerPositionRequest.pb-c.d" "Communication\PMR\Stubs\StubDancerPositionResponse.pb-c.d" "Communication\PMR\Stubs\StubDispenserRequest.pb-c.d" "Communication\PMR\Stubs\StubDispenserResponse.pb-c.d" "Communication\PMR\Stubs\StubExtFlashReadRequest.pb-c.d" "Communication\PMR\Stubs\StubExtFlashReadResponse.pb-c.d" "Communication\PMR\Stubs\StubExtFlashReadWordsRequest.pb-c.d" "Communication\PMR\Stubs\StubExtFlashReadWordsResponse.pb-c.d" "Communication\PMR\Stubs\StubExtFlashWriteRequest.pb-c.d" + -$(RM) "Communication\PMR\Stubs\StubExtFlashWriteResponse.pb-c.d" "Communication\PMR\Stubs\StubExtFlashWriteWordsRequest.pb-c.d" "Communication\PMR\Stubs\StubExtFlashWriteWordsResponse.pb-c.d" "Communication\PMR\Stubs\StubF3Gpo01WriteRequest.pb-c.d" "Communication\PMR\Stubs\StubF3Gpo01WriteResponse.pb-c.d" "Communication\PMR\Stubs\StubFPGAReadBackRegRequest.pb-c.d" "Communication\PMR\Stubs\StubFPGAReadBackRegResponse.pb-c.d" "Communication\PMR\Stubs\StubFPGAReadVersionRequest.pb-c.d" "Communication\PMR\Stubs\StubFPGAReadVersionResponse.pb-c.d" "Communication\PMR\Stubs\StubFpgaReadRegRequest.pb-c.d" "Communication\PMR\Stubs\StubFpgaReadRegResponse.pb-c.d" "Communication\PMR\Stubs\StubFpgaWriteRegRequest.pb-c.d" "Communication\PMR\Stubs\StubFpgaWriteRegResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOInputSetupRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOInputSetupResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOReadBitRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOReadBitResponse.pb-c.d" + -$(RM) "Communication\PMR\Stubs\StubGPIOReadByteRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOReadByteResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOWriteBitRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOWriteBitResponse.pb-c.d" "Communication\PMR\Stubs\StubGPIOWriteByteRequest.pb-c.d" "Communication\PMR\Stubs\StubGPIOWriteByteResponse.pb-c.d" "Communication\PMR\Stubs\StubHWVersionRequest.pb-c.d" "Communication\PMR\Stubs\StubHWVersionResponse.pb-c.d" "Communication\PMR\Stubs\StubHeaterRequest.pb-c.d" "Communication\PMR\Stubs\StubHeaterResponse.pb-c.d" "Communication\PMR\Stubs\StubHeatingTestPollRequest.pb-c.d" "Communication\PMR\Stubs\StubHeatingTestPollResponse.pb-c.d" "Communication\PMR\Stubs\StubHeatingTestRequest.pb-c.d" "Communication\PMR\Stubs\StubHeatingTestResponse.pb-c.d" "Communication\PMR\Stubs\StubI2CReadBytesRequest.pb-c.d" "Communication\PMR\Stubs\StubI2CReadBytesResponse.pb-c.d" "Communication\PMR\Stubs\StubI2CRequest.pb-c.d" "Communication\PMR\Stubs\StubI2CResponse.pb-c.d" + -$(RM) "Communication\PMR\Stubs\StubI2CWriteBytesRequest.pb-c.d" "Communication\PMR\Stubs\StubI2CWriteBytesResponse.pb-c.d" "Communication\PMR\Stubs\StubIntADCReadRequest.pb-c.d" "Communication\PMR\Stubs\StubIntADCReadResponse.pb-c.d" "Communication\PMR\Stubs\StubJobRequest.pb-c.d" "Communication\PMR\Stubs\StubJobResponse.pb-c.d" "Communication\PMR\Stubs\StubL6470DriverRequest.pb-c.d" "Communication\PMR\Stubs\StubL6470DriverResponse.pb-c.d" "Communication\PMR\Stubs\StubMidTankPressureSensorRequest.pb-c.d" "Communication\PMR\Stubs\StubMidTankPressureSensorResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorHomeMarkRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorHomeMarkResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorInitRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorInitResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorMovRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorMovResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorPositionRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorPositionResponse.pb-c.d" + -$(RM) "Communication\PMR\Stubs\StubMotorRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorRunRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorRunResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorRunStepTickRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorRunStepTickResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorSpeedRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorSpeedResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorStatusRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorStatusResponse.pb-c.d" "Communication\PMR\Stubs\StubMotorStopRequest.pb-c.d" "Communication\PMR\Stubs\StubMotorStopResponse.pb-c.d" "Communication\PMR\Stubs\StubOptLimitSwitchRequest.pb-c.d" "Communication\PMR\Stubs\StubOptLimitSwitchResponse.pb-c.d" "Communication\PMR\Stubs\StubReadEmbeddedVersionRequest.pb-c.d" "Communication\PMR\Stubs\StubReadEmbeddedVersionResponse.pb-c.d" "Communication\PMR\Stubs\StubRealTimeUsageRequest.pb-c.d" "Communication\PMR\Stubs\StubRealTimeUsageResponse.pb-c.d" + -$(RM) "Communication\PMR\Stubs\StubSpeedSensorRequest.pb-c.d" "Communication\PMR\Stubs\StubSpeedSensorResponse.pb-c.d" "Communication\PMR\Stubs\StubSteperMotorRequest.pb-c.d" "Communication\PMR\Stubs\StubSteperMotorResponse.pb-c.d" "Communication\PMR\Stubs\StubTempSensorRequest.pb-c.d" "Communication\PMR\Stubs\StubTempSensorResponse.pb-c.d" "Communication\PMR\Stubs\StubTivaReadRegRequest.pb-c.d" "Communication\PMR\Stubs\StubTivaReadRegResponse.pb-c.d" "Communication\PMR\Stubs\StubTivaWriteRegRequest.pb-c.d" "Communication\PMR\Stubs\StubTivaWriteRegResponse.pb-c.d" "Communication\PMR\Stubs\StubValveRequest.pb-c.d" "Communication\PMR\Stubs\StubValveResponse.pb-c.d" "Drivers\ADC_Sampling\ADC.d" "Drivers\FPGA\FPGA.d" "Drivers\FPGA\FPGA_SPI_Comm.d" "Drivers\FPGA\FPGA_SSI_Comm.d" "Drivers\FPGA\FPGA_GPIO\FPGA_GPIO.d" "Drivers\FPGA\FPGA_INTERRUPTS\FPGA_Interrupts.d" "Drivers\FPGA\Full_Vme\FPGA_Programming_Up.d" "Drivers\FPGA\Full_Vme\ispvme\hardware.d" "Drivers\FPGA\Full_Vme\ispvme\ispvm_ui.d" "Drivers\FPGA\Full_Vme\ispvme\ivm_core.d" + -$(RM) "Drivers\FPGA\Moters_Driver\L6470.d" "Drivers\Flash_Memory\FATFS\Control_File_System.d" "Drivers\Flash_Memory\FATFS\cc932.d" "Drivers\Flash_Memory\FATFS\fatfs_port_mx66l51235f.d" "Drivers\Flash_Memory\FATFS\ff.d" "Drivers\Flash_Memory\FATFS\mx66l51235f.d" "Drivers\Flash_Memory\FATFS\spi_flash.d" "Drivers\Flash_Memory\Flash_Memory.d" "Drivers\Heater\ADS1220.d" "Drivers\Heater\Heater.d" "Drivers\Heater\TemperatureSensor.d" "Drivers\I2C_Communication\ADC_MUX\ADC_MUX.d" "Drivers\I2C_Communication\DAC\Blower.d" "Drivers\I2C_Communication\Dispensers_EEPROM_MUX\Disp_EEPROM_MUX.d" "Drivers\I2C_Communication\I2C.d" "Drivers\I2C_Communication\I2C_Comm.d" "Drivers\I2C_Communication\RFID_NFC\NFC_I2C\NFC_I2C.d" "Drivers\I2C_Communication\RFID_NFC\PN7150\PN7150.d" "Drivers\I2C_Communication\Thermo_K\MCP9600.d" "Drivers\Motors\Motor.d" "Drivers\Motors\MotorActions.d" "Drivers\On_Chip_Flash\Flashstore.d" "Drivers\SPI\SPI_Comm.d" "Drivers\SSI_Comm\Dancer\Dancer.d" "Drivers\SSI_Comm\SSI_Comm.d" "Drivers\SSI_Comm\Speed_Sensor\Speed_Sensor.d" + -$(RM) "Drivers\USB_Communication\USBCDCD.d" "Drivers\Uart_Comm\Uart.d" "Drivers\Valves\Valve.d" "Drivers\flash_ram\FlashProgram.d" "Modules\AlarmHandling\AlarmHandling.d" "Modules\Control\DriverWithCallbackExample.d" "Modules\Control\MillisecTask.d" "Modules\Control\PIDAlgo.d" "Modules\Control\control.d" "Modules\Diagnostics\DiagnosticActions.d" "Modules\Diagnostics\Diagnostics.d" "Modules\Diagnostics\DiagnosticsHoming.d" "Modules\Diagnostics\DiagnosticsJogging.d" "Modules\General\GeneralHardware.d" "Modules\General\buttons.d" "Modules\General\process.d" "Modules\Heaters\Heaters_bit.d" "Modules\Heaters\Heaters_init.d" "Modules\Heaters\Heaters_maint.d" "Modules\Heaters\Heaters_print.d" "Modules\IDS\IDS_BIT.d" "Modules\IDS\IDS_dispenser.d" "Modules\IDS\IDS_init.d" "Modules\IDS\IDS_maint.d" "Modules\IDS\IDS_print.d" "Modules\Stubs_Handler\Calculate.d" "Modules\Stubs_Handler\Progress.d" "Modules\Stubs_Handler\StubRealTimeUsage.d" "Modules\Stubs_Handler\Stub_Cartridge.d" "Modules\Stubs_Handler\Stub_Dancer.d" + -$(RM) "Modules\Stubs_Handler\Stub_Dispenser.d" "Modules\Stubs_Handler\Stub_ExtFlash.d" "Modules\Stubs_Handler\Stub_FPGARWReg.d" "Modules\Stubs_Handler\Stub_FPGAReadBackReg.d" "Modules\Stubs_Handler\Stub_FPGAReadVersion.d" "Modules\Stubs_Handler\Stub_GPIO.d" "Modules\Stubs_Handler\Stub_HW_Version.d" "Modules\Stubs_Handler\Stub_Heater.d" "Modules\Stubs_Handler\Stub_I2C.d" "Modules\Stubs_Handler\Stub_IntADC.d" "Modules\Stubs_Handler\Stub_L6470.d" "Modules\Stubs_Handler\Stub_MidTankPressureSensor.d" "Modules\Stubs_Handler\Stub_Motor.d" "Modules\Stubs_Handler\Stub_OptLimitSwitch.d" "Modules\Stubs_Handler\Stub_ReadEmbeddedVersion.d" "Modules\Stubs_Handler\Stub_SpeedSensor.d" "Modules\Stubs_Handler\Stub_Status.d" "Modules\Stubs_Handler\Stub_SteperMotor.d" "Modules\Stubs_Handler\Stub_TempSensor.d" "Modules\Stubs_Handler\Stub_TivaReg.d" "Modules\Stubs_Handler\Stub_Valve.d" "Modules\Stubs_Handler\User_Leds.d" "Modules\Stubs_Handler\temperature_sensor.d" "Modules\Thread\ThreadLoad.d" "Modules\Thread\Thread_BIT.d" + -$(RM) "Modules\Thread\Thread_Winder.d" "Modules\Thread\Thread_init.d" "Modules\Thread\Thread_maint.d" "Modules\Thread\Thread_print.d" "Modules\Waste\Waste_BIT.d" "Modules\Waste\Waste_init.d" "Modules\Waste\Waste_maint.d" "Modules\Waste\Waste_print.d" "StateMachines\Initialization\InitSequence.d" "StateMachines\Printing\JobSTM.d" "StateMachines\Printing\PrintingSTM.d" -@echo 'Finished clean' -@echo ' ' pre-build: - -"../../../Visual_Studio/Build/Debug/proto-tc.exe" -i ../../../PMR/Messages -o ../Communication/PMR -l C -c"Common,Connection,Diagnostics,Hardware,Printing,Debugging,Stubs,IO" + -"../../../Visual_Studio/Build/Debug/proto-tc.exe" -i ../../../PMR/Messages -o ../Communication/PMR -l C -c"Common,Connection,Diagnostics,Hardware,Printing,Debugging,Stubs,IO,FirmwareUpgrade,EmbeddedParameters" -@echo ' ' post-build: - -"C:/TI/ccsv7/utils/tiobj2bin/tiobj2bin" "Embedded.out" "Embedded.bin" "C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/bin/armofd" "C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/bin/armhex" "C:/TI/ccsv7/utils/tiobj2bin/mkhex4bin" + -"C:/ti/ccsv7/utils/tiobj2bin/tiobj2bin" "Embedded.out" "Embedded.bin" "C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/bin/armofd" "C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/bin/armhex" "C:/ti/ccsv7/utils/tiobj2bin/mkhex4bin" -@echo ' ' .PHONY: all clean dependents diff --git a/Software/Embedded_SW/Embedded/debug_w_pmr/sources.mk b/Software/Embedded_SW/Embedded/debug_w_pmr/sources.mk index d36805b60..20fa167ed 100644 --- a/Software/Embedded_SW/Embedded/debug_w_pmr/sources.mk +++ b/Software/Embedded_SW/Embedded/debug_w_pmr/sources.mk @@ -136,6 +136,7 @@ Communication/PMR/Common \ Communication/PMR/Connection \ Communication/PMR/Debugging \ Communication/PMR/Diagnostics \ +Communication/PMR/EmbeddedParameters \ Communication/PMR/FirmwareUpgrade \ Communication/PMR/Hardware \ Communication/PMR/IO \ @@ -145,7 +146,8 @@ Drivers/ADC_Sampling \ Drivers/FPGA \ Drivers/FPGA/FPGA_GPIO \ Drivers/FPGA/FPGA_INTERRUPTS \ -Drivers/FPGA/JTAG_VME/slim_vme_8051 \ +Drivers/FPGA/Full_Vme \ +Drivers/FPGA/Full_Vme/ispvme \ Drivers/FPGA/Moters_Driver \ Drivers/Flash_Memory/FATFS \ Drivers/Flash_Memory \ @@ -154,7 +156,8 @@ Drivers/I2C_Communication/ADC_MUX \ Drivers/I2C_Communication/DAC \ Drivers/I2C_Communication/Dispensers_EEPROM_MUX \ Drivers/I2C_Communication \ -Drivers/I2C_Communication/I2C_Switch \ +Drivers/I2C_Communication/RFID_NFC/NFC_I2C \ +Drivers/I2C_Communication/RFID_NFC/PN7150 \ Drivers/I2C_Communication/Thermo_K \ Drivers/Motors \ Drivers/On_Chip_Flash \ @@ -165,6 +168,7 @@ Drivers/SSI_Comm/Speed_Sensor \ Drivers/USB_Communication \ Drivers/Uart_Comm \ Drivers/Valves \ +Drivers/flash_ram \ Modules/AlarmHandling \ Modules/Control \ Modules/Diagnostics \ @@ -174,5 +178,6 @@ Modules/IDS \ Modules/Stubs_Handler \ Modules/Thread \ Modules/Waste \ +StateMachines/Initialization \ StateMachines/Printing \ diff --git a/Software/Embedded_SW/Embedded/debug_w_pmr/subdir_rules.mk b/Software/Embedded_SW/Embedded/debug_w_pmr/subdir_rules.mk index c561e0787..31c7e347f 100644 --- a/Software/Embedded_SW/Embedded/debug_w_pmr/subdir_rules.mk +++ b/Software/Embedded_SW/Embedded/debug_w_pmr/subdir_rules.mk @@ -6,13 +6,13 @@ SHELL = cmd.exe # Each subdirectory must supply rules for building sources it contributes build-306001487: - @$(MAKE) -Onone -f subdir_rules.mk build-306001487-inproc + @$(MAKE) --no-print-directory -Onone -f subdir_rules.mk build-306001487-inproc build-306001487-inproc: ../Embedded.cfg - @echo 'Building file: $<' + @echo 'Building file: "$<"' @echo 'Invoking: XDCtools' - "C:/TI/xdctools_3_32_00_06_core/xs" --xdcpath="C:/ti/tirtos_tivac_2_16_00_08/packages;C:/ti/tirtos_tivac_2_16_00_08/products/tidrivers_tivac_2_16_00_08/packages;C:/ti/tirtos_tivac_2_16_00_08/products/bios_6_45_01_29/packages;C:/ti/tirtos_tivac_2_16_00_08/products/ndk_2_25_00_09/packages;C:/ti/tirtos_tivac_2_16_00_08/products/uia_2_00_05_50/packages;C:/ti/tirtos_tivac_2_16_00_08/products/ns_1_11_00_10/packages;C:/ti/TivaWare_C_Series-2.1.2.111;C:/TI/ccsv7/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M4F -p ti.platforms.tiva:TM4C129XNCZAD -r release -c "C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS" --compileOptions "-mv7M4 --code_state=16 --float_support=FPv4SPD16 -me" "$<" - @echo 'Finished building: $<' + "C:/ti/xdctools_3_32_02_25_core/xs" --xdcpath="C:/ti/TivaWare_C_Series-2.1.2.111;C:/ti/ccsv7/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M4F -p ti.platforms.tiva:TM4C129XNCZAD -r release -c "C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS" --compileOptions "-mv7M4 --code_state=16 --float_support=FPv4SPD16 -me" "$<" + @echo 'Finished building: "$<"' @echo ' ' configPkg/linker.cmd: build-306001487 ../Embedded.cfg @@ -20,17 +20,17 @@ configPkg/compiler.opt: build-306001487 configPkg/: build-306001487 Main.obj: ../Main.c $(GEN_OPTS) | $(GEN_HDRS) - @echo 'Building file: $<' + @echo 'Building file: "$<"' @echo 'Invoking: ARM Compiler' - "C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=0 --include_path="C:/ti/tirtos_tivac_2_16_00_08/products/ndk_2_25_00_09/packages/ti/ndk/inc/bsd" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Common/protobuf-c" --include_path="C:/Tango/Software/Embedded_SW/Embedded" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Hardware" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Printing" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Common" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Common" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Modules" --include_path="C:/ti/TivaWare_C_Series-2.1.2.111" --include_path="C:/ti/xdctools_3_32_00_06_core/include" --include_path="C:/ti/tirtos_tivac_2_16_00_08/products/TivaWare_C_Series-2.1.1.71b" --include_path="C:/ti/tirtos_tivac_2_16_00_08/products/bios_6_45_01_29/packages/ti/sysbios/posix" --include_path="C:/ti/tirtos_tivac_2_16_00_08/products/tidrivers_tivac_2_16_00_08" --include_path="C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/include" --define=ENABLE_LFN --define=DEBUG_TEST_FUNCTIONS --define=TARGET_IS_TM4C129_RA0 --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=PART_TM4C129XNCZAD -g --gcc --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="Main.d_raw" $(GEN_OPTS__FLAG) "$<" - @echo 'Finished building: $<' + "C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=0 --include_path="/products/ndk_2_25_00_09/packages/ti/ndk/inc/bsd" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Common/protobuf-c" --include_path="C:/Tango/Software/Embedded_SW/Embedded" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Hardware" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Printing" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Common" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Debugging" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Common" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Modules" --include_path="C:/ti/TivaWare_C_Series-2.1.2.111" --include_path="C:/ti/xdctools_3_32_00_06_core/include" --include_path="/products/TivaWare_C_Series-2.1.1.71b" --include_path="/products/bios_6_45_01_29/packages/ti/sysbios/posix" --include_path="/products/tidrivers_tivac_2_16_00_08" --include_path="C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/include" --define=ENABLE_LFN --define=DEBUG_TEST_FUNCTIONS --define=TARGET_IS_TM4C129_RA0 --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=PART_TM4C129XNCZAD -g --gcc --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="Main.d_raw" $(GEN_OPTS__FLAG) "$<" + @echo 'Finished building: "$<"' @echo ' ' delay.obj: ../delay.c $(GEN_OPTS) | $(GEN_HDRS) - @echo 'Building file: $<' + @echo 'Building file: "$<"' @echo 'Invoking: ARM Compiler' - "C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=0 --include_path="C:/ti/tirtos_tivac_2_16_00_08/products/ndk_2_25_00_09/packages/ti/ndk/inc/bsd" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Common/protobuf-c" --include_path="C:/Tango/Software/Embedded_SW/Embedded" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Hardware" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Printing" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Common" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Common" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Modules" --include_path="C:/ti/TivaWare_C_Series-2.1.2.111" --include_path="C:/ti/xdctools_3_32_00_06_core/include" --include_path="C:/ti/tirtos_tivac_2_16_00_08/products/TivaWare_C_Series-2.1.1.71b" --include_path="C:/ti/tirtos_tivac_2_16_00_08/products/bios_6_45_01_29/packages/ti/sysbios/posix" --include_path="C:/ti/tirtos_tivac_2_16_00_08/products/tidrivers_tivac_2_16_00_08" --include_path="C:/TI/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/include" --define=ENABLE_LFN --define=DEBUG_TEST_FUNCTIONS --define=TARGET_IS_TM4C129_RA0 --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=PART_TM4C129XNCZAD -g --gcc --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="delay.d_raw" $(GEN_OPTS__FLAG) "$<" - @echo 'Finished building: $<' + "C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -Ooff --opt_for_speed=0 --include_path="/products/ndk_2_25_00_09/packages/ti/ndk/inc/bsd" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Common/protobuf-c" --include_path="C:/Tango/Software/Embedded_SW/Embedded" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Hardware" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Printing" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Common" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR/Debugging" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication/PMR" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Communication" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Common" --include_path="C:/Tango/Software/Embedded_SW/Embedded/Modules" --include_path="C:/ti/TivaWare_C_Series-2.1.2.111" --include_path="C:/ti/xdctools_3_32_00_06_core/include" --include_path="/products/TivaWare_C_Series-2.1.1.71b" --include_path="/products/bios_6_45_01_29/packages/ti/sysbios/posix" --include_path="/products/tidrivers_tivac_2_16_00_08" --include_path="C:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.6.LTS/include" --define=ENABLE_LFN --define=DEBUG_TEST_FUNCTIONS --define=TARGET_IS_TM4C129_RA0 --define=ccs="ccs" --define=ccs --define=TIVAWARE --define=PART_TM4C129XNCZAD -g --gcc --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="delay.d_raw" $(GEN_OPTS__FLAG) "$<" + @echo 'Finished building: "$<"' @echo ' ' |
